Занимательная вирусология. Часть 4

Внимание! У сайта два зеркала: http://drmad.chat.ru и http://www.nf-team.org/drmad/kostya/. Возможно, на одном из них лежит более свежий вариант этой страницы!

[ На обложку "Занимательной вирусологии" ]

Милостивые государи!

С ума сойти! Уже четвертый выпуск "Занимательной Вирусологии"! С каждым годом ситуация в мире вирусов становится все занимательней. Приходится поспевать!

Жучила
  1. Хит-парад XX века

  2. Музей половых органов

  3. Еще одна книжка

  4. Осторожно: журналюги!

  5. Анюткины прелести

  6. Ода бЗдительности

  7. ШБ МНК или Тренируйте зрение

  8. SGWW кирдык

  9. Первый отечественный вирус

  10. ...Лучше AVP-ей и DrWEB-ов...

  11. Лица с обложки

  12. Идем копать червей

  13. Как устроен антивирус?

Заодно загляните сюда:

DrMADское барахло How 2 catch 4rus Земский Фершал

1. Хит-парад XX века

В конце 2000-го года было очень модно проводить всяческие опросы и составлять по их результатам хит-парады уходящего века: хит-парад рок-звезд, кинофильмов, компьютерных игр, футболистов...

На мой взгляд, результаты опросов очень сильно зависят от того, кто на них отвечает. У 90-летних дедушек ответы будут одни, а у 15-летних девочек - совсем другие. Поэтому и выглядят опубликованные хит-парады подчас бредово. Врядли Шевченко намного лучше Блохина, просто надо было пораньше родиться, посмотреть игру того и другого, а потом уже сравнивать. "Брат-2", конечно, круто, но дикого успеха "Чапаева", "Джентельменов удачи", "Экипажа" и пр. ему врядли повторить. А "Мумий Троллю" до "Машины времени" еще лет 20 расти. И так во всем. Но особенно меня задели вирусные хит-парады. Такое ощущение, что их составляли люди, наскоро перелиставшие компьютерные журнальцы за последние несколько месяцев - и все. Поэтому я решил составить собственный хит-парад.

1. Почти все вирусы 1986-89 гг. создания. Просто потому, что их тогда было немного, и они были практически на каждой машине. Странно выбирать из них более или менее крутые. Все они крутые, потому что - первые в истории. Это: и загрузочный вирус Brain, и Lehigh, и нерезидентный "pathsearcher" Vienna.648, и резидентники семейств Jerusalem и Cascade...

2. Загрузочный "новозеландец" Stoned. В конце 80-х - начале 90-х он сам пугал юзеров "окаменением" компьютера и предлагал легализовать марихуану. Позже резвились его многочисленные "дети" - это и Michelangelo, и AntiEXE, и J&M, и многие десятки других, почти буквальных подражаний первоначальному оригиналу.

3. Вирус Морриса. Сетевой червь, распространившийся в ноябре 1989 г. на более чем 6000 американских, канадских и австралийских компьютеров. Опередил свое время лет на 8-10. Вызвал огромный резонанс.

4. Doodle.2885 (M2C). "Болгарин", родившийся в самом начале 90-х годов и благодаря тщательности реализации просуществовавший в "дикой природе" лет пять, оглашая окрестности бодрым американским маршем "Yankee Doodle Dandy".

5. Dir-II (Driver.1024). Весьма нетривиальный с точки зрения заложенных в него идей вирус. Видимо, вирусологи долгое время просто не знали, что с ним делать, поэтому в 1992 году он пропутешествовал по всему земному шару.

6. OneHalf.3544. Не самый первый, не самый крутой, но поистине великий полиморфик. В середине 90-х ухитрился побывать чуть ли не на каждой машине в мире. Более поздние полиморфные монстры, - и Natas, и NutCracker, и Kaczor, и многие другие, - все кормились идеями, почерпнутыми в "Половинке".

7. Concept. Первый в истории макровирус, очутившийся в дикой природе.

8. Cap.Тоже макровирус от 1997 года. Вроде ничего особенного... но перезаражал всех и все, и временами встречается до сих пор.

9. Cih (Чернобыль). Видимо, в представлении не нуждается. Довольно плодовитый и самый пока разрушительный вирус в истории.

