 Softpanorama, may 1996; v.8.No.2(81) *** ARTICLES *** Составитель Н.Н.Безруков
 ==============================================================================
                                                                H.H.Безруков

                  КАК ЗАЩИЩАТЬСЯ ОТ КОМПЬЮТЕРНЫХ ВИРУСОВ
           (Памятка по защите от компьютерных вирусов, версия 2.02)

   В настоящее время проблема защиты от компьютерных вирусов может быть пере-
формулирована в виде проблемы минимально-необходимого набора средств  защиты.
Крайности сходятся и "переусердствование"  типа запуска DrWeb в  Autoexec.bat
или из login скрипта Netware  также вредно, как и полное  пренебрежение всеми
антивирусными средствами. Как мы знаем по нашему горькому историческому опыту
"перебдеть" порой даже опаснее, чем "недобдеть" поскольку силы и средства  на
"перебдение" выбрасываются впустую. Предлагаемая ниже схема комплексного  ис-
пользования антивирусных  средств не  является ни  единственно возможной,  ни
"абсолютно непробиваемой", однако отвечает некоторому интуитивно определяемо-
му критерию "разумной достаточности",  который учитывает три достаточно  про-
стые идеи:

   1. Заражение  может происходить  только "в  точках поступления дискет/про-
грамм" т.е., обычно после записи на винчестер и запуска новых программ  (час-
то,  игр  или  архивов  "скачанных"  с  помощью  модема,  почты  с  MS   Word
attachments) или попытки перезагрузки  компьютера с вставленной в  дисковод А
дискетой. Относительная стабилизация состава программного обеспечения для  MS
DOS делает наиболее типичным способом заражения случайную перегрузку  компью-
тера с вставленной в дисковод А "чужой" дискетой, поэтому я считаю обязатель-
ным использование в качестве стандартной последовательности просмотра  дисков
при загрузке C,A (устанавливается в CMOS памяти через BIOS setup).

   2. Вместо резидентных программ для обнаружения вируса проще и в большинст-
ве случаев  вполне достаточно  использовать программы  ловушки в Autoexec.bat
которые контролируют себя и несколько типовых точек заражения и дают  возмож-
ность с точностью "до одной перезагрузки" определить момент заражения. Я  ре-
комендую использовать для этой цели программу A.Яновского VIRWARN(см  SP81D),
которая компактна, быстра и делает то, что ей положено. Для компьютеров,  ко-
торые выполняют важные для организации функции можно также использовать специ-
ально сгенерированный Adinf в пакетном режиме со специальным профилем,  вклю-
чающим только некоторые типа файлов. Однако для быстрой проверки Adinf  недо-
работан, тяжеловат и на  слабых компьютерах он работает  недостаточно быстро.
При таком методе обнаружения заражение на момент выявления вируса таким  спо-
собом, как правило, является  локальным, что позволяет вместо  фага использо-
вать восстановление некоторого(небольшого)  числа программ с  архивной копии.
Правда для этого ее нужно иметь ;-). Хочу еще раз подчеркнуть, что без  службы
архивирования любая антивирусная защита является иллюзорной.

   4. Распространение вирусов подчиняется не законам распространения  обычных
инфекций (типа  гриппа), а  законам распространения  заболеваний, при которых
для заражения необходим непосредственный контакт с носителем инфекции  (СПИД,
венерические заболевания и т. п.). Таким образом, при использовании пользова-
телями антивирусных средств типа ревизоров, распространение нового компьютер-
ного вируса до первой перезагрузки в большинстве случаев носит локальный  ха-
рактер и  ограничено цепочками  заражения от  первоначального вирусоносителя.
Поэтому пользователь обнаруживший у  себя вирус при перезагрузке  как правило
может определить как он к нему попал, информировать тем с кем он  контактиро-
вал и во  многих случаях воспользоваться  накопленным к этому  моменту опытом
борьбы с ним. Кроме того,  в том редком случае, если  пользователь архивирует
свои программы и данные, ему не нужен фаг, поскольку достаточно просто выгру-
зить небольшое количество зараженных программ из архива. Исходя из этого  со-
ображения винчестер обязательно следует сегментировать отводя под раздел С не
более 128M. Важные данные рекомендуется хранить в разделах, отличных от С.

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

   Особенностью предлагаемой методики является использование некоторого  "ба-
