Чтобы удовлетворить потребности научных работников из различных уголков страны, лаборатория в Беркли также была абонентом Тимнета. Когда ученому из Стоунибрука, штат Нью-Йорк, надо подключиться к нашему компьютеру, то он просто набирает городской номер Тимнета. Поскольку его модем связан с Тимнетом, то все, что требуется — попросить подсоединить его к Лоуренсовской лаборатории в Беркли, — и можно начинать работать, как у нас за терминалом. Физикам из отдаленных уголков очень нравился этот вид услуг, и нам всегда было очень приятно сознавать, что что они спускают свои баксы на наш компьютер, а не на какой-нибудь другой.
Некто вламывался, используя Тимнетовский канал. Поскольку «щупальца» Тимнета тянулись по всей стране, то наш хакер мог находиться где угодно. Но в этот момент меня интересовало не где он, а что успел натворить за три часа. Моя догадка подтвердилась: для взламывания нашего компьютера использовались атрибуты доступа Свентека.
Это был не простой взлом. Хакер был суперпользователем.
Этот хакер напоминал кукушку. Кукушка откладывает свои яйца в гнезда других птиц. Это — гнездовой паразит: ее кукушат будут растить другие матери. Кукушата, вылупившись из яиц, выбрасывают из гнезд «родных» обитателей. Жизнь птенцов кукушки — это смерть птенцов других видов. Таинственный гость подложил в наш компьютер яйцо-программу, а система «высидела» ее и накормила привилегиями.
Этим утром хакер написал коротенькую программу захвата привилегированных прав. Обычно ЮНИКС не позволяет запускать такие программы, так как никогда не дает пользователю прав выше тех, которые ему назначены. Задача заключалась в том, чтобы замаскировать эту программу — кукушкино яйцо — так, чтобы система ее восприняла как родное дитя.
Каждые пять минут система ЮНИКС выполняет собственную программу с именем atrun. Atrun планирует другие задания и выполняет рутинную работу по «уборке дома». Она работает в привилегированном режиме на всю катушку, чувствуя за своей спиной могучую поддержку операционной системы. Если на место atrun подставить фальшивую программу, то она сработает через пять минут и получит полные системные привилегии. По этой причине atrun располагается в защищенной области памяти системы, доступной только менеджеру. Здесь и было гнездо кукушки: за пять минут хакер, наверное, успеет подменить atrun своей программой.
Чтобы обтяпать это дельце, ему нужно найти способ поместить яйцо-программу в защищенную область-гнездо. У операционной системы есть специальные защитные средства. Обычные программы копирования их обойти не могут; нельзя задать команду «скопировать программу в системную область».
Но было кое-что, чего мы никогда не замечали. Ричард Столман, свободный художник-программист, всегда громко заявлял, что информация должна быть открытой. Его программы, которые он раздавал задаром направо и налево, блистали остротой мысли, хорошим стилем и вдохновением. Столман создал мощную программу редактирования под названием «Гну-Эмакс». Гну — это гораздо больше, чем простой текстовый редактор. Ее очень легко перестроить под любого пользователя. Она здорово облегчает написание других программ. Естественно, что всем нашим физикам сразу потребовалась Гну; мы успешно инсталлировали ее, большую часть времени глядя в потолок. Была только одна проблема: в ней сидела плюха.
Инсталляция производилась так, что возможность пересылать файл из собственного каталога в чей-либо другой обеспечивалась необычным способом. Гну не проверяла, кто принимает этот файл, и нужен ли он в месте назначения. Она просто переименовывала его и меняла метку принадлежности. То есть происходила простая передача права владения от одного пользователя к другому.
Переслать файл из вашей области в мою нетрудно. Но лучше не пытаться переслать его в защищенную системную область — это может делать только менеджер. Программа Столмана должна была бы контролировать такие попытки. Но не контролировала. Это позволяло кому угодно переслать файл в защищенную системную область. Хакер это знал, а мы нет. Хакер использовал Гну для замены родной системной версии atrun на свою программу. Пять минут спустя система начала насиживать подложенное яйцо, и он получил ключи от нашего компьютера.