Хроники Противостояния: как взломать весь город за два дня
01.06.2017
Давно известно, что битвы ИБ-специалистов с сетевыми злоумышленниками выглядят как красивые зрелища только в голливудском кино. А на деле и реальные атаки, и конкурсы по безопасности чаще напоминают математические олимпиады, красоту которых могут оценить лишь немногие.
Тем не менее, в этом году организаторы «Противостояния», главного конкурса конференции Positive Hack Days VII, сделали все возможное, чтобы решить эту противоречивую задачу — сделать состязание максимально приближенным к реальности, но при этом достаточно понятным и интересным для всех остальных посетителей конференции. И нам кажется, это удалось. Всего за тридцать часов конкурса команды хакеров, состоящие из профессиональных пентестеров и этичных хакеров, продемонстрировали целый ряд успешных атак на объекты и инфраструктуры современного города, активно используя и беспроводную связь, и низкоуровневые уязвимости промышленных систем управления, и простые брутфорсы, и сложные многоступенчатые схемы вторжения.
В данной статье мы попробуем восстановить хронологию основных событий, а также подвести некоторые итоги наших масштабных киберучений.
Первый день: разведка и разминка
11:00
Участники «Противостояния» рассаживаются на свои места, изучают стенды. Команды атакующих начинают делать первые сканирования сетей. Команды защитников продолжают настраивать системы защиты и начинают изучать трафик. А защищать им нужно целый город, в котором функционируют телеком-оператор, два офиса компаний, ТЭЦ, электрическая подстанция, нефтяная и железнодорожная компании. Кроме того, в городе есть целый ряд устройств новомодного Интернета вещей. В соответствии с правилами «Противостояния», команды защитников распределили объекты между собой.
13:00
Одна из хакерских команд делает попытку захода в зону размещения защитников — и выходит из нее с материалами об инфраструктуре и топологии сети.
В таких офлайновых атаках применяется социальный инжиниринг. Одна из команд использует поддельный пропуск организаторов, пытаясь получить данные от защитников. Представители другой команды под видом журналистов «социалят» самих организаторов «Противостояния».
14:00
Две команды отправляют на bug bounty первые некритические уязвимости. Одна из уязвимостей найдена в контроллере управления умными домами.
16:00
Пока состязание идет неторопливо: только во второй половине дня команды атакующих начинают набирать очки, в основном благодаря тому, что находят в цифровой инфраструктуре города учетные записи электронной почты и номера кредитных карт. Но награды за такие находки небольшие: от 100 до 500 публей за учетку. Публи — это не опечатка, а виртуальная валюта города. В рейтинге лидирует BIZone: они получили 100 000 за взлом беззащитного интернет-сайта одной из компаний.
17:00
Команда ЦАРКА находит учетные записи в TeamViewer, который используется для удаленного контроля системы управления транспортом в инфраструктуре города. Зайдя под этими учетными записями в диспетчерскую систему, хакеры переключают днем светофоры на ночной режим работы. Но движение транспорта при этом почти не изменяется, а спустя какое-то время все возвращается в нормальный режим работы.
19:00
ЦАРКА резко поднимается на первое место: хакерской группе из Казахстана удалось перехватить SMS самого мэра города. В этих секретных сообщениях обнаружился серьезный компромат, что позволило команде ЦАРКА получить сразу 150 000 публей. Как они это сделали? Прослушали радиоэфир, используя osmocom-телефон либо SDR (у них есть и то, и другое).
22:00
Команды ЦАРКА и BIZone начинают устраивать вылазки по стендам, пытаясь подключаться ко всему, что доступно.
00:00
Самая бдительная команда защитников — Jet Security Team — первой пресекает попытки установить в инфраструктуру городского телекома целый сервер и беспроводную точку доступа. Команда атакующих Vulners хотела поставить свою железку «в разрыв», чтобы получить возможность видеть трафик защитников и через точку доступа управлять ей.
02:00
Команда защитников Jet Security Team пресекает множественные попытки физического подключения к стендам промышленных систем города. Помимо уже упомянутых команд, в таких атаках замечена хакерская группа KanzasCityShuffle.
Таблица первого дня
Второй день: ломаем всё!
Ночь — время хакеров, и нападающие доказали это. Несколько команд украли из городского банка более 4 миллионов публей. Для атаки команды Rdot и ЦАРКА использовали украденные ранее учетные данные пользователей, это дало им возможность эксплуатировать систему дистанционного банковского обслуживания для вывода крупных сумм денег (2,8 миллионов — Rdot, 1,3 миллиона — ЦАРКА).
При этом ЦАРКА воспользовалась уязвимостью самого банка, чтобы украсть все деньги со счета команды Rdot. Однако они нарушили правило Противостояния — не ломать инфраструктуру «Противостояния», частью которой является банк (он используется для выдачи призов командам). По этой причине деньги были возвращены команде Rdot.
Тем временем команда Vulners применила другой метод: специальный робот стал снимать маленькие суммы (по 10 рублей) со множества скомпрометированных банковских карт жителей города. Аналогичную атаку провела и группа Hack.ERS.
В реальности такие атаки были бы более незаметными, чем разовая кража большой суммы. Однако такой метод требует времени, а в данном случае его было мало, и вывести много денег не удалось
Зато общая кража из банка на сумму более 4 миллионов (более 50% денег нашего городка) привела к настоящему экономическому кризису — организаторам пришлось провести допэмиссию и деноминацию.
Утром продолжились и атаки на телеком. Команда Antichat смогла взломать веб-интерфейс управления Asterisk (сервер VoIP-телефонии) и получить логины и хэши паролей все пользователей. Но эту деятельность быстро обнаружили защитники телекома, и немедленно заблокировали доступ к веб-интерфейсу для предотвращения атаки.
12:00
Хакеры добрались до промышленного сектора: команда BIZone остановила работу сразу двух предприятий города — ТЭЦ и нефтеперерабатывающего завода. Это удалось сделать благодаря атаке через сеть Wi-Fi, где использовался словарный пароль. Получив доступ в промышленную сеть, хакеры обнаружили в ней системы релейной автоматики (РЗА), которые используются для защиты электрической части ТЭЦ. Потратив целый час на попытки перенастройки данного оборудования через инженерное ПО, хакеры решили изменить вектор атаки. Подобрав нужный энергетический протокол и скачав другое инженерное ПО, они смогли отключить подачу энергии к подстанции. Вследствие этого инженерному составу, работающему на ТЭЦ, пришлось останавливать работу котлов и турбины. Полная (хотя и временная) остановка работы ТЭЦ также повлияла на функционирование нефтеперерабатывающего завода: ректификационные колонны на АВТ остались без перегретого пара.
Таким образом, один словарный пароль на Wi-Fi позволил команде BIZone деактивировать сразу два промышленных объекта — и выйти на первое место в рейтинге. Увы, энергетический сектор города никто не защищает. Поэтому атаки на промышленные объекты могут продолжиться.
Остановленная ТЭЦ, последний дымок
13:30
Становится жарко! Команда ЦАРКА снова украла из банка несколько миллионов — и снова вышла в топ. Как это получилось? Во время проведения регламентных работ, при подключении системы борьбы с мошенничествами, организаторам пришлось буквально на минуту оставить банк снова беззащитным. И именно в это время ЦАРКА умудрились вывести кучу денег. Налицо умелое использование автоматизации!
15:30
ЦАРКА и BIZone продолжают сражение за первое место. Команда из Казахстана смогла найти автомобиль преступников с украденными деньгами. Используя osmocom-телефон, хакеры перехватили SMS, посылаемые GPS-трекером автомобиля. Таким образом они вычислили «белый номер», с которого можно управлять GPS-трекером, затем подменили номер и послали на трекер команду выдать координаты автомобиля.
Практически в то же время команда BIZone снова смогла остановить нефтеперерабатывающий завод. Ранее они уже делали это через атаку на электроподстанцию и ТЭЦ — но в данном случае была проведена прямая атака на завод. Сначала атаковали Wi-Fi завода (подбор пароля), затем проникли в сеть завода и узнали, какие контроллеры используются на производстве. Изучив информацию по найденным ПЛК в Интернете, атакующие нашли известную уязвимость (эксплойт) и добились остановки контроллеров на АВТ, вследствие чего установка осталась на какое-то время без управления и мониторинга.
Нефтеперерабатывающий завод (фрагмент)
16:00
«Противостояние» закончилось. Но жюри еще проверяет последние выполненные задания: помимо уже упомянутых лидеров (ЦАРКА и BIZone), другие команды тоже провели несколько успешных, но не таких «дорогостоящих» атак в последний час соревнования.
Так, команда Hack.ERS смогла украсть деньги пользователей SIP-телефонии: взломав их аккаунты, хакеры «монетизировались» с помощью звонков на платные короткие номера. Однако атакующие обнаружили эту возможность лишь в конце состязания, поэтому выведенная сумма денег (около 300 000) не позволила им подняться в лидеры.
А команда True0xA3 на последних минутах конкурса доказала, что даже простые методы могут приводить к ощутимым результатам. Взломав домашний роутер одного из простых пользователей, атакующие обнаружили, что это бухгалтер, который хранит на домашнем компьютере финансовую отчетность крупной компании. Атака принесла команде 500 000 публей.
Также стало известно, что команда KanzasCityShuffle взломала умный дом, а команда Antichat получил доступ к веб-камере. Кроме того, некоторые команды нашли и сдали ряд других серьезных уязвимостей по программе bug bounty. Поэтому проверка всех заданий проходит еще в течение двух часов после окончания битвы.
Модель умного дома (фрагмент)
Итоги: а где же защита?
Первые три места в конкурсе заняли ЦАРКА, BIZone и Rdot.org. Финальный рейтинг можно посмотреть здесь. В целом, хакеры в этом году показали себя во всей красе, использовав очень широкий арсенал средств разведки и нападения за довольно короткое время.
Наверняка у многих возникнет вопрос: а где же были защитники, как они все это допустили? Здесь стоит пояснить, что при подготовке нынешнего «Противостояния» организаторы учли проблему прошлого года, когда защита оказалась чересчур подготовленной и «закрученной на все гайки», хотя в жизни такое случается редко. Поэтому в нынешнем состязании защита была не то что бы слабее, но реалистичнее. В частности, защитников поставили в жесткие условия кризисного сокращения расходов на безопасность: у каждой команды был фиксированный бюджет на покупку средств защиты в размере лишь 10 000 виртуальных публей. Кроме того, некоторые объекты и инфраструктуры вовсе остались без защиты — как это бывает и в реальной жизни.
«В случае атак на GSM защитники никак не могли повлиять, однако они могли видеть, что происходит, — рассказал Павел Новиков, руководитель группы исследований безопасности телекоммуникационных систем компании Positive Technologies и один из организаторов "Противостояния". — Мы им давали дамп радиоэфира, однако они ничего не обнаружили. Кроме того, по нашей задумке, защитники могли предотвратить вывод денег через SIP. Возможно, их сбили с толку наши чекеры, которые усердно генерировали голосовые вызовы: в каждый момент времени было 5–10 одновременных голосовых соединений, среди которых защитникам достаточно сложно было рассмотреть хакерскую деятельность, — но именно так и происходит в реальном мире. Второй возможной причиной было слишком позднее обнаружение атакующими этого метода вывода денег, и защитники тоже не успели отреагировать. С другой стороны, защитникам телекома удалось предотвратить взлом сервера Asterisk. Следует отметить их крайне высокую оперативность в этом вопросе».
Эксперт по безопасности АСУ ТП Илья Карпов, занимавшийся организацией стендов промышленных объектов для «Противостояния», также отметил, что в случае атаки на нефтеперерабатывающий завод защитники сделали все, что могли сделать в таких условиях: «Атака происходила очень быстро, обнаруженный подозрительный трафик в сети не позволил защитникам сразу отреагировать на инцидент, но позволил своевременно прекратить повторные попытки атак, быстро изменив пароли».
По мнению фронтмена «Противостояния», члена оргкомитета PHDays Михаила Левина, в этом году состязание действительно удалось, и «хакерский реванш» состоялся не на словах, а на деле: «Все участники прониклись духом соревнования и выложились на все 100. Мы еще раз убедились, что такой формат кибербитвы интересен как участникам, так и зрителям. А самое главное, что мероприятие позволяет обратить внимание широкой общественности на проблемы информационной безопасности».
Впечатления участников
Все, что написано выше, — взгляд на конкурс со стороны организаторов. А теперь давайте послушаем, что думают о «Противостоянии» сами участники — лидирующие команды нападавших, а также представители защиты.
Команда ЦАРКА (нападающие):
«Впечатления очень хорошие. На самом деле мы даже не ожидали победы: для нас это было первое участие в самом "Противостоянии" и поэтому мы ехали с целью поучаствовать. А получилось в итоге выиграть. Самый кураж мы поймали в конце первого дня, когда удалось занять первое место. Спускаться вниз уже не хотелось, и мы решили всей командой удерживать ночью свое место. В некоторых моментах нам очень повезло - особенно, когда мы попали на второй день в пятиминутное окно, когда заработал Банк, что дало нам еще раз украсть деньги у граждан. Туговато получилось со взломом SCADA-систем, но атака на GSM это компенсировала.
Мы получили хороший опыт и протестировали команду в стрессовом состоянии, когда нужно за два дня и разобраться в системах, и успеть их взломать. Большим нашим плюсом было то, что члены команды специализируются в различных направлениях (GSM, реверс и т.д.). У некоторых команд ориентир был только на атаку через Web, к примеру».
Команда BIZone (нападающие):
«Мы первыми сдали крупное задание, за счет чего долго держались лидерами, и нам оно показалось аномально легким: ведь за куда более сложные уязвимости (RCE, XXE) в bug-bounty-программе "Противостояния" начисляли намного меньше очков.
Не можем не отметить физическую атаку, произведенную на нас: около трех часов ночи у нас пропал доступ ко всей игровой инфраструктуре, кроме личного кабинета. Получив ответ, что проблемы в каком-то из коммутаторов, многие члены нашей команды легли спать, однако на утро ситуация не изменилась, и мы, решив, что проблемы у всех, переключились на сервисы с физическим доступом SCADA и IoT. Однако где-то в 14:00 выяснилось, что настолько серьезные проблемы только у нас, и проведенное вместе с организаторами расследование показало, что витая пара, по которой шел доступ во внутреннюю сеть, была переткнута на коммутаторе в неправильный порт. В итоге почти 12 часов у нас не было доступа к основной игровой инфраструктуре.
Также нас очень удивило, когда наутро количество очков всех команд было умножено на 10 (деноминация, случившаяся из-за того, что из банка было уведено слишком много денег). И когда наша команда на следующий день решила задания, которые в первый день оценивались на 800 000 PUB, на второй 8 000 000 PUB, а в результате нам перевели 2 000 000, мы в принципе были даже приятно удивлены, хотя потом поняли, что этих очков нам бы хватило для первого места. Но сколько таких непрозрачных мультипликаций было произведено, интересно до сих пор».
Команда Rdot.Org (нападающие):
«Впечатления лучше, чем в прошлом году, поскольку организаторы постарались устранить дисбаланс в пользу защитников и сделать задания более конкретными. Однако, формат соревнования все еще слишком сложный, и его не удается воплотить полностью. В частности, доступность сервисов была низкой. Видно, что задачи подготовлены интересные и разнообразные, но из-за несовершенства формата соревнования не удается ими вплотную заняться. Недаром годами выверен именно формат CTF, как наиболее лаконичная и практичная форма соревнований».
Jet Security Team (защитники, компания «Инфосистемы Джет»):
«Мы впервые (как команда, так и класс решений — а мы не классическая команда защиты или SOC) участвовали в "Противостоянии". И, конечно, впечатления превзошли ожидания. Сейчас уже можно признаться, что наше участие вызывало некоторый скепсис, в первую очередь, у нас самих: новое решение, новый формат… Но итоги говорят сами за себя.
Жаль, что формат мероприятия не позволил реагировать на ночные атаки хакеров: в первый день наше антифрод-решение стояло только в режиме наблюдения и уведомления организаторов о ситуации. Но зато на следующий день задача "не дать вывести существенного объема средств" была решена на 110%. Кроме того, нам удалось, наверное, самое главное: мы проверили свою готовность решать потенциальные неотложные задачи при ограниченности ресурсов и времени. А также получили немного идей на развитие нашего продукта Jet Detective с точки зрения удобства эксплуатации.
Обидно, что за небольшое количество времени нашей активной работы атакующие не успели существенно попробовать обойти именно нашу аналитическую систему (а вариантов более "сложной игры" для атакующих было достаточно). Да и некоторые хитрости и заготовленные нами ловушки хоть и сработали, но применить их результаты не было необходимости.
Тем не менее, хочется сказать, что мы готовимся к следующему году. И уверены, что в 2018 году такой простой жизни, как в первый день, у атакующих не будет. Надеемся, что нас ждет 30+, а может и 60 часов реального "Противостояния"».
S.P.A.N. (защитники, сборная компаний «Сервионика» и Palo Alto Networks):
«"Противостояние" можно сравнить с типовым проектом по построению комплексной системы ИБ. Как и в реальном проекте, мы прошли этапы аудита, проработки архитектуры, подбора необходимых методов и средств защиты информации, согласования всех изменений с организаторами, внедрения и настройки, тестирования и эксплуатации выбранных средств защиты в "боевых" условиях. В целом, основной акцент мы сделали на тщательный, детальный аудит изменений сетевой инфраструктуры и получение полного контроля над сетевым трафиком. На нашу стратегию и выбор конфигурации системы защиты повлияли недавние события: волна публикаций эксплойтов группой The Shadow Brokers и появление уже всемирно известного вируса WannaCry.
Для достижения поставленной цели мы выбрали ряд решений таких компаний, как Palo Alto Networks (NGFW), Positive Technologies (PT Application Firewall, MaxPatrol8), SkyBox Security (NA, FA, VC, TM). Защита конечных точек (хостовых машин) под управлением ОС Linux и Windows была реализована на базе решений Traps (Palo Alto Networks) и Secret Net Studio компании "Код Безопасности", а также встроенными механизмами защиты ОС. Это позволило нам предотвратить использование известных эксплойтов.
Хочется отметить, что офисную инфраструктуру атаковали непрерывно, и в ночное время в том числе. Мы видели, как нападающие обнаруживали уязвимые сервисы и начинали искать в них уязвимости. Атаковали достаточно стандартно, как на курсах: перебирали пароли, искали эксплойты в Интернете и пробовали их применять против серверов и роутеров. Мы видели каждое соединение и журналировали его. Самые активные атаки на DMZ были с 0 до 4 часов ночи. Затем, в 6 утра, атакующие переключились на серверный сегмент внутри офисной сети. Ну и тоже не смоли ни подобрать пароли, ни найти SQL Injection, или XSS, или что-то еще».
SOC «Перспективный мониторинг»:
«Это был отличный полигон для отработки различных сценариев мониторинга. К сожалению, мы столкнулись с техническими трудностями и смогли получить трафик на наши сенсоры только к 19 часам первого дня "Противостояния". Мы получали трафик и события, видели атаки и попытки эксплуатации уязвимостей, но они все блокировались достаточно просто. Удалось выстроить хорошие рабочие отношения с командой защитников, они старались оперативно реагировать на поступающую от нас информацию.
Самый неприятный сюрприз — все атаки были очень типовыми, не было какой-то изюминки, чтобы все участники могли сказать: "Да, вот это было круто". Нападающие или не захотели делиться секретами, или им не хватило времени.
Главный вывод по итогам игры: даже если у тебя все работает за день до "Противостояния", это не гарантирует работу в день самого "Противостояния". А если серьезно, то мы проверили свои методики и команду в деле и пришли к выводу, что и там, и там мы добились определенных успехов. Это очень радует. Хотя не хватило остроты подачи информации, визуализации».
SOC «False Positive» (сборная Solar JSOC, неравнодушных друзей и SOCостроителей России):
«Впечатления положительные. Как любое масштабное мероприятие, PHDays 7 прошло не без накладок, но в целом и уровень организации, и вдохновение участников были очень впечатляющими. Для нас это мероприятие стало очередной возможностью проверить эффективность работы нашего контента в пусть и синтетических, но, тем не менее, интересных условиях работы против профессиональных пентестеров. В прошлом году мы концентрировались на сетевых сценариях и успешно их проверили, в этом мы перенацелились на работу с хостами.
К сожалению, название "Враг изнутри" не до конца оправдало себя, поскольку социальной инженерии и прочих прелестей новой корпоративной безопасности было не очень много. Тем не менее, опыт считаем полезным для ИБ-сообщества в плане проверки собственных сил как атакующими, так и защитниками и SOC.
Безусловно, в столь масштабном проекте нужно очень скрупулезно относиться к балансу сил. На этом мероприятии Банк стал наиболее лакомой целью для атакующих, что, к сожалению, снизило уровень их внимания к другим защищаемым инфраструктурам. В следующем году хотелось бы увидеть еще больше огня и хардкора».
P.S. Для тех, кто был слишком увлечен хакерскими конкурсами и не успел на доклады PHDays VII, напоминаем, что большинство докладов можно посмотреть в записи. В правой части нашего плеера есть меню, где можно выбрать интересующую вас секцию:phdays.ru/broadcast/