Kitabı oxu: «Яйцо кукушки. История разоблачения легендарного хакера»
Clifford Stoll
The Cuckoo’s Egg: Tracking a Spy Through the Maze of Computer Espionage – New York: Doubleday. 1989

© Столл К., 2022
© ООО «Издательство Родина», 2022
Глава 1
Волшебник, я? Еще неделю назад я был астрономом и в свое удовольствие орудовал телескопами. Сейчас, оглядываясь на это времечко, я вижу, что подремывал годами, пока не уплыли последние денежки по моему гранту.
К счастью, в обсерватории Кек при Лаборатории Лоуренса в Беркли астрономов принимали на вторичную переработку – и вместо биржи труда я оказался в компьютерном центре, в подвале Лаборатории. Могу показать парочку компьютерных фокусов, чтобы потрясти астрономов. Гораздо быстрее коллег разбираюсь во всяких головоломных ситуациях. Выходит, я – компьютерный волшебник? Не знаю, все-таки главное для меня – астрономия…
А что теперь-то? Уныло глядя на терминал, я продолжал думать об орбитах планет и астрофизических явлениях. Как новичку, мне довелось выбирать между застекленным отсеком с единственным окном, выходящим на мост Золотые Ворота, и душным кабинетом, заставленным книжными полками. Наплевав на свою клаустрофобию, я остановился на последнем в надежде незаметно дремать за письменным столом. Рядом располагались кабинеты Вэйна Грэйвса и Дэйва Клэвленда – «зубров»-системщиков. Они громко и постоянно цапались между собой, поэтому я разузнал много любопытного. Вэйн находился в натянутых отношениях с остальными работниками – по его мнению, некомпетентными лентяями. Сам-то он систему знал назубок, начиная с программ-драйверов и кончая СВЧ-антеннами. Единственной приличной вычислительной машиной он считал ВАКС, выпускаемый фирмой ДЭК. Других компьютеров для него просто не существовало – он не признавал ни ИБМ, ни ЮНИКС, ни Макинтош.
Дэйв Клэвленд – безмятежный Будда ЮНИКСа – терпеливо выслушивал бурные речи Вэйна, который безуспешно пытался его подначить: «Ученые всего мира выбирают ВАКСы. Эти машины позволяют создавать надежные программы дюжиной способов!» Дэйв парировал: «Вы осчастливьте „фанатов“ ВАКСа, а я позабочусь об остальных». Увы, Клэвленд не раздражался, поэтому неудовлетворенный Вэйн угасал и погружался в ворчанье.
Прекрасно. В первый же рабочий день я оказался маслом на бутерброде, который регулярно падал мною вниз и тем самым прерывал мой дневной сон. Зато мой внешний вид вполне соответствовал стандартному облику сотрудника лаборатории Беркли: поношенная рубашка, потертые джинсы, длинные волосы и дешевые кроссовки. На управленце можно было иногда увидеть и галстук, но при этом заметно снижалась производительность труда.
В обязанности нашей тройки (Вэйна, Дэйва и мои) входило обслуживание компьютеров лаборатории. Мы ведали дюжиной больших машин – громадных «тяжеловозов», решающих физические задачи. Стоили эти «рабочие лошадки» примерно шесть миллионов долларов. Надо полагать, что ученые, использующие эти компьютеры, рассматривали их как простых производителей, надежных не меньше, чем взаправдашние кони: работать они должны круглые сутки, а мы – старшие конюхи – несли ответственность за каждый цикл вычислений. Из четырех тысяч сотрудников лаборатории услугами главных компьютеров пользовалась примерно четверть. Для каждого из этой тысячи ежедневно велся учет машинного времени, при этом «гроссбухи» хранились в компьютере. Час вычислений стоит триста долларов, поэтому учет надо было вести страшно скрупулезно, и нам приходилось гоняться за каждой выводимой на печать страницей, за каждым блоком дискового пространства и за каждой минутой процессорного времени. Для сбора такой информации имелся отдельный компьютер. Раз в месяц на нем распечатывались отчеты и рассылались по отделам.
Однажды ко мне ввалился Дэйв и невнятно забормотал о неприличном поведении системы учета ЮНИКСа. Кто-то использовал несколько секунд машинного времени, не заплатив за них. Баланс не сходился; по счетам за прошлый месяц на сумму 2387 долларов была обнаружена недостача в 75 центов. Докопаться до источника ошибки в несколько тысяч долларов – пара пустяков. Но причины недостач в несколько центов обычно зарыты глубоко, и такие раскопки – стоящая проверочка для начинающего компьютерного волшебника.
– Чисто сработано, а? – наивно сказал я.
– Разберись с этим – и ты удивишь мир, – ответил Дэйв.
Детская забава! Я погрузился в программу учета. Она была похожа на кастрюлю со смесью всего на свете, куда начинающий кулинар закладывал любимые продукты, мешал, пробовал, а в результате дал дуба. Однако это рагу все же насыщало нашу лабораторию и просто вылить его было нельзя. В нем я нашел куски, написанные на Ассемблере, Фортране и Коболе – древнейших языках программирования. Я бы не удивился, встретив процедуры на древнегреческом, латыни или санскрите. Конечно же, никакой документации в помине не существовало. Только самый наивный поваренок мог отважиться сунуться со своей ложкой, не зная броду.
Худо-бедно, но все же было чем заняться после обеда. Кроме того, оставался шанс выловить из этого компота ягодку покрупней. Дэйв показал мне системную процедуру учета подключений к компьютеру, занесения в журнал имен пользователя и терминала. Система фиксирует каждое подключение, регистрирует идентификатор задачи пользователя, расходуемое пользователем процессорное время и время отключения. Дэйв объяснил, что есть две системы учета. Обычная программа учета ЮНИКСа просто заносит в отдельный файл записи событий. Но Дэйв создал вторую программу, которая обеспечивает хранение более подробных сведений о том, кто пользовался компьютером.
Сменявшие друг друга группы скучающих студентов годами писали, писали и, наконец, написали программы анализа всей учетной информации. Одна программа производит сбор данных и «засовывает» их в файл. Вторая – считывает этот файл и вычисляет стоимость сеанса работы с компьютером. Помимо всего прочего существует третья программа, которая обеспечивает подведение итогов и распечатку счетов, рассылаемых по отделам. Итоговая сумма из этой третьей программы сравнивается с результатом, получаемым от внутренней программы учета. Два учетных файла, созданных одновременно различными программами, должны давать один и тот же ответ. В течение года все работало как часы, но на этой неделе что-то сломалось. Первое подозрение – ошибка округления. Похоже, что каждый элемент файла учета сам по себе правилен, но при суммировании разности в десятые доли цента накапливаются, что в конечном итоге и приводит к ошибке в 75 центов. Доказать это можно либо углубившись в анализ процесса работы программ, либо путем тестирования, подавая на вход различные наборы данных. Чтобы зазря не размахивать мачете в зарослях тростника, я написал свою коротенькую программу проверки файлов и убедился, что с первой программой проблем нет. Со сбором информации все в порядке.
Вторая программа отняла у меня больше времени. За час я слепил «заплату» и понял: все работает. Программа суммирует длительности промежутков времени и затем умножает их на стоимость. Потеря 75 центов – не на ее совести.
И третья программа ведет себя хорошо: рыщет по списку пользователей, имеющих право доступа, находит их регистрационные записи и распечатывает счета. Ошибка округления? Нет, ни в одной из программ не может пропасть и сотой доли цента. Странно. Откуда же взялись эти дурацкие 75 центов?
Ну что ж, пусть я гоняюсь за призраком, но упрямства мне не занимать: из принципа проторчу здесь до полуночи!
Еще пару-тройку раз все проверив, я сильно зауважал это доморощенное чудо света – программу учета. Факт, что баланс не сходился, но программы не виноваты. К этому времени я нашел список пользователей, имеющих право доступа, и понял, каким образом происходит составление счетов для отделов. Около 7 вечера мне на глаза попалось имя Хантер. У этого парня оказался неправильный адрес счета. Ага! В прошлый месяц он задарма попользовался компьютером ровно на 75 центов.
Вот оно что! Кто-то добавил подпольного пользователя. Элементарно! Победа! Когда я упивался сознанием своей гениальности, заглянула Марта, моя подружка, и мы отпраздновали мой маленький триумф в кафе «Рим» ночным капуччино.
Настоящий волшебник справился бы за несколько минут. Зато я утешал себя тем, что изучил систему учета и немного набил руку в древних языках программирования. На другой день я отправил Дэйву весточку по электронной почте, раскрывая суть трюка.
Дэйв появился у меня около полудня и, шлепнув на стол стопку инструкций, мимоходом буркнул, что никогда не вводил пользователя по имени Хантер – это, скорее всего, сделал другой менеджер системы. Вэйн отрезал: «Это не я. ЧЧИ». Он частенько завершал свои сентенции аббревиатурами. Эта означала: «Читай Чертову Инструкцию».
Я читал инструкцию. Операторам не полагалось вводить нового пользователя без занесения данных в систему учета. В других вычислительных центрах могли попросту нацарапать имя пользователя в журнале, поставить его на учет и дать команду компьютеру. Нам же нужно было следить за всем и всеми, поэтому наша система была поумней. Она содержала ряд специальных программ, позволяющих автоматически проделывать всякие там системные штучки и выполнять нудную бумажную работу. Никакому недотепе в голову не пришло бы вручную вводить нового пользователя. Сама же система такую плюху никогда не сделает.
И все же такой недотепа поработал. Правда, я не мог выяснить, кто он. Никто не знал Хантера. Не было на него и учетной документации. Поэтому я удалил это имя из системы – если начнет вопить, все вернем обратно.
Спустя день компьютер по имени Докмастер прислал нам сообщение по электронной почте: якобы некто из нашей лаборатории нагло пытался вломиться в его компьютер в прошлый уикенд.
Докмастер мог находиться где угодно, но все указывало на Мэриленд. Пересылаемое по электронной почте сообщение проходит через десяток компьютеров и каждый оставил на нем свою отметку.
Дэйв ответил на послание неизменным: «Разберемся». Жди, когда перестанет болеть голова от своих проблем. Однако что-то привлекло внимание Дэйва в полученном от Докмастера сообщении и он передал его Вэйну, сопроводив вопросом: «Что это еще за Докмастер?» Вэйн отдал послание мне и предположил: «Наверное, какой-нибудь банк». Я полагал, что Докмастер это одна из верфей военно-морского флота. Сообщение не выглядело документом особой важности, хотя может быть и стоило потратить пару минут и повнимательней присмотреться к нему. В послании указывались дата и время попытки ворваться в Докмастерский компьютер с нашего ЮНИКСа. Поэтому я проштудировал файлы, в особенности записи, сделанные в субботу утром, и опять наткнулся на расхождения в двух системах учета. По файлу, созданному «родной» системой ЮНИКСа, было видно, что пользователь, некто Свентек, зарегистрировался в 8-25, полчаса пробездельничал и отключился. Наша доморощенная программа также зафиксировала подключение Свентека, но по ее данным он активно использовал сеть с 8-31 до 9-01 утра. Мой бог! Время не совпадает, одна программа показывает активное бодрствование, а другая – глубокий сон.
Тут на меня навалилась куча других дел и я отвлекся.
Обедая с Дэйвом, я мимоходом заметил, что единственным пользователем, подключавшимся в момент попытки взлома Докмастерского компьютера, был некто Свентек. Дэйв уставился на меня и вопросил: «Джо Свентек? Он в Кембридже. Что же он такое творит?» Оказалось, что Джо Свентек, бывший лабораторный «гуру» по части ЮНИКСа, – это настоящий компьютерный волшебник, создавший дюжину дивных программ за последние десять лет. Джо год назад уехал в Англию, но его немеркнущая слава продолжала сиять по всей программистской Калифорнии.
Дэйва удивило, что Джо снова в городе – ни один из приятелей Свентека ничего о нем не слышал. «Должно быть, он подключился к нашему компьютеру через сеть», – предположил Дэйв.
– Ты считаешь, это Джо напроказничал? – спросил я.
– Да что ты! – возмутился Дэйв. – Джо – хакер старой закалки! Блистательный и изысканный, ничего общего не имеющий с нынешними ублюдками, поганящими слово «хакер». Не стал бы он вламываться в какой-то там мерилэндский компьютер. А если бы вломился, то и следа бы не оставил.
Любопытно: целый год Джо Свентек живет в Англии, ничем не проявляя себя вплоть до субботнего утра, затем пытается ворваться в мерилэндский компьютер и отключается, оставляя «отпечатки пальцев» в системе учета. Все это я высказал Вэйну в коридоре. Оказывается, Вэйн слышал, что сейчас Джо проводит свой отпуск в лесах, вдали от всяких компьютеров. «Забудь про эту чепуху. Приедет Свентек – и все прояснится. Я, правда, точно не знаю когда. ТУС.» Теперь Уже Скоро, если расшифровать Вэйна.
Моя головная боль – не Свентек, а расхождения в системах учета. Почему программы показали разное время? И почему в одном файле была зафиксирована активная деятельность, а в другом нет? Выяснилось: расхождение объясняется тем, что используется двое часов, и одни из них ежедневно отстают на несколько секунд. За месяц и набежало пять минут.
Но активная деятельность Свентека должна была быть зафиксирована в обеих квитанциях. Связано ли это с тем, что произошло с системой учета на прошлой неделе? Все ли я там раскопал? Может, собака зарыта в другом месте?
Глава 2
После программистских хлопот я сидел на нудной лекции по структуре галактик. Профессор с ученым видом бубнил себе под нос и разрисовывал на доске змеюшник из математических уравнений. Пытаясь не заснуть, я стал обдумывать ситуацию. Кто-то добавил нового пользователя. Неделю спустя подключается Свентек и пытается взломать мэрилендский компьютер. До Свентека не добраться. Похоже, пытаются обойти программу.
– Что значит эта попытка попользоваться задарма нашим компьютером? – спрашивал я себя. – Неужели нашли способ обойти систему учета?
Для больших вычислительных машин существует два типа программного обеспечения: программы пользователей и системные программы. То, что вы сами пишете и инсталлируете – это пользовательские программы, например, мои программы анализа атмосферы планет. Сами по себе они работать не могут. Они неспособны отдавать команды непосредственно компьютеру и вынуждены «разговаривать» с операционной системой. Когда астрономической программе требуется что-то сообщить, она не в состоянии просто взять и «выплюнуть» текст на экран моего терминала. Этот текст передается операционной системе, которая отдает команду аппаратуре на вывод.
Операционная система, а также редакторы, библиотеки программ и интерпретаторы языков программирования составляют системное программное обеспечение. Вам нет нужды писать эти программы: они поставляются вместе с компьютером. Никто не должен совать в них свой нос.
Программа учета – это системная программа. Чтобы влезть в нее или обойти, нужно либо быть менеджером, либо исхитриться получить право привилегированного доступа к операционной системе. Но как получить это право? Самое простое – войти в компьютер с паролем менеджера системы. Наш пароль не менялся месяцами, но вряд ли кто-то проболтался. Чужаку же никогда его не разгадать: «вайверн» – мифологический крылатый дракон. Но даже если вы и придуритесь под менеджера системы, то вряд ли будете валять дурака с системой учета. Она слишком туманна и, к тому же, плохо задокументирована. Хотя и работает. Стоп! Наша доморощенная программа работает, как надо. Кто-то добавил нового пользователя, не обращаясь к ней. Может, этот кто-то не подозревал о ее существовании. Чужак не знает о наших маленьких хитростях. А наши менеджеры системы и операторы на них собаку съели. Джо Свентеку наверняка все известно. А как насчет чужака – хакера?
У слова «хакер» два разных значения. Приличные люди, компьютерные волшебники, способные заставить работать любую программу. Это не обычные инженеры-программисты, добросовестно отрабатывающие свои сорок часов в неделю, а фанаты, не отходящие от терминала, пока компьютер полностью не удовлетворит их любопытство. Хакер отождествляет себя с компьютером и знает его как самого себя. Именно таким меня считают астрономы: «Клифф не столько астроном, сколько хакер!» (Программистский народец, конечно, придерживается иной точки зрения: «Клифф не силен в программировании, зато какой астроном!» Еще в аспирантуре я понял, что лучше всего оставить каждую сторону при своем мнении). Но в общепринятом смысле хакер – это компьютерный взломщик1. В 1982 году, когда группа студентов использовала терминалы, модемы и телефонные линии междугородней связи для взлома Компьютеров в Лос Аламосе и в Колумбийском Медицинском Центре, всей околокомпьютерной публике стало известно об уязвимости сетевых систем.
Частенько до меня доходят слухи о вторжении в чью-то систему; жертвами обычно оказываются университеты, а виновниками – студенты или подростки. «Способные студенты вломились в компьютер, хранящий совершенно секретные сведения». Обычно такие шалости не причиняют существенного вреда и списываются на хакерские проказы. Могли бы события, показанные в фильме «Военные игры», произойти в действительности – мог бы хакер-подросток взломать пентагоновский компьютер и спровоцировать войну? Сомневаюсь. Нетрудно напакостить в университетском компьютере в котором напрочь отсутствует система защиты. В конце концов, коллеги редко запирают двери друг от друга. А вот военные системы – другое дело. Попасть в них так же трудно, как и на военные базы. И даже проникнув в военный компьютер, войну не развяжешь. Такие решения, я думаю, принимаются не компьютером.
Машины лаборатории Лоуренса в Беркли не оборудованы какой-то особенной системой защиты, но от нас требуют держать чужаков подальше и пресекать злоупотребления. Мы не боимся, что сломают нашу систему, а просто не хотим, чтобы наше финансовое агентство и департамент энергетики наехали на нас. Если они потребуют выкрасить компьютеры в защитный цвет, то закажем кисти.
Чтобы не лишать счастья общения с компьютером наших друзей-ученых, обитающих по соседству, мы завели несколько учетных записей для гостей. Зная гостевые учетное имя и пароль, любой может пользоваться компьютером, пока на счет за машинное время не набежит несколько долларов. Хакер запросто может проникнуть в систему – дверь широко открыта. Однако много он не наработает – время ограничено примерно одной минутой. И все же, можно успеть полазить по системе, считать несколько файлов общего доступа и выяснить, кто еще подключился. Мы полагали, что небольшая брешь в системе защиты окупается прочими удобствами.
Осмысливая происходящее, я пришел к выводу, что здесь вряд ли пахнет хакерством. Кому интересна физика частиц? Большинство наших ученых просто сомлеют от счастья, если кто со стороны удосужится прочитать их опусы. Хакеру здесь просто нечего ловить – у нас нет ни суперкомпьютеров, ни тайн сексуальной индустрии, ни других секретных сведений.
За пятьдесят миль отсюда располагалась Лоуренсовская Ливерморская Лаборатория, выполнявшая секретные работы по разработке ядерных бомб и проекту Звездных Войн. Вот где непаханое поле для хакера! Но не подключенные ни к одной из сетей ливерморские компьютеры не допускали никакого внешнего доступа: полная изоляция.
Если кто-то вломится в нашу систему, что он сможет натворить? Ну, считать файлы общего доступа. Многие из наших ученых хранят в них свои данные, там же находится большая часть программного обеспечения. Хотя они и называются файлами общего доступа, чужак не может лазить по ним. Некоторые данные защищены законами о частной собственности или авторских правах, например, наша библиотека программ или программа обработки слов. Другие базы данных тоже не предназначены для широкого использования: списки адресов сотрудников лаборатории и незавершенные отчеты по текущим работам. Все это, правда, вряд ли может стать объектом охоты, поэтому ни о каком засекречивании сроду речи не было. Меня не трогает, если кто-то из гостей-пользователей узнает чей-то телефонный номер. Есть проблема посерьезнее: может ли чужак стать суперпользователем?
Чтобы одновременно удовлетворить потребности около сотни пользователей, операционная система разделяет аппаратные ресурсы (как многоквартирный дом разделяется на отдельные квартиры). Жизнь в каждой квартире течет независимо от соседей. Один квартиросъемщик смотрит телевизор, другой болтает по телефону, а третий моет посуду. И все это одновременно. Необходимые для этого средства – электроэнергия, телефонная связь и вода – предоставляются комплексом коммунального обслуживания. И каждый квартиросъемщик ворчит по поводу плохого обслуживания и непомерной квартплаты. Так же компьютеры: один пользователь может решать задачу, другой – слать сообщение по электронной почте, а третий – рисовать картинки. Компьютерные ресурсы предоставляются системным программным обеспечением и операционной системой; и каждый пользователь нудит о ненадежности программ, путанице в документации и высоких расценках на машинное время.
Чтобы никто не совал нос в чужие дела, в двери каждой квартиры имеется замок, а у каждого квартиросъемщика – ключ. Нельзя зайти в чужую квартиру без ключа. Если стены толстые, то возня одного соседа не докучает другому. Право на «частную жизнь» в компьютере обеспечивает операционная система. Нельзя забраться в чужую область памяти, не зная пароля. И если операционная система позаботится о правильном распределении ресурсов, то пользовательские программы не будут мешать друг другу.
Но стены домов не такие толстые, чтобы голоса подвыпивших приятелей соседа не будили меня. А мой компьютер взбрыкивает, если одновременно на нем работает больше сотни человек. Как дому нужен управляющий, так и нашим компьютерам необходим менеджер системы, или суперпользователь. У управляющего есть специальный ключ-отмычка, которым он может открыть дверь в любую квартиру. Менеджер может прочитать или изменить в компьютере любую программу или данные, обойти защиту операционной системы и орудовать в компьютере на всю катушку. Такая власть необходима для обслуживания системного программного обеспечения («Разберись с редактором!»), для регулировки быстродействия системы («Что-то сегодня ни шатко, ни валко») и для того, чтобы люди могли выполнять свои задания («Эй, выдай Барбаре отчетец»). Привилегированные пользователи учатся ступать осторожно. Они не могут особо напортить, если их привилегии распространяются только на чтение файла. Но лицензия суперпользователя позволяет вносить изменения в любую часть системы – от его плюх не увернешься! Суперпользователь всемогущ. Когда наступает момент перехода на зимнее время, он переводит системные часы. Новый дисковый накопитель? Только он может поставить нужный драйвер. В различных операционных системах программисты с привилегированным доступом называются по-разному: суперпользователь, корень, менеджер системы. Их пароли и учетные имена ревниво скрываются от посторонних.
А что, если чужак-хакер получит в нашей системе привилегированный статус? Понятно, тогда он может открыть учетную запись для нового пользователя. Хакер, обладающий привилегиями суперпользователя, мог бы держать в заложниках кого угодно. Имея отмычку к системе, он мог бы вырубить ее, когда вздумается, или заставить валять дурака. Он мог бы читать, записывать или изменять любые данные в памяти компьютера. Ни один пользовательский файл не был бы закрыт для него. Системные файлы тоже были бы у его ног – он мог бы читать сообщения электронной почты до их доставки. Он мог бы даже изменить содержимое файлов учета, чтобы замести следы.
Лектор монотонно бубнил о гравитационных волнах. Внезапно я проснулся. Я все понял! Я подождал, пока слушатели задавали вопросы, сам что-то спросил, вскочил на велосипед и помчался в Лабораторию Лоуренса в Беркли. Хакер-суперпользователь! Кто-то вломился в нашу систему, завладел ключом-отмычкой, присвоил себе привилегии и превратился в суперпользователя. Но кто? Как? Когда? И, самое главное, зачем?
Глава 3
От Калифорнийского Университета до Лаборатории Беркли всего четверть мили, но склон холма, по которому проходит Циклотрон Роуд, настолько крут, что на велосипеде это расстояние можно покрыть лишь за пятнадцать минут. На моей развалине не нашлось нужной передачи, поэтому последние несколько сотен футов я почти полз на коленях. Наш компьютерный центр пристроился между тремя ускорителями частиц: 184-дюймовым циклотроном (на котором Эрнест Лоуренс впервые получил миллиграмм чистого, способного к расщеплению урана), Беватроном (при помощи которого был открыт антипротон), и Хайлаком (местом рождения полудюжины новых элементов).
Теперь эти ускорители уже устарели: их мегаэлектронвольты – вчерашний день, а бал правят гигаэлектронвольтные ускорители со встречными пучками. На наших старушках уже не получишь Нобелевскую премию, однако ученые по полгода ждут свидания с ними. Изучать на них ядерные частицы и исследовать новые формы материи с экзотическими названиями (например, кварк-глуонные плазмы или пионовые конденсаты) – одно удовольствие. А когда физикам не надо проводить свои эксперименты, потоки частиц используются медиками и биологами, в частности, для исследований в области терапии раковых заболеваний.
В разгар работ по Манхэттенскому проекту во время Второй мировой войны Лоуренсовские циклотроны были единственным средством измерения сечений реакций ядерного взаимодействия и взаимодействия урановых атомов. Естественно, лаборатория была окутана завесой секретности: она служила прототипом заводов по производству атомных бомб.
В 50-е годы все работы лаборатории Лоуренса в Беркли оставались засекреченными, пока Эдвард Теллер не основал Лоуренсовскую Ливерморскую Лабораторию, расположенную в часе езды отсюда. Все секретные работы были переданы в Ливермор, а несекретные – остались в Беркли. Может быть, специально, чтобы запутать врагов, обе лаборатории получили имя первого нобелевского лауреата из Калифорнии. Кроме того, обе они занимались исследованиями в области физики и финансировались Комиссией по атомной энергии – детищем Министерства Энергетики. Это почти все, что было у них общего. Для работы в лаборатории Беркли не нужен специальный допуск: здесь не проводились закрытые работы, да и военные контракты на горизонте не маячили. Ливермор, напротив, являлся центром разработки ядерных бомб и лазерного оружия по программе Звездных Войн. Неподходящее местечко для длинноволосого бывшего хиппи. Если лаборатория Беркли едва сводила концы с концами за счет ассигнований на науку и нерегулярных субсидий из университетских фондов, то Ливерморская – постоянно разрасталась. С момента создания Теллером водородной бомбы для всех проводимых в Ливерморе секретных исследований всегда находились средства.
В Беркли больше не велось работ по щедро финансируемым военным программам. Наградой за это была открытость. Нас тянуло к изучению любопытных явлений, и мы всегда могли публиковать результаты. Ускорители наши казались детскими игрушками по сравнению с чудищами швейцарского ЦЕРНа или расположенной в Иллинойсе Лаборатории Ферми. Но они давали громадное количество информации, которую приходилось обрабатывать на солидных компьютерах. Мы с гордостью смотрели на физиков, анализирующих на наших компьютерах информацию, полученную на других ускорителях.
По вычислительной мощности ливерморские компьютеры казались гигантами по сравнению с нашими (самые большие, самые быстрые и самые дорогие Крэи). Они помогали выяснить, что происходит в первые наносекунды термоядерного взрыва.
Из-за закрытости исследований большая часть ливерморских компьютеров была изолирована. У них было также несколько несекретных систем для обычных научных расчетов. Но все, что касалось секретных работ – не для простого смертного. Невозможно было также ввести извне данные в ливерморскую систему. Например, разработчик взрывателей для ядерных бомб, пользующийся засекреченными компьютерами, должен был являться в лабораторию собственной персоной с магнитной лентой подмышкой. Он не мог пользоваться ни одной из сетей, пересекающих страну вдоль и поперек, не мог подключаться и гонять свою программу с домашнего терминала. Такова цена жизни в засекреченном мире.
Хотя по вычислительной мощности наши компьютеры были несравнимы с ливерморскими, они вовсе не были увальнями. Наш ВАКС – быстродействующий, удобный и популярный среди физиков компьютер. Нам не было нужды изобретать собственные операционные системы – мы купили готовую – VMS фирмы ДЕК – и содрали в университете ЮНИКС. Наши компьютеры можно было включать в какую угодно сеть и обеспечивать доступ к ним из любой точки земного шара. Когда в полночь решение задачи вдруг начинает вырисовываться, то я спокойно набираю телефон лабораторного компьютера с домашнего терминала, а не кручу педали велосипеда вверх по склону.
Но в данный момент я все же крутил педали и мчался на работу, мучаясь вопросом: «Неужели хакер?» Этим можно было объяснить все казусы с системой учета. Если бы чужак подобрал ключи к операционной системе и затребовал привилегии суперпользователя, то он мог бы по своему выбору стирать учетные записи. Или, еще хуже, мог начать калечить другие компьютеры. Я поставил велосипед и побежал через лабиринт кабинетиков. Было далеко за пять и основной народ уже сидел по домам. Что же делать, если кто-то лазает по системе? Ну, можно послать по подозрительному адресу электронную почту: «Эй, вы вправду Джо Свентек?» Можно заблокировать доступ Джо к компьютеру и посмотреть, что будет. От размышлений о хакерстве меня отвлекла лежащая на столе записка: астрономической группе необходимо знать, насколько ухудшится качество получаемых с телескопа изображений, если снизить требования к зеркалам. Это обещало вечер программных моделей. Хотя официально я больше с телескопами не работал, но слаб человек… И я вывел все графики.
На следующее утро я бурно доложил Дэйву Клэвлэнду: «Даю голову на отсечение, это хакер.» Дэйв сел, закрыл глаза и произнес: «Да, голову, оно конечно…»
Я почти слышал его мысли. Дэйв никогда не затягивал гайки в системе защиты, полагая, что физикам это не понравится и они поищут другое местечко. Он держал систему открытой, посвящая все время улучшению программ, а не навешиванию замков. Неужели кто-то злоупотребил его доверием?
Моим новым боссом был Марв Атчли. Тихий и чувствительный, Марв не мог держать народ в узде и распустил всю группу. Марк был полной противоположностью Рою Керту. В свои пятьдесят пять Рой выглядел как Родней Дангерфилд в роли профессора колледжа. Он занимался физикой в лучших традициях Лоуренсовской лаборатории, сталкивая между собой протоны и антипротоны и разглядывая оставшийся после этого мусор. Рой обращался со студентами и персоналом, как со своими частицами и античастицами: выстраивал их в очередь, накачивал и затем выстреливал ими в неподвижные объекты. Для исследований ему требовались большие вычислительные мощности – в лаборатории происходили миллионы событий всякий раз, когда включался ускоритель. Долгие задержки и долгие извинения настроили его против компьютерщиков, поэтому когда я стучал в дверь, то убеждал себя, что буду говорить только о квантовой физике и уж никак не о компьютерах. Мы с Дэйвом могли предугадать реакцию Роя на возникшую проблему: «Какого черта оставляете двери открытыми?»
Да, реакцию босса можно предугадать, но как на нее ответить? Первое, что пришло в голову Дэйву – это заблокировать чертов доступ и забыть обо всем. Мне же казалось, что следует попугать этого хулигана: пригрозить вызвать родителей. Вламывается-то, скорее всего, какой-нибудь студентишка из ближайшего университета. Но мы не были до конца уверены, что к нам вообще кто-то вламывается. Да, это объясняло некоторые неполадки в системе учета – кто-то узнает пароль менеджера системы, подключается к нашей машине, вводит нового пользователя и сует нос в учетную систему. Но зачем пользоваться новым именем, если уже есть доступ к системе на правах менеджера?
Наш начальничек не любит плохих новостей, но все же ему пришлось, тяжело вздохнув, встретиться с нами во время обеда. У нас не было прямых доказательств хакерства – просто логические умозаключения, выведенные из обстоятельств: налицо банальная ошибка в системе учета. Если была попытка взлома, то неизвестно, как далеко она зашла. Не знаем мы также, кто взломщик. Рой Керт оборвал нас сразу же: «Почему я должен терять из-за вас время? Вы еще ничего не знаете. Разберитесь и представьте доказательства.»
Итак, как же разоблачить хакера? Найти хулигана, использующего атрибуты доступа Свентека, и проследить за его подключениями. Я провел весь четверг, беря на карандаш всех, кто подключался к компьютеру. Даже написал программу, заставляющую пищать мой терминал в начале каждого сеанса связи. Я не мог знать, что делает каждый пользователь, но я мог видеть его имя. Каждые две минуты мой терминал взвизгивал, и я смотрел, кто подключился. Вот несколько моих приятелей-астрономов, работающих над научным отчетом, вот аспиранты, корпящие над своими диссертациями. Больше всего подключалось чужаков, и я спрашивал себя: «Как определить, кто из них может быть хакером?»
В этот день в 12–33 подключился Свентек. Я почувствовал, как в мою кровь обильными порциями поступает адреналин. Затем – полный упадок сил, когда он исчез. Единственное, что осталось – это идентификатор его терминала: он использовал терминальный порт tt23. Задача – определить физические провода, соответствующие логическому имени tt23. Терминалам нашей лаборатории и модемам, подключаемым через телефонные линии, присвоены метки «tt», а сетевым подключениям – «nt». До меня дошло, что подключался этот парень либо из лаборатории, либо по телефонному каналу через модем. Теоретически можно было проследить всю цепочку – от компьютера до человека на противоположном конце. Но чтобы проверить все и всех, потребовалось бы месяцев шесть. Первоочередной задачей было выявить подключения из здания. Я подозревал, что использовался модем, связанный по телефонному каналу, но нельзя исключать и вход в компьютер из лаборатории. За несколько лет было подсоединено добрых пять сотен терминалов, и только Поль Мюррей во всем этом разбирался. К счастью, доморощенные схемы соединений были задокументированы лучше доморощенных программ.
Поль, один из наших аппаратчиков, как одинокий волк скрывался в логове из проводов. За панелью одного устройства он подсоединял детектор частиц к локальной системе Этернет. Эта система образует электронные конвейеры, объединяющие сотни малых вычислительных машин. Несколько миль оранжевого этернетовского кабеля, извиваясь как змея, пролегало по всей лаборатории. Поль знал каждый его дюйм. Когда я появился, он припаивал какой-то провод и встретил меня потоком отборной ругани. Он отказался помочь, пока я не представлю официального подтверждения, что мне действительно нужны схемы соединений. О, черт! Аппаратчики никогда не интересуются программистскими проблемами, а сами программисты в аппаратуре – ни бум-бум. Но я-то паять умел, поэтому взял его запасной паяльник и через две минуты, дуя на обожженные пальцы, выслушал скупую похвалу. Наконец, он выбрался из клубка этернетовских кабелей и показал мне все коммутационное хозяйство лаборатории. Здесь были телефоны, системы внутренней связи, радиоаппаратура и компьютеры, и все это – в переплетении кабелей, проводов, волоконно-оптических линий. Подозрительный порт tt23 входил в эту комнату, и вторичный компьютер подключал его к одному из тысячи возможных терминалов. Любому, кто наберет номер лаборатории, произвольным образом назначался какой-нибудь юниксовский порт. В следующий раз, когда я увижу что-то подозрительное, я должен буду сломя голову нестись к коммутатору и определять соединение, исследуя вторичный компьютер. Если соединение будет разорвано до того, как я успею, то, считайте, ничего не вышло. И даже в случае успеха я смогу лишь определить пару проводов, идущих в лабораторию. До хакера еще далеко.
По счастливому стечению обстоятельств дневное подключение не прошло бесследно. Поль набирал статистику о том, сколько человек использовало коммутатор. Случайно он записал номера портов для всех подключений за последний месяц. Так как я знал время, когда Свентек использовал порт tt23, то можно было выяснить, как он подключался. Распечатка статистики показала, что сеанс, начавшийся в 12–33, длился одну минуту, а темп передачи данных составлял 1200 Бод. Это уже кое-что. Темп передачи – это скорость, с какой данные передаются по проводу. 1200 Бод – это 120 символов в секунду, т. е. несколько страниц текста в минуту. Подключаемые к телефонной линии модемы работают именно с темпом 1200 Бод. А для терминалов лаборатории используются более высокие значения – 9600 или даже 19200 Бод. Только человек, связывающийся с компьютером через модем по телефону, вынужден гонять свои данные через такую тонкую соломинку. Но именно анонимность и удобство телефонной связи наиболее привлекательны для посторонних пользователей. Так! Концы начинают сходиться. Я еще не мог доказать, что с системой балуется хакер, но уже видел, что кто-то подключается к ней через телефонный канал и использует атрибуты доступа Свентека.
Конечно, подключение с темпом передачи 1200 Бод – еще не доказательство факта хакерства. Все это неубедительно для босса. Я должен найти явное свидетельство хакерства. Но как?
Рой Керт однажды показал мне детектор частиц высоких энергий, подсоединенный к Беватрону: они зафиксировали огромное количество взаимодействий на субатомном уровне, которые в 99,99 процентах случаев можно было объяснить, применяя законы физики. Если потратить время, исследуя след каждой частицы, то можно прийти к заключению, что вообще-то все частицы подчиняются известным физическим законам и что открытие не состоялось. Другой подход – отбросить все объяснимые взаимодействия и заняться только теми, которые не подчиняются каноническим правилам. Астрономы – дальние родственники физиков – действуют аналогично. Успех им приносит изучение аномалий – квазаров, пульсаров, гравитационных линз – всего, что не укладывается в рамки построенных моделей. Знание статистики распределения кратеров на Меркурии позволяет вычислить, с какой частотой эта планета подвергалась бомбардировке на ранних стадиях развития солнечной системы. Но обратите внимание на несколько кратеров, пересекаемых скрепами и кряжами, и вы узнаете, как сжималась планета в процессе охлаждения в первый миллиард лет. Собирайте информацию и отбрасывайте все ожидаемое. Все, что осталось – предмет для размышлений.
Так, теперь попробуем применить все эти рассуждения и вычислить нежданного гостя. На моем столе стоял терминал, кроме того, я мог позаимствовать еще парочку. Предположим, что я пытаюсь контролировать все пути, ведущие в компьютерный центр. В систему входит примерно пятьсот линий подключения. Большая их часть работает с темпом передачи 9600 Бод, что соответствует приблизительно ста пятидесяти словам в секунду. Если одновременно работает половина линий, то мне придется читать свыше десяти тысяч страниц каждую минуту. Да, так ничего не выйдет.
Но быстродействующие линии связаны только с лабораторными терминалами. Мы уже отследили одно подозрительное подключение с темпом передачи 1200 Бод. Таких линий гораздо меньше и работают они намного медленнее. Пятьдесят линий с темпом 1200 Бод дадут сто страниц текста в минуту – все еще слишком быстро, чтобы можно было читать с экрана. Я не могу одновременно наблюдать за работой пятидесяти человек, но могу сделать распечатки всех интерактивных сеансов связи и потом прочесть. Кроме того, распечатка – уже доказательство, что некто вмешивается в работу системы; если же не обнаружится ничего подозрительного, то можно будет поставить точку. Тогда мне нужно будет фиксировать каждое подключение с темпом передачи 1200 Бод. Технически это вряд ли возможно, поскольку я не знаю, по какому телефону будет подключаться хакер: придется контролировать примерно четыре дюжины каналов. И еще меня беспокоит этическая сторона. Имею ли я право следить за потоками информации, проходящими через наши каналы? Моя подружка Марта как раз заканчивала юридический колледж. За пиццей мы говорили на тему привлечения к ответственности взломщиков компьютеров. Я поинтересовался, будут ли проблемы, если я «прослушаю» потоки чужих данных.
– Значит, так, – невнятно проговорила она, пытаясь жевать и объяснять одновременно, – ты – не фараон, поэтому тебе не нужен ордер на обыск. Худшее, что тебя ждет – это обвинение в нарушении прав личности. Вряд ли люди, подключающиеся к компьютеру через телефонный канал, будут требовать, чтобы владелец системы не заглядывал к ним через плечо. Поэтому слушай на здоровье.
С чистой совестью я начал создание системы контроля. У нас пятьдесят линий с темпом передачи 1200 Бод. Хакер может воспользоваться любой из них. У меня не было оборудования, чтобы регистрировать информационные потоки.
Но есть простой способ зафиксировать хакерскую активность: так переделать операционную систему, чтобы при любом подозрительном подключении сама система фиксировала бы каждое нажатие клавиши на клавиатуре. Чертовски соблазнительно. Все, что потребуется – добавить несколько строк в программу «демон».
Демоны – это программы, копирующие данные из внешнего мира в операционную систему – глаза и уши ЮНИКСа. (Древнегреческие демоны – низшие божества – что-то среднее между богами и людьми. В этом смысле мои демоны были чем-то средним между богоподобной операционной системой и низшим миром, в котором живут диски и терминалы.) Я могу раскурочить демона и устроить этакий тройник: символы, введенные с клавиатуры хакера, будут одновременно поступать и в операционную систему, и на принтер. Просто и элегантно.
Вэйн напутствовал меня: «Если ты напортачишь, то развалишь всю систему. Превратишь ее в кучу навоза – и ройся потом. Только и радости, что увидишь на распечатке „Аварийное прерывание ядра“. Потом не рыдай у меня на плече!» Тут подскочил Дэйв: «Сынок, если твой хакер хоть что-то петрит в ЮНИКСе, то он просто обязан заметить изменения в демонах!»
Убедительно. Любой дока-программист заметит изменения в операционной системе. Как только хакер почует контроль, он превратит наши базы данных в груду мусора и слиняет. Перехваты следует производить так, чтобы их никто не засек. Невидимая и неслышимая слежка – вот что надо.
Может быть, просто записать поступающую по телефонным каналам информацию на магнитную ленту? Нет, магнитофоны не годятся, слишком много хлопот. Запись придется воспроизводить, когда хакер уже отключится. И, наконец, где я найду пятьдесят магнитофонов?! Единственный участок тракта, где можно перехватить поток данных – между модемом и компьютером. Модемы преобразуют телефонные гудки в электрические импульсы, понятные для наших компьютеров и демонов. Модемные шины представляют собой плоские двадцатипятипроводные кабели, проложенные под фальшполом коммутатора. К ним можно подключить принтер или персональный компьютер, регистрирующий каждый передаваемый через шины символ.
Потребуется всего-то пятьдесят телетайпов, принтеров и портативных компьютеров. Несколько телетайпов достать легко – обратиться в отдел снабжения. Портативные терминалы можно выклянчить у Дэйва, Вэйна и остальных ребят. В пятницу вечером мы подняли из коммутаторной дюжину мониторов. Остальные тридцать можно заполучить, когда все уйдут. Я бродил среди столов секретарш, заимствуя персональные терминалы. В понедельник, конечно, будет скандальчик, но легче после извиниться, чем сперва добиться.
Уставленный четырьмя дюжинами стареньких телетайпов и портативных терминалов пол воплощал ночной кошмар компьютерщика. Я дремал среди всего этого и мурлыкал колыбельную принтерам и компьютерам. Каждый из них перехватывал данные на отдельном канале, и всякий раз, когда кто-то подключался, я вздрагивал от треска телетайпов. Каждые полчаса один из мониторов сообщал, что кончилась бумага или дисковое пространство, поэтому мне приходилось устанавливать новый рулон и перезагружаться.
В субботу утром я проснулся оттого, что Рой Керт тряс меня за плечо: «Ну, где же твой хакер?» Запах от меня шел, как от козла: я все еще был в спальном мешке. Я глупо моргал и бормотал, что надо просмотреть пятьдесят стопок распечаток.
Он фыркнул: «Ну, прежде, чем погрузишь свой нос в эти бумаги, верни принтеры. Ты, как маньяк, таскал оборудование. Думаешь, здесь твой личный огород?»
С осоловелыми глазами я поволок принтеры законным владельцам. На первых сорока девяти не было ничего интересного. Из пятидесятого свисало восемьдесят футов распечатки. Ночью некто пытался пробраться через дыру в операционной системе.
Глава 4
Хакер лазал по нашей системе три часа. Втайне мой Декрайтер записал весь сеанс на восьмидесяти футах бумаги. Зафиксирована была каждая команда, каждая ошибка набора с клавиатуры и все реакции компьютера. Этот принтер контролировал телефонный канал из Тимнета. Я не знал, что несколько наших линий с темпом передачи 1200 Бод не связаны с модемами, а идут из Тимнета – телекоммуникационной компании, обеспечивающей компьютерную связь по всему миру.
Ранее компания «Белл» монополизировала средства связи. Позвонить из Нью-Йорка в Чикаго можно было только по каналам фирмы AT&T. Используя модемы, можно передавать данные по местной телефонной линии, однако для междугородней связи помехи и дороговизна делают ее непригодной для организации взаимодействия между компьютерами. К концу 70-х годов другие фирмы тоже захотели погреть руки и предложили специализированный вид услуг – «телефон» для данных. Тимнет создал сеть, связывающую компьютеры главных городов. Идея Тимнета проста и элегантна: создать «хребет» для передачи цифровой информации, позволить любому желающему подключаться к этому хребту, используя внутригородские телефонные каналы, и затем передавать данные в любой компьютер. Система Тимнета весьма экономична: она обеспечивает сжатие данных, поступающих от нескольких десятков пользователей, в несколько пакетов и передачу этих пакетов в нужные компьютеры. Система устойчива к помехам и обеспечивает любое нужное быстродействие. Клиенты, кроме того, экономят свои денежки, поскольку для них обеспечивается доступ в удаленный компьютер с помощью телефонного звонка.
Чтобы удовлетворить потребности научных работников из различных уголков страны, лаборатория в Беркли также была абонентом Тимнета. Когда ученому из Стоунибрука, штат Нью-Йорк, надо подключиться к нашему компьютеру, то он просто набирает городской номер Тимнета. Поскольку его модем связан с Тимнетом, то все, что требуется – попросить подсоединить его к Лоуренсовской лаборатории в Беркли, – и можно начинать работать, как у нас за терминалом. Физикам из отдаленных уголков очень нравился этот вид услуг, и нам всегда было очень приятно сознавать, что что они спускают свои баксы на наш компьютер, а не на какой-нибудь другой.
Некто вламывался, используя Тимнетовский канал. Поскольку «щупальца» Тимнета тянулись по всей стране, то наш хакер мог находиться где угодно. Но в этот момент меня интересовало не где он, а что успел натворить за три часа. Моя догадка подтвердилась: для взламывания нашего компьютера использовались атрибуты доступа Свентека.
Это был не простой взлом. Хакер был суперпользователем.
Этот хакер напоминал кукушку. Кукушка откладывает свои яйца в гнезда других птиц. Это – гнездовой паразит: ее кукушат будут растить другие матери. Кукушата, вылупившись из яиц, выбрасывают из гнезд «родных» обитателей. Жизнь птенцов кукушки – это смерть птенцов других видов. Таинственный гость подложил в наш компьютер яйцо-программу, а система «высидела» ее и накормила привилегиями.
Этим утром хакер написал коротенькую программу захвата привилегированных прав. Обычно ЮНИКС не позволяет запускать такие программы, так как никогда не дает пользователю прав выше тех, которые ему назначены. Задача заключалась в том, чтобы замаскировать эту программу – кукушкино яйцо – так, чтобы система ее восприняла как родное дитя.
Каждые пять минут система ЮНИКС выполняет собственную программу с именем atrun. Atrun планирует другие задания и выполняет рутинную работу по «уборке дома». Она работает в привилегированном режиме на всю катушку, чувствуя за своей спиной могучую поддержку операционной системы. Если на место atrun подставить фальшивую программу, то она сработает через пять минут и получит полные системные привилегии. По этой причине atrun располагается в защищенной области памяти системы, доступной только менеджеру. Здесь и было гнездо кукушки: за пять минут хакер, наверное, успеет подменить atrun своей программой.
Чтобы обтяпать это дельце, ему нужно найти способ поместить яйцо-программу в защищенную область-гнездо. У операционной системы есть специальные защитные средства. Обычные программы копирования их обойти не могут; нельзя задать команду «скопировать программу в системную область».
Но было кое-что, чего мы никогда не замечали. Ричард Столман, свободный художник-программист, всегда громко заявлял, что информация должна быть открытой. Его программы, которые он раздавал задаром направо и налево, блистали остротой мысли, хорошим стилем и вдохновением. Столман создал мощную программу редактирования под названием «Гну-Эмакс». Гну – это гораздо больше, чем простой текстовый редактор. Ее очень легко перестроить под любого пользователя. Она здорово облегчает написание других программ. Естественно, что всем нашим физикам сразу потребовалась Гну; мы успешно инсталлировали ее, большую часть времени глядя в потолок. Была только одна проблема: в ней сидела плюха.
Инсталляция производилась так, что возможность пересылать файл из собственного каталога в чей-либо другой обеспечивалась необычным способом. Гну не проверяла, кто принимает этот файл, и нужен ли он в месте назначения. Она просто переименовывала его и меняла метку принадлежности. То есть происходила простая передача права владения от одного пользователя к другому.
Переслать файл из вашей области в мою нетрудно. Но лучше не пытаться переслать его в защищенную системную область – это может делать только менеджер. Программа Столмана должна была бы контролировать такие попытки. Но не контролировала. Это позволяло кому угодно переслать файл в защищенную системную область. Хакер это знал, а мы нет. Хакер использовал Гну для замены родной системной версии atrun на свою программу. Пять минут спустя система начала насиживать подложенное яйцо, и он получил ключи от нашего компьютера.
Гну оказалась дырой в системе защиты.
Теперь я все понял. Наш приятель должен был войти в систему с атрибутами пользователя-гостя, раздобыть привилегии, используя плюху в Гну, и затем добавить нового пользователя в учетные файлы.
На первых нескольких футах распечатки я ясно вижу, как кукушка готовит гнездо, откладывает яйцо и ждет, когда его начнут насиживать. Следующие несколько футов – и оперившийся кукушонок расправляет крылья.
Первое, что он сделал – замел за собой следы: переписал на место «родную» версию atrun. Затем покопался в электронной почте всех пользователей, ознакомился с новостями, сплетнями и любовными письмами. Он узнал о модификациях, внесенных за последний месяц, грантах и приеме новых служащих. Он искал изменения в файлах менеджера системы и узнал, что я только что поступил на работу. Он выяснил мой заработок и прочел резюме. И что самое страшное – ему известно мое учетное имя и то, что я – системный менеджер. В любом случае теперь мне лучше пользоваться другим именем.
Каждые десять минут хакер выдавал команду «who» (кто), чтобы проверить список пользователей, подключенных к компьютеру. Затем он проверил, нет ли изменений в операционной системе – если бы я подменил демонов, то он, конечно же, это обнаружил бы. Я чувствовал себя ребенком, играющим в прятки, когда водящий проходит в нескольких дюймах.
За первый час он написал программу, просматривающую всю электронную почту и ищущую любое упоминание о его деятельности. Ключом служили слова «хакер» и «защита».
Один сотрудник запустил программку «gather» (сбор), собирающую данные по эксперименту. Совершенно безвредная, она просто каждые пять минут собирала информацию и записывала в файл. Хакер обнаружил эту программу, поворочал мозгами десять минут, пытаясь понять, затем уничтожил. Он уничтожал любое задание, которое, как ему казалось, следит за ним. Он вскрыл мою почту, проверяя, нет ли в ней упоминания о хакерах. Вэйн был прав: если не замаскироваться, то он обнаружит слежку.
Мы должны быть неслышимы и невидимы. Когда хакер успокоился, он стал читать файлы. Изучив несколько командных файлов и комментариев научных работников, он нащупал пути в другие компьютеры. Каждую ночь наш компьютер автоматически связывается с двадцатью другими для обмена почтой и сетевыми новостями. Перед хакером было двадцать новых мишеней.
Из почтового файла:
«Привет, Эд!
Следующие две недели я буду в отпуске. Если потребуются данные, войди под моим именем в ВАКС. Учетное имя – Вильсон, пароль – Марианна (так зовут мою жену). Счастливо поразвлечься!»
Не знаю, как Эд, а хакер развлекся. Он подключился к ВАКСу через нашу локальную сеть и вошел с атрибутами Вильсона. Вильсон вряд ли узнает, что хакер ковырялся в его файлах, а скорее всего, ему плевать. Файлы содержали числовые данные, нужные разве что другому физику-ядерщику.
Наш непрошеный гость знал о существовании в лаборатории внутренних сетей. Десяток наших больших компьютеров был связан с сотней малых вычислительных машин; для этого использовались Этернеты, последовательные шлейфы и «жевательная резинка». Когда физикам нужно получить данные от подключенного к циклотрону компьютера, меньше всего они думают об элегантности. За несколько лет инженеры и техники оплели лабораторию паутиной кабелей, соединяющих компьютеры со всем, что работает. Локальная сеть охватывала каждый кабинетик. Организация этой сети основывалась на доверии. Если уж вы работаете на одном компьютере, то имеете право работать и на соседнем. Это экономит время: при использовании нескольких машин не надо знать больше одного пароля. Наш «друг» не мог знать, для чего используются эти системы, но уже нащупывал путь в локальную сеть, ища способ подключения к не исследованным пока компьютерам.
В конце сеанса на ленте принтера уже не осталось краски. Слегка поводив карандашом по бумаге, я все же с трудом мог различать следы, оставленные печатающей головкой: хакер скопировал наш файл паролей и затем отключился.
Меня отвлек звук бас-гитары. Прямо на улице играла группа «Грейтфул Дэд». Полиция не могла удержать народ и публика сидела прямо на газоне. Я выскочил из лаборатории и растворился в тысяче летних рубашек. Загорелые попрошайки – наследие шестидесятых – сновали в толпе, клянча билетики и предлагая программки, букетики и травку. Соло на барабанах доносилось со Строберри Каньон, добавляя тему судьбы, оценить которую могли только мы – дети полей. Жизнь била ключом – хакер не стоил того, чтобы из-за него пропускать концерт «Дэдов».
Глава 5
В понедельник утром исполнилось ровно две недели, как я здесь работаю. Я казался себе не таким уж волшебником…
Я подробно, как первокурсник, записал в журнал все события. Не то чтобы я намеревался использовать эти записи – просто хотелось попрактиковаться в текстовом процессоре Макинтоша. И еще я помнил «Правило большого пальца для астрономов»: все, что не записано – не существовало.
Босс потребовал меня к себе, как только пришел.
Я думал, что он в ярости из-за этих терминалов. Руководство у нас добродушное, но даже волшебникам не полагается тащить без спроса груды оборудования. Но Рой даже не заикнулся о терминалах. Его интересовал хакер.
– Когда он возник?
– В воскресенье, в пять утра, на три часа.
– Стер что-нибудь?
– Уничтожил одну программу, которая, как ему казалось, следит за ним.
– Опасность реальна?
– Он – суперпользователь. Может уничтожить все файлы.
– Можно с ним покончить?
– Наверное. Мы знаем одну дырку; можно легко заштопать.
– Полагаете, это его остановит?
Я мог догадаться, куда он клонит. Рою не хотелось захлопывать двери. Он знал, что мы можем легко аннулировать права доступа Свентека. А теперь, когда мы знаем про дыру, то и привести в порядок «Гну Эмакс»: достаточно добавить в программу пару строчек для проверки каталога назначения. Первое, что приходит в голову – прикрыть лавочку. Мы знаем, как хакер проникает в систему, и знаем, как его вышвырнуть оттуда. Но какие подарочки оставил нам наш загадочный гость? У каких еще пользователей он срисовал атрибуты доступа? В какие еще компьютеры вломился? Именно от этого болела голова. Распечатка показала, что хакер – весьма компетентный программист-системщик, способный использовать малейшие плюхи, о которых мы и понятия не имели. Что же он еще натворил?
Если вы – суперпользователь, то можете изменять любые файлы. Не перекурочил ли хакер системные программы, открывая себе черный ход? Не поставил ли заплату на систему, чтобы она распознавала его волшебный пароль? Не занес ли компьютерный вирус? В персональных компьютерах вирусы распространяются путем копирования самих себя в другие программы. Если вы передаете кому-нибудь зараженную дискету, вирус копирует самого себя в другую программу, распространяясь с дискеты на дискету. Если вирус доброкачественный, то его трудно обнаружить, правда, и особого вреда он не приносит. Но нетрудно соорудить злокачественный вирус, копирующий самого себя и стирающий файлы данных. Так же просто создать вирус, который будет спать несколько месяцев и в один прекрасный день вдруг взорвет все вокруг. Вирусы – это существа, преследующие программистов в их ночных кошмарах.
Обладая правами суперпользователя, хакер мог заразить нашу систему так, что ее потом уже никогда не вылечишь. Его вирус мог скопироваться в системные программы и затеряться в дебрях компьютерной памяти. Копируя себя из программы в программу, он увернулся бы от любой попытки его уничтожить.
В персональном компьютере можно заново установить операционную систему после ее уничтожения. Наша же подвергалась очень сильным изменениям. Мы не можем обратиться к изготовителю и сказать: «Дайте нам исходную копию». При заражении можно только реинсталлировать систему с лент, хранящих копию возобновления. Если вирус занесен шесть месяцев назад, то эти ленты тоже заражены.
Может, он поставил нам логическую мину – программу с «часовым механизмом», которая рванет когда-нибудь в будущем? Или, возможно, этот незваный гость «расстрелял» наши файлы, «убил» парочку заданий и «развинтил» систему учета. Не натворил он чего поужасней?
Можно ли доверять программам и данным? Мы не могли. Если вдруг он нашел другой способ взлома, то попытка вышвырнуть его не сработает. Необходимо выяснить, кто он, что натворил и что собирается делать.
– Скорее всего, это какой-нибудь студентик университета Беркли, – сказал я Рою. – Все они ЮНИКСовские волшебники и держат нас за идиотов.
– Я не очень в этом уверен, – сказал Рой, откинувшись в кресле. – Почему некто из Беркли вламывается через Тимнет, когда мог бы без труда набрать номер нашей системы и подключиться по телефону?
– Может быть, Тимнет – это крыша, – возразил я. – Укрытие. Если бы он прямо набрал номер лаборатории, то мы бы его накрыли. Но теперь нам надо следить и за Тимнетом, и за телефонными подключениями.
Мои размахивания руками не убедили босса. Может быть, научный опыт, а может быть, природная склонность к сомнениям развили в Рое критический склад ума: он не согласится, что это студент, пока его сюда не притащат. Уикендовские распечатки показали, что это, несомненно, хороший программист, но его можно было искать где угодно. Чтобы выследить парня, надо висеть на телефонных каналах. Изрядная работенка.
Рой принял решение не принимать решения. «Давай перекроем на день все сетевые подключения. Завтра утром я поговорю с директором лаборатории. Подумай, что надо сделать. Мы можем подождать, но рано или поздно мы сядем на хвост этому парню или просто вышвырнем его.»
Мне сильно надо гоняться за кем-то? Это отвлечет меня от программирования. Вряд ли ловля хакера имеет много общего с астрономией или физикой. Больше похоже на игру в прятки или в сыщика и вора. Но есть в этом деле и плюс – я могу изучить телефонные каналы и принципы работы сетей. Представляю себя ребенком, ворвавшимся в мамочкину спальню с воплем: «Ни с места! Бросай клавиатуру!»
Во второй половине дня во вторник позвонил Рой: «Директор сказал: „Это электронный терроризм. Бери все, что нужно, но поймай этого ублюдка. Забирай все машинное время. Потрать три недели. Схвати его за хвост!“»
За мной стоит все рассвирепевшее руководство. Вперед!
Глава 6
Я рулил домой, изобретая хитроумные ловушки для хакера. По мере приближения к дому мои мысли устремились в направлении ужина. Здорово, если к ужину меня ждут!
Вот уже несколько лет Марта Мэтьюс и я жили вместе. До этого мы были друзьями и настолько хорошо знали друг друга, что не могли даже представить, что когда-то были незнакомы. Мои приятели только руками разводили. Они не предполагали, что я способен оставаться с одной и той же женщиной столько лет. Я влюбился, ухаживал, затем мы почувствовали, что не можем обходиться друг без друга. Обычно я сохранял хорошие отношения с бывшими возлюбленными, но не делал попыток к продолжению романов. Цинизм и сарказм защищали меня. Но с Мартой – другое дело. Постепенно между нами исчезали все барьеры. Она настаивала, чтобы мы обсуждали наши разногласия, хотела знать причины моего настроения, требовала, чтобы мы оба думали о том, как лучше ладить. Иногда это трудно было вынести – я терпеть не мог ничего обсуждать, когда был раздражен, – но обычно действовало благотворно. У меня появился инстинкт построения гнезда. Мне нравилось в свободное время бродить по дому и устранять всякие там неполадки, ремонтировать выключатель, менять лампочки или чинить витражи из цветных стекол. Мы провели много уютных вечеров вдвоем: она – за шитьем, я – за чтением. Иногда играли в скрэббл. Я начинал чувствовать…
Жениться? Мне?! Нет. Ни за что. Брак – это конец, ловушка для дураков. Когда вы женитесь, от вас ждут, что вы останетесь на всю жизнь таким, как в первый день. Если дойдет дело до ругани, то смыться невозможно. И надоест видеть одно и то же лицо каждый день. Тоска и пошлость.
Жить вместе – совсем другое дело. Оба свободны. Мы добровольно выбираем, продолжать ли совместную жизнь. Мне так лучше, и Марта, кажется, довольна.
Я спрашивал себя, не расстроится ли она, если следующие несколько недель я буду ночевать на работе. За три недели надо отловить хакера. А реально? Пара дней уйдет на подготовку, еще несколько – на выслеживание в сети и захват с поличным. Вероятно, придется сотрудничать с полицией, значит, еще день или два. За две недели, наверное, управимся, и я смогу вернуться к обслуживанию компьютеров, а, может быть, займусь астрономией.
Мы должны сплести сеть, достаточно мелкую для хакера и достаточно крупную для наших ученых мужей. Я должен обнаружить хакера, как только он подключится к линии, и позвонить ребятам из Тимнета с просьбой отследить его.
Обнаружить хакера мне казалось простым делом: надо только поставить в моем кабинетике два терминала. Один для работы, а другой – для наблюдения за системой. При каждом подключении к компьютеру будут раздаваться два гудка – сигнал, что надо проверить нового пользователя. При появлении чужака я должен буду спуститься в коммутаторную и все выяснить. Теоретически несложно. На практике почти невозможно. Из тысячи пользователей я знал примерно двадцать. А остальные 980? Значит, надо проверять всех. Каждые две минуты я должен бегом нестись вниз, думая, что рыбка попалась. А поскольку я могу пропустить сигнал, если буду дома, то надо забыть про Марту и ночевать под столом.
Коврик имел запах сиденья городского автобуса, а вскакивая при каждом гудке терминала, я бился головой о дно ящика письменного стола. Пара ночей, оставивших отметины на моей голове, убедили меня, что надо поискать другой способ.
Если бы я знал, какие учетные имена «срисовал» хакер, то было бы нетрудно написать программу «отлова» этого паршивца. Не надо проверять всех, пользующихся компьютером; сигнал раздавался бы только при использовании «украденных» атрибутов. Но предупреждение Вэйна Грэйвса висело надо мной: «Оставайся невидимым!» Это означало – никакой деятельности на главном компьютере. Мы только что установили новый ЮНИКСовый компьютер – ЮНИКС-8. На нем еще не стояло никакой защиты. Его можно было бы подсоединить к нашей локальной сети, защитить от возможных вторжений и наблюдать с его помощью за машинами ЮНИКС-4 и ЮНИКС-5.
Я защитил мой ЮНИКС-8 при помощи системы одностороннего доступа. Информация могла поступать в компьютер, но считать ее было нельзя. Дэйв Клэвленд рассказал мне, как настроить ЮНИКС-8, чтобы он отвергал все попытки подключиться и при этом незаметно следил за другими компьютерами, ища следы нехорошего парня.
Программа получения блока состояния из каждого локального компьютера оказалась несложной. Дэйв сомневался в моих познаниях в языке Си, поэтому взял штурвал на себя и уменьшил размер программы до двадцати строк.
Мы запустили программу-сторож. Со стороны она ничем не отличалась от обычных лабораторных систем. Любой, запрашивающий ее статус, получал приглашение зарегистрироваться. Но подключиться было невозможно – этот компьютер не признавал никого, кроме Дэйва и меня. У хакера не могло возникнуть подозрений, так как никто не знал об этом компьютере. Со своих высот администратор сети опрашивал все остальные ЮНИКСы: «Эй, кто подключен?». Раз в минуту программа анализировала ответы и искала имя «Свентек». Когда появится Свентек, то запищит терминал и я в очередной раз разобью себе голову.
Но сигнал тревоги сам по себе не ловит хакера. Нужно проследить весь его путь от нашего компьютера до лежбища.
Второй возможности стянуть пятьдесят принтеров для контроля тракта не было, поэтому пришлось наблюдать только за наиболее вероятными линиями. В субботу утром он вошел через один из четырех Тимнетовских каналов, поэтому начать было лучше всего именно с них. Я не мог купить, украсть или одолжить на несколько недель даже четыре принтера, поэтому пошел попрошайничать. Один профессор физики, втайне довольный, что ему удалось сбыть с рук такой хлам, дал мне видавший виды Декрайтер. Секретарша подарила лишний ИБМ, получив от меня в обмен согласие обучить ее пользоваться программами обработки таблиц. Печенье вкупе с уговорами помогли добыть еще два стареньких принтера. Теперь мы могли контролировать все наши Тимнетовские каналы.
Во второй половине дня в среду заканчивалась неделя с момента обнаружения хакера. В Беркли было солнечно. Программа-сторож бдила, принтеры деловито стучали при каждом нажатии клавиши, а я рассеянно бродил, размышляя об инфракрасном излучении в созвездии Плеяд. Вдруг терминал пропищал два раза – появился пользователь с атрибутами Свентека. Адреналин хлынул мне в кровь и я бросился в коммутаторную. Из распечатки я узнал, что хакер подключился в 2-26 и пока активен.
Принтер «выплевывал» букву за буквой, повторяя каждое нажатие клавиши. Зарегистрировавшись в компьютере ЮНИКС-4 под именем Свентек, хакер прежде всего покопался в списке подключенных пользователей. К счастью, сегодня, кроме обычной смены физиков и астрономов, никто не работал; программа-сторож была надежно спрятана в машине ЮНИКС-8. «Извини, – прошептал я, – но здесь никого нет, кроме астрофизиков».
Все, как в прошлый раз. Он проверил все активные процессы. ЮНИКСовая команда «ps» позволяет распечатывать статус других процессов. У меня есть привычка вводить эту команду в виде «ps – axu» – последние три буквы говорят папаше ЮНИКСу, что сообщать надо статусы всех пользователей. Наш незваный гость, однако, ввел эту команду в виде «ps – eafg». Странно. Я в жизни не видел никого, кто пользовался флагом g. Много он не нарыл: несколько научных программ анализа, причудливую программу побуквенной печати и программу сетевой связи с компьютером ЮНИКС-8. Чтобы обнаружить слабую связь ЮНИКС-8 с системой ЮНИКС-4, ему потребовалось ровно три минуты. Но мог ли он проникнуть? Используя команду rlogin, он пытался это сделать раз шесть, стучась в дверь восьмого ЮНИКСа с учетным именем и паролем Свентека. Бесполезно. Дэйв надежно прикрыл дверь.
Явно удовлетворенный отсутствием слежки, он просмотрел файл паролей системы. Правда, особенно там смотреть нечего: все пароли шифруются и только потом записываются. Зашифрованный пароль – тарабарщина, хакер ничего путного не почерпнет. Он не захватил привилегий суперпользователя, а просто проверил файл Гну-Эмакс на предмет отсутствия изменений. Это лишний раз подтвердило, что мы имеем дело с тем же самым хакером: никто другой не стал бы проверять дыру в системе безопасности. В 2-37, спустя одиннадцать минут после начала сеанса, он внезапно отключился. Но мы уже успели сесть ему на хвост.
Тимнет! Я забыл предупредить их сетевой операционный центр, чтобы они там проследили за некоторыми подключениями. Я даже не спросил, могут ли они это сделать. Теперь, наблюдая, как принтер распечатывает каждый введенный хакером символ, я понял, что в моем распоряжении – считанные минуты.
За североамериканский участок сети отвечал Рон Вивьер. Все время, пока я звонил ему, я слышал в трубке, как он стучит клавишами на терминале. Резким голосом он спросил адрес нашего узла. Хоть к этому я был готов. За две минуты Рон выяснил: тимнетовский порт лаборатории в Беркли был связан с офисом Тимнета в Окленде, с которым, в свою очередь, связались по телефону. Если верить Рону, то хакер соединился с тимнетовским модемом в Окленде, расположенном всего в трех милях от нашей лаборатории.
Гораздо проще позвонить прямо в лабораторию, чем в офис Тимнета в Окленде. Почему необходимо подключаться через Тимнет, когда можно просто по телефону подключиться непосредственно к нашей системе? Непосредственная связь гораздо надежнее.
Хакер набрал местный номер Тимнет, а не номер нашей лаборатории. Это все равно, что по междугороднему телефону приказать водителю такси проехать три квартала. Некто, находящийся на другом конце телефонной линии, умел прятаться. Рон Вивьер выразил свои соболезнования – мне не нужен был тимнетовский телефонный номер; я охотился за человеком. Ладно, мы сели ему на хвост, но путь его долог и извилист. Так или иначе, надо выследить телефонный звонок, а уж потом можно будет выписывать ордер.
Когда хакер отключился, я поднял глаза от распечатки. Рой Керт пожирал новости с урчанием голодного пса. Дэйв и Вэйн были заняты тем же. Когда Рой повесил трубку, я объявил: «Он звонит в оклендское отделение Тимнета. Похоже, живет где-то рядом. Если бы он был из Пеории, то сэкономил бы монетку и связался через пеорийский модем».
– Наверное, ты прав, – сказал Рой, предчувствуя свое поражение.
Дэйву вообще было наплевать на телефон. «Меня беспокоит эта командочка – ps – eafg, – произнес он. – Все это плохо пахнет. Может, он просто параноик, но я никогда раньше не видел такого сочетания.»
– К черту ЮНИКС! Мы получили по заслугам, используя такую идиотскую операционную систему, – Вэйн подначил Дэйва. – Послушай, а на кой ему этот файл паролей?
– Если у него есть собственный суперкомпьютер. Для разгадывания шифра хорошо иметь один экземплярчик. ЮНИКС – не VMS, там замки покрепче, – ответил Дэйв.
Рой представил себя на поле брани, где сражаются операционные системы. «Похоже, тебе нужно выслеживать телефоны, Клифф…» Мне не понравился выбор местоимения, но по сути он прав. «Откуда начать?»
– Брось на пальцах.
Глава 7
На следующее утро босс встретился с Алетой Оуенс – юристом лаборатории. Не теряя времени даром, она позвонила в ФБР. Местное отделение ФБР и бровью не повело. Фред Вайникен, агент по особым поручениям Оклендского отделения, недоверчиво спросил: «Неужели вы звоните только потому, что вам не заплатили 75 центов?» Алета пыталась что-то объяснять про систему защиты и ценность наших данных. Вайникен прервал ее: «Послушайте, если вы предъявите нам очевидные свидетельства пропажи нескольких миллионов долларов или попытки добраться до секретной информации, то мы начнем расследование. В противном случае – оставьте нас в покое.»
Это как посмотреть – наши данные либо ничего не стоят, либо стоят тьму-тьмущую денег. Почем структура энзима? Сколько стоит высокотемпературный сверхпроводник? ФБР мыслит категориями банковских растрат, а мы живем в мире исследований.
И все же мы нуждаемся в сотрудничестве с ФБР. Когда в следующий раз хакер высунет перископ, то мы, быть может, дойдем до тимнетовского телефонного номера доступа в Окленде. Но я слышал, что телефонная компания не будет заниматься выяснением номера звонящего, не имея ордера. Без ФБР не получить ордер.
Алета позвонила нашему окружному прокурору. Окружной прокурор разбушевался: «Кто-то вламывается в ваш компьютер? Давайте, черт возьми, получим ордер и найдем его». Еще нужно будет убедить судью. Недели хватит?
В шестом часу заглянул Дэйв:
– Клифф, хакер не из Беркли.
– Откуда ты знаешь?
– Ты видел, что этот парень использовал команду ps – eafg, а?
– Да, это есть в распечатке, – ответил я.
Обычная команда ЮНИКС, обеспечивающая вывод списка активных процессов – «ps» означает print status (печатать статус), а четыре остальных буквы влияют на вывод на экран. Похоже на переключатели на стереопроигрывателе – изменяется суть команды.
– Клифф, ты слишком привык к нашему ЮНИКСу. С момента изобретения ЮНИКС-Беркли мы механически пользовались командой ps, чтобы посмотреть состояние системы. Скажи мне, на что влияют последние четыре буквы?
Дэйв знал, что я обычно игнорирую непонятные команды. Я держал оборону, как мог: «Ну, флаг е означает, что в список надо помещать имя процесса и окружение, а флаг а – что выводить надо все процессы, а не только ваши. Хакер хотел видеть все, что работало на системе.»
– Ладно, половину ты знаешь. А флаги g и f?
– Не знаю.
– Список с флагом g нужен для сведений как об «интересных», так и о «неинтересных» процессах. Выведены будут все второстепенные задания, например, программа учета, а также все скрытые процессы.
– А мы знаем, что он «химичит» с программой учета.
Дэйв улыбнулся.
– Остался только флаг f. В ЮНИКС-Беркли он отсутствует. Этот флаг используется в ЮНИКС-АТ&Т для вывода списка файлов каждого процесса. ЮНИКС-Беркли делает это автоматически, и не нуждается во флаге f. Наш приятель не знает ЮНИКС-Беркли. Он принадлежит к числу апологетов старого ЮНИКСа.
Операционная система ЮНИКС была разработана в начале 70-х годов в лаборатории Белл фирмы AT&T в Нью-Джерси. В конце 70-х новообращенные почитатели ЮНИКСа из лаборатории Белл посетили университет в Беркли, и была создана новая, более совершенная версия ЮНИКСа.
Между приверженцами небольшой, компактной версии фирмы AT&T и более проработанной версии Беркли произошел раскол. Несмотря на многочисленные конференции, попытки разработать стандарты и разного рода обещания, консенсус достигнут не был. На белом свете остались две конкурирующие друг с другом операционные системы ЮНИКС. Ребята нашей лаборатории использовали, конечно, ЮНИКС-Беркли, как, впрочем, любые здравомыслящие программисты. Говорят, что парни с Восточного Побережья предпочитают ЮНИКС-АТ&Т – а зря! По одной букве Дэйв исключил целую компьютерную популяцию Западного побережья. А не мог ли хакер из Беркли просто использовать один из образцов старой команды? Но Дэйв отбросил это предположение.
– Мы наблюдали работу человека, никогда не пользовавшегося ЮНИКС-Беркли.
Он глубоко вздохнул и прошептал: «Неуч.»
Вэйна совершенно не интересовал ЮНИКС. Кроме того, он чувствовал, что хакер ничего не мог почерпнуть из файла паролей: «Послушайте, совершенно невероятно, чтобы хакер мог что-нибудь расшифровать. Единственно, что он может узнать – наши имена. К чему беспокоиться?»
Поразмыслим… Пароли – это краеугольный камень системы защиты больших вычислительных машин. Персональные компьютеры не нуждаются в паролях: здесь только один пользователь. Каждый, сидящий за клавиатурой, имеет доступ к любой программе. Но когда десять или двадцать человек одновременно используют одну и ту же систему, необходимы гарантии, что сидящий за терминалом человек – не самозванец. Пароли, как и электронная подпись, удостоверяют подлинность транзакции. Работа автоматических машин для подсчета голосов, пользование телефонными кредитными карточками, работа систем перевода электронных денег и даже некоторых телефонных автоответчиков зависит от паролей. «Срисовав» пароли или научившись их подделывать, хакер может создать подложное состояние, пользоваться бесплатно разного рода услугами или покрывать чеки при отсутствии средств на счету. Когда деньги хранятся в несгораемых шкафах, то медвежатники подбирают комбинацию к замку. Теперь, когда средства защиты – это просто биты в памяти компьютера, взломщики охотятся за паролями. Если на компьютере работают пятьдесят или сто пользователей, можно просто хранить пароли в отдельном файле. При подключении надо всего лишь запросить пароль и сравнить его с находящимся в файле образцом. Если вокруг друзья – проблем не возникает. Но как сделать, чтобы кто-нибудь украдкой не заглянул в файл паролей? Ну, надо установить такую защиту, чтобы прочесть его могла только операционная система.
Даже если защитить файл паролей, следует учитывать, что через определенные промежутки времени со всех файлов на магнитные ленты снимаются копии возобновления. Даже программист-новичок может прочесть эти ленты на другом компьютере и вывести содержимое файла. Сама по себе защита файла безопасности не обеспечивает. В 1975 году Боб Моррис и Фред Грамп из лаборатории Белл разработали способ защиты паролей, работающий даже при отсутствии защиты файлов. Они использовали шифрование. Если взять, например, пароль «cradle», то компьютер не ограничится простой записью его в файл. ЮНИКС преобразует буквы пароля в шифрограмму: «pn6eewersyq». В файле хранится результат шифрования, а не исходный текст пароля. Файл паролей ЮНИКСа может выглядеть примерно так:
Aaron: fnqs24kcvs
Blacker: anvpqwOxcsr
Blatz: pn6yywersyq
Goldman: mwe785jcy12
Henderson: rp2d9c149b7
Каждому учетному имени соответствует зашифрованный пароль. Вэйн прав, кража файла паролей не даст ничего, кроме списка фамилий.
Компьютерная программа, преобразующая слово «cradle» в последовательность символов «pn6yywersyq», основана на алгоритме мышеловки: «легко зашифровать и трудно расшифровать». Когда Салли Блатц подключается к системе, она вводит с клавиатуры свое учетное имя – Blatz и пароль – cradle. Система преобразует пароль в последовательность pn6yywersyq и сравнивает эту последовательность с содержимым файла паролей. Если они не совпадают, то Салли выкидывают из компьютера. Сравнивается не сам исходный текст пароля, а результат его шифрования. Надежность охраны паролей зависит от надежности функции «мышеловки». Функции мышеловки – это математические капканы: можно выполнить преобразование только в прямом направлении, а не в обратном. Они быстро преобразуют текст в шифр. К этим замкам нельзя подобрать ключи – невозможно заставить работать алгоритм в обратном направлении. Наши мышеловки строятся в соответствии со стандартом шифрования данных (Data Encryption Standard – DES), разработанным фирмой ИБМ и Агентством Национальной Безопасности. До нас дошли слухи, что электронные привидения АНБ ослабили требования этого стандарта. Они «стреножили» его так, чтобы сами они могли «раскалывать» шифрограммы, а простые смертные – нет. Мы также слышали, что существует тщательно скрываемый способ, при помощи которого ребята из АНБ могут раскрывать код и читать зашифрованные сообщения, а никто другой не может.
Криптографическая DES-программа в нашем ЮНИКСе – это программа общего доступа. Баловаться с ней может каждый. АНБ проанализировала ее сильные и слабые стороны, но отчет засекретила. Случайно до нас дошли слухи, что кто-то раскрыл шифр, но они не подтвердились. Пока АНБ не опубликует результаты анализа стандарта шифрования данных, нам не остается ничего другого, как полагать, что наш способ шифрования достаточно надежен.
Вэйн и я наблюдали, как хакер вломился и «украл» наш файл паролей. Теперь он знал имена нескольких сотен научных работников. Он мог с таким же успехом украсть и телефонную книгу – по крайней мере, там есть и адреса. Если только у него дома не стоит Крей, то он не сможет заставить «Мышеловку» работать в обратном направлении, поэтому наши пароли – в безопасности.
Вэйн беспокоился: «Может, парень наткнулся на способ заставить функцию мышеловки работать в обратном направлении. Давай перестрахуемся и сменим наиболее важные пароли.» Мне нечего было возразить. Системный пароль не менялся уже почти два года; он был свидетелем найма и увольнения многих людей. Против смены моего пароля я не возражал; для большей гарантии я использовал на каждом компьютере другой пароль. Если хакер ухитрится узнать мой пароль для компьютера ЮНИКС-4, то все равно не будет знать пароля для остальных.
Прежде, чем отправиться домой, я еще раз просмотрел распечатку вчерашнего сеанса. Зарылся в десять страничек, в которых был ключ к личности хакера, к его адресу и намерениям. Но очень многое не сходилось: мы проследили его связь, идущую через Тимнет в Окленд, штат Калифорния. Дэйв не верит, что он из Беркли. Он скопировал наш файл паролей, но шифрование превратило его в тарабарщину. Что же он делал с зашифрованными паролями?
Это немного напоминало астрономию. Мы наблюдали явление и по некоторым признакам пытались объяснить событие. Правда, астрономы спокойно собирают информацию, замерев под телескопом. Здесь информация появляется спорадически и поступает от неизвестного источника. Вместо термодинамики и оптики я должен теперь разобраться в криптографии и операционных системах. Однако, физическая связь между нашей системой и удаленным терминалом существует. Применив законы физики, можно понять, что происходит. Физика! Вот где ключ. Зафиксируйте наблюдения. Примените физические принципы. Размышляйте, но доверяйте только доказанному. Подойдите к задаче как к физической проблеме.
Пора записать это в дневник.
Глава 8
В среду, 10 сентября, в 7-51 утра хакер опять появился в нашей системе и проработал шесть минут. Достаточно, чтобы вызвать на моем терминале сигнал тревоги, но мало, чтобы принять меры. Эту ночь я провел дома: «Не вылезать из лаборатории пять дней – вполне достаточно», – сказала Марта.
Во время сеанса меня не было, но на принтере остались следы. Хакер подключился к нашему компьютеру под именем Свентек. Ну, теперь я понимал – он знает пароль Свентека и работает через Тимнет. Но сегодня его не интересовал ЮНИКС-4. Он сразу же перескочил на Милнет. Этот компьютер не был «засвечен». Он являлся частью Интернета – компьютерной сети, связанной с сотней других. С нашего ЮНИКСа можно попасть в Интернет, а оттуда – в Милнет. Милнет принадлежал Министерству Обороны.
Хакер связался с Милнетом через адрес 26.0.0.113, зарегистрировавшись под именем «Хантер», проверил, есть ли там копия Гну-Эмакса, и отсоединился.
Я прикатил в лабораторию около полудня. Следов, ведущих «наверх», не было. Но хакер оставил несмываемые отпечатки «внизу». Чему соответствует этот милнетовский адрес? Сетевой Информационный центр сообщил мне: учебная часть армии Соединенных Штатов в Аннистоне, штат Алабама. Это – место базирования редстоунского ракетного комплекса. Располагается в двух тысячах миль от Беркли. Распечатка не оставляла ни малейших сомнений, что хакер там «побывал». Никто, кроме него, не мог использовать атрибуты доступа Свентека и искать гну-эмаксовскую дыру в каком-то компьютере в Алабаме.
Посоветоваться было не с кем, поэтому я позвонил в аннистонский справочный стол. Учебная армейская часть в Аннистоне имела свой компьютерный центр и наконец я нашел Чака МакНатта – местного волшебника ЮНИКСа.
– Привет, Чак. Мы не знакомы, но я хочу сообщить, что кто-то сует нос в ваш компьютер.
– Кто вы? Может, это вы хотите к нам вломиться?
После двухминутного колебания он спросил мой номер телефона, повесил трубку и перезвонил. Незнакомцам не очень-то доверяют. Может быть, второй раз он мне звонил по специальной непрослушиваемой линии?
– Плохие новости, – сказал я. – Похоже, к вам кто-то вламывается.
– А, черт, опять этот сукин сын, Хантер?
– Да, а откуда вы знаете?
– Эту задницу я видел и раньше.
И он с легким алабамским акцентом рассказал, что в редстоунском ракетном арсенале учет поставок производится на двух компьютерах ЮНИКС. Для ускорения обработки заказов они привлекли и компьютер учетного центра в Аннистоне. Большую часть их информационных потоков составляют свежие новости – удаленных пользователей подключается не так уж много. В субботу утром, спасаясь от жары, Чак сбежал на работу и занялся проверкой пользователей, работающих на их системе. Некто по имени Хантер израсходовал огромное количество машинного времени. Удивленный, что в субботу кто-то работает, Чак послал на экран Хантеру весточку: «Эй, назови себя.» Хантер ответил: «Как вы думаете, кто я?» Чак не простак. Он отправил послание: «Назови себя или я выкину тебя из системы!» Реакция Хантера: «Отвечать не собираюсь.»
– Я выбросил его из машины, – сказал Чак. – Мы позвонили в ФБР, но им плевать. Поэтому мы попросили ОУР проследить за каждым чертовым звонком к нам.
– А что такое ОУР?
– Армейские фараоны. Отдел Уголовного Розыска. Но они даже не почесались.
– Ничего секретного не пропало, так?
В отделении ФБР в Монтгомери, штат Алабама, Чаку сказали примерно то же самое, что и мне в оклендском. Компьютерные преступления их кровь не волнуют.
– Кто он, как ты думаешь?
– Понимаешь, очень странная штука, – продолжал Чак. – Я застукал Хантера, сующего нос в мой компьютер, еще два или три раза, но на подключенных к телефонам магнитофонах ничего не было.
– Бьюсь об заклад, я знаю, в чем дело. Он проникает к вам через черный ход. Через связь с Милнетом.
Чак выругался – он пропустил сеанс. Расставив ловушки на телефонах, он упустил из виду сетевые линии.
– Мы пытались выяснить, кто оседлал нашу систему, – сказал я. – Думали, что это студентишка. Первый след вел в Окленд или Беркли.
– Мы тоже размечтались, что это студентишка из Алабамы, – ответил Чак. – Мы подумывали о том, чтобы вообще прикрыть лавочку, если уж не можем накрыть этого парня. Лучше видеть его за партой, чем за терминалом.
Сначала я даже забеспокоился за парня. Если армейские его схватят, то я ему не завидую.
– Послушай, Чак, у меня для тебя еще сюрпризик. Спорим, что этот молодец имеет в вашей системе права суперпользователя.
– Не может быть. Мы военная база, а не какой-то там идиотский колледж.
Я пропустил мимо ушей этот тонкий намек на Беркли.
– Он копался в вашем Гну-Эмаксе?
– Да, ну и что?
– Знаешь ли ты, как кукушки откладывают яйца?
Я рассказал ему про дыру в Гну-Эмаксе. Чак был огорошен. «Ты хочешь сказать, что эта дырка существует у нас со времени, когда из Уайт Сэндс нам переслали этот чертов файл с Гну, – прохрипел он. – Хотел бы я знать, сколько времени он уже сосет нашу систему». Он все понял. Хакер поковырялся в файлах аннистонской системы. По датам модификации этих файлов можно предположить, что он навещал аннистонские компьютеры с начала июня. Четыре месяца использовал военный компьютер в штате Алабама. И был обнаружен случайно, а не по факту потери информации или расстановки логических мин. Никаких явных повреждений.
Внимательно посмотрев на утреннюю распечатку, я обнаружил, что хакер пользовался командой изменения пароля. На аннистонском компьютере он изменил пароль Хантер на Хеджес. Наконец появилась ниточка. Хеджес Хантер? Хантер Хеджес? Пора просмотреть букву X в телефонной книге Беркли. Три звонка, Харольду, Хейду и Хидду Хантеру: «Вас не заинтересует бесплатная подписка на Компьютерное Обозрение?»
Мимо цели. Всем им было наплевать на компьютеры.
Что общего между физической лабораторией в Беркли и армейским учебным подразделением в Аннистоне, штат Алабама? Добрая старая военная база и левацкий хиппующий городок. Хотя как мы, так и они работали на ЮНИКС-компьютерах и были связаны с милнетовской сетью.
Стоп! В Аннистоне работали на ЮНИКС-АТ&Т. Если верить Дэйву, в аннистонской системе хакер должен чувствовать себя, как дома. Может быть, он с Юга?
Глава 9
Я не мог больше переносить стерильные залы лаборатории, поэтому вышел на улицу полюбоваться панорамой раскинувшейся подо мной Бэй Ареа. Студенческий городок Беркли располагался как раз под нашей лабораторией.
Колыбель движения за свободу слова и антивоенных протестов, он был также известен дикой политической активностью и этническим многообразием. Окажись я поближе, услышал бы, как Молодые Республиканцы доводят до бешенства Социалистических Рабочих, а Китайский клуб с изумлением взирает на все это. В дымных кафе варился кофе; там же измученные выпускники «лепили» свои дипломные работы. В ближайших кафе-мороженых смешливые девицы из университетского женского клуба хихикали с одетыми в черную кожу панками, выделявшимися в толпе гребнем на голове. Но больше всего мне нравятся книжные лавочки. Если стоять у фасада лаборатории, то открывается вид далеко на юг, на милые улочки Окленда, где я когда-то жил. Там, в одном старом бунгало ваш покорный слуга когда-то делил кров с бандой сумасбродов. На берегу залива, напротив, окутанный туманом раскинулся Сан-Франциско – волшебная страна Оз. Три года назад туда приехала Марта изучать юриспруденцию; я притащился вслед за ней. Она того стоила. С ней хорошо было бродить по окрестностям или забираться в пещеры. Главная наша встреча произошла, когда я упал в пещеру на глубину тридцать футов; она пришла на помощь, спустившись вниз, где я, по уши влюбленный, валялся с вывихнутой ногой. Благодаря куриному супу, которым она меня кормила, мои травмы быстро зажили; моя же влюбленность в бесстрашную девочку переросла в любовь.
Теперь мы жили вместе. Она хотела быть философом-правоведом. Она была помешана на айкидо, японском боевом искусстве, и часто приходила домой в синяках, но с улыбкой. Она готовила, ухаживала за газоном, шила лоскутные одеяла, даже плотничала и изготавливала витражи из цветного стекла. Мы просто купалась в пошлом домашнем блаженстве.
Прикатив домой, я рассказал Марте о взломе алабамского компьютера.
– Итак, – сказала она, – на свете, оказывается, существуют технократические варвары. Ну, что еще новенького?
– А то, что я рассказал – разве не новенькое? Кое-кто приобрел очень большую власть и может контролировать данные и коммуникации, – ответил я.
– Ну и что? Всегда кто-нибудь пытался свистнуть чужую информацию. Почитай Маккиавелли. С развитием техники меняются только способы совать нос в чужие дела.
Марта продолжала читать мне лекцию по истории, когда ворвалась Клавдия и начала жаловаться на своего пятого ученика. Клавдия была нашей соседкой, к тому же очень приятной. Она была щедрой, веселой, всегда старалась поделиться с нами своей жизнью, музыкой, кухонной утварью. Она была профессиональной скрипачкой и зарабатывала на жизнь, играя в двух симфонических оркестрах, в камерном трио, да еще и давая уроки детям. Клавдия редко молчала. В коротенькие перерывы между работами она одновременно готовила, болтала по телефону и играла с собакой. Первое время я слушал ее, но затем задумался о злобном хакере. Пока я тут прохлаждаюсь, что он там замышляет?
Клавдия знала, как выкинуть хакера у меня из головы: она принесла видеокассету. Фильм назывался «План 9 из открытого космоса» – пришельцы, прилетевшие на тарелке из тонкой фольги, вытаскивали из могил вампиров.
Среда, 17 сентября. В Беркли шел дождь. Поскольку во всей Калифорнии только у нашей четы не было машины, то мы с Мартой вынуждены были под дождем крутить педали наших велосипедов. По пути я заглянул в коммутаторную посмотреть, не появлялся ли хакер. С моих намокших волос на распечатку капала вода и размывала текст. Ночью к компьютеру кто-то подключался и методично пытался войти в ЮНИКС-4. Сначала с атрибутами гостя, используя пароль «Guest» (гость), затем с атрибутами посетителя, вводя пароль «Visitor» (посетитель); далее пробовались Root (корень), System (система), Manager (менеджер) и Sysop (оператор системы). Через две минуты нападение прекратилось.
Может, это другой хакер? Парень даже не попытался использовать правомочные атрибуты Свентека или Столла. Он просто перебрал очевидные учетные имена и простые пароли. Как часто подобные попытки могут принести успех? Не часто – используя шестибуквенные пароли, хакер имел больше шансов выиграть в эту лотерею и случайно отгадать один из паролей. Поскольку после нескольких неудачных попыток компьютер отключается, то хакеру пришлось бы за всю ночь перепробовать несколько сотен паролей. Нет, чудом хакеру в нашу систему не войти. Он должен знать по крайней мере один пароль.
К 12–29 моя одежда в основном просохла, хотя кроссовки все еще хлюпали. Я грыз черствую булочку и гранит астрономической науки одновременно. Вдруг мой терминал запищал. Тревога в коммутаторной. Быстро (хотя и скрипуче) я затрусил по коридору и успел увидеть, как хакер подключается к нашей системе под именем Свентек.
Еще один выброс адреналина: я позвонил в Тимнет и почти сразу нашел Рона Вивьера. Рон начал слежку, а я прилип к Декрайтеру. Хакер не терял времени даром. Он ввел команду представить список всех активных пользователей и всех запущенных фоновых заданий. Затем он навалился на Кермит.
Получивший свое имя от героя известного кукольного сериала Маппет-шоу Кермит представлял собой универсальный язык связи между компьютерами. В 1980 году Франку да Крузу из Колумбийского Университета потребовалось переслать данные в несколько различных компьютеров. Он создал единый стандарт обмена файлами между любыми системами. Кермит стал эсперанто компьютеров.
Рассеянно жуя все ту же булочку, я наблюдал как хакер использует Кермит для передачи в наш ЮНИКС коротенькой программки. Верный Кермит реассемблировал ее строчка за строчкой и вскоре я смог прочесть ее всю:
echo – п «ДОБРО ПОЖАЛОВАТЬ В КОМПЬЮТЕР ЮНИКС-4 ЛОУРЕНСОВСКОЙ ЛАБОРАТОРИИ В БЕРКЛИ»
echo – п «ЗАРЕГИСТРИРУЙТЕСЬ, ПОЖАЛУЙСТА»
echo – n «УЧЕТНОЕ ИМЯ:»
read account_name
echo – п «ВВЕДИТЕ ПАРОЛЬ:»
(stty – echo; read password; stty echo;
echo’»’;
echo {account name $password»/tmp/.pub)
echo “ИЗВИНИТЕ, ПОПЫТАЙТЕСЬ ЕЩЕ РАЗ”.
Черт возьми! Какая странная программа! Сразу же после запуска она выдает пользователю приглашение ввести имя и пароль. Обычный пользователь увидит на экране:
ДОБРО ПОЖАЛОВАТЬ В КОМПЬЮТЕР ЮНИКС-4 ЛОУРЕНСОВСКОЙ ЛАБОРАТОРИИ В БЕРКЛИ
ЗАРЕГИСТРИРУЙТЕСЬ, ПОЖАЛУЙСТА
Учетное имя:
Затем его терминал перейдет в режим ожидания и будет в нем находиться до тех пор, пока не будет введено учетное имя. После набора имени система отреагирует следующим образом:
ВВЕДИТЕ ПАРОЛЬ:
Пользователь введет пароль. Программа его срисует, выдаст сообщение:
ИЗВИНИТЕ, ПОПРОБУЙТЕ ЕЩЕ РАЗ
и закончит работу.
Большая часть пользователей попытается зарегистрироваться еще раз. Но их пароли уже будут украдены.
Четыре тысячи лет назад Троя пала, когда греческие воины проникли в город, спрятавшись внутри деревянного коня. И этот милый подарочек крадет ключи к системе защиты. Отточенный веками прием срабатывает против любого, кроме параноиков.
Троянский конь хакера крал пароли. Была ли эта программа троянским конем? Может быть, следовало назвать ее дроздом-пересмешником: фальшивая, она имитировала настоящую. У меня не было времени копаться в таких тонкостях – через минуту он поместит программу в системную область и запустит. Что делать? Если я включу блокировку, то обнаружу себя. А если ничего не буду делать, то при каждом входе пользователя в систему в копилку будет «падать» новый пароль.
Но у законного суперпользователя тоже есть власть. До запуска я успел изменить одну строчку в программе хакера. Правка выглядела как простая ошибка. Затем, чтобы замедлить систему, я подменил пару параметров. Замедление было нужно, чтобы хакер исправлял программу не менее десяти минут. Этого достаточно, чтобы успеть принять меры. Я крикнул Дэйву: «Чем накормить троянскую лошадь?» Дэйв примчался мгновенно. Мы переключили компьютер на максимальное быстродействие и приготовили жвачку из фальшивых учетных имен и ложных паролей. Суетиться было, в общем-то, не нужно. Хакер починил своего троянского коня, но инсталлировал его с ошибками. Дэйв мгновенно понял, что программу поместили не в тот каталог. Троянский конь хорошо бы закусил в ЮНИКС-АТ&Т, но не мог пастись на полях ЮНИКСа-Беркли. Дэйв усмехнулся.
– Не хочу повторяться, но тот, за кем мы следим, никогда не был в Калифорнии. Любой ас ЮНИКСа Западного побережья использует команды диалекта Беркли, а твой хакер все еще употребляет команды ЮНИКС-АТ&Т. Его способ употребления команд отличается от общепринятого в системе ЮНИКС-Беркли. Его программа грешит тем же. Это очевидно. Читая книгу, всегда можно понять, что писатель англичанин, а не американец. Конечно, слова «цвет» и «оборона» и в Африке – «цвет» и «оборона», но остается еще различие в стиле.
– В чем же конкретно это проявляется? – спросил я.
Дэйв презрительно посмотрел на меня.
– Хакер использовал команду «read», чтобы считать данные, введенные с клавиатуры. Любой цивилизованный программист использовал бы команды «set».
Мерилом цивилизованности программиста для Дэйва являлось использование ЮНИКС-Беркли. Прочие – дикари. Хакер об этом не знал. Уверенный, что нашел нужное пастбище для своего троянского коня, он запустил свою программу в качестве фонового процесса и отключился. Перед этим Рон Вивьер проследил его по тимнетовской сети и вышел на телефонную линию Окленда, штат Калифорния. Наш ордер еще не написан, поэтому мы не смогли начать выслеживать его телефон.
Хакера уже нет, но троянский конь остался. Как и предполагал Дэйв, он не смог «срисовывать» пароли, поскольку располагался в области, к которой не производилось обращение во время подключения. Действительно, двадцать минут спустя вновь появился хакер, поискал «срисованные» пароли и, должно быть, здорово расстроился, обнаружив, что программа не сработала.
– Послушай, Дэйв, может, поможешь бедняге, – сказал я.
– Послать электронную почту и рассказать, как писать троянского коня? Он может все: имитировать последовательность подключения, запрашивать пользовательское имя и пароль и записывать украденную информацию. Нужны только несколько уроков по ЮНИКС-Беркли.
Заглянул Вэйн, решив поглядеть на потуги хакера.
– В следующий раз облегчите жизнь недотепе и дайте ему VMS. Не то, чтобы на ней было легче хакерствовать, но она, по крайней мере, стандартизирована. ИПДЛВП (Интуитивно Понятно Для Любого Встречного-Поперечного).
Вэйн был прав. Атака троянского коня не удалась потому, что операционная система была не совсем привычной. Если бы все пользовались одной версией операционной системы, то дыра в системе защиты позволила бы проникать во все компьютеры. В действительности существует большое множество операционных систем: ЮНИКС-Беркли, ЮНИКС-АТ&Т, VMS фирмы ДЕК, TSO фирмы ИБМ, VM, DOS и даже Макинтоша и Атари. Разнообразие программного обеспечения приводит к тому, что одиночная атака не приведет к успеху. Как в генетике, когда разнообразие видов помогает выжить при эпидемии, разнообразие программного обеспечения тоже идет на пользу.
Дэйв и Вэйн, продолжая пикироваться, покинули коммутаторную. Я остался, чтобы перезагрузить бумагу в принтере. В 1-30 дня вновь появился хакер; когда он начал работу, я все еще возился с принтером. Можно было догадаться, что будет второй сеанс. Наш налетчик просмотрел свой специальный файл, но никаких паролей там не нашел. Он вывел текст своей программы и несколько минут проверял ее. Программа не работала: сразу видать, рядом нет Дэйва Клэвленда. Явно разочарованный, он стер файл и через пару минут отключился.
Хотя сеанс продолжался всего несколько минут, Тимнет ухитрился опять засечь его в Окленде. Отвечающий за связь Рон Вивьер, всегда приветствовавший любую неожиданность, просто подпрыгнул, когда я позвонил. Если бы узнать телефонную компанию, то дельце можно было бы провернуть за пару дней.
Дэйв чувствовал, что можно исключить всех с Западного Побережья. Чак из Аннистона подозревал, что хакер из Алабамы. Тимнетовские следы вели в Окленд. А я? Я не знал.
Глава 10
Окленд, где бывали-живали Джек Лондон, Эд Мис и Гертруда Штайн. Двадцать минут езды на велосипеде от студенческого городка Беркли – и вы у оклендского «Парамаунт Театер» с его величественной архитектурой в стиле «арт-декор» и притягательной настенной живописью. Через несколько кварталов, в подвале неприглядного современного здания, Тимнет арендовал помещение для пятидесяти модемов. Именно сюда вел след, обнаруженный Роном Вивьером. Теперь дело за местной телефонной компанией.
Двухдюймовые кабели, проложенные под Бродвеем, соединяли тимнетовские модемы с таинственным зданием без вывески и окон. Здесь размещался электронный коммутатор компании «Пасифик Беллз Франклин», обслуживающий десять тысяч телефонных линий. Код области этих линий – 415, а префикс – 430. Тимнет абонировал 50 таких каналов. Из своей неведомой норы хакер набрал номер 415/430-2900. След таинственного гостя вел к коммутатору ESS-5 компании «Пасифик Беллз».
На берегу залива Сан-Франциско располагался офис Ли Ченга. Фасад здания выходил на аллею для прогулок, отходящую от Маркет Стрит. Ли был детективом компании, следил за телефонными каналами. Ли был доктором криминалистики. Его диссертация была посвящена выявлению причин несчастных случаев и восстановлению хода событий. Но восемь лет телефонной слежки привили ему инженерный взгляд на телефонную компанию и фараоновский – на общество. Теперь для него людские сообщества определялись кодами областей, местными и магистральными линиями, а также полицейскими округами. Предупрежденный заранее, Ли запустил компьютер, контролировавший телефонные соединения. В центре управления главным коммутатором он подключился к каналу обслуживания ESS, проверил программу контроля за состоянием линий и установил программу-ловушку. Эта программа автоматически контролировала состояние отдельной телефонной линии. Она фиксировала дату, время, количество гудков до ответа, а также месторасположение звонившего. Если звонили от абонента местной телефонной станции, то на этом работа Ли заканчивались. Но обычно звонили не местные абоненты, и Ли для отслеживания пути звонка – тракта – приходилось связываться иногда чуть ли не с десятком других станций.
Когда техника на телефонной станции просят выяснить тракт, он бросает все дела, кроме очень неотложных: у Ли наивысший приоритет. Техник подключается к управляющему компьютеру, выводит на дисплей статус телефонного номера (занято, свободно, не повешена трубка) и запускает программу, определяющую, откуда звонок. Если повезет, выслеживание номера занимает несколько секунд. Но несколько телефонных станций, построенных еще в 50-е годы, используют механические элементы коммутации. Когда тракт проходит через них, то можно услышать в трубке легкие пульсации фона – это происходит переброс реле при наборе номера. Старейшины телефонных систем гордятся этим антиквариатом и утверждают, что грядущую ядерную атаку выдержат только такие коммутаторы. Но они усложняют задачу: надо найти техника, который бы согласился бегать от стойки к стойке, выслеживая звонок.
Местные телефонные звонки можно выслеживать только в момент соединения. После того, как трубка повешена, соединение обрывается и… конец. Поэтому бедняга Ли несется, весь в мыле, как боевой конь.
Телефонные компании не больно любят выслеживание телефонных трактов: соединение могут выследить только очень квалифицированные техники, слежка очень дорого стоит, а иногда приводит к судебным тяжбам. Страх перед судебными тяжбами не позволял Ли оказывать неофициальную помощь.
Наша беседа в сентябре 1986 года была короткой:
– Слушай, нам надо узнать один номерок.
– Есть ордер?
– Нет, а он нужен?
– Может, и нет, но без ордера ничего делать не будем.
После вчерашней атаки ждать было невозможно. Мое исследование телефонной книги ни к чему ни привело. Если появится более грамотно написанный троянский конь, то мой босс ударится в такую панику, что закроет расследование. И что тогда останется от отпущенных трех недель?!
Сэнди Мерола был антиподом Роя Керта. Когда Рой своим змеиным языком жалил кого-нибудь, Сэнди зализывал укус. Еще в университетском городке Сэнди обнаружил скопление персональных компьютеров в общем зале библиотеки. Как всякий компьютероголик, он поошивался вокруг и попробовал их использовать. Оказалось, эти компьютеры были запрограммированы на автоматический набор номера Тимнета и на подключение к биржевой информационной службе. Сэнди несколько минут подурачился за терминалом и разузнал последние котировки акций и финансовые слухи из «Уолл Стрит джорнал». Но самое главное – после того, как он отключился от биржевой информационной службы, на терминале появилось приглашение: «Тимнетовское имя пользователя?» И действительно, Сэнди легко связался с компьютерами нашей лаборатории. Может быть, наличие общественных терминалов все и объясняет. Пользоваться ими может любой – надо лишь набрать адрес отделения Тимнета в Окленде. Библиотека же находится всего в сотне футов от Кори Холла, где расположились асы ЮНИКС-Беркли.
По улице Сэнди всегда бегал трусцой. И на этот раз он взбежал на Кардиак Хилл и сообщил полиции о своем открытии: когда хакер появится в следующий раз, надо немедленно мчаться в библиотеку и хватать этого сукиного сына. Не нужен и ордер!
Сэнди прискакал из полицейского участка весь мокрый и застал меня играющим с йо-йо.
– Перестань валять дурака, Клифф. Полиция готова рвануть в студенческий городок и арестовать любого, кто только подойдет к этим проклятым терминалам.
Привыкнув оказывать первую медицинскую помощь или приставать к нарушителям правил парковки, полиция Лоуренсовской лаборатории в Беркли ни черта не смыслила в компьютерах и страшно боялась выслеживания телефонных номеров. Зато могла повязать любого компьютерного взломщика, застуканного с поличным. Я живо представил, как переодетые фараоны, нервно дрожа, следят за экраном терминала, радостно хватают бедного библиотекаря, изучавшего котировку акций промышленных предприятий, и запихивают в полицейский автомобиль…
– Все просто. Позвони мне при следующем появлении хакера. Я спущусь в библиотеку вместе с полицией и мы посмотрим, что там на экране. Если это данные из лабораторного компьютера, то пусть дальше полиция и разбирается.
– Они действительно собираются подглядывать за терминалом? При помощи зеркальных стекол и биноклей?
– Ну, ты даешь? Клифф, у тебя что, крыша поехала?
И Сэнди опять куда-то затрусил. Думаю, что ученых можно классифицировать по степени «съеханности крыши». Кстати, в студенческие времена я как-то заполнил карточку здоровья студента, указав в графе «жалобы»: «нехватка картошки». Врач отвел меня в сторонку и ласково сказал: «Сынок, у тебя что, крыша поехала? Мы вроде занимаемся серьезными вещами.»
Вскоре нам представился случай проверить гипотезу Сэнди. Через два дня после того, как троянский конь не взял барьер, в 12–42 хакер вновь заглянул к нам. Это было в обеденный перерыв: самое удобное время залезть в библиотеку и глянуть на терминалы. По сигналу тревоги я позвонил Сэнди. Пять минут спустя он появился вместе с двумя фараонами в пальто, костюмах и галстуках. В студенческом городке, населенном хиппи вроде нас, трудно было одеться более заметно, особенно в жаркий летний день. Один фараон даже пушку под пальто держал!
В следующие двадцать пять минут хакер стал суперпользователем, используя дыру в Гну-Эмаксе, прочел электронную почту за сегодняшний день и просмотрел состояние процессов. Чтобы выследить номер подключения к оклендскому отделению Тимнета, Рону Вивьеру пришлось пропустить обед. В любую минуту принтер мог внезапно остановиться, сигнализируя, что Сэнди и его спутники схватили злодея. Но хакер продолжал сеанс и отключился только в 1-40.
Спустя пару минут вернулся Сэнди. По его лицу все было ясно.
– За библиотечным терминалом никого не было. Даже рядом не стояло. Ты точно знаешь, что хакер подключался?
– Абсолютно. Вот распечатка. И потом Тимнет опять засек его в Окленде.
Сэнди погрустнел. Кратчайший путь завел в тупик: теперь все зависело от телефонной слежки.
Глава 11
Этот вечер Марта рассчитывала провести за изучением конституционного права, но жестокая жизнь заставила ее заняться латанием одеяла. Я пришел домой расстроенным: бесполезный библиотечный след так много обещал…
– Забудь про хакера. Ведь ты уже дома.
– Но он опять может забраться к нам в систему. – Я уже не мог думать ни о чем другом.
– Ты все равно ничем не можешь ему помешать. Вдень, пожалуйста, нитку и займись швом.
Марта сбежала с занятий, решив, что одеяло важнее. Важнее, но, как оказалось, для меня. Она сидела за книгами, а я размышлял, почему шов у меня похуже, чем у Кардена.
– Когда у нас будет ордер, то все равно придется ждать появления хакера. Скорее всего, он материализуется в 3 часа дня, когда никого не будет.
– Я же сказала: «Забудь про хакера. Ты уже дома».
Она даже не оторвалась от книги.
На следующий день хакер действительно не появился. Но ордер мы добыли. Мы сделали пару пробных звонков, убедились, что действительно умеем вычислять звонившего, и проверили «раскрутку» нашей локальной сети. Надоело мне все это быстро и до чертей, и я вернулся к астрономической программе анализа оптических процессов.
Во второй половине дня Рой созвал системщиков и операторов и прочел лекцию о секретности. Я-то понимал, что люди тем меньше болтают, чем больше понимают, поэтому рассказал, что видел и что намереваюсь делать. Дэйв тоже вклинился и рассказал о дыре в Гну-Эмаксе, при этом встрял Вэйн и заметил, что ни в коем случае не следует обсуждать проблемы хакерства, пересылая сообщения через компьютер: хакер регулярно читает электронную почту. Потом народ немножко подурачился под любимых диких героев Бориса и Наташу (игра только для Беркли!) и успокоился.
В четверг, в 12–42, вновь появились атрибуты Свентека. Рой позвонил в полицейскую службу лаборатории. К моменту, когда позвонил в полицейскую службу. Когда Тимнет «размотал» свою сеть, Рой продолжал орать в трубку:
– Мы должны выяснить номер! Ордер есть!.. Какого дьявола! Это ваши проблемы! Немедленно начинайте слежку! Если вы не сядете ему на хвост, будете иметь дело с директором!
Рой швырнул трубку. Босс был в ярости – аж побагровел.
– Черт бы побрал этих проклятых фараонов! Они никогда не занимались телефонной слежкой и не знают, кому звонить в телефонную компанию!
Ф-фу! По крайней мере, гром грянул не надо мной. Что ж, все к лучшему. Через пару минут хакер отключился, прочитав имена активных пользователей. К моменту начала телефонной слежки соединения не было. Пока босс остывал, я принялся за распечатку. Хакер подключился, считал список пользователей и отключился, даже не просмотрев почту. Ага! Я понял, почему так быстро. Он увидел системного оператора. Поднял перископ, увидел неприятеля и пошел на погружение. Я рассказал о хакере операторам. Теперь они скроются под псевдонимами.
16 сентября подошла к концу вторая неделя слежки. Я пытался сосредоточиться на решении оптических задач, но куда там! Сразу после обеда хакер вернулся. Я позвонил сначала в Тимнет, а затем боссу. К этому времени мы установили громкоговорящую связь и я беседовал, глядя, как хакер бродит по системе.
– Привет, Рон, это Клифф. Нам нужен номер, связанный с нашей тимнетовской линией. Лоуренсовская лаборатория в Беркли, тимнетовский узел 128, порт 3.
Минута возни на другом конце.
– Похоже на третий модем блока каналов с темпом передачи 1200 Бод. Линия 2903. Номер 415/430-2903.
– Спасибо, Рон.
Полиция слышала разговор и доложилась Ли Ченгу.
– Связь через франклинский коммутатор. Подожди.
Я уже привык ждать. Я видел, как хакер шарил в Гну-Эмаксе. Он захватывал права суперпользователя. Сеанс продлится не меньше десяти минут. Может быть, этого хватит, чтобы выяснить номер. Ну, давай, «Пасифик», давай, родной!
Прошло три минуты. Ли опять вышел на связь.
– Линия активна, все в порядке. Соединение с магистралью, ведущей в Беркли. Техник уже проверяет линию.
Еще две минуты. Хакер стал суперпользователем и занялся почтовыми файлами.
– Техник из Беркли говорит, что эта линия связана с одним из междугородних каналов фирмы AT&T. Жди.
Но Ли не смог больше ничего добиться. Я слышал его беседу с отделением в Беркли. Тамошний техник твердо стоял на том, что линия междугородняя. Ли попросил его проверить, тем временем хакер принялся за файл паролей.
Полагаю, он внес туда кое-что. Но я отвлекся, пытаясь услышать, что происходит.
– Магистральная группа 369, и, черт возьми, линия направляется в 5096MCLN.
Парень из Беркли чирикал на местном жаргоне.
– Надо звонить в Нью-Джерси. Клифф, ты еще здесь?
– Да. Что происходит?
– Неважно. Как ты думаешь, он еще поработает?
Хакер кончил возиться с файлом паролей и стирал свои временные файлы.
– Ничего не могу сказать. Думаю, что сейчас отключится.
– Отключение от Тимнета, – доложил Рой Вивьер. – Разъединение.
Ли потерял след.
Позвонили из полиции.
– Ну, джентльмены, что же произошло?
Первым говорил Ли Ченг.
– Думаю, что звонок был откуда-то с Восточного Побережья. Правда, есть маленький шанс, что это местная линия Беркли, хотя… нет, связь была через AT&T. Все магистральные линии «Пасифик Беллз» маркируются тремя цифрами; только междугородние магистрали имеют идентификаторы, содержащие четыре цифры. Эти линии… подождите, я посмотрю.
Я услышал стук клавиш. Через минуту Ли продолжил.
– Эй, Клифф, ты знаешь кого-нибудь в Вирджинии?
– Нет. Нигде поблизости нет ускорителей частиц. Нет даже физических лабораторий. Конечно, моя сестра там… Но она в компьютеры не вламывается. Она пишет технические отчеты для этого чертового Военно-Морского флота. Она даже посещает вечернюю школу в Военно-морском колледже.
– Тогда сегодня колотиться без толку. В следующий раз попытаюсь быть пошустрей.
Пошустрей? Вряд ли. На каждый звонок у меня уходило минут пять. Чтобы проследить связь через Тимнет, Рой Вивьер потратил две минуты; еще семь минут съел Ли, разбираясь с телефонными станциями. Четверть часа мы наблюдали путешествие хакера по компьютеру и двум сетям.
Чертова головоломка. Сэнди Мерола чувствовал, что хакер выходит на связь из Беркли. Чак МакНатт из Аризоны подозревал, что из Алабамы. Тимнетовский след вел в Окленд, штат Калифорния. «Пасифик Беллз» называл Вирджинию. Нью-Джерси? После каждого сеанса в моем журнале появлялись новые записи. Однако для картинки недоставало красок. Я начал писать комментарии к каждой распечатке. Я хотел все знать о моем незваном госте, понимать его намерения, предвидеть ходы, знать адрес и имя. Но каков смысл действий хакера? Когда спало напряжение, я занялся распечаткой последнего подключения.
Оба-на! Все, что я видел за эти пятнадцать минут, было лишь увертюрой к основной мелодии хакера. Два часа он был подключен к системе – я же заметил его только напоследок. Проклятье! Если бы я сразу засек его! За два часа можно было выследить даже черта в аду. Почему я его проворонил? Я ждал, что он воспользуется только атрибутами Свентека, а он прежде использовал атрибуты доступа трех других пользователей. В 11–09 утра хакер вошел в систему с учетным именем и паролем Элизы Марк – физика-ядерщика. Атрибуты были правомочными, счета оплачивались отделом физики атомного ядра, хотя сама владелица весь прошлый год проработала в Лаборатории Ферми. Легко выяснилось, что Элиза и понятия не имела, что кто-то использовал ее права доступа. Тот ли это хакер?
Использовав атрибуты Марк, он стал суперпользователем, пробравшись через дыру в Гну-Эмаксе. Имея права менеджера системы, он выбрал пользователей, не подключавшихся к системе в течение длительного времени. Таких пользователей было трое: Марк, Горан и Уитберг. Последние двое давно не работали в нашей лаборатории.
Он отредактировал файл паролей и вдохнул жизнь в три мертвых атрибута. Поскольку ни один из них не был уничтожен, то файлы этих пользователей и их учетная информация оставались в системе. Украв полномочия суперпользователя, хакер отредактировал общесистемный файл паролей. Он и не пытался разгадать шифр пароля Горана – просто стер его. Теперь же, когда пароль отсутствовал, хакер запросто мог воспользоваться им.
Затем хакер исчез. Что он замышляет?
Минутой спустя, он вновь появился, используя имя Горана, но сменив пароль на «Бенсон». Когда Роджер Горан попытается воспользоваться нашим ЮНИКС-компьютером, он здорово удивится, обнаружив, что старый пароль недействителен.
Понятно, почему хакер крал старые атрибуты доступа. Если бы он позарился на действующие, то стали бы поступать жалобы на невозможность войти в систему с привычными паролями… Именно поэтому мой противник охотился за никем не используемыми атрибутами. Мародер!
Украв атрибуты Горана, он затем заграбастал атрибуты Уитберга. Значит, что у него по крайней мере четыре набора атрибутов – Свентека, Уитберга, Горана и Марк. А кто знает, сколько всего? И для каких систем?
Работая под псевдонимом Уитберга, хакер через Милнет попытался соединиться с тремя системами, принадлежащими ВВС. Подождав минутку, он принялся просматривать файлы наших сотрудников. Ученые статьи, нудные технические предложения и описания процесса измерения сечения ядра изотопа бериллия навеяли на него сон. Взлом компьютеров – не тот путь, который ведет к власти, славе и позволяет постигнуть вековую мудрость. Неудовлетворенный, он покрутился вокруг восьмого ЮНИКСа, но Дэйв его надежно запечатал. Разочаровавшись, он распечатал список удаленных компьютеров, доступных из нашей лаборатории. Ничего секретного – имена, номера телефонов и электронные адреса тридцати машин, расположенных в Беркли.
Глава 12
В ожидании очередной атаки я думал, что придется опять ночевать под столом. В этот вечер хакер не появился. Появилась Марта. Она прикатила около семи и привезла термос с овощным супом и шитье (чтобы я не сидел без дела). Стеганое одеяло – непростая штука. Каждый треугольник, квадрат и параллелограмм нужно подогнать по размеру, отгладить и пришить. А как отличить лоскуток от обрезка? Облик творения начинает проявляться только после того, как лоскутки пришиты и обрезки выброшены. Вроде вычисления хакера.
В 11–30 я прекратил слежку. Если хакер явится в полночь, то принтеры сами засекут его.
На следующий день хакер появился только один раз. Я проворонил его, обедая с Мартой в кафе на углу, где джазмены наяривали мелодии 30-х годов. Повеселей, чем ловить хакера. Певец надсаживался в шлягере: «Все любят мою крошку, а моя крошка любит только меня». Марта сказала: «Бред. Выходит, „крошка“ и певец – одно и то же лицо».
– Как так?
– Смотри, понятие «все» включает в себя и «мою крошку». А так как «все любят мою крошку», то значит, «крошка любит саму себя». Затем говорится, что «крошка любит только меня». Поэтому крошка, любящая себя, не может никого больше любить. Следовательно, крошка и певец – одно и то же лицо.
Сразу и не понять. Певца не учили логике. Меня тоже.
Когда я вернулся с обеда, хакер исчез, оставив бумажный хвост распечатки. Первое, что я обнаружил – он не захватил права суперпользователя. Посмотрел, кто из системщиков работает на машине, и проверил список активных процессов. Однако в дыру не полез. Продолжил «ловлю рыбки» через Милнет.
Одиночный компьютер, отрезанный от внешнего мира, нечувствителен к таким атакам. Однако такой отшельник не слишком ценен: он не способен реагировать на происходящие вокруг события. Максимальная выгода от использования компьютеров достигается тогда, когда они взаимодействуют с людьми, механизмами и друг с другом. Сети позволяют совместно использовать данные, программы и обмениваться электронной почтой. Что происходит в компьютерной сети? Что компьютеры говорят друг другу?
Большая часть персональных компьютеров занимается удовлетворением нужд своих владельцев и не испытывает потребности в общении. Для обработки текстов, вывода бухгалтерских документов, игр и вправду нет необходимости связываться с другими машинами. Но прицепите модем, и вы узнаете о последних биржевых новостях, всяких прочих событиях и слухах. Подключение к другому компьютеру – мощное расширение возможностей.
Сети формируют сообщества. Специалисты в области физики высоких энергий обсуждают жизнь и смерть субатомных частиц, сплетничают о кандидатах на Нобелевскую премию. По незасекреченным военным сетям передаются заказы на армейские ботинки, финансовые требования и слухи о том, кто будет командиром базы. Где-то идет обмен приказами и сплетнями особой важности, например, с кем спит командир базы.
Электронные сообщества ограничиваются рамками протоколов взаимодействия. В простых сетях, например, в сетях распространения объявлений, используются простейшие способы связи. Связаться с ними может любой, у кого есть персональный компьютер и телефон. В более сложных сетях потребуются абонированные телефонные каналы и специальные компьютеры, связанные с сотнями тысяч других. Физические различия устанавливают границы между сетями. Связь между сетями осуществляется при помощи так называемых вентильных компьютеров, обеспечивающих передачу переформатированных сообщений между компьютерами различных типов.
Большинство сетей, подобно вселенной Эйнштейна, конечно, но не ограничено. Физически к ним подключается конечное число компьютеров, но максимальные возможности сети при этом никогда не достигаются. Всегда можно нарастить сеть и подключить еще один компьютер. Большинство сетей настолько сложны, что никто не знает полную структуру их связей, поэтому приходится искать маршрут методом научного тыка.
Компьютеры нашей лаборатории подключены к дюжине сетей. Локальные сети, например, Этернет, связывают вычислительные машины в одном здании. Другие создают распределенные сообщества: исследовательская сеть Барнет охватывает десяток калифорнийских университетов. И, наконец, национальные и международные сети позволяют связываться научным работникам всего мира. Но самая главная сеть – Интернет.
В середине 50-х годов по инициативе правительства началось строительство чуда двадцатого века – сети шоссейных дорог, соединяющих штаты между собой. Этот проект отлично занимал население на общественных работах. Тяжелые воспоминания о транспортных проблемах в военный период заставили армейское начальство поднапрячься и обеспечить возможность перемещения танковых колонн и военных конвоев по этим дорогам. Сейчас вряд ли кто помнит о военном назначении этих шоссе. По аналогичным соображениям, Министерство обороны начало разработку сети, связывающей военные компьютеры. В 1969 году Оборонное Агентство Перспективных Исследований (ОАПИ) поставило ряд экспериментов, приведших с созданию сети Арпанет, и в дальнейшем Интернет – своего рода электронного шоссе, соединяющего сотни тысяч компьютеров, разбросанных по всему свету. Успех превзошел все ожидания. Информация передавалась гораздо дальше, чем было задумано. Как и в случае с шоссейными дорогами, постоянно сыпались жалобы на «пробки», неправильные маршруты, недальновидное планирование и плохое обслуживание. Количество жалоб отражало феноменальную популярность эксперимента.
Сначала сеть ОАПИ была испытательным полигоном для доказательства возможности компьютерной связи. Как экспериментальную модель ее использовали университеты и лаборатории, а вояки игнорировали. Арпанет разрасталась, привлекая простотой и надежностью. К 1985 году в каталоге сети содержались сведения о десятках тысяч компьютеров; сейчас, должно быть, больше сотни тысяч. Компьютерная перепись напоминала бы подсчет городов, до которых можно доехать по связывающим штаты шоссейным дорогам – куда только не попадешь по этому лабиринту! С развитием сети изменилось название. Первый вариант Арпанет представлял собой «становой хребет», соединяющий университеты, военные компьютеры и компьютеры оборонных фирм-поставщиков. Поскольку воякам все больше нравилось использовать сеть для передачи сообщений и пересылки почты, то они решили «расколоть» ее на две части: военную – Милнет – и исследовательскую – Арпанет. Между военной и академической сетями нет существенных различий. Вентильные компьютеры позволяют организовать информационный обмен. Любой пользователь Арпанет может подключиться к любому компьютеру Милнет. Арпанет, Милнет и сотня других сетей составляют Интернет. К Интернет подсоединены сотни университетских, коммерческих и военных компьютеров. Каждый из них имеет собственный адрес; большинство адресов зарегистрированы в Информационном Центре Сети (ИЦС), расположенном в Менло Парк, штат Калифорния. Любой компьютер могут использовать десятки сотен пользователей, которые тоже регистрируются в ИЦС. В памяти компьютеров ИЦС хранится общий каталог. Можно просто подключиться к ИЦС и запросить информацию о любом пользователе. Правда, их попытки вовремя обновлять сведения не всегда успешны (компьютерщики часто меняют места работы), но все же их телефонный справочник вполне достоверен.
Когда я обедал, хакер, сунул свой нос в ИЦС. Принтер аккуратно зафиксировал весь сеанс. Он искал в ИЦС аббревиатуру «WSMR». Вот распечатка:
LBL>telnet NIC.ARPA
Хакер запрашивает информационный центр сети.
Trying…
Connected to 10.0.0.61 Escape character is ‘*]’
+………….DDNNetworkInformationCenter.
Чтобы получить информацию о пользователях и ведущем компьютере, наберите с клавиатуры слово WHOIS и нажмите клавишу <веод>
Для получения информации об ИЦС наберите с клавиатуры слово NIC и нажмите клавишу <ввод>
+…………………………………..
@whois wsmr
Хакер ищет аббревиатуру WSMR
White Sands Missile Range WSMR-NET-GW.ARMY.MIL 26.7.074
White Sands Missile Range WSMR-TRAPS.ARMY.MIL 192.35.99.2
White Sands Missile Range WSMR-AIMS.ARMY.MIL 128.44.8.1
White Sands Missile Range WSMR-ARMTE-GW.ARMY.MIL 128.44.4.1
White Sands Missile Range WSMR-NELARY.MIL 128.44.11.3
WSMR? Ракетный полигон в Уайт Сэндс.
В Санспот в Нью Мехико находится одна из лучших солнечных обсерваторий. Чистое небо и большие телескопы в нескольких сотнях миль от Альбукерко. Единственная дорога туда проходит через Уайт Сэндс, где вояки испытывают управляемые реактивные снаряды. Однажды, когда я изучал солнечную корону, работа завела меня в Санспот через пустыню Уайт Сэндс. Запертые ворота и сторожевые вышки отпугивали любопытных. К тому же, если вы не до конца прожаритесь на солнце, то дело завершит колючая изгородь, по которой пропущен электрический ток.
До меня доходили слухи, что военное ведомство разрабатывает ракеты для сбивания искусственных спутников. Похоже, что по программе СОИ – Звездные Войны, но штатские астрономы могут только предполагать. Может, хакер знает о Уайт Сэндс побольше, во всяком случае, стремится узнать. Он потратил десять минут, пытаясь подключиться через Интернет к каждому их компьютеру.
LBL> telnetWSMR-NET-GW.ARMY.MIL
Подключение к компьютеру в Уайт Сэндс.
Trying
Connected toWSMR-NET-GW.ARMY.MIL 4.2 BSD UNIX
Welcome to White Sands Missile Range
login: guest
Попытка использования атрибутов с именем guest (гость).
Password: guest Invalid password, try again
login: visitor
Отгадывание пароля. Попытка не удалась. Использование другого распространенного учетного имени.
Password: visitor Invalid password, try again
login: root
Безуспешно. Еще одно имя.
Password: root
Invalid password, try again
Безрезультатно.
login: system
Четвертая попытка.
Password: manager
Invalid password, disconnecting after 4 tries
Он пытался подключиться к каждому компьютеру, используя имена «гость», «посетитель», «корень» и «система». Видно было, как проваливались его попытки отгадать пароли. Возможно, такие учетные имена и существовали в действительности, но хакер не знал паролей. Я улыбался. Нет сомнений, что хакер хотел попасть в Уайт Сэндс. Но тамошние парни не валяли дурака, когда речь шла о безопасности. Через их электрические изгороди и систему паролей никому не пробраться.
Посмеиваясь, я показал распечатку Рою Керту.
– Что будем делать? – спросил я. – В Уайт Сэндс он не прорвался. Стоит ли сообщать тамошним ребятам?
– Да, черт побери! – ответил Рой. – Если кто-то пытается ворваться в дом моего соседа, то я непременно сообщу ему об этом. Кроме того, вызову полицию.
Я поинтересовался, кто из фараонов отвечает за Интернет.
– Черт меня подери, если я знаю, – сказал Рой, – но у нас есть своя полиция. С этого момента мы будем информировать каждого, подвергшегося атаке. Мне наплевать, что хакер облажался, так что позвони им и все расскажи. Не вздумай воспользоваться электронной почтой. Да, выясни, кто же из легавых все-таки отвечает за Интернет.
За один телефонный звонок я выяснил, что не ФБР.
– Слушай, сынок, ты что, потерял несколько миллионов баксов?
– Да нет.
– Утечка секретной информации?
– Да нет.
– Тогда вали отсюда, сынок.
Может быть, в Информационном Центре Сети знают, кто пасет Интернет? Я позвонил в Менло Парк и нашел Нэнси Фишер. По ее мнению, Интернет не просто скопище кабелей и программ, а живое существо. Это – мозг, нейроны которого распространились по всему миру, и в который вдувают жизнь десять тысяч пользователей. «Это миниатюрная копия нашего общества. Рано или поздно какой-нибудь варвар попытается его уничтожить».
Оказалось, что за эту сеть не отвечает никто. Поскольку по Милнету запрещено передавать секретные данные, то на безопасность всем плевать.
– Тебе, наверно, надо обратиться в Отдел Специальных Расследований Военно-Воздушных Сил, – сказала Нэнси. – Они разбираются во всем, что касается Военно-Воздушного Флота. Контрабанда наркотиков, убийства и все прочее. От тебя не убудет, если поговоришь с ними. Прости, помочь не могу, это не моя сфера.
Еще три звонка. Я соединился со специальным агентом ОСР ВВС Джимом Кристи и майором Стивом Раддом из Агентства Оборонных Коммуникаций. Джим Кристи разговаривал как фараон.
– Постой, дай переварить. Какой-то хакер вламывается в ваш компьютер, затем в военный компьютер в Алабаме, а сейчас нацеливается на ракетный полигон в Уайт Сэндс?
– Да, похоже, это то, что мы видели. Нам не удалось проследить: он может быть из Калифорнии, Алабамы, Вирджинии или даже из Нью Джерси.
– Ага… вы не дали ему пинка и хотите схватить этого сукиного сына с поличным.
– Если б мы вышвырнули его, то он просто проник бы в Интернет через другую дыру.
Стив Радд, напротив, хотел все пресечь.
– Это не может продолжаться. Хотя информация и не секретна, но ведь можно разрушить весь Милнет. Надо выкинуть всех шпионов.
Шпионов?! Опять заговорил фараон.
– Я не думаю, что ФБР пошевелит хоть пальцем.
Pulsuz fraqment bitdi.