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