— Момент. Дай секунд десять, — сказал он. — Вот, готово. Связь идет через спутник Вестар. Номер абонента 2624 DNIC 5421–0421. Это Бремен. Я позвоню в Бундеспост.
Со своего слабенького домашнего компьютера я дозвонился до лабораторной системы и проверил компьютер ЮНИКС-4. Это был Свентек. Он подключился на четыре минуты. Достаточно, чтобы засечь и проследить его. Достаточно, чтобы испортить мне все утро. Теперь уже не заснуть, поэтому я поехал в лабораторию. Компанию мне составляла утренняя звезда, светившая на востоке. Венера.
За эти четыре минуты хакер просмотрел новые куски моей операционной системы. На нашем ЮНИКС-компьютере он искал программу X-preserve. Ха, а я ведь знаю, чего он хочет. Он ищет брешь в редакторе VI, которую имеет X-preserve. Мы с Дэйвом Клэвлендом исправили это место почти год назад. Но хакер только сейчас пробует воспользоваться.
VI — это экранный редактор системы ЮНИКС. Когда в 1980 году Билл Джой написал его, всем казалось, что это верх совершенства. Прямо на экране можно было видеть, как двигаются слова при редактировании! Если вам требовалось удалить слово в середине параграфа, достаточно было подвести мигающий курсор к этому месту — и готово! VI был предшественником сотен систем текстовой обработки. Теперь он кажется пользователям ЮНИКСа слишком тяжеловесным. Несмотря на это, VI можно увидеть на каждой ЮНИКС-системе.
Что будет, если при написании большой статьи компьютер даст сбой? Ну, например, отключение питания. Обычно теряется все, что вы напечатали. Для восстановления того, что вы успели сделать, редактор VI использует программу X-preserve. Когда компьютер будет включен заново, X-preserve по кусочкам соберет вашу работу. Затем он спросит вас, где сохранить восстановленный файл. Почти все люди отвечают: «Положи его в мою личную директорию».
При этом X-preserve никак не контролирует, где вы сохраняете этот файл. Вы можете сказать: «Положи этот файл в системную директорию», — и он выполнит эту команду.
Именно это хакер и пытался проделать. Он создал файл, который содержал команду: «Создай для Свентека привилегию системного пользователя». Затем он запустил редактор VI и, послав ему на вход символ прерывания, приостановил работу. Редактор сохранил файл по частям.
Каков следующий шаг хакера? Вызвать X-preserve и с его помощью протащить этот файл в системную директорию. И тогда через пару минут ЮНИКС начнет высиживать подкидыша, и хакер станет системным менеджером. Но кукушка снесла яйцо не в то гнездо. Мы уже исправили программу, теперь она проверяет, кто вы, и не позволит занести ваш файл в системную область.
Бедный малый. Небось расстроился.
Но оставались открытыми другие бреши. Он по-прежнему может воспользоваться Гну-Эмаксом, чтобы снести программу-яйцо в системное гнездо. Кроме того, я намеренно не трогал еще две бреши в нашей системе. Просто для проверки его уровня. Пока он решил лишь одну из трех задач.
А сколько еще системных менеджеров не исправили X-preserve? А сколько еще есть в системе брешей? И как предупредить людей? Как рассказать хорошим парням, чтобы плохие не узнали? Слишком поздно. Плохие ребята уже знают.
Хотя связь с Беркли длилась всего несколько минут, университет Бремена сообщил, что они находились на связи целых сорок пять минут. Бундес опять проследил всю связь до конца и вышел на уже знакомого человека в Ганновере. Оказалось, что университет Бремена также регистрировал на распечатках все появления хакера. Он мог лазить по сетям, но не мог спрятаться.
За последние пару месяцев хакер только приглядывал за файлами СОИНЕТ. Просматривая имена файлов, он мог заметить, что они ежедневно пополняются новыми служебными записками и письмами, но сами файлы не считывал. Я уже начал сомневаться, интересовали ли его по-прежнему все эти творения? В среду, 20 мая, мои сомнения были развеяны. Он подключился в пять утра и скопировал все файлы СОИНЕТ. Там было письмо с запросом к Пентагону на дополнительное финансирование. В другом письме говорилось о «загоризонтной РЛС» — фраза для приманки, которую я выискал в журнале по электронике. Еще одна заметка описывала результаты тестирования нового суперкомпьютера. Свое полное незнание я постарался прикрыть широким употреблением жаргона.
Ну, что ж, он их проглотил. Один за другим. Мне хотелось, чтобы каждый файл он запрашивал по имени, вместо того, чтобы дать команду «скопируй все файлы». Поэтому я добавил несколько специальных файлов — очень больших, чтобы их нельзя было распечатать. Несколько коротких, набитых всякой тарабарщиной — компьютерным жаргоном. Он не мог распечатать эти «испорченные» файлы и ему пришлось предварительно проверять каждый из них. Работа замедлилась и ему пришлось оставаться в системе долго — времени на отслеживание было достаточно.
Мы следили за этой вонючкой почти год. А согласно телефонным счетам в Майтере, он лазил в системы больше года. Какое упорство! Что движет этим парнем? Допускаю, можно подурачиться одну-две ночи. Ну, пару недель. Но целый год! Он мне заплатит за это!