«Все время слышу, что в Интернете появляются новые вирусы, которые, проникая в компьютеры, клонируют себя и рассылают по всем адресам, хранящимся в адресной книге, а то и выводят из строя все программы. Вирус, как я понимаю, — файл очень малого объема. Кок же удается запрограммировать в нем столько всяких задач?
Максим Беляков , Москва».
Ответ на вопрос Максима и многих других читателей дает глава из книги известного немецкого хакера ***, опубликованная в Интернете. Главу мы печатаем в сокращении. Имя, точнее, псевдоним автора мы не указываем, поскольку в тексте есть более конкретные советы по «изготовлению» вирусов, а главное — по проникновению в закрытые коммерческие сети.
Итак, ты решил в дополнение к не одной сотне вирусов, портящих нервы, файлы и компьютеры по всему миру, написать свой собственный вирус и теперь ждешь от меня советов.
Перво-наперво подумай: серьезны ли твои намерения?
Ведь сочинение вирусов — дело подсудное. Несколько моих коллег, отличившихся на этом поприще, уже за решеткой. Впрочем, знание принципов написания и работы вирусов может быть полезно и для того, чтобы от них защищаться. Не зря же, например, в канадском Университете Калгари студентам преподают теперь новый курс под названием «Вирусы, черви и трояны». При этом дело, говорят, одной только теорией не ограничивается.
Всем студентам предстоит разрабатывать собственные версии нашумевших вирусов «I LOVE YOU» и «BUGBEAR», а может быть, и других, не менее вредных.
Кроме того, руководство университета обещает, что занятия будут проводиться в специальных секретных лабораториях, отключенных от Интернета и сотовых сетей, а также собирается принять все необходимые меры, дабы не допустить распространения «учебных» вирусов за пределы университета.
Так что будем пока считать, что у тебя, дорогой читатель, интерес к написанию вирусов тоже «теоретический». Если же не так, не обижайся, что я привожу в своей книге мало готовых листингов. В Интернете и так много подобных рекомендаций. Есть даже готовые «генераторы вирусов». Скачав себе такую программку, ты можешь запустить ее и выбрать в меню желаемые эффекты — от невинного «осыпания» символов на экране до форматирования винчестера, и новый вирус готов.
Учти только, что сами эти программы тоже частенько бывают уже зараженными, так что твой компьютер пострадает первым.
Так что пока — общие сведения о «жизнедеятельности» вирусов, а дальше действуй сам по собственному усмотрению и на свою ответственность, договорились?
Один из сайтов, на котором можно найти антивирусные программы.
1. Что такое компьютерный вирус?
Это, как всем известно, маленькая программа, которая умеет тайком создавать собственные копии в других файлах или на дискетах и расползаться по другим компьютерам, когда кто-то по незнанию копирует туда зараженные файлы (или передаваться по сети). А кроме того, в вирусы закладываются и некоторые другие действия, обычно выполняемые после некоторого числа заражений, — иногда безвредные, «в шутку», но чаще разрушительные, например, стирание каких-то файлов. Откуда такие программы берутся?
Все без исключения вирусы первоначально были кем-то написаны, а потом выпущены «на свободу». Зачем — вопрос особый. Одни их пишут для самоутверждения, считая писание вирусов высшим пилотажем хакерства. Другие — чтобы насолить обидчику (хотя вирус потом достанется и всем тем, кто ни в чем не повинен). Третьи — из чисто абстрактного хулиганства, с желанием напакостить всем окружающим. Случаев же самопроизвольного появления вирусов пока не было. По крайней мере, я о таком ни разу не слышал.
2. Заражение
Как вирус умудряется заразить компьютер, да еще сделать это незаметно для пользователя? Очень просто: обычно пользователь сам дает ему такую возможность — запускает на выполнение зараженный файл, открывает зараженное электронное письмо, документ в Word'e и т. д.
Обычно программа вируса сделана так, что при этом она первой получает управление и начинает выполняться. Например, для этого достаточно, чтобы в зараженном файле первой стояла команда безусловного перехода на дописанный в конце этого файла «кусок» программного кода вируса. Дальше вирус должен сделать две простые вещи:
— разместиться в оперативной памяти на все время работы компьютера, пока он включен (такие программы называются резидентными и могут постоянно контролировать некоторые процессы работы компьютера, например, запуск всех файлов);
— скопировать себя на жесткий диск, чтобы переждать время от выключения питания компьютера (когда, как известно, все содержимое оперативной памяти стирается) до его следующего включения, а когда это произойдет — опять-таки получить возможность запуска.
Обычно для этого вирус копируется в какую-либо программу (заражает ее), которая всегда запускается в ходе стартовой загрузки компьютера (например, в какую-нибудь программу операционной системы Windows), либо запуск вируса встраивается в загрузочный сектор системного диска, где прописаны команды, которые компьютер должен выполнять после включения питания.
Вот и все! Теперь та часть вируса, которая находится в оперативной памяти резидентно, будет отслеживать все случаи, когда пользователь запускает на выполнение или копирует на дискеты любые исполняемые программы, и дописывать себя в них (например, добавлять свою копию в конце такой программы, а в самом ее начале записывать команду перехода на свой код), — это и есть заражение.
Листинг вируса нетрудно найти в Интернете.
Если пользователь перепишет такой файл на дискету и запустит его на другом компьютере, то он тоже будет заражен. А когда компьютер будет выключен и потом включен снова, копия вируса, хранящаяся на системном диске, запустится и снова окажется в оперативной памяти как резидентная программа и станет заражать следующие исполняемые программы. Так что никаких особых хитростей здесь нет и особенно хвалиться «вирусописателям» нечем. Надо только уметь программировать на Ассемблере — языке команд компьютерного процессора.
3. Вирусы для Word'a
Кроме описанных выше, есть еще одна разновидность вирусов — так называемые «макровирусы». Они обычно размножаются в документах текстового редактора Word и ничего не портят, кроме этих файлов. Написать же их гораздо проще, чем настоящий вирус, потому как в Word'e, спасибо Microsoft'y, прямо-таки созданы для этого все возможности.
Во-первых, это встроенный язык написания макросов на основе Бейсика, который знают даже начинающие. Во-вторых, в этом макроязыке специально предусмотрены (!) готовые команды для автоматического запуска хранящегося в документе макроса сразу после открытия этого документа (а также перед его закрытием или сохранением на диск) и для копирования макросов в другой документ. И наконец, особый файл «шаблона» с именем Normal.dot хранится на диске вместе с имеющимися в нем макросами и всегда открывается сразу после запуска Word'a. Более удобной среды обитания для вируса найти трудно. Можно сказать, создатели Word'a предусмотрели в нем встроенные средства написания вирусов изначально!
Ими нетрудно воспользоваться. Чтобы вирус, содержащийся в виде макроса в некотором Word'овском документе, заражал Word на другом компьютере, достаточно дать этому макросу особое имя AutoOpen, а в нем предусмотреть вызов команд, копирующих данный макрос (в том числе под другими именами) в шаблон Normal. Тогда после первого же закрытия Word'a эти вирусные макросы будут сохранены на диске в новой копии этого шаблона и будут потом загружаться при каждом новом запуске Word'a. (Если только у пользователя в настройках программы Word не стоит опция «Запрос на сохранение» шаблона Normal.dot).
Тогда пользователь может вовремя заметить, что компьютер собирается записать подозрительно измененную копию этого шаблона. А копии этого макроса под именами AutoClose и AutoSave «проследят», чтобы вирусные макросы были скопированы во все другие документы Word во время их сохранения на диск или закрытия, чтобы обеспечить их заражение. Ну и, конечно же, среди комплекта этих макросов может быть предусмотрен еще один (или несколько), который выполняет какие-то действия, например, ищет в тексте фамилию ненавистного политика и добавляет к ней парочку нелестных эпитетов…
Вот и все! Остается только все эти макросы записать в некотором Word'oвском файле, сохранить его с расширением doc, при котором макросы хранятся в файле документа, дать ему завлекательное название и отправить первой потенциальной жертве. А заодно — заняться лечением от только что написанного вируса собственного компьютера, который, разумеется, тоже окажется зараженным.
(Кстати, сохранение документов Word в другом формате с расширением rtf — довольно надежная гарантия защиты от макровирусов, поскольку в rtf-файлах макросы не записываются.)
Кроме того, в Word версии 97 есть опция «предупреждать о наличии макросов в открываемом документе», позволяющая при их обнаружении блокировать запуск этих макросов, — это тоже хорошая защита от макровирусов. А если заражение все же произошло, надо воспользоваться антивирусной программой и вылечить как шаблон Normal.dot, так и все имеющиеся документы и шаблоны Word, или, в крайнем случае, заново переустановить этот текстовый редактор.
Одним словом — можешь дерзать. Но если из-за такого пустяка за тобой придут люди в форме, не забудь: тебя об этом предупреждали.
Перевод с немецкого Д. УСЕНКОВА