Может быть, кого-то удивит отсутствие в этом списке некоторых известных вирусов. Но нельзя же объять необъятное, а в список попали только "самые-самые", известные и среди вирусологов, и среди юзеров. Например, 3APA3A, так потрясшая мир антивирусников, ничем особенным в дикой природе так и не отметилась. Наоборот, крайне плодовитый Burglar.1150 внутри сер, как сто мышей, и абсолютно неинтересен. А довольно хитрая и "заразючая" Tequila.2468 не вызовет никаких эмоций у нашего соотечественника, - зверствовала она только за бугром.

Не стоит расстраиваться. Новый век принесет немало новых великих событий в мире вирусов, не сомневайтесь!

[На начало]


2. Музей половых органов

Речь, конечно, не о гинекологии. :-) Речь об эволюции механизмов размножения макровирусов.

Первые макровирусы, такие как WM.Cap, писались на WordBasic-е и заражали документы, сформированные MS WinWord 6.0 или 7.0. Механизм размножения был основан на идее копирования макросов из шаблона (template) в документ и обратно при помощи команды

MacroCopy Откуда, Куда, [ФлагШифровки].

WinWord 97 прекрасно воспиринимал и выполнял макросы, написанные на WordBasic-е... но не все! Как раз [WordBasic].MacroCopy был отключен! Но "родным" языком для версии 97-го года был не WordBasic, а Visual Basic for Application (VBA). А в нем, разумеется, существовали собственные средства для копирования макросов - команда

Application.OrganizerCopy
.

Недолго музыка играла, очень недолго. Буквально сразу же Microsoft выпустила заплатку SR1, наглухо зашивающую пасть этой команде. Это произошло так быстро, что русифицированная версия WinWord 97, на которой мы все работаем, вышла в одном флаконе с заплаткой (она сама не встает, ее надо инсталлировать отдельно!).

Поэтому вирусописателям пришлось искать новую дырку. Ей стала пара команд

Application.VBE.ActiveVBProject.VBComponents.Export ИмяФайла
и
ActiveDocument.VBProject.VBComponents.Import(ИмяФайла)

Иногда вторая в этой паре команда может быть заменена на что-то вроде

Host.Codemodule.AddFromFile (ИмяФайла).

Вирусы, внедренные в документ таким образом, не видны при помощи редактора макросов, но прекрасно обаруживаются при помощи FAR-овского плагина DocVIEW.

Последние способы заражения актуальны до сих пор, даже и в версии от 2000 года. Если Вы хотите проверить, являются ли макросы в полученном вами документе вирусными или нет - ищите эти команды.

[На начало]


3. Еще одна книжка

Называется она "Энциклопедия компьютерных вирусов" и вышла в издательстве "Солон-Р". Авторы: два А. Парандовских и один Д.Козлов. В свой список литературы я ее уже вставил.

Один из авторов сам написал мне и попросил разрешния использовать материалы из моей статьи "Как Пымать Выря За Хвост". Я не возражал, и поэтому про то, что из этого "использования" получилось, говорить не буду.

Зато упомяну, что легко опознал в тексте книжки огромные куски и фрагменты из "Компьютерной вирусологии" Н.Н. Безрукова, из "Как написать компьютерный вирус" И.Коваля и из все той же "Пишем вирус и антивирус" И.Гульева. Кроме того, при чтении невероятно раздражают следующие обстоятельства:

Эта книжка еще лежит в магазинах, но несмотря на "жареное" название никто ее нахрен не берет. Потому что - макулатура.

[На начало]


4. Осторожно: журналюги!

"О чем бы разговор ни был, он всегда умел поддержать его: шла ли речь о лошадином заводе; говорили ли о хороших собаках, и здесь он сообщал очень дельные замечания;...было ли рассуждение о бильярдной игре - и в бильярдной игре он не давал промаха; говорили ли о добродетели, и о добродетели рассуждал он очень хорошо, даже со слезами на глазах..."
Н.В. Гоголь. Мертвые души.

Есть такая очень распространенная и очень опасная болезнь - Синдром Ложной Компетентности. Ей даже целый сайт посвящен: http://kumite.com/myths. Основное проявление - это когда солидные и уважаемые (на первый взгляд) люди начинают с видом ученой лошади очень серьезно и веско рассуждать о вещах... в которых абсолютно ничего не смыслят. Страшно, что их читают и им верят.

