Стоит мне что-нибудь проглотить, как тут же происходит что-нибудь интересное. Посмотрим, что будет на этот раз!

Льюис Кэрролл. Алиса в Стране чудес

Глава 1  Все о нем и немного о.

1.1. Феномен компьютерных вирусов

XX столетие несомненно является одним из поворотных этапов в жизни человечества. Как сказал один из писателей-фантастов, "человечество понеслось вперед, как подстегнутая лошадь" и, определив себя как технократическую цивилизацию, все свои силы наши деды, отцы и мы сами бросили на развитие техники в самых разных ее об-личиях — от медицинских приборов до космических аппаратов, от сельскохозяйственных комбайнов до атомных электростанций, от транспорта до систем связи. Список бесконечен, поскольку крайне сложно привести область деятельности человечества, не затронутую развитием техники. Что являлось причиной столь широкомасштабного и стремительного развития — военное противостояние политических систем, эволюционное "поумнение" человека или его патологическая лень (изобрести колесо, дабы не таскать мамонта на плечах) — пока неясно. Оставим эту загадку для историков последующих столетий. Человечество захвачено техникой и уже вряд ли откажется от удобств, предоставляемых ею (мало кто пожелает поменять современный автомобиль на гужевую тягу). Уже очень многими напрочь забыта обычная почта с конвертами и почтальонами — на смену ей пришла электронная почта с ошеломляющей скоростью доставки (до нескольких минут вне зависимости от расстояния) и очень высокой надежностью. Не представляю себе существования современного общества без компьютера, способного многократно повысить производительность труда и доставить любую мыслимую информацию (что-то вроде осуществления сказочного "пойди туда, не знаю куда, найди то, не знаю что"). Уже не удивляемся мобильному телефону на улице, я и сам к нему привык всего за один день.

XX столетие также является одним из самых противоречивых, принесших истории человечества немало парадоксов, основной из которых, как мне кажется, — отношение человека к природе. Перестав жить в дружбе с природой, победив ее и доказав себе, что легко может ее уничтожить, человек вдруг понял, что погибнет и сам, — и поменялись роли в драме "Человек — Природа". Раньше человек защищал себя от природы, теперь же он все больше и больше защищает природу от самого себя. Другим феноменом XX века является отношение человека к религии. Став технократом, человек не перестал верить в Бога (или его аналогов). Более того, появились и окрепли другие религии. :

К основным техническим феноменам XX века относятся, на мой взгляд, появление человека в космосе, утилизация атомной энергии вещества, грандиозный прогресс систем связи и передачи информации и конечно же ошеломляющее развитие микро- и макрокомпьютеров. И как скоро появляется упоминание о феномене компьютеров, так тут же возникает еще один феномен конца нашего столетия — феномен компьютерных вирусов.

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

Во-первых, компьютерные вирусы — серьезная и довольно заметная проблема, возникновения которой никто не ожидал. Даже всевидящие фантасты-футурологи прошлого ни разу не упомянули о ней (насколько это мне известно). В их многочисленных произведениях с той или иной точностью предсказаны практически все технические достижения настоящего (вспомним, например, Уэллса с его идеей полета из пушки на Луну и марсиан, вооруженных неким подобием лазера). Если же говорить о вычислительных машинах, то тема эта вылизана донельзя, однако нет ни одного пророчества, посвященного компьютерным вирусам. Тема вируса в произведениях писателей появилась уже после того, как первый реальный вирус поразил первый компьютер.

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

Но все таки — жизнь, поскольку компьютерным вирусам присущи все атрибуты живого: способность к размножению, движению, приспособляемость к среде и т. д. (естественно, только в пределах компьютеров, так же как все вышесказанное верно для биологических вирусов в пределах клеток организма). Более того, существуют "двуполые" вирусы (см. вирус RMNS), а примером "многоклеточности" могут служить, например, макровирусы, состоящие из нескольких независимых макросов.

И в-третьих, тема вирусов стоит несколько особняком от всех остальных задач, решаемых при помощи компьютера (забудем о таких специфичных задачах, как взлом защиты от копирования и криптография). Практически все проблемы, решаемые при помощи вычислительной техники, являются продолжением целенаправленной борьбы человека с окружающей его природой. Природа задает человеку длинное нелинейное дифференциальное уравнение в трехмерном пространстве. Человек набивает компьютер процессорами, памятью, обвешивает пыльными проводами, много курит и в итоге решает это уравнение (или пребывает в состоянии уверенности, что решил его). Природа дает человеку кусок провода с вполне определенными характеристиками. Человек придумывает алгоритмы передачи как можно большего объема информации по этому проводу, терзает его модуляциями, сжимает байты в биты и терпеливо ждет сверхпроводимости при комнатной температуре. Природа (в лице фирмы IBM) дает человеку очередное ограничение в виде очередной версии IBM PC — и человек не спит ночами, опять много курит, оптимизируя коды очередной базы данных, дабы уместить ее в предоставленные ему ресурсы оперативной и дисковой памяти. И так далее.

А вот борьба с компьютерными вирусами является борьбой человека с человеческим же разумом (в некотором смысле тоже проявлением природных сил, хотя на этот счет имеется более одного мнения). Эта борьба является борьбой умов, поскольку задачи перед вирусологами ставят такие же люди. Они придумывают новый вирус, а нам с ним разбираться. Затем они придумывают вирус, в котором разобраться очень тяжело. Но мы и с ним справимся. И сейчас наверняка где-то сидит за компьютером парень не глупее меня, страдающий над очередным монстром, с которым мне придется биться целую неделю, а потом еще одну неделю отлаживать алгоритм антивируса. Ну чем не эволюция живых организмов?

Итак, появление компьютерных вирусов — один из наиболее интересных моментов в истории технического прогресса XX века, и настал момент закончить с околофилософскими рассуждениями и перейти к конкретным вопросам. И вопрос об определении понятия "компьютерный вирус" будет стоять на первом месте.

Так что же такое компьютерный вирус?

На горе лежит дискета, У нее запорчен бут, Через дырочку в конверте Ее вирусы грызут.

Из народного фольклора

1.2. Что такое компьютерный вирус

Объяснений, что такое компьютерный вирус, можно привести несколько. Самое простое — бытовое объяснение для домохозяйки, которая ни разу в жизни компьютера не видела, но знает, что Он есть и что в Нем водятся Вирусы. Такое объяснение дать довольно легко, чего нельзя сказать о втором объяснении, рассчитанном на специалиста в области программирования. Мне пока не представляется возможным дать точное определение компьютерного вируса и провести четкую грань между программами по принципу "вирус — невирус".

1.2.1. Объяснение для домохозяйки

Объяснение будет дано на примере клерка, работающего исключительно с бумагами. Идея такого объяснения принадлежит Д. Н. Лозинскому. Представим себе аккуратного клерка, который приходит на работу в контору и каждый день обнаруживает у себя на столе стопку листов бумаги со списком заданий на день. Клерк берет верхний лист, читает указания начальства, пунктуально их выполняет, выбрасывает "отработанный" лист в корзину для бумаг и переходит к следующему листу. Предположим, что некий злоумышленник тайком прокрадывается в контору и подкладывает в стопку с заданиями лист, на котором написано следующее: "Переписать этот лист два раза и положить копии в стопку заданий соседей".

Что сделает клерк? Дважды перепишет лист, положит его соседям на стол, уничтожит оригинал и перейдет к выполнению следующего листа из стопки, т. е. продолжит выполнять свою настоящую работу. Что сделают соседи, являясь такими же аккуратными клерками, обнаружив новое задание? То же, что и первый: перепишут его по два раза и раздадут другим клеркам. Итого в конторе бродят уже четыре копии первоначального документа, которые и дальше будут копироваться и передаваться на другие столы.

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

