Interested Article - EICAR-Test-File
- 2020-06-16
- 1
EICAR (или EICAR-Test-File — от E uropean I nstitute for C omputer A ntivirus R esearch) — стандартный файл, применяемый для проверки, работает ли антивирус . По сути вирусом не является; будучи запущенным как COM -файл DOS , всего лишь выводит текстовое сообщение и возвращает управление DOS. Программа работает в средах, поддерживающих выполнение 16-битного ПО для DOS, таких как MS-DOS , OS/2 , Windows 9x и 32-битные Windows NT . Под 64-битными версиями Windows файл не запускается.
Хотя COM-файлы в общем случае являются двоичными , EICAR содержит только символы ASCII . Поэтому любой пользователь может убедиться в работоспособности своего антивируса, набрав в текстовом редакторе (например, в Блокноте ) тестовую строку длиной 68 байт и сохранив её с расширением .EXE или .COM . Символы CR/LF , которые редактор может добавить в конец файла, не влияют на работу EICAR. Обычно, если резидентный монитор антивируса включен, уже после нажатия кнопки «Сохранить» выводится предупреждение.
Реакция антивирусов
Антивирус, обнаруживший объект длиной 68…128 байтов, состоящий из данной строки и пустых символов в конце ( TAB =09, LF =0A, CR =0D, конец файла=1A, пробел =20), должен поступить в точности так же, как и при обнаружении реального вируса. Поэтому о том, что тревога учебная, антивирус обычно сообщает в названии вируса:
- EICAR Test-NOT virus!!! ( avast! ),
- EICAR-Test-File ( Антивирус Касперского ),
- EICAR Test File (Not a Virus!) ( Doctor Web ),
- EICAR-AV-Test ( Sophos ),
- EICAR_Test_File ( ),
- Eicar_test_file ( Trend Micro ),
- Eicar-Test-Signature ( Avira AntiVir ),
- EICAR_Test_File ( ),
- EICAR_Test (+356) ( ),
- Eicar-Test-Signature ( ClamAV ),
- Eicar.Mod ( Panda Cloud Antivirus ),
- VIRUS:DOS/EICAR_Test_File ( Microsoft Security Essentials , Защитник Windows ).
- Eicar тест файл ( NOD32 )
- Teststring.Eicar ( Comodo Internet Security , Comodo AntiVirus )
- EICAR_test_file (Virus) ( )
Если объект длиннее 128 байтов, или строка где-то в середине, антивирус его пропускает. Потому вы можете спокойно смотреть данную страницу, несмотря на тело «вируса» в ней.
Крайне редко встречаются антивирусы, которые не реагируют на этот тест.
Для чего предназначен
Разумеется, EICAR не проверяет, насколько оперативно разработчики реагируют на вирусы и насколько качественно излечиваются заражённые файлы — для этого нужен «зоопарк» свежих вирусов. Его задача другая: продемонстрировать работоспособность антивирусной системы и указать, какие объекты проверяются антивирусом, а какие — нет. Например:
- Есть подозрение, что компьютер заражён. Действует резидентный монитор, или вирус сумел его отключить?
- Обычный почтовый червь наподобие VBS.LoveLetter должен для заражения пройти несколько стадий: прийти на почтовый сервер по протоколу SMTP ; загрузиться на компьютер по протоколу POP3 ; записаться в базу почтового клиента ; по команде пользователя распаковаться во временный файл и запуститься. На какой стадии он будет замечен?
- Существует много способов «протащить» вредоносную программу мимо «глаз» антивируса: закодировать в Base64 , вложить в OLE -объект Microsoft Word , в RAR , JPEG , сжать упаковщиком наподобие UPX . Что из этого антивирус распакует?
- Кроме того, антивирусы бывают не только локальные, но и сетевые — проверяющие сетевой трафик ; при ошибке конфигурирования они будут либо загружать сервер излишней работой, либо, наоборот, пропускать вредоносные файлы.
- Просто чтобы увидеть реакцию антивируса: так, в старых версиях антивируса Касперского при обнаружении вируса был громкий свиной визг .
Для того, чтобы проверить, какова будет реакция антивируса, конечно, можно применить и «живой» вирус — но это «как поджигание урны для проверки пожарной сигнализации ». Для этого и был предложен стандартизированный файл, не несущий вредоносной нагрузки.
COM-файл
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
Третий байт здесь латинское O, не ноль.
Этот COM -файл при запуске выводит сообщение:
EICAR-STANDARD-ANTIVIRUS-TEST-FILE!
после чего возвращает управление DOS .
Устройство файла
Несмотря на длину 68 байт, программа нетривиальна и представляет собой самомодифицирующийся код .
COM-файл загружается по фиксированному адресу 0100.
0100: 58 pop ax
Это особенность загрузчика COM-файлов, связанная ещё с совместимостью с
CP/M
— на стеке всегда есть слово 0000, и одной командой
retn
можно выйти из программы (в
префиксе программы
по адресу 0 есть код выхода)
. Таким образом,
AX=0000, стек пуст
. Здесь и далее числа шестнадцатеричные.
0101: 354F21 xor ax, 214Fh 0104: 50 push ax 0105: 254041 and ax, 4140h
Теперь AX=0140 (адрес для самомодификации), на стеке 214F .
0108: 50 push ax 0109: 5B pop bx
Адрес перекинут в BX: AX=0140, BX=0140 , стек 214F.
010A: 345C xor al, 5Ch 010C: 50 push ax 010D: 5A pop dx
Собран адрес строки EICAR: BX=0140, DX=011C , стек 214F.
010E: 58 pop ax 010F: 353428 xor ax, 2834h 0112: 50 push ax 0113: 5E pop si
Вытягиваем из стека 214F и получаем константу для расшифровки и номер функции прерывания 21: AX=097B , BX=0140, DX=011C, SI=097B , стек пуст .
0114: 2937 sub [bx], si 0116: 43 inc bx 0117: 43 inc bx 0118: 2937 sub [bx], si
Расшифровываем две двухбайтовых команды по адресам 0140 и 0142: AX=097B, DX=011C, [0140]=CD 21 CD 20 .
011A: 7D24 jge 0140
Действительно 2A48 ⩾ 097B , и делаем переход на расшифрованные команды по адресу 011C+24 = 0140 . Для снижения количества условные переходы имеют 1-байтовые адреса относительно того IP , который будет после команды.
011C: db 'EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$'
Строка для печати по адресу 11C — этот адрес в DX.
0140: 482B 0142: 482A
Это зашифрованные команды: к сожалению, байты CD и 20 не годятся для тестовой строки. После расшифровки здесь будет…
*0140: CD21 int 21 *0142: CD20 int 20
Исполняем прерывание 21 функцию 9 (AH=09, DX=адрес) — напечатать строку. Затем прерывание 20 — прервать исполнение программы.
Примечания
- . Дата обращения: 25 июля 2017. Архивировано из 13 апреля 2018 года.
- . Дата обращения: 30 декабря 2009. 7 января 2010 года.
См. также
- 2020-06-16
- 1