Вот несколько примеров. Очень надеюсь, что мне в дальнейшем не придется добавлять новые абзацы в этот раздел. Хотя в это верится слабо. :-(

Пример 1. http://www.pcweek.ru/news.asp?id=453&page=2

Леонид Черняк:...Питер Типпетт (Peter Tippett), президент компании ICSA, входящей в состав Gartner Group и анализирующей состояние дел в компьютерной вирусологии, считает, что к появлению нового поколения вирусов нужно отнестись со всей серьезностью. Неблагополучие в области компьютерных вирусов достигает критических пределов. Основанием для такого мнения является обследование более полумиллиона настольных рабочих станций, проведенное ICSA в 1998 г. Оно показало наличие той или иной формы инфекции в 99% ПК. В своих методиках ICSA делит вирусы на три поколения. Первое зародилось в 1986 г., когда на смену теоретическому представлению пришли практически реализованные вирусы Jerusalem, Form и Michelangelo, заражавшие только файлы .exe...

Кошмарные цифры, да? Девяносто девять процентов! Не мудрено, что доверчивые юзеры, прочитав такое, хлопаются в обморок при звуках слова "вирус", а потом выкладывают свои последние доллары за свежие НортонАнтивирусы и ДокторыСоломоны. Тем не менее, уровень "компетентности" автора виден без телескопа. Перечитайте-ка последнюю фразу... Из трех перечисленных вирусов два являются загрузочными, и потому в принципе на заражают "файлы .exe"! Оказывается, уважаемый президент компании ICSA умеет только "президентствовать", и не слишком даже понимает, какими такими "вирусами" его компания занимается. Тем не менее, у него взяли интервью, растиражировали в Америке, потом перевелии на русский, растиражировали в России, кто-то с умильными соплями на глазах уже поверил "известному специалисту"... Грустно. :-(

Пример 2. Http://www.2000-online.ru/current_issue/computer/right.asp

Вирус Норриса.
...Повальная эпидемия сетевого вируса Норриса (другое название - С Internet Worm) в ноябре 1988 года поразила более 6000 компьютерных систем в США (включая NASA Research Institute) и практически парализовала их работу. По причине ошибки в коде вируса он... неограниченно рассылал свои копии по другим компьютерам Сети и таким образом полностью забирал под себя ее ресурсы. Общие убытки от вируса Норриса были оценены в 96 миллионов долларов...

Обратите внимание - какая строгая и четкая лексика! Солидный автор, возможно даже в очках и в шляпе! Не доверять ему просто невозможно...

Смущает только, что "вируса Норриса" в природе никогда не существовало, а был "вирус Морриса". Выходит, наш "солидный" и "компетентный" автор про вирусы услышал первый раз в жизни накануне, причем, вероятно, от человека с сильно заплетающимся языком. И сразу после этого кинулся писать "крррутой аналитический обзор".

Пример 3. Http://www.osp.ru/cw/2000/46/036_0.htm

Cара Гордон: ...Вирусописатели - это самое дно особой иерархии компьютерного андеграунда, вершину которой занимают хакеры. Большинство хакеров, даже писавшие вирусы ранее, свысока смотрят на тех, кто этим занимается...

Вот те раз, подумал Штирлиц. Все в точности поставлено с головы на ноги. Или "известная американская специалистка по психологии вирусописателей" слегка трехнутая, или...

Смотрим Http://www.cnews.ru/topnews/2001/05/08/content5.shtml:

...Для того, чтобы данное занятие потеряло свою привлекательность в глазах подростков и молодых людей, им нужно доказать, что это - вовсе не престижное занятие. Кроме того, отношение к вирусописательству, как к преступлению, нужно воспитывать с детства...

Сара Гордон

Оказывается, г-жа Гордон совсем и не ошиблась в первый раз. Это нарочно. Это она просто "солгала во спасение". В ее "творчестве" направо и налево присутствует двойной стандарт. Может быть, романтика вирусописательства действительно в какой-то мере является фальшивой. Так докажи это! Продемонстрируй подлинную романтику, покажи на конкретных примерах, что ловить вирусы интересней, чем распространять их. Что настраивать 1С:Бухгалтерию и торговать гигабайтами-мегагерцами еще круче. Только не надо применять рецепты покойного д-ра Геббельса ("чем чудовищнее ложь, тем охотнее люди в нее верят"). От них - воняет, и не только тленом.

[На начало]


5. Анюткины прелести

Eсть такой вирус - Анна Курникова. Написал его (вернее, сформировал при помощи генератора макровирусов) один 20-летний голландец - Jan de Wit (aka OnTheFly), быстренько раскидал по мировым эхо-конференциям, дождался очередной истерики среди досмерти напуганных пользователей, и побежал сдаваться в полицию. Ну и фиг с ним.

"Шутка юмора" в том, что вирус распространялся в виде аттачей с двойным расширением: AnnaKournikova.JPG.EXE. JPG - это картинка, но EXE все-таки смеется позже. Вот так и подзалетели тысячи сексуально озабоченных недоумков, ожидавших, видимо, увидеть примерно вот такую картинку.

Анюткины сиськи

Они не учли, что такие прелести нахаляву - не бывают. :-)

[На начало]


6. Ода бЗдительности

На mail.chat.ru установили антивирусный фильтр. Прекрасное начинание! Если ко мне пришел по E-mail вирус, предупредите меня! Или даже убейте заразу!

Но провайдеры почему-то решили "осчастливить" пользователей дополнительным "сервисом". Без раздумий убиваются не только вирусы вместе с письмами, но и подозрительные по каким-то причинам вложения. Например, послать в Москву к Касперскому файл со свежепойманой заразой я уже не смогу: chat.ru лучше меня знает, что мне посылать положено, а чего нет.

Доходит до совсем уж анекдотических случаев. Антивирусная компания ДиалогНаука рассылала своим подписчикам по E-mail обновления вирусных баз. Антивирус не смог распознать формата этих вложений, посчитал их "испорченными" (да, кстати, "испорченные" файлы тоже, оказывается, крамола!), ну и в результате получилось вот что.

Пресс-релиз компании Диалог-Наука.
Помните притчу Льва Толстого про мальчика и волков? Сожалеем, что в роли напрасно потревоженных людей оказались некоторые из наших клиентов. Они так и не смогли получить очередное обновление программы Doctor Web... Другой антивирус, проверяющий почту на серверах некоторых провайдеров, не передал файлы, потому что рассылаемые нами исполняемые модули якобы заражены вирусом. Каким именно не уточнялось. Заверяем всех наших клиентов в том, что в рассылках обновлений никаких вирусов не содержалось. Провайдерам советуем более критично относиться к сообщениям программ, используемых на их серверах. Производителям же антивирусов желаем научиться отличать зараженные вирусами файлы от файлов, разбитых на части при формировании многотомных архивов. Не превратитесь в мальчика из грустной притчи, уважаемые коллеги!

Что-то не хочется мне убирать лишнюю букву "З" из заголовка...

[На начало]


7. ШБ МНК или Тренируйте зрение

Помните таблицу: ШБ МНК ЫМБШ... НКИБМШИБ? Оказывается, ее можно использовать и для тренировки остроты зрения.

Потренируем наши глазки - поучимся искать вирусы невооруженным глазом. Ну... почти невооруженным. Нам понадобится утилита Hacker View by SEN (знаменитый HIEW) версий 6.0 и старше. Исследовать будем PE-файлы, т.е. файлы исполнимых программ для Windows 9X и NT.

1. Загрузим файл в Hiew, нажмем Enter (чтобы сменить режим отображения на 16-ричный, или, - вторым нажатием, - на режим дизассемблирования), а потом F8 (чтобы отобразить содержимое специфического заголовка программы).

2. Нам потребуются два числа: EntryPoint RVA (относительный адрес точки входа, на картинке он равен 7000) и Image Base (это базовый адрес, по которому программа будет загружена в память, на картинке это 400000).

3. Теперь нажмем F6. Появится таблица описания секций программы. Дело в том, что программа состоит из нескольких секций. Вторая колонка в таблице (RVA) - это адрес начала секции в памяти (относительно Image Base). Обычно в здоровых программах точка входа EntryPoint RVA указывает в первую по счету секцию (т.е. должно быть для нашего примера в пределах между 1000 и 2000), и эта секция называется .text или CODE.

4. Посмотрим, что нас должно насторожить:

В данном случае присутствуют признаки 1,2 и 4. Пора бить тревогу! (Это был вирус Win95.BOZA)

[На начало]


8. SGWW кирдык

...Я должен был исполнить свой последний долг - убить LovinGOD'а. "Все будет хорошо...не в этой жизни!" - с такими мыслями я снял сковородку с плиты и ударил его с размаху по башке, а в руке у меня был нож, чтобы его добить. Радара и его девчонку я тоже собирался реально замочить - чтобы свидетелей не оставлять...
(c) Товарищ Садист

Cамая крупная отечественная группировка вирусописателей наконец-то прекратила свое существование.

Краткая справка для тех, кто не в курсе: Stealth Group World Wide зародилась в середине 90-х годов в Киеве как неформальная организация юных програмистов, умеющих писать вирусы. Она обзавелась своим "органом печати" , - журналом Infected Voice,- и с чисто тимуровской энергией принялась привлекать в свои ряды новых членов - не только талантливых программистов, но и бездарных тусовщиков. В лидеры группы быстро выдвинулся некто LovinGOD. После отъезда LovinGOD-a в Москву группа фактически прекратила свое физическое существование, но в течение нескольких лет сохранялась еще как минимум в двух ипостасях:
1) как наименование некой то ли банды, то ли секты, которую LovinGOD неоднократно пытался сколотить из малолетних дурачков;
2) как жупел, который активно использовали журналисты и правоохранительные органы для того, чтобы поддерживать в массах миф о "зловещих российских хакерах".
Весной 2001 г. LovinGOD-у окончательно настоиграло мучительно тужиться в бесплодных попытках организовать свой "анархистский Комсомол", и он вроде бы решил на это дело забить, о чем публично и заявил.