В приведенном выше примере про клерка и его контору лист-вирус не проверяет, заражена очередная папка заданий или нет. В этом случае к концу рабочего дня контора будет завалена такими копиями, а клерки только и будут что переписывать один и тот же текст и раздавать его соседям. Ведь первый клерк сделает две копии, очередные жертвы вируса — уже четыре, затем 8, 16, 32, 64 и т. д., т. е. количество копий каждый раз будет увеличиваться в два раза.

Если клерк на переписывание одного листа тратит 30 секунд и еще 30 секунд на раздачу копий, то через час по конторе будет "бродить" более 1 000 000 000 000 000 000 копий вируса! Скорее всего конечно же не хватит бумаги, и распространение вируса будет остановлено по столь банальной причине.

Как это ни смешно (хотя участникам этого инцидента было совсем не смешно), именно такой случай произошел в 1988 г. в Америке: несколько глобальных сетей передачи информации оказались переполненными копиями сетевого вируса (вирус Морриса), который рассылал себя от компьютера к компьютеру. Поэтому "правильные" вирусы делают так.

"Переписать этот лист два раза и положить копии в стопку заданий соседей, если у них еще нет этого листа".

Проблема решена —"перенаселения" нет, но каждая стопка содержит по копии вируса, при этом клерки еще успевают справляться и с обычной работой.

"А как же уничтожение данных?"— спросит хорошо эрудированная домохозяйка. Все очень просто — достаточно написать на листе примерно следующее.

1. Переписать этот лист два раза и положить копии в стопку заданий соседей, если у них еще нет этого листа.

2. Посмотреть на календарь и, если сегодня пятница, попавшая на 13-е число, выкинуть все документы в мусорную корзину.

Подобную инструкцию выполняет хорошо известный вирус Jerusalem (другое название —Time).

Кстати, на примере клерка очень хорошо видно, почему в большинстве случаев нельзя точно определить, откуда в компьютере появился вирус. Все клерки имеют одинаковые (с точностью до почерка) КОПИИ, но оригинал-то с почерком злоумышленника уже давно в корзине!

Вот такое простое объяснение работы вируса. Плюс к нему хотелось бы привести две аксиомы, которые, как это ни странно, не для всех являются очевидными. Во-первых: вирусы не возникают сами собой — их создают очень злые и нехорошие программисты-хакеры и рассылают затем по сети передачи данных или подкидывают на компьютеры знакомых. Вирус не может сам собой появиться на вашем компьютере: либо его подсунули на дискетах или даже на компакт-диске, либо вы его случайно "скачали" из компьютерной сети передачи данных, либо вирус жил у вас в компьютере с самого начала, либо (что самое ужасное) программист-хакер живет у вас в доме. Во-вторых: компьютерные вирусы заражают только компьютер и ничего больше, поэтому не надо бояться — через клавиатуру и мышь они не передаются.

1.2.2. Попытка дать "нормальное" определение

Первые исследования саморазмножающихся искусственных конструкций проводились в середине нынешнего столетия. В работах фон Неймана, Винера и других авторов дано определение и проведен математический анализ конечных автоматов, в том числе и самовоспроизводящихся. Термин "компьютерный вирус" появился позднее, официально считается, что его впервые употребил сотрудник Лехайского университета (США) Ф. Коэн в 1984 г. на 7-й конференции по безопасности информации, проходившей в США. С тех пор прошло немало времени, острота проблемы вирусов многократно возросла, однако строгого определения, что же такое компьютерный вирус, так и не дано, несмотря на то что многие пытались это сделать неоднократно.

Основная трудность, возникающая при попытках дать строгое определение вируса, заключается в том, что практически все отличительные черты вируса (внедрение в другие объекты, скрытность, потенциальная опасность и пр.) либо присущи другим программам, которые никоим образом вирусами не являются, либо существуют вирусы, которые не содержат указанных выше отличительных черт (за исключением возможности распространения).

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

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

Основная же особенность компьютерных вирусов — возможность их самопроизвольного внедрения в различные объекты ОС — присуща многим программам, которые не являются вирусами. Например, самая распространенная операционная система MS-DOS имеет в себе все необходимое, чтобы самопроизвольно устанавливаться на He-DOS'OBCKHe диски. Для этого достаточно на загрузочный гибкий-диск, содержащий DOS, записать файл AUTOEXEC.BAT следующего содержания:

SYS А:

COPY *.* А:\ SYS В:

COPY *.* В:\

SYS С:

COPY *.* C:\

Модифицированная DOS в результате сама станет самым настоящим вирусом с точки зрения практически любого существующего определения компьютерного вируса.

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

Вторая же трудность, возникающая при формулировке определения компьютерного вируса, — то, что данное определение должно быть привязано к конкретной ОС, в которой этот вирус распространяется. Теоретически могут существовать операционные системы, где наличие вируса просто невозможно, например системы, в которых запрещено создавать и изменять области выполняемого кода.

Поэтому представляется возможным сформулировать только обязательное условие для того, чтобы некоторая последовательность выполняемого кода являлась вирусом.

Обязательное (необходимое) свойство компьютерного вируса —

возможность создавать свои дубликаты (не всегда совпадающие с оригиналом) и внедрять их в вычислительные сети и/или файлы, системные области компьютера и прочие выполняемые объекты. При этом дубликаты сохраняют способность к дальнейшему распространению.

Следует отметить, что это условие не является достаточным (т. е. окончательным), поскольку, следуя вышеприведенному примеру, операционная система MS-DOS удовлетворяет данному свойству, но вирусом, скорее всего, ее назвать нельзя.

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

Вот два примера: вирус КОН и программа ALREADY.COM.

Пример 1. Есть вирус (?) утилита (?) с названием КОН. Эта программа шифрует/расшифровывает диски только по запросу пользователя. Выполнена она в виде загрузочной дискеты: boot-сектор содержит bootstrap loader КОН, а где-то в других секторах лежит основной код КОН. При загрузке с дискеты КОН задает пользователю вопрос типа: "А можно, я сам себя установлю на винчестер?" (если он уже на винчестере, то спрашивает то же самое про дискету). При утвердительном ответе КОН переносит себя с диска на диск.

В результате КОН переносит (копирует) сам себя с дискеты на винчестер, а с винчестера на дискеты, но только с разрешения хозяина компьютера.

Затем КОН выводит текст о своих hot-keys ("горячие" клавиши), по которым он шифрует/расшифровывает диски: спрашивает пароль, читает сектора, шифрует их и делает недоступными, если не знать пароля. Есть у него, кстати, ключ деинсталляции, по коему он сам себя с диска убирает (расшифровав, естественно, все, что было зашифровано).

Таким образом, КОН — это некая утилита защиты информации от несанкционированного доступа. Добавлена к ней, правда, одна особенность: сия утилита сама себя может копировать с диска на диск (с разрешения пользователя). Вирус ли это?.. Да или нет? Скорее всего — нет...

И все бы было ничего, и никто бы эту утилиту по имени КОН вирусом не обозвал, но только bootstrap loader у этого КОН практически на 100% совпадает с довольно "популярным" вирусом Havoc (StealthBoot)... и все, никаких сомнений — вирус! И официальное название есть — StealthBoot.KOH.

Если бы, конечно, автором КОН был не безызвестный программист, а, скажем, Symantec, или Sierra, или даже сама Microsoft, то никто бы и не посмел назвать это вирусом...

Пример 2. Есть некая программа ALREADY.COM, которая сама себя копирует в различные подкаталоги диска в зависимости от системной даты. Вирус? Конечно, да — типичный вирус-червь, сам по себе расползающийся по дискам (включая сетевые).

