Перевод книги «Kingpin». Глава 5. «Cyberwar!»

35364ba0e409475fbd05cd11e8132734.jpgКевин Поулсен, редактор журнала WIRED, а в детстве blackhat хакер Dark Dante, написал книгу про «одного своего знакомого».

В книге показывается путь от подростка-гика (но при этом качка), до матерого киберпахана, а так же некоторые методы работы спецслужб по поимке хакеров и кардеров.

Начало и план перевода тут: «Шкворень: школьники переводят книгу про хакеров».
Пролог
Глава 3. «The Hungry Programmers»
Глава 5. «Cyberwar!»
Глава 34. DarkMarket
(публикуем по мере готовности переводов)

Логика выбора книги для работы со школьниками у меня следующая:

  • книг про хакеров на русском языке мало (полторы)
  • книг про кардинг на русском нет вообще
  • Кевин Поулсен — редактор WIRED, не глупый товарищ, авторитетный
  • приобщить молодежь к переводу и творчеству на Хабре и получить обратную связь от старших
  • работать в спайке школьники-студенты-специалисты очень эффективно для обучения и показывает значимость работы
  • текст не сильно хардкорный и доступен широкому кругу, но затрагивает вопросы информационной безопасности, уязвимости платежных систем, структуру кардингового подполья, базовые понятия инфраструктуры интернет
  • книга иллюстрирует, что «кормиться» на подпольных форумах — плохо заканчивается


Кто хочет помочь с переводом других глав пишите в личку magisterludi.

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

(за перевод спасибо хабраюзеру ShiawasenaHoshi)

По возвращению домой в Сан-Франциско Макса ждало искушение в виде следующей строки кода:
bcopy (fname, anbuf, alen = (char *)*cpp — fname);
Это была одна из 9 тысяч строк в исходниках Berkeley Internet Name Domain (BIND) — старая балка в инфраструктуре интернета, такая же важная как любой роутер или оптоволоконный кабель. Разработанный в начале 80х на грант DARPA (Defense Advanced Research Projects Agency — агентство передовых оборонных исследовательских проектов), BIND реализовывал масштабируемую систему доменных имен (Domain Name System — DNS), которая подобно распределенному телефонному справочнику переводит понятные человеку строки типа Yahoo.com в числовые адреса, которыми оперирует сеть. Без BIND или его аналогов, мы бы читали онлайн-новости на 157.166.226.25 вместо CNN.com и заходили бы на 74.125.67.100, чтобы воспользоваться Google-поиском. (Хабрапост про BIND)

BIND был одной из инноваций, что сделали возможным бурный рост интернета. Он заменил сырой механизм, что не позволил бы интернету расширяться. Но в 90х BIND был одной из унаследованных программ, что cоздавали крупнейшую проблему безопасности интернета. Его код был продуктом времен честности и простоты, когда сеть была уединенная и было очень мало сетевых угроз. Теперь же хакеры постигли все нюансы и глубины и возвращались с, казалось бы, бесконечным набором дыр в безопасности.

imageПервосвященство сетевых экспертов названное консорциум интернет ПО (Internet Software Consortium — ISC) само себя назначило стражем интернет-кода и лихорадочно его переписывало. Но в то же время большинство современных сложных сетей в мире со сверкающими новыми серверами и рабочими станциями были запущены с дырявой компьютерной программой из прошлой эпохи.

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

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

Стэк — то место где процессор хранит информацию о том, что он делает — все время программа отводит компьютер к подпрограмме, процессор «выталкивает» текущий адрес в стэк как закладку, и потому процессор знает куда возвращать данные когда они готовы.

После того как хакер оказался в стэке он может перезаписать адрес для возвращения данных на адрес с вредоносным кодом. Когда компьютер закончит с текущей подпрограммой, она вернется не туда где началась, а к инструкциям хакера, и поскольку BIND запускался с привелегиями администратора (root), хакерский код тоже выполнится из под root. Теперь компьютер под контролем хакера.

Две недели спустя после того как Макс и Кими поженились, финансируемая правительством компьютерная группа реагирования на чрезвычайные ситуации университета Карнеги Меллон (Computer Emergency Response Team (CERT) at Carnegie Mellon University), запустившая систему экстренных рассылок о дырах в безопасности, выпустило предупреждение о уязвимости в BIND со ссылкой на простой способ ее исправления: две дополнительные строки кода, что отсеивали слишком длинные запросы. Но исправление CERT содержало также и две других уязвимости, что были следствием исправления и отражали заниженную оценку важности дыры. Таким образом, далеко не все осознавали серьезность ситуации.

