Kingpin. Глава 5. Кибервойна.

Вернувшись домой, в Сан-Франциско, на мониторе горела все та же искушающая строка:

bcopy (fname, anbuf, alen = (char *)*cpp – fname);

Это была одна из 9 тысяч строк в исходном коде Barkeley Internet Name Domain(BIND). BIND это старая как мир опора в инфраструктуре интернета, настолько же важная, как, например, модем или оптоволоконный кабель. Разработанный в начале 80-х годов под эгидой Управления перспективных исследовательских проектов Министерства обороны США(DARPA), BIND ввел масштабируемую систему доменных имен(DNS), своего рода телефонный справочник, который преобразует привычные нам ссылки типа Yahoo.com, в числовые адреса, которыми оперирует сеть. Без BIND, или его аналогов, мы бы читали новости на 157.166.255.25, вместо CNN.com, и посещали 74.125.67.100 дабы загуглить интересующую нас информацию.

BIND был одной из тех инноваций, сделавших возможным взрывной рост интернета – он заменил грубый механизм, который тормозил его популяризацию. Но не все было так хорошо, ведь как позже обнаружилось, BIND имел крупную дыру в безопасности. Его код был пережитком времен, тех времен, когда сеть была закрыта, а угроз меньше. Да и хакеры не стояли на месте, они постигали всё новые и новые нюансы взлома и теперь были вооружены неимоверным количеством эксполитов.

Святая всех святых интернета, эксперты из Internet Software Consortium, назначили себя «хранителями кода», и вздумали переписать его наново, с целью обезопасить софт хотя бы скрипт-кидди. Ведь в то время самые современные и совершенные в мире сети, с новыми сверкающими серверами и рабочими станциями, работали на багованом, глючном софте прошлого поколения.

В 1988 те самые хранители кода обнаружили последнюю дыру в BIND. Это была та самая строчка кода. Она принимала запрос из интернета, и как положено, копировала ее байт за байтом во временный буфер «unbuf» в память сервера. Но было одно “но”, она не проверяла размер входных данных. Следовательно, хакер мог передать слишком длинный запрос на сервер BIND, переполнить буфер и заставить код загружаться непосредственно в память компьютера.

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

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

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

Прошло две недели после свадьбы Макса и Кими. Финансируемая правительством группа реагирования на компьютерные инциденты(CERT) в университете Карнеги-Меллона, которая управляет своего рода системой аварийного вещания, выпустила предупреждение об уязвимости BIND, вместе со способом ее решения: две дополнительные строчки кода отклоняли слишком длинные запросы. Но CERT видимо не учли тот факт, что при исправлении этой уязвимости, они создали две, уже другие уязвимости, которым они, видимо, не придали слишком большого значения. Но так как CERT закрыли на это глаза, то что уже говорить о простых пользователях.

Для Макса же это было зеленым светом.

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

Ждать пришлось недолго, вскоре появилась первая жертва BIND уязвимости. 18 марта 1998 был взломан Rootshell.com, новостной сайт на тему компьютерной безопасности, который вели студенты-энтузиасты. Макс поднял трубку и набрал номер своего контакта в ФБР, Криса Бисона. Он объяснил ему, что ситуация была очень серьезной. Любой, кто не поставил патч на BIND, сейчас может быть взломан любым скрипт-кидди способным скачать эксплоит и прописать пару команд.

Всего месяцем ранее, менее серьезная ошибка в операционной системе Sun Solaris привела к тому, что компы на дюжине военных баз США были взломаны. Этот взлом заместитель министра обороны назвал «самой организованной и спланированной атакой по американским системам обороны на сегодняшний день». Эти атаки спровоцировали ложный сигнал о начале кибервойны: Пентагон именовал это вторжение «Solar Sunrise» и обвинил во всем Саддама Хусейна. Но вскоре следователи смогли отследить атаки. Это были проделки молодого израильского хакера, который, по его словам, «просто развлекался».