Так дело выглядит со стороны. Если Вы хотите ознакомиться с историей SGWW глазами самого LovinGOD-а, то загляните на http://www.redline.ru/~one, пока эта страничка еще существует. Если Вас интересуют впечатления рядовых членов SGWW о своей шайке, а также отмазки LovinGod-а, то скачайте и почитайте вот это.

Примечание от весны 2002 г. Тем не менее, сам LovinGod на пенсию опять не вышел. Его новый "проект" (см. в том же ZIP-е) претендует уже на мировые масштабы.

[На начало]


9. Первый отечественный вирус

Николай Николаевич Безруков, автор знаменитой "Компьютерной Вирусологии", ошибался, когда считал, что первый отечественный вирус был написан в конце 80-х годов XX века и представлял собой переделку импортного оригинала.

На самом деле первый вирус на территории СССР в 1985 г. создал Антон Чижов, известнейший в то время отечественный программист, сотрудник ВЦ АН СССР, автор справочника - Системное программное обепечение ПЭВМ. -М.:Финансы и статистика, 1990.- 415 с.

Вот эта история:

Первый вирус в России, думаю, написал именно я. Но и антивирус мой тоже был одним из первых. Было это примерно в 1985 году.

Я работал тогда в ВЦ Академии наук, там была небольшая группа под руководством Виктора Михайловича Брябрина, занимавшаяся персональными компьютерами. Однажды зовут меня в первый отдел и говорят, что со мной хочет поговорить товарищ из КГБ, курировавший наш вычислительный центр. Этот товарищ начал меня расспрашивать о компьютерных вирусах. "В Советском Союзе, — начал он, — активно развиваются сети передачи данных. В западной прессе появились статьи о компьютерных вирусах. Хотелось бы знать, насколько это все серьезно".