Да?.. Да!

"Вы играли — но не угадали ни одной буквы!" Не вирус это, как оказалось, а компонент от какого-то софтвера. Однако если этот файл выдернуть из этого софтвера, то ведет он себя как типичный вирус.

Таким образом, были приведены два живых примера.

1. Невирус — вирус.

2. Вирус — невирус.

Внимательный читатель, который не прочь поспорить, может возразить:

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

В таком случае DOS является вирусом (или комплексом, включающим вирусный компонент), поскольку в нем есть команды SYS и COPY. А если на диске присутствует файл AUTOEXEC.BAT, приведенный несколькими абзацами выше, то для размножения не потребуется даже вмешательства пользователя. Плюс к этому: если принять за необходимый и достаточной признак вируса возможность саморазмножения, то тогда любая программа, имеющая инсталлятор, является вирусом. Следовательно, аргумент не проходит.

Еще одно возражение: «...что, если под вирусом понимать не просто "саморазмножающийся код", но "саморазмножающийся код, не выполняющий полезных действий или даже приносящий вред, без привлечения/информирования пользователя "?»

Вирус КОН является программой, шифрующей диски по паролю, вводимому пользователем. Все свои действия КОН комментирует на экране и спрашивает разрешения пользователя. Плюс к тому имеет деинсталлятор — расшифровывает диски и удаляет с них свой код. Однако все равно — вирус!

Если в случае с ALREADY.COM привлечь субъективные критерии (полезна/не полезна, входит в комплект/самостоятельна и т. п.), то, возможно, это и не стоит называть вирусом/червяком. Но стоит ли привлекать эти самые субъективные критерии?

А какие могут быть объективные критерии вируса? Саморазмножение, скрытность и деструктивные свойства? Но ведь на каждый объективный критерий можно привести два контрпримера: а) пример вируса, не подходящего под критерий, и б) пример невируса, подходящего под критерий.

Саморазмножение:

а — Intended-вирусы, не умеющие размножаться по причине большого количества ошибок или размножающиеся только при очень ограниченных условиях;

б - MS-DOS и вариации на тему SYS+COPY.

Скрытность:

а — вирусы КОН, VirDem, Macro.Word. Polite и некоторые другие информируют пользователя о своем присутствии и размножении;

б — сколько примерно (с точностью до десятка) драйверов сидит под стандартной Win95? Скрытно сидит, между прочим.

Деструктивные свойства:

а — безобидные вирусы типа Yankee, которые прекрасно живут в DOS, Windows З.х, Win95, NT и никому не мешают;

б — старые версии Norton Disk Doctor на диске с длинными именами файлов.

Запуск NDD в этом случае превращает Disk Doctor в Disk Destroyer.

Посему тема "нормального" определения компьютерного вируса остается открытой. Есть только несколько точных вех: например, файл COMMAND.СОМ вирусом не является, а печально известная программа с текстом "Dis is one half — стопроцентный вирус (OneHalf). Все, что лежит между ними, может как оказаться вирусом, так и нет.

Не горячитесь, Шура, вы еще не отсидели за прошлое дело.

Из Жванецкого

1.3. Кто и почему пишет вирусы?

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

Так кто же пишет вирусы? На мой взгляд, основную их массу создают студенты и школьники, которые только что изучили язык ассемблера, хотят попробовать свои силы, но не могут найти для них более достойного применения. Отраден тот факт, что значительная часть таких вирусов их авторами часто не распространяется и вирусы через некоторое время "умирают" вместе с дискетами, на которых хранятся. Такие вирусы пишутся скорее всего только для самоутверждения.

Вторую группу составляют также молодые люди (чаще — студенты), еще не полностью овладевшие искусством программирования, но уже решившие посвятить себя написанию и распространению вирусов. Единственная причина, толкающая подобных людей на написание вирусов, — комплекс неполноценности, который проявляет себя в компьютерном хулиганстве.

Из-под пера подобных "умельцев" часто выходят либо многочисленные модификации "классических" вирусов, либо вирусы крайне примитивные и с большим числом ошибок (такие вирусы я называю "студенческими"). Значительно облегчилась жизнь подобных вирусописателей после выхода конструкторов вирусов, при помощи которых можно создавать новые вирусы даже при минимальных знаниях об ОС и ассемблере или вообще не имея о них никакого представления. Еще проще для них все стало после появления макровирусов, поскольку вместо сложного языка Ассемблер для написания макровирусов достаточно изучить довольно простой Бейсик.

Став старше и опытнее, но так и не повзрослев, многие из подобных вирусописателей попадают в третью, наиболее опасную группу, которая создает и запускает в мир "профессиональные" вирусы. Эти очень тщательно продуманные и отлаженные программы создаются профессиональными, часто весьма талантливыми программистами. Такие вирусы нередко используют достаточно оригинальные алгоритмы, недокументированные и мало кому известные способы проникновения в системные области данных. "Профессиональные" вирусы часто выполнены по технологии "стеле" и (или) являются полиморфик-вирусами, заражают не только файлы, но и загрузочные сектора дисков, а иногда и выполняемые файлы Windows и OS/2.

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

По моему мнению, причина, заставляющая таких людей направлять свои способности на такую бессмысленную работу, все та же - комплекс неполноценности, иногда сочетающийся с неуравновешенной психикой. Показателен тот факт, что подобное вирусописательство часто сочетается с другими пагубными пристрастиями. Так, весной 1997 г. один из наиболее известных в мире авторов вирусов по кличке Talon (Австралия) скончался в возрасте 21 года от летальной дозы героина.

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

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

У меня тройственное отношение к авторам вирусов. Во-первых, все, кто пишет вирусы или способствует их распространению, являются "кормильцами" антивирусной индустрии, годовой оборот которой я оцениваю как минимум в две сотни миллионов долларов или даже более того (при этом не стоит забывать, что убытки от вирусов составляют несколько сотен миллионов долларов ежегодно и во много раз превышают расходы на антивирусные программы). Если общее число вирусов к концу 1997 г. скорее всего достигнет 20 000, то нетрудно подсчитать, что победа над каждым вирусом ежегодно приносит как минимум 10 тыс. долл. Конечно же авторам вирусов не следует надеяться на материальное вознаграждение от антивирусных фирм: как показывает практика, их труд был и остается бесплатным. К тому же на сегодняшний день предложение (новые вирусы) вполне удовлетворяет спрос (возможности антивирусных фирм по обработке новых вирусов).

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

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

Тяжела и неказиста Жизнь простого программиста.

Из народного фольклора

Нет предела нашему интегралу.

Народная мудрость

1.4. История компьютерных вирусов — от древности до наших дней

1.4.1. Самое начало. Немного археологии

Мнений по поводу даты рождения первого компьютерного вируса очень много. Мне доподлинно известно только одно: на машине Чарльза Бэббид-жа его не было, а на Univac 1108 и IBM-360/370 они уже были (Pervading Animal и Christmas Tree). Таким образом, первый вирус появился где-то в самом начале 70-х или даже в конце 60-х годов, хотя так его никто еще не называл. На этом разговор о вымерших ископаемых предлагаю считать завершенным.

1.4.2. Начало пути

Поговорим о новейшей истории: Brain, Vienna, Cascade и далее. Те, кто начал работать на IBM PC в середине 80-х, еще не забыли повальную эпидемию этих вирусных заболеваний в 1987—1989 гг. Буквы сыпались на экранах, а толпы пользователей неслись к специалистам по ремонту дисплеев (сейчас все наоборот: винчестер скончался от старости, а валят на неизвестный передовой науке вирус). Затем компьютер заиграл чужеземный гимн "Yankee Doodle", но чинить динамики уже никто не бросился, очень быстро разобрались, что это — вирус, да не один, а целый десяток.

