Роберт Лемос (Robert Lemos),
CNET News.com
Двадцать лет чумы
Спустя десятилетия после создания компьютерных вирусов лекарство от них так и не найдено.
Среди всех достижений, занесенных в анналы информационной технологии, вклад Фреда Коуэна, бесспорно, уникален: именно он ввел в компьютерный лексикон термин «вирус».
Профессор Нью-Хейвенского университета использовал его в своей научной работе 1984 года, посвященной угрозе со стороны самораспространяющихся программ и возможным способам защиты от них. Когда три года спустя он попросил у Национального фонда науки средства на продолжение исследований, ведомство ему отказало. «Они сказали, что это не актуально», — вспоминает Коуэн, который является также главным аналитиком Burton Group.
Два десятилетия спустя многочисленные компании и люди продолжают расплачиваться за эту ошибку. ИТ-индустрия так и не нашла универсального решения проблемы борьбы с неуклонно ширящимся разнообразием вирусов и червей, подвергающих смертельному риску компьютеры в интернете. Компании, вынужденные прекращать работу и бороться с такими цифровыми инфекциями, как Sobig и Slammer, ежегодно теряют миллиарды долларов.
Внимание общественности приковано в основном к злоумышленникам, использующим недостатки технологии, и о том, как появились вирусы, известно немногим. Первые их образцы создавались не бунтующими тинэйджерами или преступниками, а учеными, системными администраторами и горсткой хакеров старой школы, которые считали способность своих программ автоматически самовоспроизводиться ловким трюком. Результатом стала повесть о технических гениях, простодушных академиках, высокомерных бюрократах и о склонности людей вредить организациям просто из спортивного интереса.
Сара Гордон, старший научный сотрудник Symantec Security Response, выловила свой первый компьютерный вирус больше десятилетия назад. Она была настолько очарована этим явлением, что потратила несколько лет на изучение подпольного мира создателей вирусов. «Проектирование средств распространения по интернету информации — любой информации — это палка о двух концах, — написала Гордон в недавнем интервью по email. — Даже если вирусы не предназначались для вредительства или угрозы, вырвавшись из контролируемой среды, они могут дать неожиданные результаты».
Так и произошло с отцами компьютерного вируса: экспоненциальное размножение кода значительно усиливает мельчайшие ошибки и может превратить безвредную шалость в разрушительную стихию. В отличие от простых технологий, стоящих за отдельными интернет-атаками, способность к размножению вносит тот уровень сложности, с которым часто не справляются сами авторы вируса. Многие программы быстро вымирают, но некоторые далеко превосходят намерения своих создателей.
Коуэн во многом предвосхитил будущее, когда в ноябре 1983 года, будучи аспирантом Университета Южной Калифорнии, впервые выдвинул свою идею. На недельном семинаре по компьютерной безопасности он задумал программу, способную заражать собственными копиями другие системы. «Вдруг как будто лампочка вспыхнула, и я сказал: „Ага!”, — вспоминает Коуэн. — Уже через несколько секунд я знал, как написать такую программу, и то, что она будет работать».
Его тогдашний руководитель Лен Эдлман — знаменитый создатель алгоритма шифрования с открытым ключом и буква «А» в названии популярной технологии RSA (Rivest, Shamir & Adleman) — предложил считать эти программы цифровым аналогом вирусов. Так оно и повелось.
Рождение концепции
В работе, опубликованной в следующем году, Коуэн определил вирус как «программу, способную „заражать” другие программы, включая в них собственные копии». Он доказал, что такие вирусы, несмотря на присутствие средств защиты, могут распространяться в любой системе, позволяющей обмениваться информацией, стандартно интерпретировать ее и передавать дальше.
Чтобы продемонстрировать потенциальную опасность, Коуэн написал тестовую программу, которая показывала, как быстро, угрожая безопасности компьютера-мейнфрейма, может распространяться вирус. Он поместил эту программу в команду графического представления структуры файлов Unix, а затем провел пять опытных атак.
Вирусу удавалось «получить системные права» — то есть по существу перехватить управление компьютером — в среднем за полчаса или час. В самом удачном случае на это потребовалось всего пять минут. «Он мог распространяться, невзирая на все известные тогда технологии защиты, — говорит Коуэн. — Концепция продемонстрировала, что самым слабым звеном является пользователь с минимальными правами и что программа может быстро оказаться у пользователя с самыми широкими правами».
Работа Коуэна содержала формальное определение вируса и показала, что под это определение подходят и другие программы, такие как черви. Но в то время уже существовало несколько подобных программ, а многие из его теоретических постулатов были сформулированы еще Джоном фон Нейманом, одним из отцов-основателей вычислительной техники.
Родившийся в Венгрии в 1903 году, фон Нейман заложил основы многих разделов вычислительной техники, математики и физики, включая логический анализ стратегии, называемый теорией игр, и новый раздел квантовой физики. С 1948 по 1956 гг. он развил многие работы одного из своих сподвижников, известного ученого Алана Тьюринга.
Тьюринг выступил с идеей универсальной вычислительной системы, логической конструкции, способной решать широкий спектр задач при помощи процессора и ленты для хранения программ и данных. В компьютерах до сих пор используются процессоры и память — основные компоненты, определенные в труде Тьюринга.
Фон Нейман развил концепцию Тьюринга, предложив универсальный конструктор — систему, способную к самотиражированию. Этот, как он его назвал, самовоспроизводящийся автомат использовал десятки тысяч элементов, каждый из которых мог находиться в любом из 29 состояний, для создания другого такого же автомата в воображаемой распределенной сети. Система оказалась настолько сложной, что для реализации в железе даже ее неполной версии потребовалось более 40 лет.
Борьба за существование
Позднее работа фон Неймана послужила фундаментом нового направления вычислительной техники — теории клеточных автоматов и инспирировала другие исследования по созданию более простых компьютерных «организмов» и искусственной жизни. В начале 60-х его идеи попытались реализовать трое ученых из Bell Labs.
В августе 1961 года Виктор Высоцкий изобрел игру под названием «Дарвин», в которой маленькие программы боролись друг с другом за освоение цифрового пространства. Его коллега Дуглас Макилрой разработал большую часть кода игры, включая подпрограмму, ответственную за воспроизведение. Наконец, третий ученый, Роберт Моррис-старший, создал смертоносный цифровой организм, который развивается и передает опыт успешных атак своему потомству.
«Было ясно, что, экспериментируя с правилами, вносившими в игру некоторую неопределенность, мы сможем оживить ее после опустошительного вторжения Морриса, но нам нужно было заниматься другими делами», — рассказывает Макилрой, ныне адъюнкт-профессор отделения вычислительной техники Dartmouth College. Игра, работавшая на системе IBM 7090, была надолго забыта.
Однако сами исследователи и их дети оказали глубокое влияние на компьютеры и интернет.
Моррис стал работать в Агентстве национальной безопасности. А в ноябре 1988 года его сын, Роберт-младший, создал первого червя, широко распространившегося в интернете. Хотя «Дарвин» не пережил эволюцию своей компьютерной системы IBM 7090, дальнейшие забавы ученого привели к изобретению более популярной игры Core War, где игроки пишут боевые программы на языке Redcode и выставляют их на арену Memory Array Redcode Simulator (MARS) в виртуальной памяти. Многие поклонники до сих пор играют в эту игру в интернете.
Однако все эти цифровые творения содержались в искусственной среде. Проникновению вирусов в компьютеры и их распространению по всему миру способствовала другая игра.
Это была программа Animal, напоминающая «20 вопросов», ѕ в 70-е годы она пользовалась большой популярностью у операторов мейнфреймов. Игра просила задумать животное, а затем задавала вопросы, пытаясь угадать, кто это. Если это не удавалось, программа просила предложить вопрос и ответ, конкретизирующие животное.
В 1974 году Джон Уокер, программист систем UNIVAC (Universal Automatic Calculator) из крупной международной фирмы, разработал собственную версию игры, усовершенствовав ее таким образом, чтобы ошибки при игре с одним игроком учитывались в последующих играх. Игра немедленно стала хитом.
«Мне начали звонить с других установок UNIVAC и просить ленты с игрой», — рассказывает Уокер.
От игр к вирусам
Интернета еще не было, и Уокеру присылали по почте ленты, чтобы он скопировал программу и отослал назад. Этот утомительный процесс быстро ему надоел: «Мне это осточертело, и я задумался о том, как облегчить распространение игры. Тогда я и решил сделать ее самовоспроизводящейся».
В январе 1975 года для распространения новой версии Animal Уокер написал другую программу, Pervade. Всякий раз, когда кто-то играл в Animal, Pervade проверяла каталоги и копировала себя в любой каталог, где еще не было ее копии, переписывая все старые версии.
Пару месяцев Уокер размышлял над возможными последствиями, опасаясь, не допустил ли он какой-нибудь роковой ошибки, а затем запустил программу.
Через неделю администраторы UNIVAC из других отделений корпорации начали сообщать о неожиданном появлении Animal в их системах. А спустя еще несколько недель программу стали обнаруживать и в других компаниях. «Через несколько месяцев о программе стали много говорить, и все больше людей обращались за ней, — рассказывает Уокер. — Из уст в уста она передавалась не хуже, чем копированием в каталоги».
Когда вышла новая операционная система UNIVAC с измененной структурой каталогов, Pervade перестала работать. Но Уокер утверждает, что модифицированная версия этой программы легко преодолела бы новые средства защиты.
«UNIVAC нагородила кучу мер безопасности, но вот пример угрозы, с которой они ничего не смогут поделать», — сказал он тогда, а Коуэн повторил десятилетие спустя. В начале 80-х Уокер основал Autodesk и до сих пор остается крупнейшим акционером компании.
В подтверждение непредсказуемой природы вирусов: даже Уокер не предполагал, как долго просуществует его самовоспроизводящееся творение. Недавно он говорил с администратором системы Unisys 2200 (потомка компьютеров UNIVAC), и тот ему сообщил, что программа все еще работает на его машине.
«Она ищет таблицы файловой системы, которых уже 30 лет как не существует», — говорит Уокер.
Их дом — компьютер
С ростом популярности персональных компьютеров число вирусов стало экспоненциально расти. ПК не только расширили их жизненное пространство, но и породили технически грамотное поколение, способное создавать подобные программы.
Типичный представитель этого поколения — Рич Скрента: ученик девятого класса из пригорода Питтсбурга в 1982 был хорошо знаком с Apple II и любил разыгрывать своих приятелей, вставляя в программы «спецэффекты» вроде автоматического отключения машины после нескольких сеансов работы или вывода на экран язвительного сообщения.
«После того как я проделал это несколько раз, никто не хотел брать у меня игры, — рассказывает Скрента, ныне президент собственной компании Topix.net (скоро должна открыться ее поисковая система). — Тогда я стал думать, как заносить мои приколы на их диски».
В голову пришла мысль написать программу, самораспространяющуюся через диски Apple II. Скрента придумал такой «клонер» (он не называл это вирусом), заражающий часто используемую команду на системных дисках Apple II. Его Elk Cloner подсчитывал, сколько раз использовался диск, и на каждый пятый раз выключал компьютер или выкидывал какой-нибудь фокус. После 50-го запуска Elk Cloner выводил на экран короткий стишок.
Спустя четыре года два брата из Пакистана, Амхад и Басит Фарук Алви, создали первый компьютерный вирус, заражающий IBM PC. Этот вирус, известный под именем Brain, братья использовали в целях настоящего вирусного маркетинга: каждая его копия выводила на экран мигающее сообщение с рекламой их компании Brain Computer Services в Лахоре (Пакистан).
«Опасайтесь этого ВИРУСА… За вакциной обращайтесь к нам», — гласило сообщение, которое и сегодня можно найти на интернет-сайте компании.
То было только начало. Вирусам и червям потребовалось больше десяти лет, чтобы накопить критическую массу, зато в последующие годы они стали плодиться чрезвычайно быстро. К концу 90-х было известно уже около 200 вирусов, а сегодня их число превышает 70 тысяч. Хотя в интернете компьютерам угрожает менее 1% этих вирусов, по данным Computer Security Institute, от цифровой инфекции уже пострадало свыше 80% компаний.
По словам Гордон из Symantec, большинство создателей современных вирусов — как и их предшественники — не знает, как программы распространяются в интернете. «Это просто любознательные, часто вполне разумные люди, коммуникабельные и владеющие многими способами общения», — говорит она. Однако Коуэн считает, что научный фундамент современных интернет-вирусов был заложен еще в 80-е годы. Все остальное, по его мнению, дело техники.
«Все, что мы знаем теперь, было известно уже тогда, — говорит он. — Это просто инженерные решения в русле старой науки».