Персональный сайт Спасского Станислава


На главную

Вирусы, неизбежное зло или недомыслие системных разработчиков?

Март 2007г., г.Москва, Зеленоград, Спасский Станислав.

Появилась очередная оболочка Windows Vista корпорации Microsoft Билла Гейтса. Улучшеный интерфейс, обещана "дополнительная" защита от вирусов.

Вирусы, черви, Троянские кони... Что это, объективно неминуемое бедствие или недомыслие разработчиков систем? Появилась эта беда одновременно с появлением интернета. Пишут, что сейчас уже насчитано более 50.000 разновидностей вирусов. Угроза всей нашей информационной цивилизации? Тысячи не нашедших себе лучшего применения программистов сочиняют всё новые разновидности пакостей, помноженных на масштаб явления. Десятки коллективов заняты созданием защиты от новых вирусов (безидейным выискаванием их кодов в исполнительных программах). Атакуются, взламываются государственные системы. Корпорации нанимают авторов вирусов, чтобы произвести удар по конкурентам. Масса научных трудов. Пользователь чувствует себя "как на вулкане". Всем нашлось дело...

Сейчас компьютеры и интенет становятся приборами и услугами общего пользования, подобно телевизорам. И их интерфейс и защищённость должны учитывать это. Переустановка систем и программного обеспечения слишком хлопотное и дорогое "удовольствие" для рядового пользователя.

