Компьютерные вирусы: модель информационной эпидемиологии

Компьютерные вирусы – участки кода, которые прививаются в существующие, законные программы и нарушают их нормальную работу. Они могут передаваться на дискетах или по сети. Технически их следует отличать от «червей» – те представляют собой целые программы и путешествуют по сетям в соответствии с собственными правилами. «Троянские кони», третья категория подобных программ, реплицируются не сами, а доверяют это людям, которые думают, что переписывают порнографию или еще какое-либо привлекательное содержимое «коня». И вирусы, и черви говорят на компьютерном языке: «Дуплицируй меня». Но они могут выполнять и другие действия, удовлетворяющие мелкое тщеславие их авторов. Эти побочные эффекты могут быть «шутками» (как у вируса, который провозглашал через динамики «Макинтоша»: «Без паники!»), вредоносными выходками (как у вируса, стиравшего жесткий диск после издевательского экранного сообщения о надвигающейся катастрофе), политическими демонстрациями (вирусы «Спаниш Телеком» и «Пекин», протестующие против избиений студентов и платы за телефонные переговоры) или просто случайными (если программист не умел толком использовать команды низшего уровня, нужные для создания эффективного вируса или червя). Известный «Интернет Ворм», парализовавший большую часть компьютерных мощностей США 2 ноября 1988 года, не задумывался как очень уж опасный, но, выйдя из-под контроля, за 24 часа замусорил память 6000 компьютеров своими копиями, число которых росло по экспоненте.

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

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

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

Чересчур вирулентный вирус быстрее засекут и уничтожат. Вирус, который, попав в компьютер, немедленно и сильно его повреждает, не сумеет попасть в множество компьютеров. Он может произвести самый что ни на есть забавный эффект в одном компьютере – стереть тезисы докторской диссертации или сделать еще что-нибудь столь же уморительное, – но он не вызовет эпидемии. Некоторые вирусы, следовательно, создаются таким образом, чтобы вызывать маленький, почти незаметный эффект, который тем не менее может быть весьма вредным. Один из таких вирусов, вместо того чтобы стирать целые секторы, случайным образом слегка изменяет цифры (как правило, имеющие отношение к финансам), внедряясь в строчки и колонки. Другие вирусы прибегают к стратегии случайного включения, например стирают только один из 16 зараженных дисков. Третьи используют принцип бомбы с часовым механизмом. Современные компьютеры «знают», какое сегодня число, и такие вирусы могут дать о себе знать по всему миру одновременно, в определенный день, например в пятницу 13-го или 1 апреля. С точки зрения паразита не важно, насколько катастрофичными будут последствия атаки, коль скоро он успеет распространиться раньше (тревожная аналогия с теорией старения Медавара—Уильямса: мы жертвы летальных и условно-летальных генов, которые активизируются только после того, как дадут нам достаточно времени для размножения). Чтобы защититься, крупные компании даже делают некоторые компьютеры из своего парка «шахтерскими канарейками» (имеется в виду обычай брать в шахту клетки с канарейками или мышами, которые раньше людей ощущали появление ядовитого газа. – Примеч. переводчика): переставляют их календари на неделю вперед, так что «часовой механизм» вируса-бомбы срабатывает сначала в этих компьютерах, предупреждая о приближении великого дня.

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

Принцип вируса теоретически может быть использован для выполнения безвредных и даже полезных задач. Гарольд Тимблеби ввел термин «лайфвэр» (lifeware), чтобы обозначить применение инфекционного принципа для поддержки множественных копий баз данных. Каждый раз, когда компьютер читает диск, содержащий базу, он проверяет, нет ли копии этой базы на его собственном жестком диске. Если есть, каждая копия модернизируется на основе другой. Таким образом, при благоприятном стечении обстоятельств становится не важным, кто из коллег первым ввел в свой компьютер новую библиографическую ссылку. Новая информация вскоре заразит и диски других сотрудников (потому что они суют свои дискеты в чужие компьютеры) и распространится как эпидемия. Придуманный Тимблеби «лайфвэр» не совсем подобен вирусу: он не может попасть в «посторонний» компьютер, где мог бы помешать. Он распространяет новые данные лишь по уже существующим копиям базы данных; вы не можете заразиться, если не предрасположены к инфекции.

Тимблеби, сам весьма обеспокоенный угрозой вирусов, отмечал, что вы можете защититься, используя компьютерную систему, которой не пользуются другие. Почти каждый, кто разбирается в предмете, согласится, что по качеству и особенно по удобству для пользователя менее известные фирмы превосходят преуспевающих конкурентов. Однако повсеместное распространение других систем – само по себе важное достоинство, компенсирующее недостаток качества. Купите своему коллеге такой же компьютер, как у вас, и вы получите все преимущества общего программного обеспечения. Ирония ситуации в том, что с пришествием вирусной чумы мы получили не только преимущества. Теперь мы хорошо подумаем, прежде чем позаимствовать дискету у коллеги. Мы должны осознать, что, присоединяясь к большому сообществу пользователей, мы присоединяемся и к большому сообществу вирусов – как выясняется, непропорционально большому.

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

Я могу представить себе и другие использования принципа вируса, если и не вполне альтруистические, то всё же достаточно конструктивные, чтобы не считать их чистым вандализмом. Компьютерные компании иногда проводят исследования рынка. Хотят ли пользователи выбирать файлы по графическим значкам-иконкам или предпочитают текстовые имена? Сколько папок они вкладывают одна в одну? Работают ли они подолгу в одной программе, например в текстовом редакторе, или постоянно переключаются туда-сюда, скажем между текстовым и графическим редактором? Двигают ли люди курсор мыши прямо к цели или выписывают кривые, теряя время на поиск из-за неудачного дизайна?

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

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

Не слишком смело предположить, что в будущем мы начнем говорить об экологическом сообществе вирусов и законных программ, сосуществующих в силикосфере. Уже сейчас программное обеспечение бывает «совместимым с системой 7». В будущем станут продавать программы, «совместимые со всеми вирусами, внесенными во Всемирный вирусный список 2008 года, иммунные против всех известных инфекционных вирусов, имеющие преимущество в способности воспринимать последующие полезные вирусы…».

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

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

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

Загрузка...