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