На следующий день Макс снова позвонил Бисону. Группа хакеров под названием ADM выпустила усовершенствованную версию эксплоита для BIND, которая рандомно сканировала интернет на предмет непропатченных серверов, взламывала их, копировала сама себя и использовала только взломанный компьютер как платформу для поиска все новых и новых уязвимых серверов. Появилась вероятность того, что кто-то может единолично захватит весь интернет. Макс повесил трубку и задумался. Кто-то точно уже собирался сделать это…

Он рассказывал свой план Кими, а в глазах его горело пламя. Он был восторжен, словно дитё. Макс хотел стать автором своей собственной атаки на BIND. Он хотел сначала закрыть все дыры в безопасности, чтобы избавиться от конкурентов, в виде других хакеров. Так же, он хотел ограничиться взломом лишь тех объектов, которые наиболее нуждаются в обновлении системы безопасности – военных и правительственных объектов США.

«Не попадись», – это все что сказала Кими, она давно поняла, что спорить с Максом бесполезно. А особенно сейчас, когда его разум был заложником столь дикой идеи.

Макс боролся со своим «бинарным» характером, в нем сражались состоявшийся женатый мужчина с твердыми взглядами на мир, и импульсивный ребенок, которому дай лишь повод… Ребенок победил. Он сел за клаву и погрузился в мир условий и операторов, ноликов и единичек, короче, сел кодить.

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

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

Максу лишь нужно было время. Как только руткит будет создан, код Макса выполнит то, чего не смогло сделать правительство: он обновит взломанные компы к последней версии BIND, таким образом он пофиксит все уязвимости и махом отсеет остальных хакеров, закрыв дыру в безопасности, через которую он сам и вошел. Теперь компьютер будет защищен от любых возможных атак, но Макс впредь сможет входить в систему. Он исправил уязвимость, перед этим воспользовавшись ею. Он был и black hat, и white hat одновременно.

Вторжение будет длиться всего пару минут. Поначалу компьютер будет контролироваться системным администратором, ничего особенного. Затем, команда – подгружается «якорь», команда – загружается скрипт, еще одна команда – загружается руткит, и дело в шляпе.

Макс все еще работал над реализацией своей программы, когда неожиданно на почту пришло письмо ФБР. Им нужен был полный отчет об уязвимости BIND. Но Максу было уже не до этого. Сейчас его код будет говорить за него. Он выждал момент и взломал пару компов в каком-то колледже в качестве плацдарма для атаки. Затем, 21 мая, во вторник, он залогинился в сети с угнанного аккаунта Verio… и понеслась.

Результата долго ждать не пришлось. Тот самый «якорь» Макса был разработан, чтобы сигнализировать об успехе на его компьютер через Verio. А сам Макс спокойно наблюдал за распространением атаки со своего дома, с чашечкой кофе в руках. Взломанные компьютеры посылали оповещения о том, что атака проходит успешно. А Макс молча смотрел на xTerm, где сотнями, одно за одним всплывали окна, каждое окно – +1 взломанный компьютер.

Вскоре в распоряжении Макса была база ВВС США Брукс. Mc-Chord, Tinker, Offutt, Scott, Maxwell, Kirtland, Keesler, Robins. Его код проник на сервера ВВС, армии, в компьютер кабинета секретаря президента. И каждый комп имел бэкдор, который Макс мог использовать, когда ему только заблагорассудиться.

Макс добавлял себе очки за каждый захваченную систему, словно все это происходило в видеоигре. Когда его код проник в интернет пространство ВМФ США, он обнаружил так много непропатченных компов, что поток всплывающих окон превратился в мать его водопад. Их было так много что комп Макса не выдержал и вырубился.

Спустя какое-то время копания в системнике, Макс перезапустил компьютер и следующие пять дней просто наблюдал за его растущим господством в киберпространстве. И все так же игнорировал эмеилы от ФБР. «Где отчет?!» – писал Крис Бисон, – «Будь добр, перезвони».