Как программистская задача меня это очень заинтересовало, и я сказал, что попробую разобраться с тем, что это такое. Начал разбираться, нашёл разные материалы… и тогда взял и попробовал написать первый вирус.

И я написал вирус, который ничего не делал. Более того, он должен был самоуничтожиться через год. Правда, происходило это далеко не всегда по той причине, что в компьютерах тогда не было батарейки, и дату и время надо было каждый раз вводить при запуске системы, что делали далеко не все. Из-за этого системное время большинства компьютеров было установлено на 80-й год.

Кроме самоуничтожения у моего вируса была специальная функция — он должен был уметь докладывать специальной программе о своем наличии в системе: "Да, я здесь". Я забросил этот вирус в систему и где-то через шесть-семь месяцев начал проверять, куда он успел добраться. По моим оценкам — а я знал довольно много московских организаций, поскольку наша лаборатория была одной из самых первых и, соответственно, одной из самых продвинутых по персональным компьютерам в то время — выходило, что процентов 70 всех компьютеров в Москве были заражены моим вирусом.

Таким образом, вирус распространился довольно быстро и масштабно. Стало понятно, что это очень серьезно, и я тогда написал антивирус. Звался он "Доктор", был очень простой и умел ловить порядка 70 известных мне (в том числе на основе анализа других антивирусных программ) вирусов.

