Приветы! Увидев на PHDays 9 достаточный интерес к тому, что происходит на The Standoff в рядах защитников, мы решили рассказать о том, как происходила подготовка и само «Противостояние» глазами Jet CSIRT как части команды Jet Security Team.
Го Standoff, я создал
Приблизительно так коллеги сообщили о том, что мы в очередной раз участвуем в The Standoff, и мы, естественно, согласились.
Сразу стоит сказать, что для защитников в этом году формат соревнования несколько изменился. Все команды получили очень схожие офисные инфраструктуры, и это дало возможность организаторам ввести рейтинг защитников в определенных попугаях. А для Jet Security Team это было первое «Противостояние», где защищался офис, а не промышленная инфраструктура.
Доступ к инфраструктуре для подготовки к кибербитве мы получили в последних числах апреля. После проведения аудита инфраструктуры был собран целый вагон недостатков, вот только некоторые из них. Абсолютно на всей инфраструктуре не было актуальных патчей. Пароли всех пользователей можно было получить через Ntds.dit в cleartext. Причем некоторые юзеры имели пароли из списка ТОП-500 либо пароли с легко обратимым хешом. Харденинг систем был на уровне, близком к ничего или совсем ничего. Часть хостов в DMZ имели интерфейс в серверную подсеть.
По результатам аудита мы выработали определенные меры защиты, в свою очередь организаторы после предварительного согласования разрешили применять нужные нам политики и притащить с собой любые средства защиты и инструменты, которые можно развернуть в виртуальной среде. Из-за сжатых сроков некоторые идеи по мерам защиты отвалились еще на старте. Основные настройки и профилирование СЗИ проводились в майские праздники (привет всем, кто кидал фотки с пикников, мы вас тоже любим), а часть средств защиты пришлось донастраивать перед самым началом прямо на площадке. Также ряд сервисов было запрещено патчить и сильно перенастраивать. К примеру, одним из таких был Oracle Weblogic с CVE-2019-2725, PoC на которую вышел в самых первых числах мая 2019.
Ну, и перечень того, что мы принесли с собой:
- Межсетевой экран (предоставленный организаторами был заменен);
- Антивирусное решение;
- WAF;
- EDR;
- Пара deception-решений;
- Пара сканеров уязвимостей;
- ELK-стак для дополнительного анализа Netflow;
- SIEM.
Отдельно стоит рассказать о том, что собиралось в SIEM. В качестве источников событий в нашем распоряжении были журналы Windows, Sysmon, логи Auditd и, как не трудно догадаться, события с самих СЗИ. Если с первыми двумя особых проблем не было, и мы быстро согласовали изменения в части политики и конфигурации Sysmon, то за конфиг Auditd пришлось достаточно пободаться с организаторами.
Параллельно с этим мы выявили основные векторы атак, и на основе этого отобрали и адаптировали релевантные сценарии и корреляционные правила — в общей сложности порядка 160 корреляционных правил. Плюс был собран набор разношерстных дашбордов по критичным узлам, СЗИ и тому, что требовало отдельного внимания в игровой инфраструктуре.
The Standoff
Для The Standoff мы решили придерживаться концепции разделения инцидентов на внешние и внутренние, так как было точное понимание, что извне нас активно будут пытаться просканировать и проэксплуатировать веб. Инциденты, связанные со сканированием и попытками обойти WAF, мониторились отдельно, в более низком приоритете, это нам позволило сконцентрировать внимание на внутренних инцидентах. Дашборды по СЗИ были распределены между защитниками по зонам ответственности, и за каждым средством было закреплено минимум 2 человека — для возможности ротации и отдыха.
Все случилось, как мы и предполагали. Противостояние началось приблизительно в 10 утра, и, как только был дан старт, SIEM-система начала отдавать кучу инцидентов, связанных с внешним сканом и попытками атакующих проэксплуатировать веб. В некоторых случаях не спасала даже группировка. Вместе с этим заработали чекеры организаторов, проверяющие состояние тех или иных сервисов в офисе, это вынудило нас в какой-то мере заново проводить профилирование для отсечения связанных с ними ложных сработок.
В самые первые часы игры команде Hack.ERS удалось найти стандартные учетные данные от администратора (admin/admin) на CMS одного из ресурсов и обнаружить потенциальную LFI-уязвимость. Эти попытки не прошли незамеченными, наши защитники осуществили оперативное реагирование, и атакущие в итоге не смогли продвинуться дальше.
До конца первого игрового дня методы не поменялись, WAF все так же отбивал все попытки залить на веб-сайты компании что-нибудь интересное, и одни и те же «внешние адреса», не переставая, пытались сканировать наши ресурсы.
В общей сложности за все мероприятие было зафиксировано 3000 инцидентов, связанных с попытками сканирования, без учета группировки событий в инцидентах.
И еще около 2500 инцидентов с попытками обойти WAF, также без учета группировки событий в инцидентах.
Ближе к ночи интенсивность всех активностей снизилась — на это было несколько причин. Часть защитников и атакующих не смогли выстоять против саундчека и репетиции концерта, который должен был пройти на следующий день. Некоторые команды атакующих решили взять паузу и продолжить атаки ближе к утру в надежде на то, что у защитников и мониторинга будет меньше ресурсов на мониторинг и скажется некоторая усталость.
Утром второго дня атакующие сменили тактику. На одном из сайтов компании была размещена информация о части ее сотрудников. Хакеры воспользовались этой информацией и начали активно брутить учетки пользователей через Exchange (статистика попыток на скриншоте).
Чуть позже были зафиксированы неуверенные попытки подобрать пароль на VPN-шлюзе, в бруте участвовали учетные записи, которых не было в нашей инфраструктуре. С большой вероятностью, атакующие пытались использовать учетные записи от уже взломанной инфраструктуры в надежде на то, что организаторы оставили их везде одинаковыми. В итоге вся ситуация с брутфорсом вывела нас на создание группы дашбордов по трендам в части аутентификации пользователей. Плюс мы усилили мониторинг по инцидентам, связанным с успешным брутфорсом, но, к счастью, таких не было выявлено.
Приблизительно за час до конца игры на трендах были замечены одиночные успешные попытки аутентификации нескольких пользователей, в том числе и на Exchange, оперативный анализ показал, что источниками были непосредственно пользовательские машины, большая часть событий свидетельствовала о том, что вход был осуществлен организаторами из консоли VMware Vcenter.
В это же время мы зафиксировали внутренний скан от узла, успешно подключившегося по VPN. После оперативного анализа связанных с инцидентом событий стало ясно, что атакующим удалось скомпрометировать учетные данные нескольких пользователей, и, судя по отсутствию неуспешных попыток аутентификации, с большой вероятностью, данные пользователей были «слиты».
Информация была передана защитникам. На все время реагирования на персональных машинах скомпрометированных пользователей endpoint-решение было переведено в превентивный режим защиты для замедления возможности закрепиться в системе. Сессии атакующих на VPN-шлюзе были принудительно сброшены, и атакующих выкинули из защищаемого периметра. У скомпрометированных УЗ были оперативно изменены пароли.
В этот же момент на сцену вышли ребята из команды True0xA3 которые успешно воспользовались OSINT’ом и сообщили о компрометации офиса Behealthy, находящегося под защитой другой команды. Атакующим удалось скомпрометировать доменного админа. О нашем инциденте были уведомлены организаторы и предоставлены пруфы.
Последний час был особенно жарким из-за внезапного OSINT’a, все ждали еще каких-нибудь заготовочек от организаторов. Команда мониторинга в свою очередь следила за всеми подозрительными аномалиями и инцидентами, но после неудачной попытки проникновения новых попыток взлома так и не последовало. Так прошли последние минуты игрового времени, и успешного взлома офиса, защищаемого Jet Security Team, так и не произошло.
И немного финальной статистики за два игровых дня:
- 1200 EPS в среднем и чуть меньше 3000 EPS в пике;
- Около 7000 инцидентов;
- Более 120 миллионов событий.
Факторы, которые помогли нам одержать победу
- Грамотное распределение ролей. Каждый настраивал и занимался в большей части тем, чем занимается в каждодневных проектах. Никому не надо было изучать материалы из разряда «межсетевой экран для чайников».
- Оперативное профилирование корреляционных правил. Все ложные срабатывания обрабатывались и вносились правки, связанные с особенностями игровой инфраструктуры.
- Оперативное реагирование. Благодаря тому, что за каждым видом СЗИ и систем было закреплено несколько человек, у нас не возникало проблем с тем, что ответственный отдыхал или просто отошел куда-то на пару минут. Вся информация от мониторинга обрабатывалась максимально быстро.
- Опыт в харденинге и мониторинге различных инфрастуктур.
P. S. Отдельное спасибо всем, кто приходил и задавал вопросы, и просим прощения у тех, кому не смогли что-то рассказать в процессе — команда ждала «засланных казачков» со стороны атакующих и не могла раскрыть все подробности.
Дмитрий Лифанов, эксперт Центра мониторинга и реагирования на инциденты ИБ Jet CSIRT
Автор: CSIRT