зисного" уровня защиты основанного на архивировании, использовании программы-
 ловушки в Autoexec.bat и ведении базы данных об установленных программах (на-
пример с помощью Adinf)  и практически не осложняющего  работу пользователей.
а также использование так называемой дискеты-дрозофилы для детектирования
полиморфных и стелс вирусов. Резидентные программы как правило лезут в систе-
му достаточно глубоко и вероятность конфликтов с другими резидентами, особен-
но с сетевыми драйверами обычно  достаточно высока, поэтому без особой  нужны
применять их не рекомендуется.

Еще раз подчеркну,  что центральным моментом  в антивирусной защите  является
не доступность последней версии популярного фага(например, Dr.Web), а архиви-
рование, которое  надо понимать  не только  как запись  файлов на дискеты или
ленты, но и как запись системных блоков и таблиц. Это облегчает  восстановле-
ние программ и данных не только  при заражении компьютера вирусами, но и  при
любых катастрофах с файловой системой или винчестером. Дополнительные уровни,
используются только в режиме "повышенной опасности" или зараженности  компью-
тера. Упрощенно рекомендуемая методика включает следующие независимые  методы
и соответствующие  программные продукты,  которые могут  быть использованы  в
разных комбинациях от минимальной до максимальной (буквально следовать  пред-
лагаемым ниже "джентльменским" наборам для каждого уровня совсем необязатель-
но, в частности, вместо  рекомендуемых программ могут быть  использованы дру-
гие, обладающие сходными или лучшими характеристиками):


          Уровень 1(базисный уровень).  Профилактические мероприятия

     1.1. Архивирование  по схеме  неделя-месяц-квартал с  тремя независимыми
комплектами лент или архивных дисков (для полной копии рекомендуется  исполь-
зовать Fastback, Central Point Backup или аналогичную утилиту, для  частичных
- Arj, pkzip или любой другой хорошо освоенный архиватор).

     1.2. Сегментация винчестера как минимум на два логических диска. При этом
рекомендуется отводить под  раздел С не  более 128M и  хранить на нем  только
легко восстановимые программы  и данные. Поскольку  диск С чаще  подвергается
атакам вирусов важные данные рекомендуется хранить в разделах, отличных от С.
В случае, если время простоя компьютера имеет важное значение,  рекомендуется
использование защищенного от записи раздела на винчестере для хранения высоко-
стабильных программ(в  частности операционной  системы) и  части пакетов. Для
PC/MS DOS 5.0 и выше одним из наиболее простым методом реализации такой защи-
ты в настоящее время  представляется использование дискового кэша  Ncache2 из
пакета Norton Utilities (запускаемого из Config.sys). Альтернативным и в  об-
щем случае более гибким методом реализации сегментации с защищенными раздела-
ми  является  использование  специального  дискового  драйвера (Disk Manager,
Speed Store, Advanced disk manager или ), обеспечивающих одновременно  защиту
системных блоков MS DOS (MBR, бутсектор, FAT) от уничтожения при срабатывании
вируса или  троянской программы,  а наиболее  часто используемые  программы и
компоненты MS DOS - от заражения. Кроме того эти драйверы либо сами (ADM) ли-
бо с помощью дополнительных программ (для Disk Manager это программа  PROTECT
Дмитрия Гуртяка) позволяют ввести парольный доступ к разделам винчестера.

     1.3. Создание и корректировка при каждой переразметке винчестера или из-
менения аппаратных средств Rescue  Disk - дискеты с  копиями CMOS, MBR и  бут
секторов всех логических дисков (можно использовать Rescue.exe из утилит Нор-
тона или другую аналогичную программу).

     1.4. Создание "горячей коробки" резервных дискет c наиболее необходимыми
программами и данными, а также "красной папки" с необходимой в "кризисных си-
туациях" документацией (по методике, описанной в [1]).

     1.5. Запуск Image для всех логических дисков (кроме виртуальных) при ка-
ждой перезагрузке;

     1.6. Использование обеденного перерыва для ежедневная проверка целостно-
