Я еще помню DOS, в котором вирусы были не такими, как сейчас. Это был код, который внедрялся в приложение, и мог делать зловредные действия потому что вся операционная система работала «в режиме ядра» (на самом деле просто в незащищенном режиме). Любая программа имела доступ ко всему и могла все.
Вирус мог остаться в памяти, перехватив какое-то прерывание и делать свои злые дела.
Я немного даже поэкспериментировал, даже написал вирус, но после чего удалил, распространять не стал ибо нефиг.
Были тогда и антивирусы.
А еще были и «антивирусы», которые ими не были.
Антивирусы которые не работали
Были и «антивирусы», которыми лучше было не пользоваться.
Так «антивирус» под названием «ANTI-KOT» находил вирус под названием «Jerusalem», который записывал в конец файла строку «MsDos» и по этой строке определял, что файл заражен и повторно заражать не надо. Но парадокс в том, что эту строку добавлял не только «Jerusalem», но и некоторые упаковщики EXE-файлов (были такие программы, уменьшающие размере исполняемого файла. По сути они содержали распаковщик и архив, который распаковывали в память и передавали ему исполнение. Мне были известны LZEXE, PKLITE). В результате, ANTI-KOT, если мне не изменяет память, удалял файлы, в т.ч. хорошие.
Более того, другой «антивирус», под названием «TNTVIRUS» «вакцинировал» файлы против заражения «Иерусалемом», добавляя строку «MsDos».
Если после прогона «TNTVIRUS» для верности запустить «ANTI-KOT», то он начинает в каждом файле находить «Time». А «Иерусалем» научился определять себя по телу, а не по строке «MsDos». Видимо, чтобы излечить последствия «TNTVIRUS» и была написана программа «ANTITIME», которая обнаружив строку «MsDos» выводила сообщение:
-- НАЙДЕН СТРАШНЫЙ TIME -- УНИЧТОЖАТЬ ? [Y/N]
И после нажатия на «Y» удаляла из конца файла метку «MsDos».
Но я-то думал что это реально антивирус. И что компьютер кишит вирусами ;) Хотя несколько позже я изучил работу и понял, что файлы после «лечения» уменьшаются на 5 байт и из конца файла пропадает строка «MsDos». Странно, подумал я.
Как проверить, работает ли антивирус?
Чтобы проверить, работает ли антивирус, нужно запустить на компьютер вирус. А вдруг антивирус не работает? Решено — подумали специалисты и решили: надо придумать такой вирус, который не ведет себя как вирус, ничего не заражает, не портит, но чтобы на него программы реагировали, как на вирус.
Но возникает вопрос, а как такой «вирус» распространять? Ведь работающие антивирусы его бы останавливали.
Так и придумали -- написать программу, которая в ASCII представлении выглядела бы как просто текст, но если вырезать из текста строку и сохранить как файл, она становилась бы двоичной программой и выводила бы текст, что это таки не вирус.
А вот антивирусы бы реагировали.
Вот так выглядит программа, если ее попытаться посмотреть как текст
Задача написать программу, чтобы она в таком виде тоже выглядела как текст — это не простая задача, так как нужно было использовать только те инструкции, которые в ASCII виде выглядели бы как алфавитно-цифровые символы. На самом деле удалось это сделать только благодаря тому, что программа меняла сама себя.
Так появился EICAR
EICAR-TEST-FILE
Он был создан в эпоху дискет, и распространялся в том числе и с помощью них (мало кто тогда мог пользоваться Интернетом).
Вот как выглядел файл, если посмотреть его в текстовом документе.
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
Если запустить этот файл в DOS, он выводил фразу
EICAR-STANDARD-ANTIVIRUS-TEST-FILE!
Сам EICAR распространялся в виде текстового файла, на который антивирусы не реагировали
Что-то такого вида
EICAR-Test-File is not a threat, it was created to imitate the detection of a threat by antivirus software. It is a 68-byte file with the .com extension which displays a text message.
Earlier, different files were created by cybersecurity software vendors to demonstrate how their solutions behave upon detection of a threat. Later, the vendors have agreed upon developing a standard simulator which consists of a simple line of text. This allows any user to initiate a detection manually, e.g. by copying the text to a file from the documentation.
The resulting EICAR file looks like this:
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
Cybersecurity software normally detects it as EICAR-Test-File.
То есть нужно было вырезать строку, вставить в блокнот и сохранить как COM-файл.
Либо переименовать .txt файл в .com и удалить все остальное, оставив непосредственно текст EICAR. После чего запустить полученный COM-файл на выполнение. Если антивирус есть и работает корректно, он не даст файл запустить и выдаст предупреждение.
COM — это очень старый DOS-овский формат файла. Он вообще не содержал заголовков, в отличие от EXE.
Этот файл был написан на 16-битном машинном коде, который был родным для ОС MS DOS, к тому же и 16-битный код поддерживался в режиме совместимости 32-битными процессорами. То есть 32-битный Windows на 32-битной машине тоже могла выполнить этот файл.
При переходе к 64-битной архитектуре и 64-битному машинному коду был оставлен режим совместимости 32-битноый код, а 16-битный перестал поддерживаться. Теперь, чтобы запустить старые DOS-программы, нужен эмулятор DOSBox.
Итоги
Эпоха вирусов в том виде, в каком они существовали в DOS прошла. Современные «вирусы» это скорее зловредное ПО, которое заражает уже не программу, а компьютер.
Мы шагнули через 2 архитектуры. С 16-битных DOS приложений в 32-битные Windows (а кто-то и Linux) программы, а теперь и в 64-битные современные Windows и Linux программы. (А кто-то и через 3. Как минимум кто-то помнит 8-битную приставку Dendy, а кто-то даже 8-битный домашний компьютер ZX-Spectrum).
EICAR прерватился из достаточно хитроумной программы просто в набор байт. Но по традиции современные антивирусы продолжают реагировать на него. Можно проверить, работает ли антивирусная защита почтовой службы. Можно проверить, работает ли Kaspersky.
Вот такая долгая история когда-то действительно работающей утилиты, а теперь просто артефакта, набора байт, но который все еще по прежнему используется и приносит пользу.
Подписывайтесь на мой канал https://dzen.ru/olinux и будете в курсе новых моих статей по компьютерным сетям и ОС GNU/Linux.
Всегда с вами,
Сергей Кручинин
преподаватель GNU/Linux и компьютерных сетей