Андрей
Мешков, Павел
Семьянов, Дмитрий
Зегжда
КомпьютерПресс N1/1994 (стр. 39-40)
ISSN
0868-6157
Январь 1994
В настоящее время вследствие широкого распространения персональных компьютеров и отсутствия защиты у операционной системы MS-DOS появилось большое количество компьютерных вирусов (КВ). В то же время существует и целый ряд антивирусных средств (АВС).
Однако специфика распространения как вирусов, так и средств борьбы с ними привела к тому, что ни одно АВС не обеспечивает обезвреживание всех известных вирусов. Логично предложить для гарантии отсутствия последних в компьютерной системе последовательный запуск нескольких наиболее мощных АВС. Но возникают сразу же три серьезных проблемы:
Сами АВС не предоставляют. всеобъемлющей информации для успешного преодоления двух последних проблем, а та информация, которая имеется, представлена в различных источниках в текстовом виде. Причем различие в классификациях еще более затрудняет эффективное противостояние КВ.
Отказавшись от создания нового АВС, страдающего теми же недостатками, авторы пришли к идее объединения, во-первых, средств борьбы, во-вторых, информации по КВ, чтобы затем соединить все это в одной оболочке - интеграторе, который на основе результатов работы антивирусных программ и знаний из справочной системы должен принимать решение по обезвреживанию вируса и ликвидации его воздействия на компьютерную систему.
Программа со структурой, представленной на . 1, как раз и является таким интегратором. Остановимся подробнее на отдельных его блоках.
. 1. Структура интегратора
Блок подключения внешних программ. Антивирусное средство по отношению к интегратору является внешней программой. Для успешной ее работы в рамках оболочки такая программа должна иметь унифицированный интерфейс с пользователем, использующий задание режимов работы в командной строке, а также обеспечивать сохранение результатов работы, иначе говоря, такая программа обладает входным и выходным языком.
Входной язык определяется системой задания параметров или режимов работы и маршрутов поиска и лечения со следующим синтаксисом:
<команда> ::= <имя программы> <пути поиска> <параметры> <параметры> ::= [<по умолчанию>] [<проверка всех файлов>] [<проверка памяти>] [<удаление испорченных файлов>] [<медленный поиск>] [<пользовательская опция>] <пользовательская опция> ::= <название опции> <ключ>
Нераскрытые термы задаются пользователем с помощью ключевых слов.
Например, для программы AidsTest Д.Н.Лозинского термы могут определяться следующими ключевыми словами:
<имя программы> ::= "aidstest.ехе" <пути поиска> ::= "C:" <по умолчанию> ::= "/A45" <проверка всех файлов> ::= "/G" <удаление испорченных файлов> ::= "/Х" <медленный поиск> ::= "/S"
Выходной язык определяется набором сообщений, выдаваемых программой. Мы считаем, что для данного типа программ все сообщения возможно свести к языку со следующим синтаксисом:
<строка сообщения> ::= <объект> <состояние> <вирус> <объект> ::= <файл>|<диск>|<память> <состояние> ::= <заревем>|<обезврежен>|<не обезврежен>| <удален>|<не удален>|<подозрителен> <вирус> ::= <левый ограничитель> имя вируса <правый ограничитель> <файл> ::= <признак файла> имя файла <диск> ::= <признак диска> имя диска <память> ::= <признак памяти>
Tepмы <признак файла>, <признак диска>, <признак памяти> задаются ключевыми словами и выражениями, определяющими их положение в строке.
Термы <заражен>, <обезврежен>, <не обезврежен>, <удален>, <не удален>, <подозрителен> определяются для каждого средства с помощью набора ключевых слов.
Таким образом, подключение АВС в интегратор заключается в задании нужных ключевых слов и выражений. Средство, подключенное таким образом, будем называть базовым.
Однако подключение само по себе не реализует объединение АВС. Для этого вводятся несколько типов производных средств:
За формирование производных средств отвечает соответствующий блок.
Блок запуска обеспечивает генерацию задания и выполнение антивирусных средств. Данные, полученные при подключении АВС, позволяют осуществлять диалог с пользователем на естественном языке, и не требуют помнить параметры программ. Маршрут поиска также задается в диалоге на основе реальной структуры текущей файловой системы, что исключает ошибки.
Отличие формирования параметров АВС для запуска на обезвреживание КВ состоит в том, что для этого используются знания из справочной системы, а также проводится некоторая оптимизация. Такая необходимость возникает в случае обнаружения вирусов на значительном дисковом пространстве, т.к. лечение следует проводить только в тех каталогах, где найдены вирусы. Особенно, если программа-фаг при каждом запуске может бороться только с одним вирусом (VirusClean), а вирусов найдено несколько.
Для средств, в состав которых включено несколько базовых, запуск заключается в последовательном формировании команд для выполнения конкретных программ и их исполнении.
Сразу после окончания работы отдельной программы выполняются функции обработки и представления результатов. Блок, отвечающий за это, должен на основе данных о выходном языке соответствующей программы произвести разбор результатов ее работы. Однако для этого недостаточно получить тройку <<объект-вирус-состояние>>. Необходимо на основе информации из справочной системы произвести унификацию названий каждого вируса. Под унификацией понимается приведение всех имен к именам из классификации, поддерживаемой справочной системой.
Справочная система содержит обширную информацию по компьютерным вирусам и соответствующей тематике, включая основные понятия, ссылки на литературу и т.д. Собранные из различных источников данные по каждому вирусу структурированы как по их проявлениям, так и по средствам и способам борьбы с ними. Для каждого компьютерного вируса, по которому имеется информация, приведен список названий из различных классификаций. Кроме того, имеются знания по дополнительным действиям (если таковые необходимо произвести) по ликвидации последствий воздействия КВ.
На . 2 представлен пример описания вируса Dark Avenger, полностью иллюстрирующий сказанное выше.
Файловый вирус Edd-1800 (Aidstest) Dark Avenger [Dav] (Scan) RCE-1800 (Безруков) Другие имена: Eddie, Diana, Sofia, Черный мститель Группа: Dark Avenger Длина/Инкремент | Типы заражаемых файлов | | Однократное заражение | | | Стратегия заражения | | | | Заражение COMMAND.COM | | | | | Остается резидентным | | | | | | Шифрование кода | | | | | | | STEALTH-технология | | | | | | | | Степень опасности | | | | | | | | | Перехват дисковых ошибок | | | | | | | | | | Заражение Read-Only файлов | | | | | | | | | | | Сохранение времени фала | | | | | | | | | | | | Повреждает | | | | | | | | | | | | | Удаляет | | | | | | | | | | | | | | Эффекты | | | | | | | | | | | | | | | 1800/ COM + запуск, + + - - 5 + + + сектор - - 1800- EXE + создание, 1815 OV? + открытие, закрытие Проявления: Длина COM-файлов увеличивается на 1800 байт, EXE - на 1800 + выравнивание по границе параграфа. Происходит ощутимое замедление копирования исполняемых файлов на гибкий диск или с него. Действия: Вирус остается резидентнын и невидинын для DOS, зарадает все программы длиной более 1174 и COM-файлы длинной менее 6З 149 байт при запуске, создании, огкрытии, закрытии, переименовании. После каждого 16-го заражения (счетчиком является 10-ый байт BOOT-сектора) пишет в случайный сектор диска свой фрагмент, начинающийся со строки "Eddie lives...somewhere in time". Запись сектора осуществляется без использования прерывания 1ЗН. Способы борьбы: При подозренни на наличие данного вируса сначала настоятельно рекомендуется загрузиться с чистой дискеты; а для востановления зараженных файлов применить программу Aidstest. Затем необходимо глобальным поиском по диску найти все сектора, содержащие текст "Eddie lives", и попытаться восстановить их. При этом системные области могут быть восстановлены при помощи программ типа Mirror/Rebuild (PCTools) или Image/Unformat (Norton Utilities), которые рекомендуется включить в AUTOEXEC.BAT.
На основе данной структуры авторами создана система Antivirus Guide (Антивирусная оболочка-справочник). Причем данная система может быть использована как обширный справочник по вирусной тематике.