В понедельник утром исполнилось ровно две недели, как я здесь работаю. Я казался себе не таким уж волшебником…
Я подробно, как первокурсник, записал в журнал все события. Не то чтобы я намеревался использовать эти записи – просто хотелось попрактиковаться в текстовом процессоре Макинтоша. И еще я помнил «Правило большого пальца для астрономов»: все, что не записано – не существовало.
Босс потребовал меня к себе, как только пришел.
Я думал, что он в ярости из-за этих терминалов. Руководство у нас добродушное, но даже волшебникам не полагается тащить без спроса груды оборудования. Но Рой даже не заикнулся о терминалах. Его интересовал хакер.
– Когда он возник?
– В воскресенье, в пять утра, на три часа.
– Стер что-нибудь?
– Уничтожил одну программу, которая, как ему казалось, следит за ним.
– Опасность реальна?
– Он – суперпользователь. Может уничтожить все файлы.
– Можно с ним покончить?
– Наверное. Мы знаем одну дырку; можно легко заштопать.
– Полагаете, это его остановит?
Я мог догадаться, куда он клонит. Рою не хотелось захлопывать двери. Он знал, что мы можем легко аннулировать права доступа Свентека. А теперь, когда мы знаем про дыру, то и привести в порядок «Гну Эмакс»: достаточно добавить в программу пару строчек для проверки каталога назначения. Первое, что приходит в голову – прикрыть лавочку. Мы знаем, как хакер проникает в систему, и знаем, как его вышвырнуть оттуда. Но какие подарочки оставил нам наш загадочный гость? У каких еще пользователей он срисовал атрибуты доступа? В какие еще компьютеры вломился? Именно от этого болела голова. Распечатка показала, что хакер – весьма компетентный программист-системщик, способный использовать малейшие плюхи, о которых мы и понятия не имели. Что же он еще натворил?
Если вы – суперпользователь, то можете изменять любые файлы. Не перекурочил ли хакер системные программы, открывая себе черный ход? Не поставил ли заплату на систему, чтобы она распознавала его волшебный пароль? Не занес ли компьютерный вирус? В персональных компьютерах вирусы распространяются путем копирования самих себя в другие программы. Если вы передаете кому-нибудь зараженную дискету, вирус копирует самого себя в другую программу, распространяясь с дискеты на дискету. Если вирус доброкачественный, то его трудно обнаружить, правда, и особого вреда он не приносит. Но нетрудно соорудить злокачественный вирус, копирующий самого себя и стирающий файлы данных. Так же просто создать вирус, который будет спать несколько месяцев и в один прекрасный день вдруг взорвет все вокруг. Вирусы – это существа, преследующие программистов в их ночных кошмарах.
Обладая правами суперпользователя, хакер мог заразить нашу систему так, что ее потом уже никогда не вылечишь. Его вирус мог скопироваться в системные программы и затеряться в дебрях компьютерной памяти. Копируя себя из программы в программу, он увернулся бы от любой попытки его уничтожить.
В персональном компьютере можно заново установить операционную систему после ее уничтожения. Наша же подвергалась очень сильным изменениям. Мы не можем обратиться к изготовителю и сказать: «Дайте нам исходную копию». При заражении можно только реинсталлировать систему с лент, хранящих копию возобновления. Если вирус занесен шесть месяцев назад, то эти ленты тоже заражены.
Может, он поставил нам логическую мину – программу с «часовым механизмом», которая рванет когда-нибудь в будущем? Или, возможно, этот незваный гость «расстрелял» наши файлы, «убил» парочку заданий и «развинтил» систему учета. Не натворил он чего поужасней?
Можно ли доверять программам и данным? Мы не могли. Если вдруг он нашел другой способ взлома, то попытка вышвырнуть его не сработает. Необходимо выяснить, кто он, что натворил и что собирается делать.
– Скорее всего, это какой-нибудь студентик университета Беркли, – сказал я Рою. – Все они ЮНИКСовские волшебники и держат нас за идиотов.
– Я не очень в этом уверен, – сказал Рой, откинувшись в кресле. – Почему некто из Беркли вламывается через Тимнет, когда мог бы без труда набрать номер нашей системы и подключиться по телефону?
– Может быть, Тимнет – это крыша, – возразил я. – Укрытие. Если бы он прямо набрал номер лаборатории, то мы бы его накрыли. Но теперь нам надо следить и за Тимнетом, и за телефонными подключениями.
Мои размахивания руками не убедили босса. Может быть, научный опыт, а может быть, природная склонность к сомнениям развили в Рое критический склад ума: он не согласится, что это студент, пока его сюда не притащат. Уикендовские распечатки показали, что это, несомненно, хороший программист, но его можно было искать где угодно. Чтобы выследить парня, надо висеть на телефонных каналах. Изрядная работенка.
Рой принял решение не принимать решения. «Давай перекроем на день все сетевые подключения. Завтра утром я поговорю с директором лаборатории. Подумай, что надо сделать. Мы можем подождать, но рано или поздно мы сядем на хвост этому парню или просто вышвырнем его.»
Мне сильно надо гоняться за кем-то? Это отвлечет меня от программирования. Вряд ли ловля хакера имеет много общего с астрономией или физикой. Больше похоже на игру в прятки или в сыщика и вора. Но есть в этом деле и плюс – я могу изучить телефонные каналы и принципы работы сетей. Представляю себя ребенком, ворвавшимся в мамочкину спальню с воплем: «Ни с места! Бросай клавиатуру!»
Во второй половине дня во вторник позвонил Рой: «Директор сказал: „Это электронный терроризм. Бери все, что нужно, но поймай этого ублюдка. Забирай все машинное время. Потрать три недели. Схвати его за хвост!“»
За мной стоит все рассвирепевшее руководство. Вперед!