Программы - мониторы в войне против вирусов. Мы столкнулись вплотную с вирусами в конце 1989г. Сразу возник вопрос: как обеспечить эффективную защиту программ? Анализ возможных способов противодействия вирусам привел нас к неожиданному выводу: писать новую программу, удаляющую известные вирусы, нецелесообразно. Во-первых, новые вирусы появляются намного быстрее, чем антивирусные программы, причем для лечения зараженного файла необходимо не только иметь хотя бы один экземпляр вируса, но и надо разобраться со способом прикрепления его к программе. Во-вторых, создатели вирусов имеют, как правило, высокую квалификацию, и им ничего не стоит создать вирус, который портит программу так, что ее восстановление станет бессмысленным. Простейший пример: вирусы группы Dark Avenger или вирусы типа Love Child. Поэтому имеет смысл предупреждать заражение, т.е. создавать такие условия, при которых вирусу было бы трудно внедриться в вычислительную систему, распространиться и проявиться в ней. Рассмотрев несколько способов защиты от заражения, мы выбрали метод мониторинга критичных операций. Критичной операцией считается такое действие программы, которое может привести к уничтожению или искажению данных на магнитном носителе. Этот метод хорош тем, что позволяет противостоять не только вирусам, но и троянским коням. Существует несколько программ, использующих мониторинг критичных операций: VACCINE, ANTI4US2, VIRBLK, FLUSHOT PLUS. Однако существуют вирусы, которые могут обходить эти программы. Программа-монитор должна: - предотвращать несанкционированные изменения данных на диске при помощи контроля любой операции записи на магнитный носитель; - не допускать ее устранения от контроля критических операций; - минимизировать уровень помех. Информация, выдаваемая на экран, должна быть достаточной для принятия решения; - противодействовать не только существующим, но и новым вирусам; - иметь открытую структуру, возможность настройки на конкретное применение; - дополнительно использовать другие известные методы защиты от вирусов; - неувеличивать существенно производительность системы; - проверять целостность своего модуля как во время исполнения, так и при загрузке в память. На основе этих требований были выработаны приведенные ниже принципы построения программ-мониторов. 1. При разработке программ данного класса целесообразно применять язык Ассемблера. Поскольку проверка критичных операций осуществляется через контроль программных прерываний , а они происходят достаточно часто, то применение Ассемблера позволит уменьшить накладные расходы на производительность и занимаемую память. 2. Для повышения "живучести" программ-мониторов предлагается внедрить их непосредственно в операционную систему. Низкая "живучесть" существующих программ является следствием их "внешнего прикрепления" к операционной системе. Как правило, контроль критичных операций выполняется этими программами через вектора прерываний. Вирусы семейства Dark Avenger и вирусы второго поколения (LoveChild, RC-492) передают управление непосредственно в ПЗУ, где располагается BIOS. В этом случае предлагается модифицировать системные таблицы так, чтобы не допустить выполнения критичных операций с диском в обход программы-монитора. 3. Необходимо проверить запускаемые программы на наличие известных вирусов. Открытая база масок вирусов позволит настраивать программу на конкретное применение путем редактирования базы. 4. Следует проверять попытку программ остаться резидентно в памяти. 5. Программа-монитор должна при запуске прикладной программы проверять програмную среду на наличие известных вирусов. Кроме того, состояние среды после завершения программы должно быть таким же , как и до ее выполнения за исключением случая , когда запускаемая программа остается в памяти резидентно. 6. Право на окончательное решение должно всегда оставаться за пользователем. Нам удалось объединить предлагаемые методы в одной программе, что существенно расширило ее возможности и улучшило технические характеристики. Разработанная нами программа DEFENSE не свободна от недостатков. Версия 2.3 не работант с дисплеем в графическом режиме, а также не контролирует содержимое СМОS-памяти. Эти недостатки будут устранены в следующих версиях. Высокая эффективность работы достигнута за счет специализации программы DEFENSE на операционных системах MS-DOS (РС-DOS) версий 3.10 - 4.10. С другими операционными системами программа работаь не будет. Необходимо отметить, что мы выступаем не за отказ от использования программ-докторов, а за отказ от создания новых программ этого класса. В следующей версии программы DEFENSE предполагается реализовать принцип "обнаружил-уничтожил", где одну из главных ролей должна играть программа-доктор. Эту программу каждый сможет выбрать по своему вкусу и просто присоединить к DEFENSE.