Я представляю себе работу компьютеров. Правда, более подробно знаком с прошлыми их версиями.
Тогда только появился процессор с "защищённой модой", ориентированный на мультизадачность (но, увы, не очень сильно на защиту от вирусов. Поскольку он не позволял полностью разделить адресное пространство ОЗУ между задачами (это разделение зависит от соотношения приоритетов задач). Начала проводиться идея "не пускать" пользовательские программы непосредственно на системный, самый нижний уровень. И пошли оперативные системы Windows фирмы Microsoft. Ну, и вирусы...

Поэтому утверждаю, что уже давно (с момента осознания обществом вредности упомянутого явления, его масштабов и значения) продолжение существования "вирусов-червей-коней" является просто недоработкой создателей "оболочек". И, конечно, самый большой упрёк фирме Microsoft Билла Гейтса, фактического монополиста пользовательских систем. Правда, имея представление о кадровом составе компании, трудно говорить о недомыслии. В альтернативной оболочке Linux защита файлов предусмотрена, но достаточно сложна для рядового пользователя. И по имеющейся информации, тоже не всегда эффективна. Можно также сказать, что вирусные явления в Linux меньше выражены и из-за меньшего её распостранения.

При конструировании упомянутой "защищённой моды" в процессороре, её разработчики ещё недооценили опасности явления вирусов. Они ввели возможность разделения пространства ОЗУ между задачами, возможность блокировки аппарата прерываний для задач с более низким приоритетом по отношению к ОС. Но оставили такие бреши, как возможность "пользовательских программ" с одинаковоым приоритетом иметь доступ в зоны ОЗУ друг друга (и кодов, и данных ). И создателями оболочек не была продумана система ограничений активизированных задач в пространстве файловых структур. Таким образом, не не была реализована идея "полного разделения" всего пространства между пользовательскими задачами. Кроме того, Windows слабо держит под контролем текущие процессы и задания. (Например, системный завирусованный диск, случайно оставленный в дисководе при случайном рестарте системы может вывести из строя файловую систему.) Если бы полное разделение было реализовано, такого случиться просто бы не могло.

Предлагается:

Идея противостояния вирусам состоит:

  • 1) в полной защищённости и недоступности ОС без пароля;
  • 2) практически полном разделении всех остальных процессов по всему пространству (и ОЗУ и файловой структуре).
  • 3) и полноый контроль ОС всех происходящих процессов.То есть предлагается "защищённая мода", в полном смысле слов.

    Подробнее о предлагаемой системе:

    Прежде всего, сама концепция должна быть предельно проста и прозрачна. В этом её сила. И осознание, что самый невинный выход за пределы ограничений, даже из самых лучших побуждений, практически всегда ведёт в дальнейшем к разрушению системы.

    Внутрь ОС (и её пространства) может быть разрешён только санкционированный доступ и только средствами самой ОС. Практически, ОС должна быть почти полностью закрыта (вход под паролем пользователя). И конечно, переустановка операционной системы должна сопровождаться какими-то установками в BIOS и под паролем.

    ОС должна быть предельно "авторитарна", т.е. предельно всё держать под полным постоянным контролем. Все пользовательские программы должны осуществлять работу с "нижним уровнем" - и "железом", и фаловой системой (операции создания, чтения, записи, модификации файлов, операции с каталогами) только через посредство ОС.

    К программам, внешним по отношению к ОС кроме пользовательских должны быть отнесены и все переустанавливаемые драйвера, переустанавливаемые графические пакеты и интерпретаторы. Драйвер отличается от пользовательских программ тем, что ему позволено работать с некоторыми системными регистрами. Но с точки зрения системной безопасности они должны быть приравнены к внешним программам.

    Зараза может проникать и внедряться в файлы через две бреши:

  • 1) доступ к кодам запущенного в ОЗУ другого задания и
  • 2) широкий доступ к файлам всей файловой системы.

    Поэтому и перекрыть нужно эти два канала.

    Все внешние по отношению к ОС программы (задания, процессы) должны быть строго разделены в пространстве ОЗУ по кодам. Никаких взаимных доступов только потому, что задачи принадлежат одному уровню приоритета. Это потребует минимальных переделок процессора. Необходимые обмены данными между программами и драйверами, графическими пакетами, интерпретаторами должны осуществляться через общие зоны ОЗУ данных (и под контролем ОС).

    Особо следует отметить, что при использовании DLL программа должна иметь свою собственную DLL в личной директории. Практика использования общих DLL должна быть изжита. Технические возможности сейчас это позволяют.

    Разделение заданий в файловом пространстве.

    Для каждого запушенного процесса (и окна) должна быть определёна зона ограничения в файловом пространстве-некая поддиректория, скорее всего, temp-поддиректория, создаваемая конкретно для этого процесса и уничтожаемая сразу по завершению процесса. Выход за пределы этого замкнутого пространства может осуществляться только по прямому указанию оператора и только через процедуру ОС и под её контролем. Примером выхода за пределы зоны - работа программы Word с конкретным файлом (скажем, сохранение промежуточных или конечных результатов). Этот файл непосредственно указывается оператором или из Word, или вызовом Word по расширению указанного оператором файла. Никаких заменяющих человека-оператора командных сторок.

    Очень важен вопрос, кто и где организует ограничительную temp-поддиректорию. Предлагается, чтобы она организовывалась тем заданием (окном), из которого организуется новое задание и в зоне этого же задания, из которого запускается процесс. Но имеется одно исключение. Это программы типа "Проводник", которые имеют доступ к оглавлению файловой структуры (конечно, через ОС). Они не должны иметь права работать с содержимим файлов в целях безопасности. Следовательно, в этом случае ограничивающая поддиректория должна создаваться в зоне программы, открывающей указанный оператор файл.

    Например, Вы получили по почте (программой-почтовиком) письмо с приложенным .doc -файлом, который может потенциально содержать, как фрагмент, исполнительные коды, содержащие "заразу". Вы открываете файл из программы-почтовика. Тогда почтовик создааёт внутри "своей" файловой зоны рабочую поддиректорию и передаёт ОС требование передачи в программу Word адрес этой поддиректории, и данные (имя файла). ОС запускает Word и организует процесс, указывая окно и созданную поддиректорию, как зону ограничения для этого процесса. Когда дело доходит до исполнительного фрагмента, Word сообщает об этом ОС. ОС запускает .exe-процес, со строго оганиченной зоной ОЗУ и уже созданной ограничительной зоной файловой структуры. Таким образом, новое задание полностью изолировано и в ОЗУ, и в файловой структуре. Что может сделать в этой ситуации вирус, если оператор не наделает явных глупостей?

    О программах-шпионах. Как может ОС не отслеживать передач по интернету, не связанных ни с одним из открытых окон? А если связанных с окном, то что может передать эта программа, предельно ограниченная в файловой структуре и в ОЗУ?

    При открытием браузером окна (процесса) запоминается информация по документам, просматриваемых в этом окне в отведённой временной поддиректории внутри временной поддиректории браузера. При закрытии этого окна вся эта информация должа полностью уничтожаться. Никаких накоплений-свалок в системе. При нынешнем уровене техники в этом нет необходимости.

    Следовало бы для всех исполняемых фрагментов электронных документов использовать только интерпретаторы.

    Интерпретаторы не должны в своём составе содержать команд, потенциально опасных для системного оборудования.

    Послесловие.

    Как известно, Билл Гейтс, глава корпорации Microsoft, жертвует деньги на благотворительные цели. Это неплохо. Но хорошо бы ему в русле его прямой деятельности сделать одну надёжную защищённую систему.

    При первой возможности должны быть ликвидированы "дыры" в протоколах линий передач.

    Пару слов по интернету. Пора делить интернет на два уровня, различаемых поисковыми системами. Одна часть должна содержать только документы, за содержание которых в какой-то степени отвечают провайдеры. Интернет является сейчас практически мусорной свалкой и поисковые системы отражают эту ситуацию. К тому же всякие циничные хамские методы продвижения сайтов в поисковых системах... Попробуйте найти найти серьёзную информацию по вопросу, в котором вы хорошо разбираетесь, и сразу поймёте это. Если всё же у вас есть желание порыться в свалке, то сделать это всегда можно соответствующими установками в поисковике.

    Кажется, стоит сделать процесс регистрации почтовых ящиков персональным, не анонимным. Мы живём во время циничного использования хамских технологий. Заголовки писем должны содержать знак, что это письмо рекламного характера. Пользователь должен иметь возможность попросить почтового агента оградить себя от спама. Если же заголовок не содержит знака, а является спамом, отправитель письма должен быть наказан. Если для рассылки спама используется какой-то сервер, думаю, при желании можно локализовать этот сервер.

    Спасский Станислав

    На главную