История болезни компьютерных систем

15 ноябрь, 1998 - 20:29Сергей Галушка

В рамках публикации архивных материалов нашего издания предлагаем вашему вниманию статью из №43 (162) «Компьютерного Обозрения» от 12 ноября 1998 г. В ней изложена краткая история "вирусописательства" к тому моменту.

Еще в середине 90-х годов проблема борьбы с компьютерными вирусами находилась в центре внимания. Однако в последнее время за бурным потоком информации о новых процессорах, программных пакетах, различ-ной периферии и ростом Internet эта тема как-то потерялась из виду. Такое положение дел вряд ли можно считать нормальным, так как наряду с развитием всей вычислительной техники создатели компьютерных вирусов тоже не стоят на месте. Вообще же на территории стран СНГ специальность «вирусописателя» была всегда в почете. Многие системные и даже антивирусные программы иногда используют идеи и приемы программирования, изобретенные авторами вирусов.

ВНАЧАЛЕ БЫЛИ... «КРОЛИКИ»

Сегодня многие спорят о том, когда же на свет появился первый компьютерный вирус. Следует отметить, что еще в середине нашего века у отцов кибернетики фон Неймана и Винера уже были труды, посвященные исследованиям самовоспро-изводящихся конечных автоматов. Однако принято считать, что первые прототипы «электронных инфекций» возникли в конце 60-х — начале 70-х годов. На мэйнфреймах того времени периодически появлялись программы, которые метко прозвали «кроликами» (rabbits). Подобно упомянутым грызунам, эти программы быстро мно-жились и занимали системные ресурсы, снижая, таким образом, производитель-ность компьютеров. «Кролики» не передавались между системами и были попросту обыкновенными шалостями системных программистов. Однако вскоре в компьюте-рах типа Univac 1108 обнаружили программу, получившую название Pervading Animal и способную к самораспространению, правда, вирусом тогда ее еще никто не называл.

Термин «компьютерный вирус» в своих работах впервые употребил сотрудник Лехайского университета (США) Фред Коэн (Fred Cohen) в 1983 г. В то время он проводил научные эксперименты на VAX-системах фирмы DEC, результаты которых обнародовал в 1984 г. на 7-й конференции по проблемам информационной безопасности, проходившей в США. Фред Коэн разделил вирусы на две большие группы: к первой он отнес те, которые написаны для определенных научных исследований в области информатики, ко второй — находящиеся в «диком» (in the wild) состоянии и произве-денные с целью нанесения вреда пользователям. Вирусы, относящиеся к первой груп-пе, обычно не получают широкого распространения, но «дикие» вирусы могут нано-сить существенный вред пользователю и размножаются с огромной быстротой. Пер-вые подобные вирусы на платформе Apple II появились в 1981 г. В настоящее время «электронные инфекции» благополучно прижились практически на всех платформах.

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

В настоящее время известно около 20 тыс. различных вирусов, и это число про-должает неуклонно расти. И не удивительно. Ведь для создания простейшего виру-са может потребоваться всего лишь несколько часов, а если использовать специ-альные генераторы, о которых речь пойдет ниже, то и вовсе считанные минуты. Правда, разработка сложного полиморфного вируса может отнять несколько ме-сяцев напряженной и кропотливой работы. Кстати, существуют вирусы, размер выполняемого кода которых едва превышает 3 KB, зато их «исходники» занимают свыше 30 страниц машинописного текста. Значительный объем таких творений уходит на реализацию алгоритмов, маскирующих присутствие вируса в системе.

У нас впервые всерьез заговорили о вирусах примерно в конце 80-х годов во времена крупной эпидемии на территории бывшего СССР.

В ПАМЯТИ НАРОДНОЙ...

Но давайте обо всем по порядку. Так, в 1986 г. был обнаружен Brain — один из первых загрузочных вирусов для IBM-PC (зара-жал дискеты 360 KB), который стремительно распространился на Западе, правда, эта эпидемия в то время практически не коснулась СССР. Написан был вирус в Пакистане братьями Basit и Amjad Farooq Alvi, оставившими в теле вируса текстовое сообщение, содержащее их имена, адрес и даже номера телефо-нов. По утверждению авторов, они являлись владельцами ком-пании по продаже программных продуктов и решили выяснить уровень пиратского копирования в их стране. К сожалению, этот эксперимент вышел за рамки Пакистана.

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

В 1987 г. все тот же Ральф Бюргер, анализируя файловый вирус Vienna, многие из своих соображений изложил в книге «Computer Viruses: A High Tech Desease», которая, несомненно, популяризовала идеи создания вирусов и тем самым дала тол-чок к написанию сотен или даже тысяч программ-паразитов. В том же году были обнаружены несколько вирусов для Apple Macintosh, Commodore Amiga и Atari ST. В декабре 1987 г. произошла первая известная эпидемия сетевого вируса Cristmas Tree, распространявшегося в операционной среде VM/CMS. При запуске вирус выводил на экран изображение рождественской елки и рассылал свои копии всем пользователям сети, чьи адреса присутствовали в соответствующих системных файлах.