сти и дефрагментация файлов файловой системы (рекомендуется NDD в режиме про-
верки(но не исправления) + Speedisk или OPTUNE версии 1.2). Полную  оптимиза-
цию целесообразно проводить не реже, чем в режиме раз в неделю, а  дефрагмен-
тацию файлов - ежедневно (например, путем запуска при "перекуре" или перерыве
на обед с помощью bat-файла dinner[2]). Сохранения оптимизированных системных
блоков после полной оптимизации  рекомендуется выполнять с помощью  программы
MIRROR c тем, чтобы иметь более стабильную копию системных блоков, не  разру-
шающуюся при каждой перезагрузке.
     Для критичных для функционирования данной организации компьютеров можно
также рекомендовать "Обеденный запуск" ревизора Adinf с обязательным переиме-
нованием как самого ADINF (я, например, использую имя CRC_CHK) создаваемых им
файлов и размещением полученных таблиц вне диска С. Рекомендуется также хра-
нить дополнительную копию дистрибутива Adinf на дискете и/или в защищенном от
записи разделе винчестера.

     1.7. Использование в Autoexec.bat программы-ловушки VIRWARN для  обнару-
жения вируса. Virwarn A.Яновского контролирует себя и несколько типовых точек
заражения и дают возможность  с точностью "до одной  перезагрузки" определить
момент заражения. Она компактна, быстра  и делает то, что ей  положено. Можно
также использовать специально сгенерированный Adinf в пакетном режиме со спе-
циальным профилем, включающим только некоторые типа файлов. Однако на  слабых
компьютерах он работает недостаточно быстро. При таком методе обнаружения за-
ражение на момент выявления вируса таким способом, как правило, является  ло-
кальным, что при раннем  обнаружении позволяет вместо фага  использовать вос-
становление некоторого(небольшого) числа программ с архивной копии. Опять  же
подчерну, что для этого ее нужно иметь ;-).

     1.8. Использование режима загрузки C,A  в BIOS или, если его  нет, пере-
прошивка BIOS на один из более современных - имеющих в процедуре Setup  режим
выбора  порядка  просмотра  дисков   при  загрузке.  Использование   атрибута
READ_ONLY для всех исполняемых файлов.


               Уровень 2. Режим "повышенной бдительности"
                 (при получении новых программ/дискет)

     2.1. Проверка и вакцинация всех полученных дискет с помощью бутовой вак-
цины VitaminB или аналогичной (фактически вакцинация состоит в замене бутсек-
тора дискеты  на заведомо  незараженный бут-сектор  со специальной программой
загрузки, проверяющей "свое здоровье" при получении управления).  Желательно,
чтобы даже переход к просмотру диска А выполнялся путем запуска пакета,  ска-
жем, с именем AA,  который включал указанную операцию(это  кстати стимулирует
защищать  от  записи  дискеты  с  операционной системой ;-). Такая вакцинация
исключает возможность последующего  заражения компьютера бутовым  или бутовой
компонентой файлово-бутового вируса при случайной перезагрузке с  вставленной
в дисковод дискеты, даже если по небрежности режим режима загрузки C,A в BIOS
был временно изменен на A,C и так и оставлен.

     2.2. Сплошной входной контроль новых программных средств c помощью
