Компьютерные вирусы: модель для информационной эпидемиологии
Компьютерные вирусы — небольшие программы, которые встраиваются в другие, полезные программы и нарушают их работу. Они могут передаваться при обмене дискетами или по компьютерным сетям. В строгом смысле они отличаются от “червей”, которые представляют собой самостоятельные программы, обычно передающиеся по сетям. Выделяют также “троянских коней” — третью разновидность разрушительных программ, которые сами по себе не способны к само-репликации и полагаются на то, что их будут реплицировать люди в связи с их порнографическим или каким-либо иным привлекательным содержанием. Как вирусы, так и черви — это программы, которые, по сути, говорят компьютерным языком: “Дуплицируйте меня”. И те, и другие могут выполнять и иные функции, кроме демонстрации своего присутствия и, вероятно, удовлетворения тайного тщеславия их авторов. Эти побочные эффекты бывают “юмористическими” (как у вируса, который заставляет встроенный динамик “Макинтоша” повторять: “Не паникуй”, вызывая предсказуемый противоположный эффект), вредоносными (как вирусы, которые стирают все данные на жестком диске после насмешливого объявления на экране о неминуемой катастрофе), политическими (вирусы Spanish Telecom (“Испанские телекоммуникации”) и Beijing (Пекин) были созданы в знак протеста соответственно против высоких телефонных тарифов и убийства студентов-демонстрантов) или просто непредумышленными (если программист не справляется с системными командами низкого уровня, управление которыми требуется для создания эффективного вируса или червя). Знаменитый “Интернет-червь” (Internet Worm), парализовавший значительную часть компьютерных ресурсов Соединенных Штатов 2 ноября 1988 года, не задумывался как (особенно) вредоносный, но вышел из-под контроля и в течение 24 часов засорил память примерно 6 ооо компьютеров экспоненциально размножающимися своими копиями.
Мемы теперь распространяются по миру со скоростью света и реплицируются с такой частотой, что по сравнению с ними даже плодовые мухи и дрожжевые клетки выглядят медлительнее ледников. Они перескакивают без разбора с одного переносчика на другой и с одного носителя на другой и демонстрируют беспомощность едва ли не любых карантинных мер.
Дэниел Деннет
Компьютерные вирусы не ограничиваются электронными носителями, такими как диски и линии передачи данных. На своем пути от одного компьютера к другому вирус может пройти через типографскую краску, свет в человеческих глазах, сигналы зрительного нерва и сокращения мышц пальцев. Журнал для любителей компьютеров, напечатавший, к сведению своих читателей, текст вирусной программы, подвергся остракизму. В самом деле, идея вируса обладает такой привлекательностью для некоторых разновидностей мальчишеской ментальности (мужской пол подразумевается здесь преднамеренно), что публикацию любой информации о методах написания вирусных программ справедливо считают безответственным поступком.
Я не собираюсь публиковать никаких вирусных кодов. Но есть некоторые приемы успешного создания вирусов, которые настолько хорошо известны и даже очевидны, что не будет никакого вреда, если я упомяну их здесь, поскольку это необходимо для развития темы. Все они связаны с тем, что пока вирус распространяется, он не должен быть обнаружен.
Вирус, который слишком активно клонирует сам себя в пределах одного компьютера, будет вскоре обнаружен, потому что симптомы засорения памяти станут слишком очевидны, чтобы не обратить на них внимание. В связи с этим многие вирусные программы, прежде чем заразить систему, проверяют, нет ли их уже в этой системе. Кстати, это открывает один из путей защиты от вирусов, аналогичный прививке. В то время, когда специальные антивирусные программы еще не были доступны, я сам в ответ на раннее заражение моего собственного жесткого диска провел его грубую “вакцинацию”. Вместо того, чтобы удалять замеченный мной вирус, я просто вывел из строя его закодированные инструкции, оставив нетронутой “оболочку” с его характерной “подписью” на поверхности. Теоретически представители того же вида вирусов, которые могли попасть в мою систему, должны были узнавать подпись собственного типа и воздерживаться от попыток повторно заразить тот же компьютер. Не знаю, сработала ли эта “прививка”, но в то время, возможно, и правда было лучше “выпотрошить” вирус, оставив в таком виде его оболочку, чем просто удалить его вместе с потрохами. Теперь такие проблемы лучше доверять какой-нибудь профессионально написанной антивирусной программе.
Слишком вредоносный вирус будет быстро обнаружен и обезврежен. Вирус, который сразу будет наносить катастрофический вред любому компьютеру, куда он попадет, не успеет поразить много компьютеров. Он сможет произвести забавный эффект в одном компьютере, например стереть целую диссертацию или сделать еще что-нибудь столь же уморительное, но он не сможет распространяться подобно эпидемии. Поэтому некоторые вирусы делают такими, чтобы их было сложно обнаружить, чтобы их эффект был достаточно слабым, но тем не менее вредоносным. Один из типов таких вирусов, вместо того чтобы стирать целые сектора диска, атакует только электронные таблицы, производя лишь несколько случайных изменений в значениях (обычно денежных сумм) в их строках и столбцах. Другие вирусы избегают обнаружения за счет того, что включаются лишь с определенной вероятностью, например стирая все данные только на одном из шестнадцати зараженных дисков. Вирусы еще одной разновидности устроены как мины замедленного действия. Большинство современных компьютеров “знают” текущую дату, и некоторые вирусы запускались и проявляли себя по определенным числам, например в пятницу тринадцатого числа или первого апреля. Для вирусов как паразитов не имеет значения, насколько успешной окажется их атака, если прежде у вируса будет достаточно возможностей широко распространиться (здесь возникает тревожная аналогия с теорией старения Медавара — Уильямса: мы оказываемся жертвами летальных и сублетальных генов, созревающих для работы лишь после того, как нам представится достаточно времени на размножение). Чтобы защититься от таких вирусов, некоторые крупные компании доходят до того, что выделяют один компьютер из своего компьютерного парка в качестве “канарейки в шахте” и устанавливают в нем дату так, чтобы календарь спешил примерно на неделю и любой вирус замедленного действия обнаруживал бы себя задолго до дня большой атаки.
Как и следовало ожидать, эпидемия компьютерных вирусов запустила настоящую гонку вооружений. Продажа антивирусных программ стала процветающим делом. В этих программах-противоядиях, таких как Interferon (“Интерферон”), Vaccine (“Вакцина”), Gatekeeper (“Привратник”) и других, используется целый ряд приемов. Некоторые из программ написаны с оглядкой на конкретные известные вирусы. Другие пресекают любые попытки вторжения в чувствительные области системной памяти и предупреждают о них пользователя.
Принцип вируса теоретически можно использовать и не для вредительских, а даже для полезных целей. Гарольд Тимблби предложил термин “лайв” (liveware) для уже внедряемого им продукта, в котором принцип инфекции используется для постоянного обновления многочисленных копий баз данных. Всякий раз, когда диск, на котором записана некоторая база данных, вставляют в компьютер, он проверяет, имеется ли уже на жестком диске другая копия той же базы данных. Если имеется, компьютер обновляет ее в свете новой копии. Поэтому, если повезет, то будет неважно, кто из определенного круга коллег, скажем, введет новую библиографическую ссылку в базу данных на собственном диске. Введенная им информация вскоре заразит диски его коллег (потому что они без разбора вставляют свои диски в компьютеры друг друга) и распространится по всему их кругу подобно эпидемии. “Лайв” Гарольда Тимблби не вполне похож на вирус: он не может передаваться на чьи угодно компьютеры и не наносит вреда. Он передает данные только по уже существующим копиям собственной базы данных, и ваш компьютер не заразится “лайвом”, если вы сами не выберете соответствующую опцию.
Кстати, Тимблби, который весьма озабочен угрозой, исходящей от вирусов, отмечает, что некоторой защищенности можно добиться, пользуясь компьютерной системой, которой не пользуются другие. Обычным оправданием для покупки численно преобладающего сегодня персонального компьютера служит просто и исключительно само его численное преобладание. Едва ли не любой сведущий человек согласится с тем, что в отношении качества и особенно удобства для пользователей пребывающая в меньшинстве альтернативная система конкурентов лучше. Тем не менее, популярность сама по себе считается благом, достаточным, чтобы перевесить недостатки качества. Люди рассуждают так: покупать такой же (хотя и худший) компьютер, как те, что покупают коллеги, выгодно потому, что это позволит делиться программами, а также потому, что программное обеспечение в целом будет доступнее. Ирония в том, что с приходом вирусной чумы то, что вы получите, будет вовсе не “выгодно”. Следует не только несколько раз подумать, прежде чем брать диск у коллеги. Следует также осознавать, что если мы присоединяемся к более обширному сообществу пользователей определенной марки компьютеров, мы также присоединяемся к более обширному сообществу вирусов, которое, оказывается, даже непропорционально больше.
Возвращаясь к возможным способам использования вирусов в позитивных целях, есть предложения следовать принципу “браконьер, ставший лесником”, а также “вор вора скорее поймает”. Простым способом это сделать было бы взять любую из существующих антивирусных программ и загрузить ее, как “боеголовку”, в безвредный самореплицирующийся вирус. С точки зрения “здравоохранения” распространяющаяся эпидемия антивирусных программ могла бы быть особенно полезна, потому что компьютеры, наиболее уязвимые для вредоносных вирусов (те, чьи владельцы беспорядочно обмениваются пиратскими программами), будут также наиболее уязвимы для заражения лечащим антивирусом. Более хитроумный антивирус мог бы даже (как в иммунной системе) “учиться” или “эволюционировать”, улучшая свою способность атаковать вирусы, с которыми он встречается.
Я могу представить себе и другие способы использования принципа компьютерного вируса, которые будут если и не совсем альтруистическими, то по крайней мере достаточно конструктивными, чтобы избежать обвинения в чистом вандализме. Компьютерная компания может захотеть провести маркетинговое исследование привычек клиентов, чтобы совершенствовать в дальнейшем свою продукцию. Нравится ли пользователям выбирать файлы по пиктограммам, или они предпочитают ту опцию, где показываются только названия файлов? Как глубоко люди размещают папки (директории) одну в другой? Садятся ли они работать подолгу только в одной программе, например в текстовом редакторе, или же постоянно переключаются с одной программы на другую, например с текстовой на графическую? Получается ли у них подводить курсор мышки прямо к цели, или они какое-то время пытаются по ней попасть, что можно было бы исправить изменением конструкции мышки?
Компания могла бы разослать анкету со всеми этими вопросами, но клиенты, которые на нее ответят, составляли бы смещенную выборку, и в любом случае их собственные оценки своего пользовательского поведения могли бы оказаться неточными. Лучшим решением была бы компьютерная маркетинговая программа. Клиентов попросили бы загрузить эту программу в свою систему, где она тихо сидела бы, отслеживая и подсчитывая нажатия клавиш и движения мышки. В конце года клиента попросили бы прислать файл с результатами всех подсчетов этой маркетинговой программы.
Но и в этом случае большинство людей пожалеют труда, а некоторые, возможно, увидят в этом вторжение в частное дисковое пространство.
Идеальным решением, с точки зрения компании, был бы вирус. Как и любой другой вирус, он был бы самореплицирующимся и скрытным. Но он не был бы разрушительным или развлекательным, как обычный вирус. Наряду с ракетой-носителем для самореп-ликации он содержал бы “боеголовку” для маркетингового исследования. Этот вирус можно было бы тайком запустить в сообщество пользователей. Он распространился бы, как обычный вирус, вместе с дискетами, которые люди передают друг другу, и с электронными письмами. По мере распространения этот вирус тайно накапливал бы статистические данные о поведении пользователей. Время от времени копия этого вируса находила бы, обычными путями распространения эпидемий, дорогу назад, на один из собственных компьютеров компании. Там ее доклад был бы заслушан, а собранные ею данные объединены с данными других копий этого вируса, вернувшихся “домой”.
Пытаясь заглянуть в будущее, не так уж сложно представить себе время, когда вирусы, хорошие и плохие, станут настолько вездесущи, что можно будет говорить об экологическом сообществе вирусов и “законных” программ, сосуществующих в силикосфере. В настоящее время, рекламируя программное обеспечение, сообщают, что программа, скажем, “совместима с системой 7”. В будущем же, быть может, будут сообщать, что она “совместима со всеми вирусами, зарегистрированными Всемирной переписью вирусов 2008 года; устойчива ко всем известным вредоносным вирусам; извлекает максимальную пользу из возможностей, предоставляемых следующими полезными вирусами в случае их присутствия... ” Скажем, текстовые редакторы могли бы передавать некоторые функции, такие как подсчет числа слов и поиск комбинаций символов, дружественным вирусам, автономно копающимся в тексте.
Если попытаться заглянуть еще дальше в будущее, там могли бы вырасти целые системы интегрированных программ, не по чьему-либо замыслу, а как нечто вроде растущего экологического сообщества, такого как тропический лес. Там могут вырасти группы взаимно совместимых вирусов, точно так же как вырастают геномы, которые можно считать группами взаимно совместимых генов. Более того, я даже высказывал предположение, что наши геномы следует считать гигантскими колониями вирусов. Гены сотрудничают друг с другом в геномах потому, что естественный отбор благоприятствовал генам, процветающим в присутствии тех других генов, которые распространились в данном генофонде. Эволюция разных генофондов может привести к разным комбинациям взаимно совместимых генов. Я представляю себе время, когда эволюция компьютерных вирусов может тем или иным путем привести к тому, что они станут совместимы с другими вирусами и будут образовывать совместные сообщества или группы. Может быть, и нет! Во всяком случае, я нахожу это предположение скорее пугающим.
В настоящее время компьютерные вирусы не эволюционируют в прямом смысле слова. Их изобретают программисты, и если они и эволюционируют, то лишь в том же слабом смысле, в каком эволюционируют автомобили или самолеты. Конструкторы создают автомобиль этого года как небольшую модификацию автомобиля прошлого года и могут, более или менее сознательно, следовать тенденции последних нескольких лет — например, уплощению решетки радиатора или чему угодно другому. Создатели компьютерных вирусов выдумывают все более коварные приемы, стараясь перехитрить создателей антивирусных программ. Но компьютерные вирусы не мутируют и не эволюционируют путем настоящего естественного отбора— пока (в будущем это вполне вероятно). Для их будущих качеств, возможно, не так уж важно, эволюционируют ли они путем естественного отбора или же их эволюцию направляют люди. От обеих форм эволюции можно ожидать, что они научатся лучше скрываться и что они выработают тонкую совместимость с другими вирусами, процветающими одновременно с ними в компьютерном сообществе.
ДНК-вирусы и компьютерные вирусы распространяются по одной причине: существует среда, в которой имеется аппарат, хорошо приспособленный для того, чтобы дуплицировать и распространять их, выполняя инструкции, заключенные в вирусах. Это, соответственно, физиологическая среда клетки и среда, создаваемая обширным сообществом компьютеров и аппаратуры для обработки данных. Есть ли другие подобные среды, которые можно назвать гудящим раем репликации?