В пятницу, 13 мая 1988 г., многих пользователей ПК одновременно в нескольких странах мира охватила паника, по-скольку вирус Jerusalem уничтожил нужную информацию. Пандемия этого вируса охватила Европу, Америку и Ближний Восток. Интересен тот факт, что в этом же году всем известный Питер Нортон поставил под сомнение существо-вание вирусов. Он объявил их «несуществующим мифом» и сравнил со «сказками о крокодилах, которые водятся в канализации Нью-Йорка». Этот казус, однако, не помешал фирме Symantec в середине 90-х начать собственный антивирусный проект — Norton AntiVirus.

И все-таки в те времена «вирусописатели» не отличались особой изобретательностью. Все их творения были чем-то похожи друг на друга: лезли в память, портили данные, цеплялись к файлам. С появлением первых вирусов-невидимок ситуация резко изменилась. Например, вирус Frodo.4096 при обращении через функции DOS к зараженным файлам перехватывал соответствующие прерывания и изменял информацию таким образом что файл появлялся перед пользователем в незаряженном виде И все-таки он использовал лишь известные функции MS-DOS. Но вскоре «электронная инфекция» полезла внутрь ядра DOS, используя ее недокументированные возможности (stealth-bhdvc Beast.512). Однако бороться с «невидимками» научились довольно быстро: главное — очистить RAM, а затем можно спокойно лечить зараженные файлы.

Побольше хлопот стали доставлять самошифрующиеся вирусы ибо для их идентификации и удаления приходилось разрабатывать специальные алгоритмы. Но самую сильную «головную боль» многим пользователям несли полиморфные вирусы. В них использовалась другая идея невидимости: как и их «предки», в большинстве случаев они шифровались, однако при расшифровке команды не повторялись в различных инфицированных файлах. Первый вирус такого рода под названием Chameleon появился в начале 1990-х годов. А весной 1991 г. почти весь мир был охвачен пандемией полиморфного вируса Tequila. К счастью, тогда она практически не коснулась нас, а пришла к нам лишь три года спустя вместе с вирусом Phantom1.

ПРОИЗВОДСТВЕННЫЕ МАСШТАБЫ

Изящные идеи, положенные в основу написания самоши-фрующихся полиморфных вирусов, продолжали завоевывать лучшие умы матерых вирусописателей. Это привело к созданию первых генераторов полиморфных вирусов, которые представляли собой обыкновенные OBJ-файлы. Теперь для создания настоящего полиморфного вируса не нужно было корпеть над алгоритмами собственных шифровщиков. Чтобы получить полиморфного мутанта, достаточно было скомпоновать объектные модули генератора и нешифрованного вируса. К счастью, первые генераторы не получили широкого распространения, и, следовательно, у создателей антивирусных средств появился определенный запас времени для разработки методов борьбы с полиморфными мутантами.

Итак написание вирусов постепенно ставится на промышленную основу. Летом 1992 г. был выпущен в свет первый конструктор вирусного кода для IBM-совместимых ПК — пакет VCL1 00 (Virus Creation Laboratory). Как и подобает хорошему приложению, он был снабжен стандартным оконным интерфейсом. С помощью системы меню можно выбрать тип вируса, поражаемые объекты (сот и/или ехе-фаилы). наличие или отсутствие самошифровки, противодействие отладчику, внутренние информационные текстовые строки, подключение до десяти эффектов, сопровождающих действия вируса, и т. п. VCL позволяет генерировать исходные и хорошо откомментированные тексты вирусов (файлы, содержащие ассемблерный текст), объектные модули и непосредственно зараженные файлы.

Таким образом, умышленно или нет, генераторы вирусов свели творческую профессию вирусолисателя к весьма заурядному ремеслу. К концу 1993 г. был известен уже цельи РЯД генераторов, в том числе МТЕ 0.90 (Mutation Еingme) JPE(Trident Polymorphic Engine), NED (Nuke Encryption Device), DAME (Dark Angel’s Multiple Encryptor) и другие. С тех пор новые полиморфные генераторы начинают появляться по несколько штук в год, они используют более сложные методы генерации полиморфного кода, начинают распространяться через BBS, снабжаются документацией и примерами использования.

ПРОЩАЙ, DOS!

