EICAR-Test-File (EICAR-Test-File)
EICAR (или EICAR-Test-File — от European Institute for Computer Antivirus Research) — стандартный файл, применяемый для проверки, работает ли антивирус. По сути вирусом не является; будучи запущенным как COM-файл DOS, всего лишь выводит текстовое сообщение и возвращает управление DOS. Программа работает в средах, поддерживающих выполнение 16-битного ПО для DOS, таких как MS-DOS, OS/2, Windows 9x и 32-битные Windows NT. Под 64-битными версиями Windows файл не запускается.
Хотя COM-файлы в общем случае являются двоичными, EICAR содержит только символы ASCII. Поэтому любой пользователь может убедиться в работоспособности своего антивируса, набрав в текстовом редакторе (например, в Блокноте) тестовую строку длиной 68 байт[1] и сохранив её с расширением .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),
- Marker.Dos.EICAR-Test-File.dyb (NANO Антивирус),
- EICAR-AV-Test (Sophos),
- EICAR_Test_File (RAV),
- Eicar_test_file (Trend Micro),
- Eicar-Test-Signature (Avira AntiVir),
- EICAR_Test_File (FRISK),
- EICAR_Test (+356) (Grisoft),
- 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) (Outpost Security Suite)
Если объект длиннее 128 байтов, или строка где-то в середине, антивирус его пропускает. Потому вы можете спокойно смотреть данную страницу, несмотря на тело «вируса» в ней.
Крайне редко встречаются антивирусы, которые не реагируют на этот тест.
Для чего предназначен
[править | править код]Разумеется, EICAR не проверяет, насколько оперативно разработчики реагируют на вирусы и насколько качественно излечиваются заражённые файлы — для этого нужен «зоопарк» свежих вирусов. Его задача другая: продемонстрировать работоспособность антивирусной системы и указать, какие объекты проверяются антивирусом, а какие — нет. Например:
- Есть подозрение, что компьютер заражён. Действует резидентный монитор, или вирус сумел его отключить?
- Обычный почтовый червь наподобие VBS.LoveLetter должен для заражения пройти несколько стадий: прийти на почтовый сервер по протоколу SMTP; загрузиться на компьютер по протоколу POP3; записаться в базу почтового клиента; по команде пользователя распаковаться во временный файл и запуститься. На какой стадии он будет замечен?
- Существует много способов «протащить» вредоносную программу мимо «глаз» антивируса: закодировать в Base64, вложить в OLE-объект Microsoft Word, в RAR, JPEG, сжать упаковщиком наподобие UPX. Что из этого антивирус распакует?
- Кроме того, антивирусы бывают не только локальные, но и сетевые — проверяющие сетевой трафик; при ошибке конфигурирования они будут либо загружать сервер излишней работой, либо, наоборот, пропускать вредоносные файлы.
- Просто чтобы увидеть реакцию антивируса: так, в старых версиях антивируса Касперского при обнаружении вируса был громкий свиной визг[2].
Для того, чтобы проверить, какова будет реакция антивируса, конечно, можно применить и «живой» вирус — но это «как поджигание урны для проверки пожарной сигнализации».[3] Для этого и был предложен стандартизированный файл, не несущий вредоносной нагрузки.
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 байт, программа нетривиальна и представляет собой самомодифицирующийся код[4].
COM-файл загружается по фиксированному адресу 0100.
0100: 58 pop ax
Это особенность загрузчика COM-файлов, связанная ещё с совместимостью с CP/M — на стеке всегда есть слово 0000, и одной командой retn
можно выйти из программы (в префиксе программы по адресу 0 есть код выхода)[5]. Таким образом, 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 — прервать исполнение программы.
Примечания
[править | править код]- ↑ https://www.virusbtn.com/pdf/magazine/2003/200306.pdf
- ↑ Архивированная копия . Дата обращения: 25 июля 2017. Архивировано из оригинала 13 апреля 2018 года.
- ↑ Сайт EICAR . Дата обращения: 30 декабря 2009. Архивировано 7 января 2010 года.
- ↑ Anatomy of the EICAR Antivirus Test File. – NinTechNet . Дата обращения: 14 сентября 2023. Архивировано 17 апреля 2023 года.
- ↑ Why does MS-DOS put an int 20h at byte 0 of the COM file program segment? - The Old New Thing . Дата обращения: 14 сентября 2023. Архивировано 30 мая 2023 года.
См. также
[править | править код]Для улучшения этой статьи желательно:
|