Оценить:
 Рейтинг: 0

Яйцо кукушки. История разоблачения легендарного хакера

Год написания книги
1989
Теги
<< 1 2 3 4 >>
На страницу:
3 из 4
Настройки чтения
Размер шрифта
Высота строк
Поля
Ранее компания «Белл» монополизировала средства связи. Позвонить из Нью-Йорка в Чикаго можно было только по каналам фирмы AT&T. Используя модемы, можно передавать данные по местной телефонной линии, однако для междугородней связи помехи и дороговизна делают ее непригодной для организации взаимодействия между компьютерами. К концу 70-х годов другие фирмы тоже захотели погреть руки и предложили специализированный вид услуг – «телефон» для данных. Тимнет создал сеть, связывающую компьютеры главных городов. Идея Тимнета проста и элегантна: создать «хребет» для передачи цифровой информации, позволить любому желающему подключаться к этому хребту, используя внутригородские телефонные каналы, и затем передавать данные в любой компьютер. Система Тимнета весьма экономична: она обеспечивает сжатие данных, поступающих от нескольких десятков пользователей, в несколько пакетов и передачу этих пакетов в нужные компьютеры. Система устойчива к помехам и обеспечивает любое нужное быстродействие. Клиенты, кроме того, экономят свои денежки, поскольку для них обеспечивается доступ в удаленный компьютер с помощью телефонного звонка.

Чтобы удовлетворить потребности научных работников из различных уголков страны, лаборатория в Беркли также была абонентом Тимнета. Когда ученому из Стоунибрука, штат Нью-Йорк, надо подключиться к нашему компьютеру, то он просто набирает городской номер Тимнета. Поскольку его модем связан с Тимнетом, то все, что требуется – попросить подсоединить его к Лоуренсовской лаборатории в Беркли, – и можно начинать работать, как у нас за терминалом. Физикам из отдаленных уголков очень нравился этот вид услуг, и нам всегда было очень приятно сознавать, что что они спускают свои баксы на наш компьютер, а не на какой-нибудь другой.

Некто вламывался, используя Тимнетовский канал. Поскольку «щупальца» Тимнета тянулись по всей стране, то наш хакер мог находиться где угодно. Но в этот момент меня интересовало не где он, а что успел натворить за три часа. Моя догадка подтвердилась: для взламывания нашего компьютера использовались атрибуты доступа Свентека.

Это был не простой взлом. Хакер был суперпользователем.

Этот хакер напоминал кукушку. Кукушка откладывает свои яйца в гнезда других птиц. Это – гнездовой паразит: ее кукушат будут растить другие матери. Кукушата, вылупившись из яиц, выбрасывают из гнезд «родных» обитателей. Жизнь птенцов кукушки – это смерть птенцов других видов. Таинственный гость подложил в наш компьютер яйцо-программу, а система «высидела» ее и накормила привилегиями.

Этим утром хакер написал коротенькую программу захвата привилегированных прав. Обычно ЮНИКС не позволяет запускать такие программы, так как никогда не дает пользователю прав выше тех, которые ему назначены. Задача заключалась в том, чтобы замаскировать эту программу – кукушкино яйцо – так, чтобы система ее восприняла как родное дитя.

Каждые пять минут система ЮНИКС выполняет собственную программу с именем atrun. Atrun планирует другие задания и выполняет рутинную работу по «уборке дома». Она работает в привилегированном режиме на всю катушку, чувствуя за своей спиной могучую поддержку операционной системы. Если на место atrun подставить фальшивую программу, то она сработает через пять минут и получит полные системные привилегии. По этой причине atrun располагается в защищенной области памяти системы, доступной только менеджеру. Здесь и было гнездо кукушки: за пять минут хакер, наверное, успеет подменить atrun своей программой.

Чтобы обтяпать это дельце, ему нужно найти способ поместить яйцо-программу в защищенную область-гнездо. У операционной системы есть специальные защитные средства. Обычные программы копирования их обойти не могут; нельзя задать команду «скопировать программу в системную область».

Но было кое-что, чего мы никогда не замечали. Ричард Столман, свободный художник-программист, всегда громко заявлял, что информация должна быть открытой. Его программы, которые он раздавал задаром направо и налево, блистали остротой мысли, хорошим стилем и вдохновением. Столман создал мощную программу редактирования под названием «Гну-Эмакс». Гну – это гораздо больше, чем простой текстовый редактор. Ее очень легко перестроить под любого пользователя. Она здорово облегчает написание других программ. Естественно, что всем нашим физикам сразу потребовалась Гну; мы успешно инсталлировали ее, большую часть времени глядя в потолок. Была только одна проблема: в ней сидела плюха.

Инсталляция производилась так, что возможность пересылать файл из собственного каталога в чей-либо другой обеспечивалась необычным способом. Гну не проверяла, кто принимает этот файл, и нужен ли он в месте назначения. Она просто переименовывала его и меняла метку принадлежности. То есть происходила простая передача права владения от одного пользователя к другому.