DOS была, пожалуй, самой благоприятной средой для распространения вирусов. Однако уже в конце 1992 г. появился первый вирус для Windows, спустя полгода для OS/2. а в январе 1996 г. — и для Windows 95. Более того, в 1993 г. была предпринята первая попытка написать вирус, работающий в защищенном режиме процессора Intel 80386. Это был загрузочный вирус PMBS, названный так по строке текста внутри его кода Однако он не мог ужиться ни с одной программой или драйвером, которые также использовали в своей работе защищенный режим, и потому не получил широкого распространения Эта попытка написать вирус-супервизор так и оставалась чуть ли ни единственной из известных вплоть до весны 199/ г., когда один московский автор представил PM.Wandere вполне «удачную» реализацию вируса, работающего в защищенном режиме (в своем теле он содержит текст «Wanderer, © Р Demenuk»). Обнаружить резидентную копию данного вируса, находящегося в нулевом кольце защищенного режима процессора, обычными способами невозможно. Для этого необходимо переключаться в защищенный режим с наивысшими привилегиями и производить его поиск. Однако, похоже, что подобные вирусы пока не могут доставлять серьезных проблем пользователям Windows 9x/NT, OS/2, Linux. Вирус-супервизор должен «засыпать» во время работы подобных ОС, что позволяет его легко обнаруживать и удалять. Но он может принести немало неприятностей пользователям «чистой» DOS, поскольку обнаружить его в этом случае практически невозможно.

Настораживает тот факт, что очередные попытки «вирусописателей» освоить защищенный режим стали возникать все чаще и чаще. Так, уже в конце 1997 г. некий 15-летнии мальчик из Венесуэлы представил первый в мире вирус Win 32 Cabanas который может поражать операционные системы Win 32s/ Windows 95/Windows NT. Трудно себе представить, чтобы столь юное дарование сумело овладеть вершинами программистского искусства, поэтому вполне возможно, что под таким оригинальным псевдонимом скрывается группа опытных Но это лишь мои догадки... Замечу также, что Win 32.Cabanas, по словам автора, был прислан только двум разработчикам антивирусных средств — Евгению Касперскому и Игорю Данилову, кстати, Dr Web, выпущенный еще в конце октября прошлого года, может прекрасно выявлять и уничтожать этот вирус.

И все-таки по степени распространения «почетное» первое место сегодня занимают макровирусы. Еще в 1995 г., накануне премьеры Windows 95, незаметно появился вирус, использующий принципиально новые методы заражения. Он инфицировал документы Microsoft Word. Многие фирмы, производящие антивирусные программы, оказались не готовы к такому повороту событий. Некоторые из них, например, стали выпускать документы-антивирусы, действовавшие примерно так же, как и вирус, однако не тиражируя, а уничтожая его. Кета спешно пришлось править и литературу по антивирусным проблемам. Ведь раньше считалось, что заразить компьютер при чтении файла невозможно. А тем временем вирус Concept продолжал победное шествие по планете, за несколько месяцев завладев тысячами (если не миллионами) компьютеров^ И это не удивительно, ведь передача текстов в формате MS Word стала де-факто одним из стандартов Internet.

Спустя год, летом 1996 г" появился вирус Laroux, заражающий таблицы MS Excel. В этом же году увидели свет и первые конструкторы макровирусов. Не заставили себя долго ждать и полиморфные макровирусы для MS Word 95 которые стали настойчиво атаковать многие ПК в начале 1997 г. Кстати, к написанию известного многим WM.Cap приложил свою руку все тот же венесуэльский мальчик. Выход MS Office 97 вирусописатели встретили в полной «боевои» готовности, тут же распространив к нему несколько десятков своих разнообразных творений.

Долгое время бытовало мнение, что для многопользовательских систем вирусы создавать слишком трудно. Однако тому же Фреду Коэну потребовалось всего 8 часов, чтобы написать экспериментальный вирус, способный существовать и размножаться в среде Unix. Кстати, разработка наиболее хитроумных DOS-вирусов требует от программистов гораздо больших усилий. Тогда почему же в многопользовательских системах вирусы встречаются значительно реже, чем на ПК? Во-первых, потому что последние получили широкое распро странение во всем мире, а следовательно, у их пользователей намного чаще возникает необходимость обмениваться данными с помощью электронных носителей. Во-вторых, в правилах многих администраторов многопользовательских систем обмениваться исходными текстами ПО, но не готовыми к исполнению программами, так как разногласия в архитектуре обо рудования могут вызвать некорректную работу последних. Таким образом, для широкого распространения вирусов необходимы большое количество однородных систем и богатство приемов обмена файлами, содержащими, в частности, коды выполняемых программ, что мы и имеем в случае ПК.

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

Хотя с другой стороны. Сеть дает и массу возможностей по усилению антивирусной защиты. Во-первых, с помощью конференций и специализированных WWW-серверов системные администраторы оперативно получают информацию о новых вирусах и средствах борьбы с ними. Во-вторых, существуют бесплатные антивирусные службы в Internet (напри мер, www.dials.ru и др.), где вы можете в режиме on-line проверить любой файл с вашей локальной машины или получить свежую версию антивируса.