Так вирусы начали заражать файлы. Вирус Brain и скачущий по экрану шарик вируса Ping-pong ознаменовали победу вируса и над Boot-сектором. Все это очень не нравилось пользователям IBM PC, и появились противоядия. Первым попавшимся мне антивирусом был отечественный ANTI-KOT: это легендарный Олег Котик выпустил в свет первые версии своей программы, которая уничтожала целых 4 (четыре) вируса (американский SCAN появился у нас в стране несколько позднее). Кстати, всем, кто до сих пор сохранил копию этого антивируса, предлагаю немедленно ее стереть (да простит меня Олег Котик!) как программу вредную и ничего, кроме траты лишних нервов и ненужных телефонных звонков, не приносящую. К сожалению, ANTI-KOT определяет вирус Time ("Иерусалимский") по комбинации MS-DOS в конце файла, а некоторые другие антивирусы эти самые буквы аккуратно прицепляют ко всем файлам с расширением СОМ или ЕХЕ.

Следует обратить внимание на то, что истории завоевания вирусами России и Запада различаются между собой. Первым вирусом, стремительно распространившимся на Западе, был загрузочный вирус Brain, и только потом появились файловые вирусы Vienna и Cascade. В России же, наоборот, сначала появились файловые вирусы, а годом позже — загрузочные. Время шло, вирусы плодились. Все они были чем-то похожи друг на друга, лезли в память, цеплялись к файлам и секторам, периодически убивали файлы, дискеты и винчестеры. Одним из "откровений" стал вирус Frodo.4096 — первый из известных мне файловых вирусов-невидимок (стеле). Этот вирус перехватывал INT 21h и при обращении через DOS к зараженным файлам изменял информацию таким образом, что файл появлялся перед пользователем в незараженном виде. Но это была только надстройка вируса над MS-DOS. He прошло и года, как электронные тараканы полезли внутрь ядра DOS (вирус-невидимка Beast.512). Идея невидимости продолжала приносить свои плоды и далее: летом 1991 г. пронесся, кося компьютеры как бубонная чума, вирус Dir_II. "Да-а-а!" — сказали все, кто в нем копался.

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

1.4.3. Полиморфизм — мутация вирусов

Первый полиморфик-вирус появился в начале 90-х годов. Это был Chameleon. Но по-настоящему серьезной проблема полиморфик-вирусов стала лишь год спустя — в апреле 1991-го, когда практически весь мир был охвачен эпидемией полиморфик-вируса Tequila (насколько мне известно, эта эпидемия практически не затронула Россию, а первая российская эпидемия, вызванная полиморфик-вирусом, нагрянула три года спустя — в 1994 г., это был вирус Phantom 1).

Популярность идеи самошифрующихся полиморфик-вирусов вылилась в появление генераторов полиморфик-кода. В начале 1992 г. появляется знаменитый вирус Dedicated, базирующийся на первом известном полиморфик-ге-нераторе MtE и открывший серию MtE-вирусов, а через довольно короткое время появляется и сам полиморфик-генератор. Представляет он из себя объектный модуль (OBJ-файл), и теперь для того, чтобы из самого обычного нешифрованного вируса получить полиморфик-мутанта, достаточно лишь скомпоновать их объектные модули — OBJ-файл полиморфик-генератора с OBJ-файлом вируса. Автору вируса, если он пожелает создать настоящий полиморфик-вирус, уже не надо корпеть над кодами собственного зашифровщи-ка/расшифровщика. При желании он может подключить к своему вирусу полиморфик-генератор и вызывать его из кодов вируса.

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

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

Вот далеко не полный список тех из них, которые можно назвать стопроцентно полиморфными (на конец 1993 г.): Bootache, CivilWar (четыре версии), Crusher, Dudley, Fly, Freddy, Ginger, Grog, Haifa, Moctezuma (две версии), MVF, Necros, Nukehard, PcFly (три версии), Predator, Satanbug, Sandra, Shoker, Todor, Tremor, Trigger, Uruguay (восемь версий).

Для обнаружения этих вирусов приходится использовать специальные методы, к которым можно отнести эмуляцию выполнения кода вируса, математические алгоритмы восстановления участков кода и данных в вирусе и т. д. К нестопроцентным полиморфикам (т. е. вирусам, которые шифруют себя, но в дешифраторе вируса всегда существуют постоянные байты) можно отнести еще десяток новых вирусов: Basilisk, Daemaen, Invisible (две версии), Mirea (несколько версий), Rasek (три версии), Sarov, Scoundrel, Seat, Silly, Simulation.

Однако и они требуют расшифровки кода для их обнаружения и восстановления пораженных объектов, поскольку длина постоянного кода в дешифраторе этих вирусов слишком мала.