Все эти свои исследования я представил сотруднику КГБ, причем мы с ним некоторое время препирались относительно формы подачи полученных результатов: он попросил изложить все это на бумаге, мне же такая идея совсем не нравилась: писать что-то "туда" мне не очень хотелось, потому что не известно, куда потом пойдут эти рукописи. В конце концов мы договорились, что я наберу все это на компьютере, распечатаю, но подписываться не буду.

"Доктор" потихонечку стал теряться среди новых появлявшихся антивирусов. Он был поделкой, а чтобы развиваться, нужно было строить правильный поточный процесс сопровождения. Мы решили этого не делать, и я нисколько не жалею об этом: был 1988 год, у нас в то время было много других дел.

Антон Чижов

[На начало]


10. ...Лучше AVP-ей и DrWEB-ов...

Если попытаться одним словом передать нынешнее отношение юзеров к вирусам, то слово это будет: паника. Истеричные вопли, выпученные глаза, потерянная обувь, брошенная ручная кладь... Оказаться в такой обезумевшей толпе крайне неприятно, но если сидишь где-нибудь на прочном высоком дереве, все сверху видишь, все понимаешь, то так и тянет временами что-нибудь такое страшное крикнуть, или этакое громкое свистнуть.

Вот шуточная программка awplite из серии "псевдоAidsTest-ов", которую я однажды в час досуга состряпал. В отличие о своих многочисленных аналогов, пародирующих AidsTest, она имитирует одну из версий популярного антивируса AVP. Совершенно безвредна, за исключением того, что не слишком внимательного юзера способна довести до инфаркта, - настолько достоверно выглядит ее работа.

Идеальное средство для вразумления "компьютерных домомучительниц". :-)

[На начало]


11. Лица с обложки

Я и не ожидал, что так сильно западет в душу читателей "Занимательной Вирусологии" моя "Третьяковская галерея". По крайней мере за два года мне четырежды присылали "абсолютно секретные фотки LovinGod"-а :-)

Трижды это был фотопортрет Д.Н. Лозинского из ДиалогНауки.

Лозинский Лозинский Лозинский

Один раз - фотка Арви Хакера из ГШХ.

Арви Хакер

Кроме того, "совершенно конфиденциально" мне был раскрыт "страшный секрет": настоящее имя LovinGod-а - Крис Касперски, причем он - то ли сын, то ли брат, то ли племянник Е. Касперского. Только поэтому его до сих пор еще не посадили :-)

Крис Касперски aka KPNC

"Сёма! Я так смеявся, шо тока трохи не упав з кровати". (Гм... а может, напрасно?) Тем не менее, всем, присылавшим фотки и "информацию" - спасибо! :-)

[На начало]


12. Идем копать червей

В наш век молниеносных Интернетовских эпидемий очень важно умение самому справиться с пришедшей по почте и расползшейся по компьютеру заразой. Даже самые навороченные почтовые червяки часто используют для закрепления в системе довольно ограниченный набор приемов.

  1. Копируют свой файл в один из каталогов автозапуска: в C:\Windows\Главное меню\Программы\Автозагрузка или в C:\Windows\System\IOSUBSYS.
  2. Прописывают себя в ключе HKEY_LOCAL_NACHINE\SoftWare\Microsoft\Windows\CurrentVersion\Run системного реестра.

  3. Прописывают себя в одном из "опасных" ключей ini-файлов или в конфигурационных файлах CONFIG.SYS/AUTOEXEC.BAT.

Очень часто справиться с ними удается при помощи штатной утилиты REGEDIT и любого текстового редактора.

[На начало]


13. Как устроен антивирус?

Вы никогда не задумывались над подобным вопросом? Давайте восполним этот пробел.

Самые первые антивирусы писались, видимо, целиком на каких-то языках программирования: главная программа плюс много-много подпрограммок для обнаружения и лечения конкретных вирусов. Вероятно, так был устроен, например, знаменитый AidsTest Д.Н. Лозинского. Это вполне приемлимо, если антивирус рассчитан на два-три варианта "заразы". Ну на десять. Ну даже на пятьдесят. Но когда количество вирусов начинает исчисляться сотнями и тысячами (а подавляющее большинство их устроено по одним и тем же канонам!), то обязательно возникает необходимость как-то формализовать этот процесс.