Переслать файл из вашей области в мою нетрудно. Но лучше не пытаться переслать его в защищенную системную область – это может делать только менеджер. Программа Столмана должна была бы контролировать такие попытки. Но не контролировала. Это позволяло кому угодно переслать файл в защищенную системную область. Хакер это знал, а мы нет. Хакер использовал Гну для замены родной системной версии atrun на свою программу. Пять минут спустя система начала насиживать подложенное яйцо, и он получил ключи от нашего компьютера.

Гну оказалась дырой в системе защиты.

Теперь я все понял. Наш приятель должен был войти в систему с атрибутами пользователя-гостя, раздобыть привилегии, используя плюху в Гну, и затем добавить нового пользователя в учетные файлы.

На первых нескольких футах распечатки я ясно вижу, как кукушка готовит гнездо, откладывает яйцо и ждет, когда его начнут насиживать. Следующие несколько футов – и оперившийся кукушонок расправляет крылья.

Первое, что он сделал – замел за собой следы: переписал на место «родную» версию atrun. Затем покопался в электронной почте всех пользователей, ознакомился с новостями, сплетнями и любовными письмами. Он узнал о модификациях, внесенных за последний месяц, грантах и приеме новых служащих. Он искал изменения в файлах менеджера системы и узнал, что я только что поступил на работу. Он выяснил мой заработок и прочел резюме. И что самое страшное – ему известно мое учетное имя и то, что я – системный менеджер. В любом случае теперь мне лучше пользоваться другим именем.

Каждые десять минут хакер выдавал команду «who» (кто), чтобы проверить список пользователей, подключенных к компьютеру. Затем он проверил, нет ли изменений в операционной системе – если бы я подменил демонов, то он, конечно же, это обнаружил бы. Я чувствовал себя ребенком, играющим в прятки, когда водящий проходит в нескольких дюймах.

За первый час он написал программу, просматривающую всю электронную почту и ищущую любое упоминание о его деятельности. Ключом служили слова «хакер» и «защита».

Один сотрудник запустил программку «gather» (сбор), собирающую данные по эксперименту. Совершенно безвредная, она просто каждые пять минут собирала информацию и записывала в файл. Хакер обнаружил эту программу, поворочал мозгами десять минут, пытаясь понять, затем уничтожил. Он уничтожал любое задание, которое, как ему казалось, следит за ним. Он вскрыл мою почту, проверяя, нет ли в ней упоминания о хакерах. Вэйн был прав: если не замаскироваться, то он обнаружит слежку.

Мы должны быть неслышимы и невидимы. Когда хакер успокоился, он стал читать файлы. Изучив несколько командных файлов и комментариев научных работников, он нащупал пути в другие компьютеры. Каждую ночь наш компьютер автоматически связывается с двадцатью другими для обмена почтой и сетевыми новостями. Перед хакером было двадцать новых мишеней.

Из почтового файла:

«Привет, Эд!

Следующие две недели я буду в отпуске. Если потребуются данные, войди под моим именем в ВАКС. Учетное имя – Вильсон, пароль – Марианна (так зовут мою жену). Счастливо поразвлечься!»

Не знаю, как Эд, а хакер развлекся. Он подключился к ВАКСу через нашу локальную сеть и вошел с атрибутами Вильсона. Вильсон вряд ли узнает, что хакер ковырялся в его файлах, а скорее всего, ему плевать. Файлы содержали числовые данные, нужные разве что другому физику-ядерщику.

Наш непрошеный гость знал о существовании в лаборатории внутренних сетей. Десяток наших больших компьютеров был связан с сотней малых вычислительных машин; для этого использовались Этернеты, последовательные шлейфы и «жевательная резинка». Когда физикам нужно получить данные от подключенного к циклотрону компьютера, меньше всего они думают об элегантности. За несколько лет инженеры и техники оплели лабораторию паутиной кабелей, соединяющих компьютеры со всем, что работает. Локальная сеть охватывала каждый кабинетик. Организация этой сети основывалась на доверии. Если уж вы работаете на одном компьютере, то имеете право работать и на соседнем. Это экономит время: при использовании нескольких машин не надо знать больше одного пароля. Наш «друг» не мог знать, для чего используются эти системы, но уже нащупывал путь в локальную сеть, ища способ подключения к не исследованным пока компьютерам.

В конце сеанса на ленте принтера уже не осталось краски. Слегка поводив карандашом по бумаге, я все же с трудом мог различать следы, оставленные печатающей головкой: хакер скопировал наш файл паролей и затем отключился.

Меня отвлек звук бас-гитары. Прямо на улице играла группа «Грейтфул Дэд». Полиция не могла удержать народ и публика сидела прямо на газоне. Я выскочил из лаборатории и растворился в тысяче летних рубашек. Загорелые попрошайки – наследие шестидесятых – сновали в толпе, клянча билетики и предлагая программки, букетики и травку. Соло на барабанах доносилось со Строберри Каньон, добавляя тему судьбы, оценить которую могли только мы – дети полей. Жизнь била ключом – хакер не стоил того, чтобы из-за него пропускать концерт «Дэдов».