Макс осознавал ее прекрасно.

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

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

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

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

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

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

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

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

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

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

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

Макс все еще программировал, когда из ФБР ему позвонили, чтобы спросить об отчете по поводу дыры в BIND. Но федералы профукали свой шанс. Сейчас только код Макса говорил с ним. Ему потребовалось немного времени, чтобы взломать пару машин колледжа, для использования в качестве плацдарма, и, затем, 21 мая он зашел в интернет через краденный аккаунт Verio и… запустил код.
Прекрасные результаты были получены сразу же. Крючковой код Макса сообщал об успехе на его компьютер через Verio dial-up, так что он мог наблюдать за распространением атаки. Взломанные машины отчитывались ему всплывающим окном Xterm на его компьютере. База ВВС Брукса теперь собственность Max Vision… Mc-Chord, Tinker, Offutt, Scott, Maxwell, Kirtland, Keesler, Robins… Его код проник на серверы ВВС, компьютеры армии, машину в кабинете секретаря. Каждая машина теперь имела бэкдор, который мог использовать Макс тогда, когда он захочет.

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

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

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

Кими была непреклонна: «Можешь вернуть их на место?».

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

Паксон написал в CERT полный отчет об атаке. Макс перехватил его и изумился. Исследователь не только обнаружил атаку, но и еще составил список серверов атакованных через сеть университета им. Лоуренса — Макс использовал ее как второй стартовый пункт. Он отослал Паксону анонимное сообщение через root-аккаунт лаборатории:

Верн, прошу прощение за причиненные неудобства, но я в одиночку исправляю ОГРОМНУЮ ДЫРУ В БЕЗОПАСНОСТИ многих из ваших систем. Я признаю, что появились и новые дыры, но они все запаролены и никогда бы не принесли вреда чьему-либо компьютеру.
Если бы я не сделал это, это бы сделал кто-нибудь другой и мог бы напакостить. Например, школьники оставляющие варез, вырубающие IRC BS и втихую стирая файлы через /bin/rm, когда у них плохое настроение. Убожество.
Вы можете не оценить то, что я сделал, но это ради великого блага. Я бросил все хосты из собранного вами списка. Я не касался их, так как я знаю что вы передали список в CERT. CERT следовало бы нанять людей с моим уровнем навыков. Конечно, при достойной оплате я бы никогда не оставлял руткиты или что-то подобное.
Очень умно, не так ли? Хех. Это бомба. Владельцы сотен, даже тысяч систем, и знающие, что их системы пофиксили между делом… Хм, я не больше не займусь подобным дерьмом. Теперь у вас есть все мои инструменты. Это выводит меня из себя…
Хм. Во всяком случае я не хочу, чтобы это произошло снова. Я собираюсь оставить все как есть.
«Взломщик»

Так закончилась пятидневная атака Макса на правительство, с количеством взломанных систем больше, чем он мог посчитать. Он был доволен, что он сделал интернет безопаснее, чем прежде: тысячи компьютеров, что до этого были уязвимы для любого хакера, теперь уязвимы только для одного — Max Vision.

Макс сразу же нырнул в новый, более социально-приемлемый проект: он писал Web-приложение, что позволило бы любому в интернете просканировать свою сеть на наличие уязвимости к атаке на BIND. Он также задумал более качественный вариант осады, чем он только что завершил. Как и прежде, он сканировал правительственные и военные сети. Но вместо взлома уязвимых компьютеров, он автоматически отсылал е-мэйл с предупреждением для администраторов. Не было необходимости прятаться на взломанным dial-up’ом. Оба сервиса теперь жили на новом сайте WhiteHats.com.

После двух дней и ночей работы, Макс был по колено в его новом проекте легального хакинга, когда Бисон написал снова ему на электронную почту. «Что случилось? Я думал что ты пришлешь мне письмо».

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

«А, и вот еще червь ADM» — , добавил он — «я не думаю, что он сильно распространится»


Для углубленного изучения:


A Brief Analysis of the ADM Internet Worm
Max Vision

Net-Worm.Linux.Adm

image
Доступна бесплатно на сайте издателя

© Habrahabr.ru