В самом деле: допустим, перед нами "стандартный" COM-вирус. Алгоритм поиска и удаления крайне прост:

  1. Найти в начале команду JMP и посмотреть, куда она указывает.
  2. В том месте, куда она указывает, прочитать определенное количество байтов и сравнить с заранее заготовленно "сигнатурой".
  3. Если сигнатуры совпадают, то в заранее известном месте внутри вируса найти "спрятанные" байты из начала программы и скопировать их на свое "законное" место.
  4. Отрезать от конца файла "хвост", равный длине вируса.
  5. Все!

Процедуры поиска и лечения сотни таких вирусов (а их на самом деле, по самым скромным подсчетам, минимуми в сто раз больше - т.е. десять тысяч!) отличаются только несколькими числовыми константами: сигнатурой, позицией спрятанных байтов и длиной вируса. Чуть более сложные, но тоже стандартные, процедуры получатся в случае EXE-вирусов. Ненамного усложнится процедура и в случае зашифрованных вирусов. Даже для полиморфиков можно составить универсальный алгоритм поиска. Макро-вирусы, Win32-вирусы, почтовые черви - все подвергаются "стандартизации" и "унификации"!

Отсюда простая идея: антивирус должен представлять собой просто некую исполняющую систему, некий виртуальный "станок", работающий по определенной программе. А программу для него может писать любой желающий в обычном текстовом редакторе в виде множества однотипных записей, образующих вирусную базу данных.

Один из первых примеров такого подхода можно найти в пакете Доктор Касперский, распространявшемся в начале 90-х годов прошлого века. Вот как выглядела отдельная запись базы для лечения COM-вируса:

Type COM         ; Тип вируса
Name NEW_VIRUS	 ; Имя вируса
...
Cure_Method MOVE ; Метод лечения (перемещение байтов)
Cure_Page DUMMY  ; Страница для удаления вируса -- отсутствует
...
Tail 1234        ; Усекаемая длина вируса     

Похоже выглядели записи в вирусе AVSP (1991-93 гг.):

_Rector
NUMB=81.1-55522
TYPE=PROGRAM
SIZE=400
MASK=BF000157A5A533C08EC0
SCAN=*.* { Opt(End:-56) Mov(MP:33,Head:0,4) Tr(MP:-344) }
TEXT=Злобный ректор заражает все подряд файлы, даже текстовые!
TEXT=Название получил за то, что заразил письмо ректору МГУ Логунову.
TEXT=Из семейства вирусов DM-400 (Copyright-90 и т.п.)
TEXT=Лечение производите, установив маску файлов *.* (клавиша )
#_END

Записи в базах антивируса MultiScan (Валентин Колесников, 1996-98) описывали правила поиска и лечения даже для полиморфиков. Но самое интересное, что этот антивирус умел, сканируя подозрительные файлы, самостоятельно и автоматически на основе эвристического анализа кода зараженной программы разрабатывать подобные записи для антивирусной базы !!!

.!.:C1260,Chameleon
[супер-полиморфик]
.:00.:16.:5E.:00.:0C 26A7 866D.:89.:0C.:20 A865 8C20.:3.:326

Поначалу такие базы распространялись вместе с антивирусами в текстовом виде. Но довольно скоро выяснилось, что на свете существует немало дебилов, стремящихся уродовать эти базы и раздавать своим друзьям и знакомым получившиеся "милые подарочки". Поэтому язык вирусных баз превратился во внутрифирменное ноу-хау, а к пользователям стали попадать лишь предварительно закодированные варианты этих баз. Несколько раз вирусописателям удавалось разобраться в кодировке и раскидать по миру подделанные базы, антивирусники отвечали введением новых, усиленных алгоритмов шифрования...

Короче, мало кто из "нормальных" людей представляет себе, как сейчас, спустя много лет, выглядят антивирусные базы в своем исходно виде - в том, в каком их разрабатывают специалисты антивирусных компаний. Впрочем, летом 2002 года работники фирмы Диалог-НАУКА прокололись и вместе с июльским обновлением DrWeb-а распространили его исходный текст. Если кому интересно - качайте и разбирайтесь сами.

[На начало]


... To be continued ...