Николай Безруков
"SoftReview/Компьютерное Обозрение" Октябрь/1993 (стр. 46-49)
Октябрь 1993
В настоящее время проблема защиты от компьютерных вирусов может быть переформулирована в виде проблемы минимально-необходимого набора средств защиты. Крайности сходятся и "переусердствование", типа запуска Aidstest в Autoexec.bat, также вредно, как и полное пренебрежение всеми антивирусными средствами. Предлагаемая ниже схема комплексного использования антивирусных средств не является ни единственно возможной, ни "абсолютно непробиваемой", однако отвечает некоторому интуитивно определяемому критерию "разумной достаточности", который учитывает три достаточно простые идеи:
Особенностью предлагаемой методики является использование некоторого "базисного" уровня защиты, практически не осложняющего работу пользователей и дополнительных уровней, используемых только в режиме "повышенной опасности" или зараженности компьютера. Упрощенно, рекомендуемая методика включает следующие независимые методы и соответствующие программные продукты, которые могут быть использованы в разных комбинациях от минимальной до максимальной (буквально следовать предлагаемым ниже "джентльменским" наборам для каждого уровня совсем необязательно, в частности, вместо рекомендуемых программ могут быть использованы другие, обладающие сходными или лучшими характеристиками).
1.1. Создание Backup дискеты с копиями CMOS, MBR и boot-секторов всех логических дисков (DiskTool из утилит Нортона или другая аналогичная программа).
1.2. Создание "горячей коробки" резервных дискет и "красной папки" с необходимой в "кризисных ситуациях" документацией (по методике, описанной в [1]).
1.3. Запуск утилиты Image для всех логических дисков (кроме виртуальных) при каждой перезагрузке.
1.4. Проверка целостности файловой системы и ее оптимизация (дефрагментация файлов). Для проверки целостности рекомендуется использовать NDD (следует быть осторожным и если утилита NDD предлагает что-то исправить, необходимо обязательно сохранить файл с протоколом внесенных изменений с тем, чтобы, если исправление окажется неудачным, можно было вернуться к первоначальному состоянию). Для оптимизации реомендуется использовать Speedisk или OPTUNE версии 1.2. Полную оптимизацию целесообразно проводить не реже, чем в режиме раз в неделю, а дефрагментацию файлов - ежедневно (например, путем запуска при "перекуре" или перерыве на обед [2]). После оптимизации все системные блоки рекомендуется сохранить с помощью программы MIRROR, входящей в состав MS DOS, с тем, чтобы иметь стабильную копию системных блоков, не разрушающуюся при каждой перезагрузке.
1.5. Архивирование по схеме неделя-месяц-квартал с тремя независимыми комплектами архивных дискет (для полной копии рекомендуется использовать Fastback, для частичных - Pkzip или Arj) или кассетами стриммера.
1.6. Сегментация с защищенным разделом. Сегментация винчестера на логические разделы с использованием не менее одного раздела, защищенного от записи (со статусом Read Only). Для MS DOS 5.0 наиболее простым методом реализации такой защиты в настоящее время представляется использование дискового кэша Ncache2 из пакета Norton Utilities 6.03 (запускаемого из Config.sys), а для MS DOS 3.30 кэша Dcache канадской фирмы Datamorphics Limited. Альтернативным и, в общем случае, более гибким методом реализации сегментации с защищенными разделами является использование специального дискового драйвера (Speed Store, Advanced disk manager или Disk Manager), обеспечивающего защиту системных блоков MS DOS (MBR, boot-сектор, FAT) от уничтожения при срабатывании вируса или троянской программы, а наиболее часто используемые программы и компоненты MS DOS - от заражения. Кроме того, эти драйверы либо сами (ADM), либо с помощью дополнительных программ (для Disk Manager это программа PROTECT Дмитрия Гуртяка) позволяют ввести парольный доступ к разделам винчестера.
1.7. Организация "контролируемо-безвирусной" перезагрузки MS DOS: хранение компонент операционной системы и всех программ, вызываемых из Autoexec.bat, в разделе винчестера, защищенном от записи. Использование для контроля перезагрузки ревизора памяти Neatchk В.В. Пономаренко (в качестве последнего или предпоследнего перед запуском NC или другой оболочки 'шага 'Autoexec.bat).
1.8. Отслеживание изменений в режиме "раз в сутки". Систематический запуск при каждой перезагрузке или раз в сутки ревизора Adinf версии 8.00 или более поздней (необходим режим переименования создаваемых Adinf файлов) с обязательным переименованием создаваемых им файлов и размещением их вне корневого каталога диска C. Рекомендуется также хранить дополнительную копию дистрибутива Adinf в защищенном от записи разделе винчестера.
2.1. Принудительная вакцинация всех получаемых дискет с помощью бутовой вакцины VitaminB (фактически вакцинация состоит в замене бут-сектора дискеты на заведомо незараженный boot-сектор со специальной программой загрузки, проверяющей "свое здоровье" при получении управления). Желательно, чтобы переход к просмотру диска A выполнялся путем запуска пакета, скажем, с именем AA, который включал бы указанную операцию. Такая вакцинация исключает возможность последующего заражения компьютера бутовым или файлово-бутовым вирусом при случайной перезагрузке с вставленной в дисковод дискеты, хотя, конечно, более радикальным способом представляется перепрошивка BIOS на один из более современных - имеющих в процедуре Setup режим установки устройства для начальной загрузки.
2.2. Сплошной входной контроль новых программных средств с помощью батареи детекторов-фагов (рекомендуются Aidstest, Sos, Scan, -V) с предварительной распаковкой архивов и, что несколько более трудоемко, но представляется полезным, разжатием обработанных PKLITE (и аналогами) файлов.
2.3. Использование резидентного детектора Inspector Евгения Сусликова в сочетании с программой усиления атрибута Read Only (DR DOS 6.0 или специальная утилита для усиления этого атрибута в MS DOS: автор рекомендует File Defender Игоря Свиридова).
2.4. Использование хотя бы примитивного режима карантина для новых программ. Запись новых программ/пакетов на отдельный раздел винчестера. Защита всех других разделов от записи перед первым (несколькими первыми) запуском. Дополнительные контрольные запуски Adinf + Neatchk до и после нескольких первых сеансов работы с новым программным средством (минимальный карантинный режим).
3.1. Приостановка записи на винчестер и защита всех разделов винчестера от записи с помощью кэша или драйвера. Переход к загрузке с защищенной от записи эталонной дискеты с операционной системой.
3.2. В сомнительных случаях (вирусофобия, stealth-вирусы) контроль наличия вируса с помощью теста "дискета-дрозофила" (см. ниже).
3.3. Определение "очага поражения" с помощью Adinf, запускаемого с защищенной от записи дискеты. Эта рекомендация требует пояснения. Дело в том, что ADinf рассчитан на работу в зараженной среде и прекрасно обнаруживает вирусы, будучи запущенным с винчестера, поскольку читает диск напрямую через BIOS. При этом ADinf использует запомненный ранее адрес обработчика прерывания Int 13h в BIOS. При запуске его с заклеенной дискеты ADinf будет вынужден снова определять этот адрес, что является дополнительным источником возможных неприятностей в том случае, если активный вирус пытается противодействовать антивирусам. С другой стороны, запускать какие-либо программы с зараженного винчестера опасно, поэтому, действительно, после обнаружения вируса надо загрузить чистую операционную систему и запустить ADinf с заклеенной дискеты, но при запуске необходимо задать ключ -Setup: <Раth> (например - Setup:C:\VD\), где Path - полный путь каталога, в котором был записан ADinf, используемый на машине. Этот ключ был введен, начиная с версии ADinf 7.03. При этом будут использованы найденный ранее адрес вектора 13h, а также выбранная ранее конфигурация ADinf (список расширений, типы контрольных сумм и т.д.).
3.4. Уничтожение или запись на дискету(ы) всех зараженных программ, а затем выгрузка "чистых" файлов с помощью Fastback (Fastback + backup как самый универсальный фаг). Предварительно желательно убедиться по справке в наличии незараженной копии.
3.5. В. случае отсутствия незараженной резервной копии той или иной программы использование готового или написание собственного фага (при этом "лечение" должно проводиться не на "живом" винчестере, а на дискете с предварительно переписанными зараженными программами и после перезагрузки - с эталонной защищенной от записи дискеты с операционной системой.
3.6. Контроль целостности данных: проверка сохранности данных на случай наличия в вирусе троянских компонент и, при необходимости, использование специальной методики восстановления поврежденных вирусом файлов и баз данных.
В последнее время отмечается тенденция атрибутировать любые нарушения в функционировании компьютера заражением последнего компьютерным вирусом. Это далеко не всегда так. Однако возникающая при этом паника приносит большие разрушения, чем любой реальный вирус. Классическим примером являются так называемые "псевдоэпидемии", возникащие в результате ложного срабатывания одной из антивирусных программ на некоторых фрагментах совершенно нормальных программ или, что гораздо хуже, на результаты работы другой антивирусной программы. Например, устаревшая антивирусная программа AntiKot (которую некоторые пользователи, к сожалению, хранят из-за красивых звуковых эффектов при ее работе) диагностирует все файлы, в конце которых дописана строка "MsDos", как зараженные вирусом Time. Однако эта строка отнюдь не является устойчивым признаком зараженности программы этим вирусом. Более того, довольно популярная на заре появления вирусов в СССР антивирусная программа TNTVirus дописывает эту строку в конец файлов в так называемом режиме вакцинирования. Не слишком квалифицированные пользователи тратят массу времени и сил на борьбу с несуществующм вирусом Time, хотя на самом деле получаемая ими диагностика является результатом взаимодействия двух антивирусных программ: TNTVirus и AntiKot.
Поэтому крайне необходим простой и эффективный тест проверки зараженности компьютера. Наиболее простым и надежным представляется разработанный автором тест, получивший название "ловли вируса на дискету - дрозофилу".
Дискетой-дрозофилой будем называть копию некоторой загружаемой дискеты с MS DOS той версии, которая используется на компьютере и несколькими стандартными или какими-то специальными драйверами (например, Disk Manager) и несколькими исполняемыми программами. Набор последних должен быть достаточно разнообразен и, желательно, включать в себя Norton Commander. Другими словами, это некоторая системная дискета с несколькими исполняемыми файлами, для которой обязательно существует подготовленная заранее эталонная, защищенная от записи ("заклеенная") копия. Последняя, по определению, не является зараженной.
Основное преимущество дискеты-дрозофилы состоит в том, что исследовать дискету гораздо проще, чем винчестер. Таким образом, вирус как бы "вытаскивается на свет". Например, место, куда вирус записал свое тело, легко определяется путем сравнения зараженной дискеты с эталонной.
Все известные сейчас компьютерные вирусы заражают дискеты. Поэтому дискета-дрозофила является одним из самых надежных тестов на зараженность компьютера вирусом, в том числе Stealth-вирусами и полиморфными вирусами и, тем самым, важным средством борьбы с вирусофобией.
Методика использования дискеты-дрозофилы достаточно проста и включает следующие шаги:
Как видно из приведенного выше описания, предлагаемая схема предполагает возведение нескольких "барьеров" на пути проникновения вируса в компьютер. Важно понимать, что даже в минимальном (первом) варианте фактически предлагается:
Несмотря на столь незначительные изменения в составе используемого программного обеспечения, данная схема обеспечивает существенное улучшение безопасности программ и данных.
Данная методика является альтернативой "гонке за последней версией" того или иного полифага (например Aidstest), которая получила распространение у части пользователей и, как представляется автору, является не совсем конструктивным использование сил и средств.
Хочу подчеркнуть, что не стоит верить в какие-то панацеи: никакое средство защиты, взятое отдельно, не способно обеспечить уровень безопасности, сопоставимый с комплексным использованием указанных выше средств. Любое средство может бьггь "сломано" путем использования в вирусе новых методов проникновения (ситуация "снаряд-броня" с последним примером в виде вируса Dir). Ну и конечно, любая защита является иллюзорной при отсутствии системы архивирования, например, по схеме "неделя-месяц-квартал".
Следует особо подчеркнуть, что роль "человеческого фактора" представляется не менее важной, чем набор используемых средств, поэтому любые формы повышения квалификации пользователей являются одновременно методами улучшения вирусозащищенности компьютеров, причем зачастую куда более эффективными, чем любые коммерческие "панацеи". В этом плане следует особо отметить важность специализированных структур типа Ассоциации экономической безопасности (Генеральный директор Сотсков В. А.) и Ассоциации безопасности малого бизнеса (президент Дичек А.И.).
В заключение следует отметить, что не менее важной, чем проблема защиты от вирусов, является проблема восстановления повреждений файловой системы MS DOS или отдельных файлов (например, DBF-файлов или архивов). Именно эта проблема привлекла в последнее время внимание автора и, возможно, в будущем данные рекомендации будут расширены в указанном направлении.