батареи фагов (лучше использовать последние версии трех фагов разработанных
разными фирмами ("бог любит троицу" ;-) и я бы рекомендовал DrWeb фирмы
"Диалог-Наука, AVP фирмы КАМИ и F-prot фирмы Frisk Software), а затем
проанализировать результаты. Не стоит доверяться одному, пусть даже хорошо
себя зарекомендовавшему фагу (недавно автор наблюдал несколько случаев, когда
пользователи заразили все программы на своем винчестере имея в памяти вирус
One-half и проверяя диск с помощью Aidstest, запущенном без перезагрузки
системы с эталонной версии операционной системы и использования эталонной
дискеты с антивирусными программами). Отмечу, что последнее время хорошо
работает DrWeb, в котором по умолчанию включен режим предварительной
распаковки архивов и проверки файлов в архивах.

     2.3. Использование хотя бы примитивного режима карантина для новых  про-
грамм: опробование новых программ/пакетов на отдельном компьютере без важных
данных или хотя бы отдельном разделе винчестера с защищенными от записи
отстальными разделами. Использование программы усиления атрибута Read Оnly
(автор рекомендует File Defender Игоря Свиридова) в течении как минимум двух
суток после установки новых программ. Защита всех других разделов от записи
перед первым (несколькими первыми) запуском. Дополнительные контрольные
запуски Adinf до и после нескольких первых сеансов работы с новым программным
средством.

           Уровень 3. Ситуация обнаружения вируса на винчестере

     3.1. Немедленное прекращение записи любой новой информации на  винчестер
и защита всех разделов винчестера от записи с помощью кэша(NCACHE2 из NU или
аналогичного) или дискового драйвера. Выполнение действий по уничтожению
вируса только после загрузки с защищенной от записи эталонной дискеты с
операционной системой. Использование антивирусных программ со специальной
антивирусной дискеты, а не с винчестера. (запуск зараженной антивирусной
программы для нового вируса не определяемого этой программ неизбежно ведет к
заражению всех проверяемых файлов).

     3.2. В сомнительных случаях (ложные срабатывания антивирусных  программ,
вирусофобия, Stealth-вирусы,  полиморфные вирусы)  контроль наличия  вируса с
помощью теста "дискета-дрозофила" (см. ниже Приложение).

     3.3. Определение "очага поражения" с помощью Adinf, запускаемого с защи-
щенной от записи дискеты. Эта рекомендация требует пояснения. Дело в том, что
ADinf обычно обнаруживает вирусы и в зараженной среде, поскольку читает  диск
напрямую через BIOS.  При этом ADinf  использует запомненный при  инсталляции
адрес обработчика  прерывания Int  13h в  BIOS. При  запуске его с заклеенной
дискеты ADinf должен либо иметь свой сетап на дискете, либо ему нужно указать
ему ключ -Setup:<Path> (например -Setup:D:\AVIR\). При этом будет использован
найденный ранее адрес вектора 13h, а также будет использоваться выбранная ра-
нее конфигурация ADinf (список расширений, типы контрольных сумм и т.д.). Ес-
ли Adinf на дискете не был инсталлирован на данном компьютере, то при запуске
с заклеенной дискеты он определит этот адрес без проблем, однако если дискета
не была заклеена, то он может оказаться зараженным и вирус может пытается ему
противодействовать. Кроме того  запускать какие-либо программы  с зараженного
винчестера опасно, поэтому вообще-то стандартным действием после  обнаружения
вируса является переход к работе  с заклеенной дискеты с чистой  операционной
системой.

     3.4. Уничтожение или  запись за дискету(ы)  всех зараженных программ,  а
затем выгрузка "чистых" файлов с помощью Fastback (Fastback + backup как  са-
мый универсальный фаг). Предварительно желательно убедиться по справке  нали-
чие незараженной копии.

     3.5. В случае отсутствия незараженной резервной копии той или иной  про-
граммы использование готового или написание собственного фага (при этом  "ле-
чение" желательно проводить не на  "живом" винчестере, а на копии  на дискете
зараженных программ на дискете и ТОЛЬКО после перезагрузки с эталонной  защи-
щенной от записи дискеты с операционной системой.

     3.6. Контроль целостности данных: проверка сохранности данных на  случай
наличия в вирусе троянских компонент повреждающих сектора диска или модифици-
рующих буфера при чтении/записи  данных) и, при необходимости,  использование
специальной методики восстановления поврежденных вирусом файлов и баз данных.

                         Дополнительные замечания

     Как видно из приведенного выше описания, предлагаемая схема предполагает
возведение нескольких  "барьеров" на  пути проникновения  вируса в компьютер.
Важно понимать, что даже в минимальном (первом) варианте (фактически  предла-
гается использовать три комплекта дискет (или стриммер) + кэш(дисковый  драй-
вер) + ревизор) данная схема обеспечивает существенное улучшение безопасности
программ и особенно данных.

     Данная методика является альтернативой "гонке за последней версией" того
или иного фага, которая получила распространение у части пользователей и, как
представляется автору, является не совсем конструктивным использование сил  и
средств.

     Хочу подчеркнуть, что не стоит верить в какие-то панацеи: никакое  сред-
ство защиты,  взятое отдельно,  не способно  обеспечить уровень безопасности,
сопоставимый с комплексным использованием указанных выше средств. Любое сред-
ство может быть "сломано" путем использования в вирусе новых методов  проник-
новения (ситуация "снаряд-броня" с последним примером в виде вируса Dir).  Ну
и, конечно, любая защита является иллюзорной при отсутствии системы архивиро-
вания, например по схеме "неделя-месяц-квартал".

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

     В заключение следует отметить, что  не менее важной проблемой, чем  про-
блема защиты от вирусов является проблема восстановления повреждений файловой
системы или отдельных файлов (например .DBF или архивов). Это отдельная слож-
ная, но незначительные повреждения файлов и архивов устранимы с помощью  специаль-
ных программ(для ZIP это PKZIPFIX, а  для ARJ - режим -jr, которые  и следует
использовать при восстановлении).


                                                                   Приложение

             Тестирование компьютера на зараженность вирусом
                      с помощью дискеты-дрозофилы

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

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

     Дискетой-дрозофилой будем называть копию некоторой загружаемой дискеты с
MS DOS той версии, которая используется на компьютере и несколькими стандарт-
ными или какими-то специальными драйверами (например ) и несколькими исполня-
емыми программами.  Набор последних  должен достаточно  разнообразен и, жела-
тельно, включать NC. Другими словами,  это некоторая системная дискета с  не-
сколькими исполняемыми файлами, для которой ОБЯЗАТЕЛЬНО существует  подготов-
ленная заранее эталонная, защищенная от записи ("заклеенная") копия.  Послед-
няя, по определению, не является зараженной.

     Основное преимущество дискеты-дрозофилы  состоит в том,  что исследовать
дискету гораздо проще, чем винчестер. Таким образом, вирус как бы "вытаскива-
ется на свет". Например, место, куда вирус записал свое тело, легко определя-
ется путем сравнения зараженной дискеты с эталонной.

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

     Методика использования  дискеты-дрозофилы достаточно  проста и  включает
следующие шаги:

     1. Прямо на "подозрительном" компьютере с эталонной защищенной от записи
дискеты-дрозофилы (эталонной копии операционной системы и некоторых утилит  в
простейшем случае)  снимается копия  с помощью  любого приличного дупликатора
дискет (например, fastcopy Яновского,  copyiipc, diskdup из утилит  Нортона,
или, наконец, WIMAGE, DFCOPY или любой другой программы, обеспечивающей  пол-
ную идентичность эталона и копии). Эта копия НЕ ЗАЩИЩАЕТСЯ от записи.

     2. Компьютер перегружается с НЕЗАЩИЩЕННОЙ дискеты-дрозофилы.

     3. В  течении некоторого  времени работа  на компьютере  выполняется как
обычно, но желательно,  чтобы COMMAND.COM, NC  и другие программы  (например,
XCOPY) грузились с дискеты дрозофилы, для того, чтобы вирус (если он действи-
тельно есть), заразил хотя бы одну из программ на дискете-дрозофиле.

     4. Выполняется "холодная"  перезагрузка (клавишей RESET  или выключением
питания) компьютера с эталонной  защищенной от записи дискеты  с операционной
системой (т.е. с эталонной копии дискеты-дрозофилы, в нашем случае).

     5. Выполняется сравнение эталонной копии дискеты-дрозофилы и снятой  ко-
пии, с которой запускались программы, с помощью Diskcomp или PC Tools, запус-
каемых с заклеенной эталонной дискеты с операционной системой.

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

     7. Если различий нет, то  необходимо вернуться к п.2 и  попытаться изме-
нить  дату,  последовательность  запуска  программ  и другие известные методы
"пробуждения" вируса. Если ни один из этих приемов не привел к успеху, вероя-
тность того, что компьютер заражен вирусом, мала по сравнению с  вероятностью
других причин наблюдаемого аномального  поведения. То есть, если  несмотря на
все усилия, дискета-дрозофила остается идентичной эталону, то причину  наблю-
даемых аномалий следует искать в другом.



                            Л И Т Е Р А Т У Р А

     1. Безруков Н.Н. Компьютерные вирусы.- М.: Наука, 1991.- 159 с.
     2. Безруков Н.Н. Компьютерная  вирусология.-  Киев: Укр. сов. энцик.,
1991. - 416 с.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

P.S. Идея дискеты-дрозофилы позволяющая упростить детектирование  полиморфных
     и стелс-вирусов, на которой она основана была выдвинутаа мной примерно в
     1992 году,  т.е. еще  до распространения  полиморфных вирусов  и впервые
     опубликована в статье "Как защититься от компьютерных вирусов" в  газете
     Бизнес от 30 июня 1993 года. Сейчас похоже это "идея, чье время пришло".