Параллельно с полиморфик-вирусами развиваются полиморфик-генера-торы, появляется несколько новых, использующих более сложные методы генерации полиморфик-кода, они распространяются по станциям BBS в виде архивов, содержащих объектные модули, документацию и примеры использования. В конце 1993 г. было известно уже семь генераторов полиморфик-кода. Это: МТЕ 0.90 (Mutation Engine), четыре различные версии ТРЕ (Trident Polymorphic Engine), NED (Nuke Encryption Device), DAME (Dark Angel's Multiple Encryptor).

С тех пор новые полиморфные генераторы появлялись по нескольку штук в год, и приводить их полный список вряд ли имеет смысл.

1.4.4. Автоматизация производства и конструкторы вирусов

Лень — одна из движущих сил прогресса. Эта народная мудрость не нуждается в комментариях. Но только в середине 1992 г. прогресс в виде автоматизации производства дошел и до вирусов. 5 июля 1992 г. объявлен выпуск в свет первого конструктора вирусного кода для IBM PC-совместимых компьютеров — пакет VCL (Virus Creation Laboratory) версии 1.00.

Этот конструктор позволяет генерировать исходные и хорошо откоммен-тированные тексты вирусов (файлы, содержащие ассемблерный текст), объектные модули и непосредственно зараженные файлы. VCL снабжен стандартным оконным интерфейсом. При помощи системы меню можно выбрать тип вируса, поражаемые объекты (СОМ и/или ЕХЕ), наличие или отсутствие самошифрования, противодействие отладчику, внутренние текстовые строки, подключить до десяти эффектов, сопровождающих работу вируса, и т. п. Вирусы могут использовать стандартный способ поражения файлов записывать себя в их конец, или вместо файлов, уничтожая их первоначальное содержимое, или являться вирусами-спутниками (международный термин — компаньон-вирусы [companion]).

И все сразу стало значительно проще: захотел напакостить ближнему — садись за VCL и, за 10—15 мин настрогав 30—40 разных вирусов, запусти их на неприятельском(их) компьютере(ах). Каждому компьютеру — свой вирус!

Дальше — больше. 27 июля появилась первая версия конструктора PS-MPC (Phalcon/Skism Mass-Produced Code Generator). Этот конструктор не содержит оконного интерфейса и генерирует исходные тексты вирусов по файлу конфигурации. Этот файл содержит описание вируса: тип поражаемых файлов (СОМ или ЕХЕ); резидентность (PS-MPC создает также и резидентные вирусы, чего не позволяет конструктор VCL); способ инсталляции резидентной копии вируса; возможность использования самошифрования; возможность поражения COMMAND.COM и массу другой "полезной" информации.

На основе PS-MPC был создан конструктор G2 (Phalcon/Skism's G2 0.70 beta), который поддерживает файлы конфигурации стандарта PS-MPC, однако при генерации вируса использует большее количество вариантов кодирования одних и тех же функций. Имеющаяся у меня версия G2 помечена 1 января 1993 г. Видимо, новогоднюю ночь ее авторы провели за компьютерами. Лучше бы они вместо этого выпили шампанского, хотя одно другому не мешает.

Итак, каким же образом повлияли конструкторы вирусов на электронную фауну? В коллекции вирусов, которая хранится на моем "складе", число "сконструированных" вирусов следующее:

на базе VCL и G2 — по нескольку сотен;

на базе PS-MPC — более тысячи.

Так проявилась еще одна тенденция в развитии компьютерных вирусов:

все большую часть в коллекциях начинают занимать "сконструированные" вирусы, а в ряды их авторов вливаются откровенно ленивые люди, которые сводят творческую и уважаемую профессию вирусописателя к весьма заурядному ремеслу.

1.4.5. За пределы DOS

Год 1992-й принес больше, чем полиморфик-виру-сы и вирусы-конструкторы. В конце этого года появился первый вирус для Windows, открывший таким образом новую страницу в истории вирусо-писания. Небольшого размера (менее 1 Кб), совершенно безвредный и нерезидентный вирус вполне грамотно заражал выполняемые файлы нового формата Windows (NewEXE) и своим появлением пробил для вирусов окно в мир Windows.

Через некоторое время были написаны вирусы для OS/2, а в январе 1996 г. — и первый вирус для Windows 95. На сегодняшний день не проходит и месяца без обнаружения новых вирусов, заражающих He-DOS-системы, и, видимо, проблема He-DOS-вирусов в скором времени выйдет на первый план, перекрыв проблему DOS-вирусов. Это произойдет с постепенным отмиранием DOS и распространением новых ОС и программ для них. Коль скоро все существующие DOS-приложения будут замещены их аналогами для Windows, Win95 и OS/2, проблема DOS-вирусов сойдет на нет и оставит после себя лишь теоретический интерес для компьютерного социума.

В том же 1993 году появилась и первая попытка написать вирус, работающий в защищенном режиме процессора Intel386. Это был загрузочный вирус PMBS, названный так по строке текста внутри его кода. При загрузке с зараженного диска вирус переходил в защищенный режим, устанавливал себя как супервизор системы и затем загружал DOS в режиме виртуального окна V86. К счастью, вирус этот оказался "нежильцом" — его второе поколение напрочь отказывалось размножаться по причине нескольких ошибок в коде вируса. К тому же он "завешивал" систему, если какая-либо из программ пыталась выйти за пределы V86, например определить наличие расширенной памяти.

Эта неудачная попытка написать вирус-супервизор так и оставалась единственной известной вплоть до весны 1997 г., когда один московский умелец выпустил вирус PM.Wanderer — вполне "удачную" реализацию вируса, работающего в защищенном режиме.

Пока непонятно, станут ли в дальнейшем вирусы-супервизоры действительной проблемой для пользователей и разработчиков антивирусных программ. Скорее всего нет, так как эти вирусы должны "засыпать" на время работы современных ОС (Windows, Win95/NT, OS/2), что позволяет их (вирусы) легко обнаруживать и удалять. Однако полноценный вирус-супервизор, использующий технологию "стеле", может доставить немало неприятностей пользователям "чистой" DOS, ведь обнаружить такой стелс-вирус под DOS не представляется возможным.

1.4.6. Эпидемия макровируса

Год 1995-й, август. Все прогрессивное человечество, компания Microsoft и лично Билл Гейтс празднуют выход новой операционной системы Windows 95. На фоне шумного торжества практически незамеченным прошло сообщение о появлении вируса, использующего принципиально новые методы заражения, вируса, заражающего документы Microsoft Word.

Честно говоря, это был не первый вирус, заражающий документы Word. До этого момента антивирусные фирмы уже имели на руках первый опытный образец вируса, который переписывал себя из документа в документ. Однако никто не обратил серьезного внимания на этот не вполне удачный эксперимент. В результате практически все антивирусные фирмы оказались не готовыми к последующему развитию событий — эпидемии макровируса и начали спешно предпринимать полумеры. Например, несколько фирм практически одновременно выпустили в свет документы-антивирусы, действовавшие примерно по тем же принципам, что и вирус, однако уничтожавшие его вместо размножения.

Кстати, спешно пришлось править антивирусную литературу — ведь она раньше на вопрос: "Можно ли заразить компьютер при чтении файла?" отвечала: "Однозначно — нет!" — и приводила длинные доказательства этого.

А вирус, получивший к тому времени имя Concept, продолжал победное движение по планете. Появившись скорее всего в каком-то из подразделений фирмы Microsoft, Concept в мгновение ока завладел тысячами (если не миллионами) компьютеров. Это неудивительно, ведь передача текстов в формате MS Word стала де-факто одним из стандартов, а для того чтобы заразиться вирусом, требуется всего лишь открыть зараженный документ, и все остальные документы, редактируемые в зараженном Word'e, также оказываются зараженными. В результате, получив по Internet зараженный файл и прочитав его, пользователь, не зная того сам, оказывался "разносчиком заразы", и вся его переписка (если, конечно, она велась при помощи MS Word) также оказывалась зараженной! Таким образом, скорость заражения MS Word, помноженная на возможности Internet, стала одной из самых серьезных проблем за всю историю существования вирусов.

Не прошло и года, как летом 1996-го был обнаружен вирус Laroux ("Лару"), заражающий таблицы MS Excel. Как и в случае с вирусом Concept, новый макровирус был обнаружен "в природе" практически одновременно в разных фирмах. Кстати, в 1997 г. этот вирус стал причиной эпидемии в Москве.

В том же 1996 году появились первые конструкторы макровирусов, а в начале 1997 года — и первые полиморфик-макрови-русы для MS Word, и первые вирусы для MS Office 97. Плюс к тому непрерывно росло число разнообразных макровирусов, достигшее нескольких сотен к лету 1997 г.

Открыв новую страницу в августе 1995 г., опираясь на весь опыт, накопленный вирусописательством почти за десятилетие непрерывной работы и совершенствования, макровирусы, пожалуй, являются самой большой проблемой современной вирусологии.

1.4.7. Хронология событий

Пора перейти к более детальному описанию событий. Начнем с самого начала.

Конец 1960-х — начало 70-х годов

На мэйнфреймах этого времени периодически появлялись программы, которые получили название "кролик" (the rabbit). Эти программы клонировали себя, занимали системные ресурсы и таким образом снижали производительность системы. Скорее всего "кролики" не передавались от системы к системе, а представляли из себя сугубо местные явления — ошибки или шалости системных программистов, обслуживавших компьютер. Первый же инцидент, который смело можно назвать эпидемией "компьютерного вируса", произошел на системе Univax 1108. Вирус, получивший название Pervading Animal, дописывал себя к выполняемым файлам — делал практически то же самое, что тысячи современных компьютерных вирусов.

Первая половина 70-х годов

Под ОС Тепех создан вирус The Creeper, использовавший для своего распространения глобальные компьютерные сети. Вирус был в состоянии самостоятельно войти в сеть через модем и передать свою копию удаленной системе. Для борьбы с этим вирусом была создана программа Reeper — первая известная антивирусная программа.

Начало 80-х годов

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

1981 год

Эпидемия загрузочного вируса Elk Cloner на компьютерах Apple II. Вирус записывался в загрузочные сектора дискет, к которым шло обращение. Проявлял он себя весьма многосторонне — переворачивал экран, заставлял мигать текст на экране и выводил разнообразные сообщения.

1986 год

Пандемия первого IBM PC-вируса Brain. Вирус, заражающий 360 Кбайт дискеты, практически мгновенно разошелся по всему миру. Причина такого "успеха" — скорее всего, в неготовности компьютерного общества к встрече с таким явлением, как компьютерный вирус.

Вирус был написан в Пакистане братьями Basit и Amjad Farooq Alvi, оставившими в вирусе текстовое сообщение, содержащее их имена, адрес и телефонный номер. Как утверждали авторы вируса, являвшиеся владельцами компании по продаже программных продуктов, они решили выяснить уровень пиратского копирования в их стране. К сожалению, их эксперимент вышел за границы Пакистана.

Интересно, что вирус Brain являлся также и первым "стелс"-вирусом — при попытке чтения зараженного сектора он "подставлял" его незараженный оригинал.

В том же 1986 году программист по имени Ральф Бюргер (Ralf Burger) обнаружил, что программа может делать собственные копии путем добавления своего кода к выполняемым DOS-файлам. Его первый вирус, названный VirDem, демонстрировал эту возможность. Этот вирус был проанонсирован в декабре 1986 г. на форуме компьютерного "андеграунда"— хакеров, специализировавшихся в то время на взломе VAX/VMS-систем (Chaos Computer Club in Hamburg).

1987 год

Появление вируса Vienna. Копия этого вируса попадает в руки все того же Ральфа Бюргера, который дизассемблирует вирус и помещает результат в свою книгу "Computer Viruses: A High Tech Desease" (русский аналог —"Пишем вирус и антивирус" г. Хижняка). Книга Бюргера популяризовала идею написания вирусов, объясняла, как это делается, и служила, таким образом толчком к написанию сотен или даже тысяч компьютерных вирусов, частично использовавших идеи из этой книги.

В том же году независимо друг от друга появляется еще несколько вирусов для IBM PC. Это знаменитые в прошлом Lehigh, заражающий только COMMAND.COM, Suriv-1 (другое название — Aprillst), заражающий СОМ-файлы, Suriv-2, заражающий (впервые) ЕХЕ-файлы, и Suriv-3, заражающий как СОМ-, так и ЕХЕ-файлы. Обнаружены также несколько загрузочных вирусов (Yale в США, Stoned в Новой Зеландии и Ping-pong в Италии) и первый самошифрующийся файловый вирус Cascade.

Не остались в стороне и не-1ВМ-компьютеры: было обнаружено несколько вирусов для Apple Macintosh, Commodore Amiga и Atari ST.

В декабре 1987 г. случилась первая известная повальная эпидемия сетевого вируса Cristmas Tree, написанного на языке REXX и распространявшего себя в операционной среде VM/CMS. 9 декабря вирус был запущен в сеть Bitnet в одном из университетов Западной Германии, проник через шлюз в European Academic Research Network (EARN) и затем — в сеть IBM Vnet. Через четыре дня (13 декабря) вирус парализовал сеть: она была забита его копиями (см. пример про клерка несколькими страницами выше). При запуске вирус выводил на экран изображение новогодней (вернее, рождественской) елочки и рассылал свои копии всем пользователям сети, чьи адреса присутствовали в соответствующих системных файлах NAMES и NETLOG.

1988 год

В пятницу 13 мая 1988 г. сразу несколько фирм и университетов разных стран мира познакомились с вирусом Jerusalem — в этот день вирус уничтожал файлы при их запуске. Это, пожалуй, один из первых MS-DOS-вирусов, ставший причиной настоящей пандемии: сообщения о зараженных компьютерах поступали из Европы, Америки и Ближнего Востока. Название, кстати, вирус получил по месту одного из инцидентов — университета в Иерусалиме.

Вместе с другими вирусами (Cascade, Stoned, Vienna) вирус Jerusalem поселился в тысячах компьютерах, оставаясь незамеченным — антивирусные программы еще не были распространены в то время так же широко, как сегодня, а многие пользователи и даже профессионалы еще не верили в существование компьютерных вирусов. Показателен тот факт, что в том же году компьютерный гуру и человек-легенда Питер Нортон сказал, что вирусов нет. Он объявил их мифом и сравнил со сказками о крокодилах, живущих в канализации Нью-Йорка. Этот казус, однако, не помешал фирме Symantec через некоторое время начать собственный антивирусный проект — Norton Anti-Virus.

Стали появляться заведомо ложные сообщения о компьютерных вирусах, никакой реальной информации не содержащие, но вносившие панику в стройные ряды компьютерных пользователей. Одна из первых таких "злых шуток" (современный термин—virus hoax) принадлежит некому Mike RoChenIe (псевдоним похож на "MicroChannel"). Он разослал на станции BBS большое количество сообщений о якобы существующем вирусе, который передается от модема к модему и использует для этого скорость 2400 бод. Как это ни смешно, многие пользователи отказались от стандарта тех дней 2400 и снизили скорость своих модемов до 1200 бод. Подобные hoax'ы появляются и сейчас. Наиболее известные на сегодняшний день — GoodTimes и Aol4Free.

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

Вирус использовал для своего размножения ошибки в операционной системе Unix для VAX и Sun Microsystems. Помимо ошибок в Unix вирус использовал несколько других оригинальных идей, например подбор паролей пользователей. (Об этом вирусе и связанном с ним инциденте можно прочитать в достаточно подробной и интересной статье Игоря Моисеева в журнале "КомпьютерПресс", 1991, № 8, 9.)

Декабрь 1988: сезон вирусов-червей продолжается, на этот раз в сети DECNet. Вирус-червь HI.СОМ выводил на экран изображение елочки и извещал пользователей, что им следует "stop computing and have a good time at home!!!".

В этом году создана новая антивирусная программа — Dr. Solomon's Anti-Virus Toolkit, являющаяся на сегодняшний день одним из самых мощных антивирусов.

1989 год

Обнаружены новые вирусы — Datacrime, FuManchu и целые семейства Vacsina и Yankee. Первый имел крайне опасное проявление — с 13 октября по 31 декабря он форматировал винчестер. Этот вирус вырвался "на свободу" и вызвал повальную истерию в средствах массовой информации в Голландии и Великобритании.

Сентябрь 1989: на рынок выходит еще одна антивирусная программа — IBM Anti-Virus.

Октябрь 1989: в сети DECNet зафиксирована очередная эпидемия вируса-червя — WANK Worm.

Декабрь 1989: инцидент с "троянским конем" Aids, было разослано 20 000 его копий на дискетах, помеченных как "AIDS Information Diskette Version 2.0". После 90 загрузок системы "троянец" шифровал имена всех файлов на диске, делал их невидимыми (атрибут hidden) и оставлял на диске только один читаемый файл — счет на 189 долл., который следовало послать в РО Box 7, Panama. Автор "троянца" был пойман и приговорен к тюремному заключению.

Следует отметить тот факт, что 1989 год являлся началом повальной эпидемии компьютерных вирусов в России — все те же вирусы Cascade, Jerusalem и Vienna заполонили компьютеры наших соотечественников. К счастью, российские программисты довольно быстро разобрались с принципами их работы, и практически сразу появилось несколько отечественных противоядий-антивирусов.

Мое первое знакомство с вирусом (это был вирус Cascade) произошло в октябре 1989 г. Вирус был обнаружен на моем рабочем компьютере. Именно это и послужило для меня толчком к профессиональной переориентации на создание программ-антивирусов. Кстати, тот первый вирус я вылечил популярной в те времена антивирусной программой ANTI-KOT Олега Котика. Месяцем позже второй инцидент (вирус Vacsina) был исчерпан при помощи первой версии моего антивируса — V (который несколькими годами позже был переименован в AVP — AntiViral Toolkit Pro). К концу 1989 г. на просторах России паслось уже около десятка вирусов (перечислены в порядке их появления): две версии Cascade, несколько вирусов Vacsina и Yankee, Jerusalem, Vienna, Eddie, Ping-pong.

1990 год

Этот год принес несколько довольно заметных событий. Первое из них — появление полиморфик-вирусов Chpmeleon (другое название — V2P1, V2P2 и V2P6). До этого момента антивирусные программы для поиска вирусов пользовались так называемыми "масками" — кусками вирусного кода. После обнаружения вирусов Chameleon разработчики антивирусов были вынуждены искать другие методы детектирования вирусов.

Второе событие — появление болгарского "завода по производству вирусов": огромное число новых вирусов имело болгарское происхождение. Это были целые семейства вирусов Murphy, Nomenclatura, Beast (или 512, Number-of-Beast), новые модификации вируса Eddie и др. Особенную активность проявлял некто Dark Avenger, выпускавший в год по нескольку новых вирусов, использовавших принципиально новые алгоритмы заражения и скрытия себя в системе. В Болгарии же впервые появилась и первая BBS, ориентированная на обмен вирусами и информацией для вирусописателей.

В июле 1990 г. произошел инцидент с компьютерным журналом PC Today (Великобритания). Он содержал гибкий диск, зараженный вирусом DiskKiller. Было продано более 50 000 экземпляров журнала.

Во второй половине 1990 г. появились два "стелс"-монстра — Frodo и Whale. Оба вируса использовали крайне сложные "стелс"-алгоритмы, а девя-тикилобайтный Whale к тому же применял несколько уровней шифрования и антиотладочных приемов.

Были выпущены и первые известные мне отечественные вирусы:

Peterburg, Voronezh и ростовский LoveChild.

1991 год

Популяция компьютерных вирусов непрерывно растет, достигая уже нескольких сотен. Растет и антивирусная активность: сразу два софтверных монстра, Symantec и Central Point, выпускают собственные антивирусные программы — Norton Anti-Virus и Central Point Anti-Virus. Следом появляют • ся менее известные антивирусы от Xtree и Fifth Generation.

В апреле разразилась настоящая эпидемия файлово-загрузочного полиморфик-вируса Tequila, а в сентябре подобная "история" произошла с вирусом Amoeba. Россию эти события практически не затронули.

Лето 1991: эпидемия вируса Dir_II, использовавшего принципиально новые способы заражения файлов (link-вирус).

В целом 1991 год был достаточно спокойным — этакое затишье перед бурей, разразившейся в 1992-м.

1992 год

Вирусы для не-IBM PC и не-MS-DOS практически забыты: "дыры" в глобальных сетях закрыты, ошибки исправлены и сетевые вирусы-черви потеряли почву для распространения. Все большую и большую значимость начинают приобретать файловые, загрузочные и файлово-загрузоч-ные вирусы для наиболее распространенной операционной системы (MS-DOS) на самом популярном компьютере (IBM PC). Количество вирусов растет в геометрической прогрессии, различные инциденты с вирусами происходят чуть ли не ежедневно. Развиваются различные антивирусные программы, выходят десятки книг и несколько журналов, посвященных вирусам.

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

Март 1992: эпидемия вируса Michelangelo (March6) и связанная с этим истерия. Наверное, это первый известный случай, когда антивирусные компании раздували шумиху вокруг вируса не для того, чтобы защитить пользователей от какой-либо опасности, а для того, чтобы привлечь внимание к своему продукту, т. е. в целях извлечения коммерческой выгоды. Так, одна американская антивирусная компания заявила, что 6 марта будет разрушена информация более чем на пяти миллионах компьютеров. В результате шумихи прибыли различных антивирусных фирм поднялись в несколько раз, а от вируса в действительности пострадало всего около 10 000 машин.

Июль 1992: появление первых конструкторов вирусов VCL и PS-MPC, которые увеличили и без того не маленький поток новых вирусов и, как и MtE в своей области, подтолкнули вирусописателей к созданию других, более мощных конструкторов.

Конец 1992: первый вирус для Windows, заражающий выполняемые файлы этой ОС, открыл новую страницу в вирусописательстве.

1993 год

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

• PMBS, работающий в защищенном режиме процессора Intel 80386;

• Strange (или Hmm) — сольное выступление на тему "стелс"-вирусов, однако выполненное на уровне аппаратных прерываний INT ODh и INT 76h;

• Shadowgard и Carbuncle, значительно расширившие диапазон алгоритмов компаньон-вирусов;

• Emmie, Metallica, Bomber, Uruguay и Cruncher — использование принципиально новых приемов "сокрытия" своего кода в зараженных файлах.

Весной 1993 г. Microsoft выпустила собственный антивирус MSAV, основой для которого послужил CPAV от Central Point.

1994 год

Все большее значение приобретает проблема вирусов на CD-дисках. Быстро став популярными, эти диски и оказались одним из основных путей распространения вирусов. Зафиксировано сразу несколько инцидентов, когда вирус попадал на мастер-диск при подготовке партии CD-дисков. В результате на компьютерный рынок были выпущены довольно большие тиражи (десятки тысяч) зараженных CD-дисков. Естественно, что об их лечении говорить не приходится — их надо просто уничтожать.

В начале года в Великобритании появились два крайне сложных поли-морфик-вируса — SMEG.Pathogen и SMEG.Queeg (до сих пор не все антивирусные программы в состоянии достичь 100%-ного результата при их обнаружении). Автор вирусов помещал зараженные файлы на станции BBS, что стало причиной настоящей эпидемии и паники в средствах массовой информации.

Еще одну волну паники вызвало сообщение о якобы существующем вирусе GoodTimes, распространяющем себя по сети Интернет и заражающем компьютер при получении электронной почты. Такого вируса на самом деле не было, однако через некоторое время был обнаружен обычный DOS-вирус с текстом "Good Times", вирус этот получил название GT-Spoof.

Активизируются правоохранительные органы: летом 1994 г. в Великобритании был "вычислен" и арестован автор SMEG. Примерно в то же время и там же арестована целая группа вирусописателей, называвшая себя ARCV (Assotiation for Really Cruel Viruses). Некоторое время спустя еще один автор вирусов был арестован в Норвегии.

Появляется несколько новых достаточно необычных вирусов.

Январь 1994: Shifter — первый вирус, заражающий объектные модули (OBJ-файлы). Phantomi — эпидемия первого полиморфик-вируса в Москве. Апрель 1994: SrcVir — семейство вирусов, заражающих исходные тексты программ (на Си и Паскале).

Июнь 1994: OneHalf — начало повальной эпидемии вируса, до сих пор являющегося самым распространенным в России.

Сентябрь 1994: "ЗАРАЗА" — эпидемия файлово-загрузочного вируса, использующего крайне необычный способ внедрения в MS-DOS. Ни один антивирус не оказался готовым к встрече с подобного типа монстром.

В 1994 г. (весной) перестал существовать один из антивирусных лидеров того времени — Central Point. Он был приобретен фирмой Symantec, которая до того уже успела поглотить несколько небольших фирм, занимавшихся антивирусными разработками, — Peter Norton Computing, Certus International и Fifth Generation Systems.

1995 год

Ничего действительно заметного в области DOS-вирусов не произошло, хотя появилось несколько достаточно сложных вирусов-монстров типа NightFall, Nostardamus, Nutcracker и таких забавных вирусов, как "двуполый" вирус RMNS и ВАТ-вирус Winstart. Широкое распространение получили вирусы ByWay и DieHard2 — сообщения о зараженных компьютерах были получены практически со всего мира.

Февраль 1995: произошел инцидент с Microsoft: на диске, содержащем демонстрационную версию Windows 95, обнаружен вирус Form. Копии этого диска Microsoft разослала бета-тестерам, один из которых не поленился проверить диск на вирусы.

Весна 1995: анонсирован альянс двух антивирусных компаний — ESaSS (ThunderBYTE anti-virus) и Norman Data Defence (Norman Virus Control). Эти компании, выпускающие достаточно сильные антивирусы, объединили усилия и приступили к разработке единой антивирусной системы.

Август 1995: один из поворотных моментов в истории вирусов и антивирусов — в "живом виде" обнаружен первый вирус для Microsoft Word (Concept). Буквально за месяц вирус "облетел" весь земной шар, заполонил компьютеры пользователей MS-Word и прочно занял первое место в статистических исследованиях, проводимых различными компьютерными изданиями.

1996 год

Январь 1996: два достаточно заметных события — появился первый вирус для Windows 95 (Win95.Boza) и началась эпидемия крайне сложного поли-морфик-вируса Zhengxi в Санкт-Петербурге.

Март 1996: первая эпидемия вируса для Windows З.х. Его имя — Win.Tentacle. Этот вирус заразил компьютерную сеть в госпитале и нескольких других учреждениях во Франции. Это был первый Windows-вирус, вырвавшийся на свободу. До той поры (насколько мне известно) все Windows-вирусы жили только в коллекциях и электронных журналах вирусописателей, а в "живом виде" встречались только загрузочные, DOS- и макровирусы.

Июнь 1996: OS2.AEP — первый вирус для OS/2, корректно заражающий ЕХЕ-файлы. До этого в OS/2 встречались только вирусы, которые записывались вместо файла, уничтожая его или действуя методом "компаньона".

Июль 1996: Laroux — первый вирус для Microsoft Excel, к тому же пойманный в "живом виде" (практически одновременно в двух нефтедобывающих компаниях — на Аляске и в ЮАР). Как и у MS Word-вирусов, принцип действия Laroux основывается на наличии в файлах так называемых макросов — программ на языке Бейсик. Такие программы могут быть включены в электронные таблицы Excel и документы MS Word. Как оказалось, встроенный в Excel язык Бейсик также позволяет создавать вирусы. Этот же вирус в апреле 1997 г. стал причиной эпидемии в компьютерных фирмах Москвы.

1997 год

Февраль 1997: Linux.Bliss — первый вирус для Linux (разновидность Unix). Так вирусы заняли еще одну "биологическую" нишу.

Февраль — апрель 1997: макровирусы перебрались и в Office 97. Первые из них оказались всего лишь "отконвертированными" в новый формат макровирусами для Word 6/7, однако практически сразу появились вирусы, ориентированные только на документы Office 97.

Март 1997: ShareFun — макровирус, поражающий MS Word 6/7. Для своего размножения использует не только стандартные возможности MS Word, но также рассылает свои копии по электронной почте MS-Mail.

Апрель 1997: Homer — первый сетевой вирус-червь, использующий для своего размножения File Transfer Protocol (ftp).

Июнь 1997: появление первого самошифрующегося вируса для Windows 95. Вирус, имеющий российское происхождение, был разослан на несколько BBS в Москве, что стало причиной эпидемии.

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

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

Венедикт Ерофеев. Москва — Петушки

1.5. Перспективы: что будет завтра и послезавтра

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

Что будет завтра?

Чего ожидать от компьютерного андеграунда в последующие годы? Скорее всего основными проблемами останутся: 1) полиморфик-ООЗ-вирусы, к которым добавятся проблемы полиморфизма в макровирусах и вирусах для Windows и OS/2; 2) макровирусы, которые будут находить все новые и новые приемы заражения и скрытия своего кода в системе; 3) сетевые вирусы, использующие для своего распространения протоколы и команды компьютерных сетей. Сетевые вирусы находятся пока на самой ранней стадии развития — делают первые робкие попытки самостоятельно распространять свой код по MS-Mail и с помощью ftp, однако все еще впереди.

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

