Джон Маркоф - Хакеры (takedown)
Обнаруженный в ftp изъян не давал Роберту покоя. На следующий день он зашел к Энди в офис и нечаянно проболтался. Не тратя времени даром, Энди попытался проверить ftp. Когда он не обнаружил там дыры, Роберту пришлось дать более подробное объяснение.
Роберт вернулся в Корнелл. В среду Пол послал ему сообщение по e-mail: «Что слышно о блестящем проекте?» Роберт ответил спустя два дня: «Ничего нового. Я весь в законнорожденной работе» (речь шла о занятиях). Но проект жил. За те четыре дня, что Роберт провел в Гарварде, он декодировал коллекцию шифрованных паролей, собранных с разных машин по всей стране.
Поскольку не всегда возможна непосредственная расшифровка, часто срабатывает догадка. Невозможно декодировать пароль, запустив процесс, обратный кодировке. Однако ничто не мешает дешифровщику проверить предположения, закодировав, скажем, словарь и сравнив результаты с имеющимся паролем. Поскольку многие пароли – это обычные английские слова, словарный метод бывает поразительно результативным. Чем быстрее компьютер, чем больше компьютеров используется, тем меньше времени займет такая операция.
В пятницу вечером Даусон Дин зашел в комнату, где стояли терминалы Апсон-Холла. За рабочей станций Sun сидел Роберт. Даусон поинтересовался, что это Роберт затеял. Когда Роберт показал, что у него на экране, у Даусона глаза на лоб полезли: это был длинный список паролей открытым текстом. Роберт пролистал список, чтобы показать пароли корнеллских студентов и профессоров. Был в списке и Декстер Козен, курировавший аспирантов. Его пароль? Пожалуйста: tomato. Кешав Пенгали, читавший архитектуру микропроцессоров, выбрал пароль snoopy («шпик»).
– Блеск! – воскликнул Даусон. – А мой есть?
Пароля Даусона не оказалось, ибо такого слова в словаре не нашлось.
– А как насчет Айткина? Бил Айгкин был аспирантом, которого Даусон считал «ужасным вонючкой». Роберт пробежал по списку и нашел пароль Айткина: subway.
– А… гм… не опасно ли держать список расшифрованных паролей в своем каталоге? – спросил Даусон. Сам тон разговора – возбужденные вопросы Даусона, которого, казалось, самого лихорадило от незаконности того, чем занимался Роберт, и осторожные ответы Роберта, – подразумевал, что нарушены какие-то табу.
– Ну, – Ответил Роберт, – ты зашифровываешь, как сможешь, а что до остального – почему бы мне не попытать счастья?
Даусона обуревало любопытство.
– А можешь ты сделать базу данных паролей всей страны?
– А зачем, – сказал Роберт, – если есть способы добираться до машин, не прибегая к словарному методу.
Даусон насел на Роберта с расспросами об этих других способах. Роберт колебался, но Даусон не отставал. Наконец Роберт сказал, что, читая исходный код UNIX, обнаружил несколько дырок. Одна – «черный ход» в программе sendmail, другая – ошибка в finger, которая позволяет запускать программу на другой машине не регистрируясь. Он знает о них уже год, и похоже, что знает только он один.
Даусон Дин хотел побольше услышать о конкретных компьютерах, в которые Роберт мог бы забраться. Он спросил об одной частной фирме. Роберт покачал головой: «Ну, можно и туда, но на самом деле проще навестить машины, принадлежащие университетам. В университетах, как правило, меньше заботятся о защите. Кроме того, нехорошо вылазить за границы государства». Тогда Даусон спросил об одной машине в Media Lab, исследовательском центре МГГ, где изучали технологию коммуникаций. Через несколько минут Роберт подключился к этому компьютеру. Даусон был поражен: «Чей пароль ты использовал?» «Сейчас узнаем», – Роберт набрал запрос. Машина ответила: «nobody» (пользователь не зарегистрирован). Это впечатлило Даусона. Роберт явно перехитрил машину и подсоединился незаконно.
Роберт ничего не рассказал Даусону Дину о своих планах использования дыр в защите. И Даусон о них не спрашивал. Кроме Пола, Роберт никому не рассказывал о программе, которую он обдумывал весь семестр, и над которой начал упорно работать незадолго до поездки в Кембридж. К этому моменту Роберт работал над вирусом в общей сложности чуть больше двух недель.
Неделю спустя, 2 ноября, Роберт пришел в смятение, увидев объявление в сети: Кейт Бостик, разработчик берклийской версии UNIX, отладил дефект в ftp. Поскольку только неделю назад Роберт рассказал Энди об этом дефекте, совпадение исключалось. Роберт немедленно заподозрил, что Энди предупредил кого-то из Беркли. Он тут же по e-mail запрашивает Энди, не он ли разболтал секрет. Нет ответа. Значит, Роберт не сможет использовать дырку в ftp для своего вируса. Но еще остаются дырки в sendmail и finger.
Весь день Роберт провел, доводя вирус до ума. Он закончил работу в 18.30 по восточному поясному времени. Спустя час он подсоединился к компьютеру Лаборатории искусственного интеллекта в MIT, набрал несколько команд и запустил программу. Он решил пойти перекусить. За время, которое у Роберта ушло на то, чтобы нажать на клавишу return и одеть куртку, программа начала распространяться. Через несколько минут она уже веером расходилась по всей сети. Компьютеры заражали друг друга словно малыши в детском саду. Каждый VAX или Sun, соединенный с другим VAX или Sun, оказывался беззащитным. Пока Роберт обедал, десятки вирусов уже кишели в компьютерах и пожирали машинное время. Машины начали зависать и отказывать. После обеда Роберт собирался идти домой, но не смог удержаться и вернулся в Апсон-Холл посмотреть, как движутся дела. Когда он попытался зарегистрироваться, компьютер не ответил. Что-то пошло не так. Вирус размножался неограниченно.
Поздно вечером, в 23 00, Пол и Энди вернулись в Эйкен после ужина. Когда Пол вынимал ключи из двери, зазвонил телефон. К телефону подошел Энди. Звонил Роберт. Он попросил позвать Пола. Энди передал трубку и пошел в свой офис. Роберт казался совершенно убитым: «По-моему, я по уши в дерьме». Пол впервые слышал, чтобы rtm использовал сильные выражения. По тому, как Роберт еле ворочал языком, Пол понял, что его друг в полном отчаянии. Первая мысль была, что это как-то связано с женщиной.
– Что такое? Что ты натворил? – спросил Пол
– Я запустил вирус, и он работает совсем не так, как должен. Я ввел не то N
– Какое число ты использовал? – Подразумевалось, как часто будет вирус заражать машину, даже если там имеется его копия.
– Семь – Семь?! rtm, ты кретин! Почему семь?! – Пол мгновенно понял, что это число должно было быть больше как минимум в 1000 раз.
Но Роберт не собирался тратить время на разбор полетов. Он сообщил Полу, что все компьютеры VAX и Sun в Корнелле полетели, зависая каждые несколько минут. Соответственно, то же самое происходит по всей Америке. Роберт рассказал, что вечером запустил вирус с компьютера Массачусетской лаборатории искусственного интеллекта, пошел пообедать, а когда вернулся, обнаружил, что вирус заселяет машины везде, где Роберт мог проверить. Они начали обсуждать способы остановки вируса. Пол предложил запустить по следам вируса программу, которая бы уничтожила его – программу типа Рас-Мап, что догонит вирус и сожрет его. Чем больше Пол радовался своей «пакмэновской» идее, тем больше мрачнел Роберт. Он уже запорол одну программу, и где гарантия, что не изгадит вторую?