* в другие рабочие области DOS (например, в область системного стека или в свободные места таблиц DOS и BIOS).
* в системный буфер,
* в произвольный системный драйвер,
2. Встраивание вируса в DOS несколькими способами:
Другой, более надежный, но требующий высокой квалификации вирусолога способ, - просмотреть таблицу векторов с помощью дизассемблера. Если при этом будут обнаружены коды какой-то программы - код вируса (или участок кода) найден.
При наличии вируса в таблице векторов прерываний утилиты, отображающие карту распределения памяти (например, MAPMEM.COM, MFT.COM, -D.COM и др.), начинают "шуметь" (см. табл. 2).
Лучший способ обнаружить такой вирус состоит в том, чтобы просмотреть карту распределения памяти, которая отображает список резидентных программ (пример такой карты приведен в табл. 1). Подробная карта памяти сообщает информацию о всех блоках, на которые разбита память: адрес блока управления памятью - MCB (Memory Control Block), имя программы-владельца блока, адрес префикса ее программного сегмента - PSP (Program Segment Prefix) и список перехватываемых блоком векторов прерываний.
1. Проникновение вируса в таблицу векторов прерываний.
Возникает вопрос: где в памяти и как искать вирус или его резидентную часть? Существует несколько способов инфицирования памяти:
- это утилита, осуществляющая обратное ассемблирование т.е. переводящая машинные коды в язык ассемблера. Такие утилиты крайне необходимы не только при отладке программ (для чего они и создаются), но и при анализе кодов вируса.
Что такое дизассемблер
Если в компьютере обнаружены следы деятельности вируса, но видимых изменений в файлах и системных секторах дисков не наблюдается, то вполне возможно, что компьютер поражен одним из СТЕЛС-вирусов. В этом случае следует осуществить "холодную" перезагрузку DOS (с помощью клавиши Reset) с заведомо чистой от вирусов дискеты, содержащей резервную копию DOS, и действовать как и при поражении нерезидентным вирусом. Однако иногда зто нежелательно, а часто и невозможно (известны, например, случаи покупки новых компьютеров, зараженных вирусом). Тогда придется обнаружить и нейтрализовать резидентную часть вируса, выполненную по технологии "СТЕЛС".
Рассмотренные методы подходят для обнаружения большинства как резидентных, так и нерезидентных вирусов, однако не срабатывают, если вирус выполнен по технологии "СТЕЛС" (Stealth) что делает бесполезным использование как утилит сравнения файлов, так и резидентных программ-мониторов.
Для обнаружения результатов действия вируса рекомендуется запустить одну из резидентных антивирусных программ-мониторов и следить за ее сообщениями о "подозрительных" действиях программ (запись в COM- или EXE-файлы, запись на диск по абсолютному адресу и т.п.). Существуют антивирусные программы-мониторы, которые не только перехватывают такие действия, но и сообщают адрес, откуда поступил "подозрительный" вызов (к таким мониторам относятся ANTIKOR.ЕХЕ, -D.COM, DEFENSE.ЕХЕ). Обнаружив подобное сообщение, следует выяснить от какой программы оно поступило, и проанализировать ее коды с помощью резидентного дизассемблера (например, Quaid Analyrer, -D3.COM и др.)
Существуют специальные утилиты, которые не только сравнивают содержимое файлов и их параметры (длину, атрибуты, время последней модификации), но и сообщают о наличии в разных файлах одинаковых повторяющихся участков кода или проверяют файлы на наличие "подозрительных" команд (например, утилита Mask Locator, разработанная А. Шеховцовым). Такие утилиты очень удобны, но иногда начинают "ругаться" на широко распространенные упаковщики ЕХЕ-файлов и некоторые файлы DOS, к тому же они плохо обнаруживают вирусы, часть кода которых зашифрована.
Как известно, вирусы делятся на резидентные и нерезидентные. Встречавшиеся мне до сих пор резидентные вирусы отличались гораздо большим коварством и изощренностью, чем нерезидентные. Поэтому для начала рассмотрим простейший случай: поражение компьютера неизвестным пользователю нерезидентным вирусом. Такой вирус активизируется при запуске какой-либо инфицированной программы, пытается заразить другие файлы, а затем передает управление программе-носителю и в дальнейшем (в отличие от резидентных вирусов) не будет мешать ее работе. Для обнаружения такого вируса необходимо побайтно сравнить дистрибутивные копии с используемыми программами (упоминание о важности хранения таких копий уже стало банальностью) . В настоящее время разработано достаточно много утилит для побайтного сравнения файлов, самая простейшая из них - COMP - содержится в DOS.
Рассматриваются ситуации, с которыми может столкнуться пользователь в том случае, если его компьютер поражен вирусом, но ни одна из известных ему антивирусных программ не дала положительного результата. Где и как искать вирус? Какие при этом необходимы инструментальные средства и какими методами следует пользоваться?
Где и как искать вирус?
26-Мар-2009. Автор: Winston
Где и как искать вирус?
Комментариев нет:
Отправить комментарий