Что будет послезавтра?

Что будет послезавтра и как долго вообще будут существовать вирусы? Для того чтобы ответить на этот вопрос, следует определить, где и при каких условиях водятся вирусы.

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

— незащищенность операционной системы;

— наличие разнообразной и довольно полной документации по ОС и "железу";

— широкое распространение этой ОС и этого "железа".

Следует отметить, что понятие операционной системы достаточно растяжимое. Например, для макровирусов ОС являются редакторы Word, Excel и Office 97, поскольку именно редакторы, а не Windows предоставляют макровирусам (т. е. программам на Бейсике) необходимые ресурсы и функции.

Если в ОС присутствуют элементы защиты информации, вирусу будет крайне трудно поразить объекты своего нападения, так как для этого потребуется (как минимум) взломать систему паролей и привилегий. В результате работа, необходимая для написания вируса, окажется по силам только профессионалам высокого уровня (вирус Морриса для VAX — пример этого). А у профессионалов, на мой взгляд, уровень порядочности все-таки намного выше, чем в среде потребителей их продукции, и, следовательно, число созданных и запущенных в большую жизнь вирусов еще более сократится.

Для массового производства вирусов необходима информация о среде их обитания. Какой процент от числа системных программистов, работающих на мини-ЭВМ в ОС Unix, VMS и т. д., знает систему управления процессами в оперативной памяти, полные форматы выполняемых файлов и загрузочных записей на диске (т. е. информацию, необходимую для создания вируса)? И следовательно, какой процент от их числа в состоянии вырастить настоящего полноценного зверя? Другой пример — операционная система Novell NetWare, достаточно популярная, но крайне слабо документированная. В результате мне пока не известно ни одного вируса, поразившего выполняемые файлы Novell NetWare, несмотря на многочисленные обещания вирусописателей выпустить такой вирус в ближайшее время.