Глава 5

В понедельник утром исполнилось ровно две недели, как я здесь работаю. Я казался себе не таким уж волшебником…

Я подробно, как первокурсник, записал в журнал все события. Не то чтобы я намеревался использовать эти записи – просто хотелось попрактиковаться в текстовом процессоре Макинтоша. И еще я помнил «Правило большого пальца для астрономов»: все, что не записано – не существовало.

Босс потребовал меня к себе, как только пришел.

Я думал, что он в ярости из-за этих терминалов. Руководство у нас добродушное, но даже волшебникам не полагается тащить без спроса груды оборудования. Но Рой даже не заикнулся о терминалах. Его интересовал хакер.

– Когда он возник?

– В воскресенье, в пять утра, на три часа.

– Стер что-нибудь?

– Уничтожил одну программу, которая, как ему казалось, следит за ним.

– Опасность реальна?

– Он – суперпользователь. Может уничтожить все файлы.

– Можно с ним покончить?

– Наверное. Мы знаем одну дырку; можно легко заштопать.

– Полагаете, это его остановит?

Я мог догадаться, куда он клонит. Рою не хотелось захлопывать двери. Он знал, что мы можем легко аннулировать права доступа Свентека. А теперь, когда мы знаем про дыру, то и привести в порядок «Гну Эмакс»: достаточно добавить в программу пару строчек для проверки каталога назначения. Первое, что приходит в голову – прикрыть лавочку. Мы знаем, как хакер проникает в систему, и знаем, как его вышвырнуть оттуда. Но какие подарочки оставил нам наш загадочный гость? У каких еще пользователей он срисовал атрибуты доступа? В какие еще компьютеры вломился? Именно от этого болела голова. Распечатка показала, что хакер – весьма компетентный программист-системщик, способный использовать малейшие плюхи, о которых мы и понятия не имели. Что же он еще натворил?

Если вы – суперпользователь, то можете изменять любые файлы. Не перекурочил ли хакер системные программы, открывая себе черный ход? Не поставил ли заплату на систему, чтобы она распознавала его волшебный пароль? Не занес ли компьютерный вирус? В персональных компьютерах вирусы распространяются путем копирования самих себя в другие программы. Если вы передаете кому-нибудь зараженную дискету, вирус копирует самого себя в другую программу, распространяясь с дискеты на дискету. Если вирус доброкачественный, то его трудно обнаружить, правда, и особого вреда он не приносит. Но нетрудно соорудить злокачественный вирус, копирующий самого себя и стирающий файлы данных. Так же просто создать вирус, который будет спать несколько месяцев и в один прекрасный день вдруг взорвет все вокруг. Вирусы – это существа, преследующие программистов в их ночных кошмарах.

Обладая правами суперпользователя, хакер мог заразить нашу систему так, что ее потом уже никогда не вылечишь. Его вирус мог скопироваться в системные программы и затеряться в дебрях компьютерной памяти. Копируя себя из программы в программу, он увернулся бы от любой попытки его уничтожить.

В персональном компьютере можно заново установить операционную систему после ее уничтожения. Наша же подвергалась очень сильным изменениям. Мы не можем обратиться к изготовителю и сказать: «Дайте нам исходную копию». При заражении можно только реинсталлировать систему с лент, хранящих копию возобновления. Если вирус занесен шесть месяцев назад, то эти ленты тоже заражены.

Может, он поставил нам логическую мину – программу с «часовым механизмом», которая рванет когда-нибудь в будущем? Или, возможно, этот незваный гость «расстрелял» наши файлы, «убил» парочку заданий и «развинтил» систему учета. Не натворил он чего поужасней?

Можно ли доверять программам и данным? Мы не могли. Если вдруг он нашел другой способ взлома, то попытка вышвырнуть его не сработает. Необходимо выяснить, кто он, что натворил и что собирается делать.

– Скорее всего, это какой-нибудь студентик университета Беркли, – сказал я Рою. – Все они ЮНИКСовские волшебники и держат нас за идиотов.

– Я не очень в этом уверен, – сказал Рой, откинувшись в кресле. – Почему некто из Беркли вламывается через Тимнет, когда мог бы без труда набрать номер нашей системы и подключиться по телефону?

– Может быть, Тимнет – это крыша, – возразил я. – Укрытие. Если бы он прямо набрал номер лаборатории, то мы бы его накрыли. Но теперь нам надо следить и за Тимнетом, и за телефонными подключениями.

Мои размахивания руками не убедили босса. Может быть, научный опыт, а может быть, природная склонность к сомнениям развили в Рое критический склад ума: он не согласится, что это студент, пока его сюда не притащат. Уикендовские распечатки показали, что это, несомненно, хороший программист, но его можно было искать где угодно. Чтобы выследить парня, надо висеть на телефонных каналах. Изрядная работенка.

<< 1 2 3 4 >>
На страницу:
3 из 4