...Так кто ж ты, наконец?
-- Я -- часть той силы,
что вечно хочет
зла и вечно совершает благо.
Гете. "Фауст"
В предыдущей части текста было рассказано о том, что есть вирусное оружие и
каких типов оно бывает. В качестве примера была приведен генератор логических
бомб с сильным деструктивным проявлением - "LOGICAL
BOMB". Этот генератор производит вирусное оружие локальное статического
действия (не самоходное).
В этой же части текста мы рассмотрим локальное вирусное оружие динамического
типа. Мы будем рассматривать полиморфный боевой вирус "PIKADOR".
Локальным его можно называть с натяжкой, так как в нём
присутствует модуль заражения сетевых дисков
(DIM). Какие же возможности у данного вируса и для чего
он предназначен? Во-первых, одной из основных функций данного вируса является
конечно же размножение, другой не менее важной функцией является вывод из
строя операционной системы.
Основной целью вируса является вывод из строя ОС на как можно больших
компьютерах.
Для размножения он инфицирует текущую директорию и все директории, которые
находятся выше. Так же он инфицирует директории Windows и System32. Но для
того, чтобы миссия вируса была выполнена, была несколько расширена возможность
"резидентности на процесс" (APPR). Так он перехватывает все вызовы функции
FindFirstFile и инфицирует все директории, которые передавались данной функции в
качестве параметров, а так же все директории, что находятся выше.
Для маскировки данный вирус использует оригинальную технику неизлечимости
(SPOT) и полиморфизм (PGS). Так же для затруднения изучения вируса применяются
антиотладочные и антидизассемблерные трюки
(ADEM).
На момент написания текста данный вирус никакими антивирусными средствами защиты
не детектировался. В данном модуле используются
многие модули, которые были использованы в генераторе логических бомб - "LOGICAL BOMB".
Далее будут перечислены все файлы необходимые для компиляции
"PIKADOR":
- pika2.asm
- adem32.asm
- bios32.asm
- dim32.asm
- sdm32.asm
- pgs32.asm
- r_gen32.asm
- t_gen32.asm
- spot32.asm
Последние четыре модуля взяты из
предыдущей части статьи, так что вы можете
их исходный текст обнаружить там.
Самым первым и самым главным файлом идёт основной файл вируса, к
которому подключаются модули и используются по мере надобности.
Следующий модуль отвечает за антиотладочные и антидизассемблерные приёмы
(см. adem32.asm). Далее следует крайне важный модуль, который отвечает за обнаружение адреса
kernel32.dll, а так же за использование WIN API фукций
(см. bios32.asm). Идущий ниже мотор обеспечивает инфицирование всех сетевых дисков на данном
компьютере (см. dim32.asm).
Последний в списке, но не последний по назначению модуль, который отвечает за
основную цель программы - вывод из строя ОС. Данное действие производится простой
и всем известной функции DeleteFileA (см. sdm32.asm).
Теперь рассмотрим как выглядит файл до инфицирования и после:
1) До инфицирования
2) После инфицирования
Как вы наверное заметили, тело вируса находится в последней секции файла, что
позволяет нам определять вирус. Как, спросите вы, ведь он полиморфный?
Предлагаю для этого использовать самый лучший эвристический анализатор - голову.
Во-первых, редко в каких программах в конце идёт исполнимый код. Поэтому если
вы его обнаружили, то остаётся несколько вариантов его происхождения:
1) Навесная защита или упаковщик
2) Вирус или другая вредоносная надстройка
Так что если в конце программы идёт исполнимый код, то эту программу нужно
подвергнуть тщательному анализу.
Но не стоит обольщаться, не все вирусы дописываются в конец файла, так что
существует необходимость по возможности тщательного анализа всех исполнимых
файлов.
На этой оптимистичной ноте данная часть текста может считаться завершённой.