Roger A. Grimes. True tales of (mostly) white-hat hacking, www.infoworld.com
В средствах массовой информации хакеров давно привыкли обвинять во всех смертных грехах. Понятно, что авторы кричащих заголовков склонны преувеличивать, но ведь, по сути, все специалисты по компьютерам в душе являются хакерами. Все мы изучаем используемые системы, частенько выходя за рамки их обычного предназначения. Эти знания и привычка не ограничивать себя традиционными клише помогают нам с успехом выходить из сложных ситуаций.
За тридцать лет борьбы против деструктивных хакеров я привык следовать своей интуиции. Импровизация и знание компьютерных систем имеют, большое значение в борьбе с теми, кто готов сделать все возможное, для того чтобы проникнуть в вашу сеть.
Некоторые называют нас благородными хакерами, этакими рыцарями без страх и упрека. Я же считаю это просто хорошей повседневной работой – или неплохим развлечением в выходной день, в зависимости от того, происходит ли дело дома или в офисе.
А теперь позвольте поведать вам пять случаев из реальной жизни, пять историй о том, как мне удалось приструнить злодеев. Не могу сказать, что я сильно горжусь этим, но думаю, что истории говорят сами за себя.
История первая. Дисней, порно и XSS
Межсайтовый скриптинг (cross-site scripting, XSS) продолжает оставаться первейшей угрозой для сайтов и сегодня. Уязвимости XSS проявляются в тот момент, когда сайт разрешает посторонним размещать, просматривать и выполнять команды собственных сценариев.
Изображение - oldnix
Зачастую такие уязвимости остаются разработчиками незамеченными. Иногда достаточно даже предоставления пользователям возможности оставлять свои комментарии (если сайт позволяет размещать, просматривать и выполнять в этих комментариях команды скриптов). Злоумышленник пишет вредоносный сценарий, который затем выполняется другими посетителями сайта.
Когда меня спрашивают, почему следует опасаться атак межсайтового скриптинга, я обычно рассказываю примечательную историю о чудесной неделе хакерских упражнений, одним из эпизодов которой и стало выявление XSS-уязвимости.
В то время я работал в довольно известной компании, занимавшейся вопросами компьютерной безопасности. И вот как-то раз от одного крупного оператора кабельного телевидения поступил заказ на изучение возможности взлома устройства IP TV. Наша задача заключалась в поиске уязвимостей телевизионной приставки, и особенно тех из них, которые могли привести к получению бесплатного доступа к эротическим каналам, размещению порно, скажем, на канале Disney, а также к утечке конфиденциальной информации клиента или компании.
Мне и двум моим коллегам выделили специальное помещение в одном из удаленных филиалов кабельного оператора. Атака наша была направлена на два телевизора, два кабельных модема и две телевизионных приставки. Мы подключились к широкополосному кабельному каналу таким образом, чтобы никакой разницы между нами и обычными клиентами заметно не было. После этого на одном телевизоре включили порноканал, а на другом канал Disney.
Изображение - yaokino
Трое парней сидели в комнате, занимались всякими хакерскими штучками, смотрели порно и получали за это деньги – жизнь была прекрасна. Единственное, чего нам не хватало – это пива. Уже вскоре с помощью сканера портов я обнаружил веб-сервер, работавший на одном из верхних портов TCP, где-то в районе порта 5390. Запустив программу Nikto, которая ищет уязвимости в Web, я получил несколько ложных срабатываний. Выяснилось также, что работал веб-сервер, о котором я никогда даже не слышал. Небольшое исследование показало, что речь идет о веб-сервере с открытым кодом, поддержка которого прекратилась почти десять лет назад.
Меня заинтересовало, ликвидированы ли на этом сервере уязвимости, которые широко эксплуатировались лет десять тому назад. Предположение оказалось верным. Мне удалось получить доступ к телевизионной приставке путем простой атаки. Получив права суперпользователя root, я одновременно получил полный контроль над устройством. Приставка работала под управлением какой-то старой версии BSD, которая просто кишела уязвимостями. Прошло еще немного времени, и мы подключились к порноканалу, заполучили номера кредитных карт и переключили канал Disney на канал, по которому демонстрировалось порно. Буквально за несколько часов все поставленные задачи были решены.
Через несколько дней я узнал, что сведения о моей успешной атаке путем обхода каталога дошли до директора компании по безопасности и других представителей высшего руководства. Меня пригласили на беседу, затребовав предварительно официальный письменный отчет. На эту встречу прилетели многие важные шишки. Поинтересовавшись, с чем связан такой переполох, я узнал, что тот же самый веб-сервер и прочее программное обеспечение установлены на миллионах телевизионных приставок по всему миру. Просканировав выявленный TCP-порт в Интернете, я нашел десятки тысяч устройств, которые только и ждали, пока кто-нибудь подключится к ним и предпримет попытку взлома.
И это было еще не все – по крайней мере, для нашей хакерской команды. В ходе атаки на приставку мы обнаружили HTML-журнал межсетевого экрана, свидетельствующий о наличии уязвимости XSS. После перехода на отладочный уровень стало ясно, что в журнал записывалось содержимое всех веб-пакетов. Отправив туда пакет с вредоносным кодом JavaScript, мы с чистой совестью набрали номер службы технической поддержки оператора кабельного телевидения.
Представившись обычным клиентом, мы пожаловались на то, что кто-то атаковал нашу телевизионную приставку и попросили технических специалистов взглянуть на журнал межсетевого экрана устройства. Через несколько минут специалист службы технической поддержки открыл файл под своим паролем. В процессе исполнения наш вредоносный пакет JavaScript инициировал поиск всех конфигурационных файлов и паролей, после чего отправил найденную информацию нам. В момент просмотра техническим специалистом журнала был запущен сценарий XSS, и мы узнали пароль пользователя root. Вся процедура взлома заняла не более шести часов. Менее чем за день мы получили полный контроль над приставкой и выставили в весьма неприглядном свете целую компанию.
О вмешательстве в работу оборудования в течение последующих нескольких дней, которым мы занимались от скуки, дожидаясь своего самолета, лучше даже не вспоминать.
Это был один из самых веселых взломов в моей жизни.
История вторая. Спам спамеру
Зачастую благородные хакеры буквально ходят по грани. Вот хороший пример того, как я чуть было не совершил непростительную ошибку из-за обостренного чувства справедливости.
Изображение - seoonly
В конце 80-х, когда в качестве почтового клиента я использовал программу Lotus cc:Mail, мой рабочий адрес электронной почты попал в руки спамеру, рекламировавшему порно, и тот немедленно стал загружать мой почтовый ящик клубничкой. Получив за пару минут пяток таких писем, я решил взглянуть на заголовок письма. В те времена спамеры особо ничего не прятали, и в заголовке присутствовало реальное имя его домена. С помощью обратного преобразования я довольно быстро выяснил имя хакера, его адрес и адрес служебной почты. Вся эта информация присутствовала у регистратора доменных имен.
Я направил спамеру очень вежливое письмо с просьбой удалить мой почтовый адрес из списка рассылки. Он ответил, что ничего сделать не может, добавив вслед за этим еще десять писем с порно. Я начал заводиться, и создал правило, в соответствии с которым моя программа после каждого полученного от спамера сообщения отсылала ему обратно сотню копий этого письма. Естественно, это лишь побудило его разразиться дополнительным спамом, а почтовая программа указывала, что он поделился моим адресом и с другими спамерами.
Тогда я обратился к поисковому механизму AltaVista, который все мы в то время очень любили, и нашел не только адрес его личной почты, но и адреса его жены, дочери, дедушки и бабушки. Я написал спамеру, что при каждом очередном поступлении спама в мой адрес буду отправлять сто его копий на личный почтовый адрес отправителя, а также на адреса его жены, дочери и прочих родственников. Как и ожидалось, это возымело свое действие, и спам внезапно прекратился. Я даже получил письмо, в котором спамер сообщал, что, возможно, придется подождать еще день, потому что ему нужно удалить мой адрес и из всех внешних списков, к которым лично у него доступа нет. И больше никакого спама от него не приходило.
Я написал о том, что случилось, в журнал InfoWorld Эду Фостеру (в то время я уже сотрудничал с InfoWorld), рассказав о своих действиях и о том, что нашел новый универсальный способ борьбы со спамом, который может пригодиться каждому. Я ожидал поздравлений и заказа на очередную статью для журнала. Но вместо этого узнал, что все, что я делал или обещал сделать, в том числе и угроза пересылать спам на адрес дочери, вызывает серьезные вопросы с точки зрения буквы закона или, по крайней мере, этики. Слава богу, Эд Фостер помог мне осознать, что я находился у самой черты, переступать через которую мне вовсе не хотелось.
История третья. Ловушка для нечистоплотного торговца
Несколько лет назад меня нанял генеральный директор небольшой компании, занимавшейся торговлей рыбой. У него было ощущение, что уволившийся топ-менеджер оставил себе лазейку, позволявшую ему проникать в компьютерную систему компании и благодаря полученной информации иметь конкурентное преимущество при продаже рыбы в Египет. Новая компания, основанная бывшим вице-президентом, систематически предлагала клиентам цену на один цент ниже. К сожалению, этого оказалось достаточно, для того чтобы компания моего клиента осталась без заказов. Нанимая меня, торговец рыбой находился фактически на грани банкротства.
Изображение - oreninfo
При первом визите я скептически отнесся к его заявлениям о компьютерном взломе, но затем произошло нечто странное. Египетский контрагент, которому генеральный директор направлял ценовые предложения, получил автоматическое уведомление об открытии письма (уведомление о прочтении), отосланного моему работодателю, неизвестным адресатом. Уведомление о прочтении должно было быть направлено с почтового адреса моего генерального директора, но вместо этого пришло с адреса одного из университетов. Похоже, что хакер просто забыл отключить автоматическую отправку уведомлений в своей почтовой программе. В результате, открыв письмо, адресованное моему генеральному директору, он, сам того не желая, отправил уведомление о прочтении со своего почтового адреса.
Довольно быстро мы поняли, что бывший вице-президент сумел подобрать пароль к электронной почте генерального директора и пересылал себе копии его переписки. Обнаруженный нами почтовый адрес принадлежал университету, в котором, так уж случилось, много лет назад учились и бывший вице-президент, и я. Это учебное заведение позволяло бывшим студентом оставлять себе ограниченный доступ к его компьютерной системе, в том числе и к электронной почте. Древняя по нынешним меркам университетская система имела ряд интересных особенностей, которые оказались весьма полезными в ходе нашего расследования. В частности, можно было узнать, когда к системе обращались другие пользователи, и сопоставить адреса их электронной почты с реальными именами и другой идентификационной информацией.
О совершении компьютерного преступления мы сообщили в ФБР и городскую полицию. В то время в ФБР было очень мало специалистов по компьютерам, да и те, кто таковыми считались, не могли похвастаться богатым опытом. Но, заручившись поддержкой ФБР, мне проще было проводить собственное расследование.
Как и следовало ожидать, наш хакер использовал адрес электронной почты, принадлежавший бывшему вице-президенту. Затем мы выяснили, когда бывший сотрудник обращался к университетской системе. Это происходило как в раз в те дни, когда рассылались ценовые предложения египетским клиентам.
Естественно, мы не могли пока с уверенностью утверждать, что именно бывший вице-президент использовал свой старый почтовый адрес, каким бы очевидным ни казался этот факт. Требовалось каким-то образом установить связь открытого электронного письма с нынешним IP-адресом бывшего вице-президента и получить подтверждение от его провайдера. И тогда я решил воспользоваться интернет-маяком.
Интернет-маяк (или интернет-прослушивание) представляет собой скрытую HTML-ссылку на почти невидимый графический элемент, который собирает информацию о пользователе, открывшем соответствующий ресурс. Я изменил подпись генерального директора в письме таким образом, чтобы она содержала HTML-ссылку на прозрачное изображение GIF размером в 1 пиксел, размещенное на контролируемом нами веб-сервере. При открытии электронного письма с измененной подписью генерального директора клиентская почтовая программа автоматически загружала интернет-маяк, и в журнале на нашем веб-сервере фиксировался IP-адрес, с которого осуществлялось подключение, с указанием даты, времени и прочей идентификационной информации.
Установив ловушку, мы поместили в нее приманку. Связавшись со своим египетским другом, известили его о наших планах, после чего направили ему письмо с обсуждением фиктивного предложения. Цена на несуществующую породу рыбы на несколько порядков превышала ту, что фигурировала обычно в таких случаях. При внимательном изучении нетрудно было догадаться, что все письмо является фальшивкой.
Сразу после отправки письма бывший вице-президент заглотил наживку, предложив египтянину цену ровно на один цент ниже нашего крайне дорогого предложения. Я с удовлетворением для себя отметил, что бывший вице-президент обратился к университетской почтовой системе непосредственно перед тем, как отреагировал на наше поддельное предложение, а интернет-маяк сработал, как и положено. Мы получили IP-адрес, который привел нас прямо к дому злоумышленника. Мы знали, что это была его компания, знали, что это был он, и знали, что он незаконно читает наши письма.
Ловушка захлопнулась, хотя на слушания в судах ушло еще несколько лет. Кстати, спустя годы я с удивлением для себя узнал, что после того случая генеральный директор так и не сменил пароль своей электронной почты. Это стало еще одним доказательством того, что компьютерные операции я понимаю гораздо лучше, чем логику людей.
История четвертая. Хакерское возмездие
На протяжении вот уже 30 лет я активно борюсь со взломами компьютерных систем. Мою же систему взломали всего дважды. Первый раз, когда я намеренно запустил в свою систему компьютерный вирус, забыв принять необходимые меры предосторожности. Второй же случай произошел, когда хакер отправил на мой адрес в InfoWorld электронное письмо с вредоносным кодом, рассчитывая установить контроль над моим компьютером. Обычно я изучаю такие нечастые явления лишь в тех случаях, когда атака имеет какие-то уникальные или необычные черты. Хакер же прислал мне файл GIF, в котором содержался совершенно свежий, никому не известный эксплойт, переполняющий буфер графической программы Microsoft и позволяющий атакующему получить полный контроль над системой жертвы.
Изображение - plusworld
Я собирался в отпуск и делал все в страшной спешке, забыв, что письмо, в котором может присутствовать вредоносный код, следует открывать только в виртуальной среде. Вероятность того, что присоединенный файл вызовет переполнение системного буфера, тоже была крайне мала. О переполнении буфера хакеры твердят уже почти два десятилетия, но до получения указанного электронного письма мне никогда не приходилось сталкиваться с этим. Я был чересчур самоуверен, и мне казалось, что присланный графический файл, как и все остальные, безвреден.
Но как же я ошибался. Сразу после запуска вредоносного файла я понял, что в нем был троян, который тут же стал связываться со своим хозяином. Для меня это стало полной неожиданностью. Вспомнив о том, что однажды уже запускал на своем компьютере известный вредоносный файл, и, ругая себя на чем свет стоит, я отключился от Интернета и сразу приступил к нейтрализации угрозы.
Через несколько часов уязвимость была выявлена и задокументирована. Копию я отправил в Microsoft и нескольким своим друзьям, которые занимаются антивирусами, для более подробного изучения. В итоге перед отпуском я остался без сна и помню, что отправился в поездку совершенно разбитым.
Но на этом инцидент не закончился. Вернувшись, я связался с отправителем письма и сообщил ему печальные для него новости. Он же продолжал хвастаться эксплойтом на хакерском канале IRC и даже разослал свое творение на несколько десятков сайтов. Думаю, моя информация о том, что Microsoft уже работает над обновлением, а антивирусные компании включили в свои продукты соответствующие сигнатуры, вряд ли его обрадовала.
В ответ хакер попытался взломать мою домашнюю сеть, используя полученный IP-адрес. На меня обрушились атаки, о которых в то время никто еще и не задумывался, в том числе и атака DDoS. Когда стало ясно, что мою сеть взломать не удалось, он начал атаковать людей и компании, с которыми я имел дело, используя мой IP-адрес. В результате компания Apple блокировала подключение к своей сети с моего IP-адреса, и я не смог получать музыку через iTunes. Письма, отправленные в Apple, не помогли, и, в конце концов, мне пришлось просить у своего провайдера другой IP-адрес.
Я выследил хакера, читая сообщения, опубликованные им на нескольких хакерских форумах и на вполне легитимных сайтах. Выяснилось, что это весьма самонадеянный студент со Среднего Запада, который считал себя хакером более высокого уровня, чем было на самом деле. Даже свежий эксплойт, на который я попался, был создан не им. Он лишь каким-то образом получил к нему доступ, после чего раструбил всем о своих успехах.
Отражая компьютерные атаки на протяжении нескольких недель, я, наконец, написал ему письмо с просьбой остановиться. Он был немало удивлен тем, что мне известен адрес его электронной почты. Я же в ответ назвал его реальное имя, учебное заведение и почтовый адрес, после чего вежливо попросил прекратить атаки. В результате интенсивность атак лишь выросла, увеличилось и число компаний, атакуемых с моего нового IP-адреса. Все это стало меня раздражать. Пришла пора показать, кто есть кто.
Проанализировав имеющуюся информацию, я понял, каким межсетевым экраном он пользуется. На одном из форумов как раз обсуждалась уязвимость этого брандмауэра, которую можно было использовать для дистанционного переполнения буфера. Следующий шаг был не вполне законным, но мне требовалось вызвать переполнение буфера, чтобы взломать компьютер злоумышленника. Я создал пакетный файл, включив в него команды форматирования жесткого диска при очередной перезагрузке. Правда, инструкции форматирования я все же предварительно закомментировал. После этого я отправил хакеру электронное письмо с описанием «убойного» файла, который мне удалось найти на его жестком диске.
Он был ошеломлен. Я сказал ему, что в мире есть немало умных хакеров, и он лишь один из тех, кто знает, как проникать в чужие системы. После этого я вежливо попросил прекратить атаки не только на мою систему, но и на системы всех остальных и постараться направить свою любознательность в законное русло. Он согласился. С тех пор о противозаконных взломах с его стороны я ничего не слышал.
Через несколько лет я получил от него несколько электронных писем и ряд сообщений в чате. Бывший хакер закончил университет, получил диплом инженера и, в конце концов, занял пост менеджера среднего звена в компьютерной компании, которую впоследствии поглотил огромный конгломерат. В итоге, этот человек стал по-настоящему богатым. У него есть жена и несколько детей. Не знаю, известно ли окружающим о его хакерских проделках в юности. Могу сказать лишь, что одна хорошая встряска помогла перевернуть его жизнь и изменить ее к лучшему.
История пятая. Приманка для шпиона
Однажды меня наняли, для того чтобы помочь заготовить приманку. Клиент – научный центр, выступающий в качестве подрядчика министерства обороны – подвергся взлому и хотел построить систему раннего предупреждения, которая позволяла бы своевременно обнаруживать хакерские атаки и деструктивные инсайдерские действия, оперативно выявляя в сети все неизвестные программы.
Изображение - tts
За несколько недель мы построили сеть-приманку: поддельные веб-серверы, серверы SQL и серверы SharePoint. При реализации любого подобного проекта меня спрашивают, как привлечь к приманке атакующих? И я всегда отвечаю, что рекламировать ее нет никакой необходимости; инициаторы атак найдут все сами. Такое утверждение всегда воспринимается скептически, но на протяжении многих лет жизнь подтверждает его справедливость.
Итак, приманка готова, и можно быть уверенным, что в самое ближайшее время здесь появятся ранее незарегистрированные программы. И суток не прошло, как мы обнаружили, что одна из сотрудниц вьется вокруг сети и старается взломать отдельные ее системы. Она отчаянно пыталась проникнуть на новые веб-серверы, серверы SQL и серверы SharePoint.
Мы не знали, какого рода информация интересует чрезмерно любопытную сотрудницу, и каковы ее намерения, поэтому создали несколько различных областей с контентом. В одной из них располагалась популярная игра, которая сразу заинтересовала половину сотрудников ИТ-службы. Дошло до того, что они стали заходить на недостаточно загруженные серверы, чтобы разместить там игры и воспользоваться свободными ресурсами. Кроме того, были созданы сайты, посвященные политике на Ближнем Востоке (именно этим и занимается научный центр) и космическим челнокам. Мы загрузили контент с общедоступных сайтов и скопировали его в разные папки, каталоги и базы данных. Информация казалась секретной, а мы следили за ее регулярным обновлением.
Похоже, сотрудницу интересовали только серьезные вещи. На игры она не обращала никакого внимания. Выяснилось, что работает она в бухгалтерии или отделе расчета зарплаты – по странному стечению обстоятельств, буквально за стенкой от нас. В целях безопасности в бухгалтерии заранее была установлена веб-камера.
Через нее мы и наблюдали за происходящим. Временная сотрудница из России сумела взломать несколько реальных систем. Изучая ее компьютер, когда она уехала на день, мы обнаружили, что у нее есть устройство для подключения к беспроводной сети, с помощью которого она успешно соединялась с безопасными и небезопасными сетями. Можно было предположить, что данные с ее компьютера пересылались по беспроводной сети куда-то дальше. Мы установили на компьютер регистратор нажатия клавиш, чтобы фиксировать клавиатурный ввод.
Сниффер беспроводной сети упростил слежку за сотрудницей, а когда она начала передавать информацию, мы начали прочесывать коридоры и вестибюли в поисках ее нелегального партнера. Поиски закончились у конференц-зала, который был открыт для всех желающих. Мы распахнули двери и увидели там около 200 человек, у половины из которых были открыты лэптопы. И как можно было найти здесь конкретного человека? У нас имелись лишь сведения о комнате и MAC-адресе. Задерживать всех и каждого в поисках злоумышленника не позволяло высшее руководство. И хотя это решение мне не нравилось, с точки зрения закона оно, очевидно, было единственно возможным.
Решено было задержать уже известную нам сотрудницу, чтобы предотвратить дальнейшую утечку данных. В то время как сотрудники ИТ-службы и службы физической безопасности занимались задержанием, я слонялся поблизости. В момент, когда сотрудники службы безопасности вошли в бухгалтерию, сотрудница вскочила со своего места и заявила, что кто-то взломал ее компьютер. Ее растерянность казалась такой убедительной, что если бы в последние несколько дней веб-камера не являла мне в ее лице квалифицированного специалиста по взлому, я бы ей поверил. Она была отличной актрисой.
Не знаю, арестовали ее, депортировали или что-то еще. В такие подробности я не посвящен. Но я слышал, что она оказалась лишь одним из инсайдеров, пытавшихся взломать компьютерные системы нанявшей меня компании. Причем все остальные пришли из того же самого недавно созданного агентства по подбору временных кадров. Забавно, но по утверждениям молодой женщины, которую я помог задержать, ее навыки работы на компьютере были столь слабы, что компании срочно пришлось отправить ее на курсы повышения компьютерной грамотности.
Вот так, единственный раз в своей жизни, я принимал участие в нейтрализации «русской шпионки».