Ну а по поводу широкого распространения ОС как необходимого условия для вирусного нашествия, и говорить надоело: на 1000 программистов только 100 способны написать вирус, на эту сотню приходится один, который эту идею доведет до завершения. Теперь полученное соотношение умножаем на число тысяч программистов и получаем результат: с одной стороны, 15 000 или даже 20 000 полностью IBM-совместимых вирусов, с другой — несколько сот вирусов для Apple-Macintosh. Такое же несоответствие наблюдается и в сравнении общего числа вирусов для Windows (несколько десятков) и для OS/2 (несколько штук).

Приведенным выше трем условиям "расцвета" компьютерных вирусов удовлетворяют сразу несколько OS (включая редакторы), производимых фирмой Microsoft (DOS, Windows, Win95/NT и Word, Excel, Office 97), что дает благодатную почву для существования самых разнообразных файловых и макровирусов. Удовлетворяют приведенным условиям также и стандарты разбиения жестких дисков. Результат — разнообразные варианты загрузочных вирусов, поражающих систему в момент ее загрузки.

Довольно очевидно, что в обозримом будущем фирмы IBM и Apple не собираются уступать массовый рынок своим конкурентам (на радость Apple- и IBM-программистам), даже если для этого двум фирмам придется объединить усилия. Не представляется возможным и усечение потока информации по наиболее распространенным системам, так как это ударит по числу приложений для них, а следовательно, и по их "продаваемости". Остается только одно — защита ОС. Однако защищенность ОС требует исполнения некоторых правил (паролей и т. п.), что приводит к ряду неудобств. Поэтому мне кажется маловероятным, что такие ОС станут популярными в среде обычных пользователей — секретарш, бухгалтеров, на домашних компьютерах, и т. д., и т. п., либо функции защиты будут отключаться пользователем еще при установке ОС.

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

X