Имея такую власть, Макс мог взломать почти любую сеть в интернете. Он обучил свой код на серверах Id Software в Меските, штат Техас. Тамошняя игровая компания разрабатывала третью часть неимоверно популярного fps шутера Quake. Макс обожал игры в этом жанре. Мгновение и Макс уже шарился по компам разработчиков, и скоро нашел, что искал. Он рассказал Кими что только что нашел исходники Quake lll, самой ожидаемой игры года.

Кими была в недоумении: «Макс, ты больной?! Не вздумай ничего там трогать!».

Вскоре до Макса дошло, что его атаки, это не Гарри Поттер под плащом невидимкой, и кто-то о них уже догадывается. В Национальной лаборатории им. Лоуренса в Беркли, штат Калифорния, исследователь в области компьютерных наук, Верн Паксон, заметил производимые Максом сканирования с помощью новой системы личной разработки, которую он назвал BRO – Большой Брат. BRO был экспериментальной разработкой в относительно новом виде контрмер безопасности, так называемой, системой обнаружения вторжений. Грубо говоря BRO был киберсигнализацей, в чем и состояла его единственна функция. Он тихо сканировал сети на предмет подозрительной активности, и, если таковая находилась, оповещал об этом системных администраторов.

Паксон написал детальный отчет о действиях Макса в CERT. Макс перехватил этот отчет, и после прочтения искренне удивился. Ученый не только задетектил его атаку, но и составил полный список серверов, которые были атакованы через зараженные компы в лаборатории им. Лоуренса. Макс использовал их сеть в качестве одного из своих дополнительных плацдармов. Он отправил Паксону анонимное письмо через рут аккаунт лаборатории.

Верн,

Прошу прощения, если вдруг причинил Вам неудобства, но я в одиночку пофиксил ОГРОМНУЮ ДЫРУ В БЕЗОПАСНОСТИ в большинстве ваших систем. Не буду отрицать того, что появились и новые дыры, но все они были запаролены и никогда не принесут никакого вреда вашим системам.

Понимаете, если бы какой-то другой, более, скажем так, недоброжелательный человек, сделал это вместо меня, последствия были бы куда хуже. Например, школота, оставляющая варез, вырубающая IRC BS и втихаря стирающая файлы через /bin/rm, когда у них хуевое настроение. Убожество.

Вам может не понравится то, что я наделал, но поверьте, это было во благо. Я оставлю в покое все сервера, которые вы назвали в отчете… И более не буду трогать ваши системы, так как знаю что этот отчет попал в руки CERT. CERT должны нанимать людей вроде меня, людей с прямыми руками и ясным умом. Безусловно, если бы мне платили хорошие деньги, я бы никогда не оставлял на чужих компьютерах руткитов или что-то в этом роде.

Довольно умно, не думаете? Хех. Это просто бомба. Владея сотнями, нет, даже тысячами систем, и зная, что вы все исправите…

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

Хотя, в любом случае, я не хочу, чтобы это дерьмо повторилось, поэтому просто оставлю все как есть…

«The Cracker».

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

После атаки Макс решил взяться за новый, более полезный обществу проект. Он хотел создать веб-приложение, которое в режиме реального времени будет сканировать компьютер пользователя на уязвимость к BIND атакам. Это была «хорошая» версия его проги, которая только вчера взламывала тысячи компьютеров. Приложение, по-прежнему, будет сканировать правительственные и военные сети на уязвимость, а только теперь, вместо того, чтобы взламывать ее, оно будет отправлять емеил с предупреждением системному администратору. Теперь не надо скрываться за взломанным аккаунтом Verio. Оба сервиса будут жить на его новом общедоступном веб-сайте – WhiteHats.com.

Два дня и две ночи Макс только тем и занимался что работал над своим новым легальным проектом. Но вот опять этот треклятый Бисон спамит на эмеил: «Что случилось? Я думал отчет уже пришел на мой почтовый ящик, где же он, блядь?! Я его не вижу!».

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

«Оу, еще и какой-то ADM червь в интернете появился», – добавил он. «Но я не думаю, что он сможет сильно распространится».