или D, и не указываемых в PATH. Раздельное хранение исполняемых
программ и баз данных;
фильтрация: применение программ-сторожей для обнаружения попыток
выполнить несанкционированные действия;
вакцинирование: специальная обработка файлов, дисков, каталогов,
запуск резидентных программ-вакцин, имитирующих сочетание условий,
которые используются данным типом вируса для определения, заражена
уже программа, диск, компьютер или нет, т.е. обманывающих вирус;
автоконтроль целостности: применение резидентных программ под-
счета контрольных сумм перед запуском программ, использование в
программе специальных алгоритмов, позволяющих после запуска про-
граммы определить, были внесены изменения в файл, из которого за-
гружена программа, или нет;
терапия: дезактивация конкретного вируса в зараженных программах
специальной программой-антибиотиком или восстановление первона-
чального состояния программ путем "выкусывания" всех экземпляров
вируса из каждого зараженного файла или диска с помощью программы-
фага.
Как видно из приведенного выше материала, имеется несколько ти-
пов программных средств защиты от вирусов. Если попытаться наме-
тить иерархию этих средств по их вкладу в безопасность, то пред-
ставляется, что на первом месте идут программы-архиваторы.
10.2. Основная технологическая схема защиты
"Volenum ducunt fata,
nolenum trahunt"
(Желающего судьба ведет,
не желающего тащит)
Латинская пословица
Проблему защиты от вирусов целесообразно рассматривать в общем
контексте проблемы защиты информации от несанкционированного дос-
тупа. По данной проблеме опубликован ряд монографий, среди которых
следует рекомендовать учебник Л.Д.Хофмана [ ] и монографию Сяо,
Керр и Медника [ ]. Основной принцип, который должен быть положен
в основу разработки технологии защиты от вирусов, состоит в созда-
нии многоуровневой распределенной системы защиты, включающей как
регламентацию операций на ЭВМ, так и специальные программные и ап-
паратные средства. При этом обязательно должно существовать не-
сколько уровней защиты, причем их количество может варьироваться в
зависимости от ценности информации, которая обрабатывается на кон-
кретной ЭВM.
Как и в большинстве других случаев организации защиты, важным
преимуществом многоуровневой защиты является то, что наличие не-
скольких уровней позволяет компенсировать недостатки, присущие то-
му или иному отдельному средству защиты. Если вирус обойдет один
вид защиты, то он может "споткнуться" на другом. Автор рекомендует
схему, включающую следующие этапы:
входной контроль новых программных средств;
сегментацию информации на винчестере;
защиту MS DOS и системных программ от заражения;
систематическое использование резидентных программ и ревизоров
для контроля целостности информации;
архивирование.
10.2.1. Организация входного контроля нового программного
обеспечения
Первым и весьма важным уровнем защиты является входной контроль
поступающих программ и дискет. Подобно тому, как первые захваты
авиалайнеров изменили отношение к проблемам досмотра пассажиров,
случаи заражения вирусами должны изменить отношение к входному
контролю программ и дискет, который, к сожалению, часто еще рас-
сматривается как необязательный. Следует отдавать себе отчет, что
фактически мы столкнулись с еще одной разновидностью терроризма, и
борьба с ним требует перехода к сплошному входному контролю посту-
пающих программ и дискет. При этом "фирменные" дискеты не должны
составлять исключение, так как имелись случаи поставки зараженных
программ на дистрибутивных дискетах. Конечно, вероятность послед-
него случая существенно меньше, чем при обычном переписывании.
Большинство известных файловых и бутовых вирусов можно выявить
уже на этапе входного контроля. Эта процедура отнимает всего лишь
несколько минут, сохраняя десятки часов, потраченных затем на дез-
инфекцию или восстановление уничтоженной информации. Для этой цели
целесообразно использовать специально подобранную батарею детекто-
ров и фагов. Можно рекомендовать следующий состав такой батареи
(приведенные ниже фаги следует использовать в режиме детектирова-
ния): SCAN, TNTVIRUS, Kxx, -V, AIDSTEST, AV, Doctor.
Указанную батарею можно запускать как с помощью обычного BAT-
файла, так и с помощью оболочки типа антивирус-интегратора (напри-
мер, AVTP). В случае обнаружения вирусов полезно отпечатать и со-
хранить протокол проведенного контроля. При интерпретации резуль-
татов следует учитывать возможность ложного срабатывания одного из
детекторов.
10.2.1.1. Понятия достоверной дистрибутивной копии
и сертификата
Развитие методов маскировки вирусов делает необходимым понятие
достоверной дистрибутивной копии. Здесь возникает определенная
проблема, в случае если распространяемое программное обеспечение
относится к классу FREEWARE. Главным критерием достоверности ди-
стрибутивной копии является соответствие длины, даты и контрольной
суммы файла значениям, приведенным в протоколе архивирования раз-
работчика, если конечно, таковой имеется, или в протоколе, полу-
ченном с "только-что распечатанной" дистрибутивной версии. Следует
подчеркнуть важность эталонного протокола, как своего рода серти-
фиката подлинности передаваемого программного обеспечения.
Если программное обеспечение получено с сертификатом, то сразу
после его получения рекомендуется снять справку с архива и срав-
нить с сертификатом.
10.2.1.2. Контроль текстовых строк,
содержащихся в файле
Полезно просмотреть ASCII-строки, имеющиеся в полученных про-
граммах, используя LABTEST, RED, EDMSG или другую подходящую ути-
литу. Очень важно убедиться, что полученное Вами программное обе-
спечение не содержит "подозрительных" текстовых строк типа
"COMMAND.COM", "PATH=", "*.COM", "????????COM", "Kill", "Stoned",
"Virus", "Stupid", и т.д. (см. прил.1-4). Поскольку большинство
разработчиков вирусов, по-видимому, страдают "комплексом неполно-
ценности", разработка вируса для них является патологическим спо-
собом самоутверждения. Поэтому им трудно удержаться от включения в
текст сообщений подобного рода. В то же время многие вирусы шиф-
руют содержащиеся в них строки и они становятся видны только при
трассировке программы. Однако отрицательный результат - тоже ре-
зультат и, если при визуальном просмотре в последних 2-3К дампа
нет ни одной текстовой строки, то это тоже должно настораживать.
Если это является результатом упаковки EXE-файлов специальным упа-
ковщиком, распаковывающим файл в оперативной памяти перед выполне-
нием (LZEXE, EXEPACK и др.), то необходимо предварительно распако-
вать файл для анализа.
10.2.1.3. Использование отладчиков и дизассемблеров
Подозрительные файлы целесообразно просмотреть с помощью отлад-
чика, позволяющего отслеживать выдаваемые программой прерывания
(Periscope, Quard Analizer). Методика их использования будет рас-
смотрена во второй части данной работы. В cлучае выявления "подо-
зрительных" последовательностей прерываний соответствующие участки
программы следует дизассемблировать и пройти в пошаговом режиме.
10.2.2. Карантинный режим
"Все, что хорошо начина-
ется, кончается плохо,
Все что начинается пло-
хо, кончается еще хуже"
Из законов Мерфи
В случае, когда программное обеспечение получено без сертифика-
та, из сомнительного источника или не эксплуатировалось в том мес-
те, откуда оно было передано, первые несколько дней эксплуатацию
полученного программного обеспечения полезно выполнять в карантин-
ном режиме. В этом режиме целесообразно использовать искусственно
ускоренный календарь, т.е. задавать при каждом следующем экспери-
менте новый месяц и день недели. Это повышает вероятность обнару-
жения троянской компоненты, срабатывающей в определенный месяц или
после истечения определенного календарного отрезка времени.
Вообще говоря, лучше всего иметь специально выделенный "каран-
тинный" компьютер для подобного рода экспериментов. В этом компь-
ютере все программное обеспечение полезно обработать, дописав в
конец каждого файла специальную строку, например вида "***OK***".
Дописывание таких концевых маркеров можно выполнить автоматически,
составив пакетный файл. Их наличие облегчает последующий анализ
программ, поскольку граница между вирусом, "севшим" в конец про-
граммы, и файлом становится четко определенной. Конечно, это не
исключает необходимости использования "джентльменского" набора ан-
тивирусных средств, включающего подходящий ревизор, сторож и само-
контролирующиеся программы-приманки. Резидентные сторожа следует
использовать лишь периодически, поскольку вирус может распознавать
присутствие таких средств и соответствующим образом менять свое
поведение (на "карантинном" компьютере стоит задача обнаружить мо-
мент заражения, а не препятствовать размножению вируса).
Если выделить карантинный компьютер не представляется возможным,
то целесообразно создать "карантинный режим" на одном из компьюте-
ров, не содержащем особо ценных файлов или баз данных. Вход в ка-
рантинный режим должен выполняться с помощью специального имени
пользователя, которому для записи доступен лишь логический диск, и
специальный "карантинный" раздел винчестера, а большинство осталь-
ных скрыто, либо имеют статус READ_ONLY. При этом для всех компо-
нент операционной системы и некоторых утилит, используемых как
"приманка" для вируса, следует записать в соответствующий файл
контрольные суммы, вычисленные подходящим ревизором (при его от-
сутствии для этой цели можно использовать любой архиватор, напри-
мер, PKZIP).
Для компьютеров типа PC XT, имеющих меньше 1M оперативной памя-
ти, рекомендуется организовать из части памяти достаточно большой
электронный диск (скажем 250К), записать на него несколько часто
используемых системных утилит и "погонять" эти утилиты. Возможно
вирус "клюнет" и заразит одну из этих программ - в этом случае ре-
визор обнаружит несовпадение контрольных сумм и сообщит о факте
заражения. Преимущество использования электронного диска для таких
экспериментов связано с тем, что его содержимое автоматически
уничтожается при перезагрузке или выключении питания. Это обеспе-
чивает дополнительную гарантию, что из-за невнимательности или
случайного стечения обстоятельств какая-нибудь зараженная в про-
цессе экспериментов программа не останется на диске и затем не
станет использоваться кем-нибудь другим.
10.2.2.1. Троянские компоненты в незаконно распространяемых копиях
программ и программах со "сломанной" защитой
"Ах бедность, бедность,
как унижает она сердце нам"
А.С.Пушкин
Известны случаи, когда в состав незаконной копии включались тро-
янские программы. Например, одна из программ на распространявшейся
в Донецке дискете с незаконной копией игры FORMULA, выполняла пе-
риодическое стирание CMOS-памяти. Следует отметить, что наряду с
незаконно распространяемыми игровыми программами, которые часто
бывают заражены вирусами, определенную опасность представляют про-
граммы со "сломанной" защитой, поскольку возможны случаи, когда