Проверка боем: чем полезны СTF-соревнования и как их организовать?

Проверка боем: чем полезны СTF-соревнования и как их организовать?

Изображение: Nahel Abdul Hadi (unsplash)

Сообщество специалистов по информационной безопасности регулярно участвует в конкурсах и соревнованиях, чтобы улучшить свои навыки защиты от атак. Одни из них — соревнования Capture the Flag (CTF). Они помогают получить навыки кибербезопасности на реальном опыте, при этом цена ошибки равно нулю, в отличие от настоящих атак.

Рами Мулейс, менеджер продуктов безопасности Yandex Cloud, совместно с командой Dered cybersecurity рассказывает, как устроены эти соревнования на базе опыта организации банковского CTF в Yandex Cloud.

Зачем проводить и участвовать в соревнованиях

Сейчас в России около 10 тыс. «белых» хакеров, согласно данным Bug Bounty-платформы The Standoff 365. При этом только они могут обеспечить проверку защищенности компании максимально приближенной к реальности. Но для того, чтобы допустить человека к проверке инфраструктуры компании, нужно допустить проверенные команды. И тогда реальное количество доступных специалистов становится ещё ниже: тех, кто готов пройти идентификацию в bugbounty и работать публично всего 5%, то есть порядка 500 человек.

Данные о нехватке «белых» хакеров подтверждает Минцифры. На форуме CISO директор департамента обеспечения кибербезопасности министерства Владимир Бенгин говорил, что топовые и даже маленькие команды уже заняты — «у всех заказов очень много».

В 2022 году на российские компании совершили 911 тыс. хакерских атак, что в два раза больше, чем годом ранее. По данным Kaspersky Digital Footprint Intelligence, в январе — мае 2023 количество публикаций значимых баз данных выросло на 33% в сравнении с аналогичным периодом 2022 года. За пять месяцев команда обнаружила 197 млн. строк пользовательских данных, из которых 81 млн. содержали номера с телефоном, а 23 млн. — пароли. Больше всего от атак страдают ритейл, IT и финансы.

Чтобы противостоять растущей киберпреступности, нужно повышать навыки текущих специалистов и растить новое поколение «белых» хакеров. Но, к сожалению, навыкам и практикам наступательной безопасности практически не учат в вузах или в учебных центрах. Для того чтобы приобрести эти навыки, нужна постоянная практика. Вот почему многие компании, ВУЗы и различные организации поддерживают хакерские соревнования или Capture the Flag (CTF). Поддержка CTF — отличный выход из этой ситуации, который помогает вывести людей в легальную сферу взломов.

CTF-соревнования как способ повысить уровень защиты

CTF-соревнования (Capture the Flag, «захват флага») впервые появились в 1993 году на конференции DEFCON. Суть в том, что организаторы моделируют IT-инфраструктуру некой компании и специально добавляют в нее уязвимости, которые когда-то уже реально происходили.

CTF помогает развивать практические навыки взлома и предотвращения атак, а также учит эффективно работать в команде. В то же время у бизнеса и ИБ-специалистов появляется возможность взглянуть на механизмы защиты IT-инфраструктуры с другой стороны и узнать их лучше.

Одно из мероприятий, которое проводит CTF-соревнования в России, — международная конференция OFFZONE. Соревнование называется CTFZone и является квалификационным этапом крупнейшего международного CTF-турнира DEF CON CTF в Лас-Вегасе. В 2022 году в соревновании участвовало 1207 команд из 54 стран мира. Для хакеров такое мероприятие — хороший способ проявить себя, а для компаний — найти специалистов, которым можно доверить аналитику системы безопасности.

В 2022 году Yandex Cloud совместно с командой Dered cybersecurity организовали CTF-соревнование Bank Security Challenge. Участникам предстояло взломать специально созданную для соревнований банковскую инфраструктуру в течение 36 часов. В состязании участвовало 200 команд из 1000 человек.

Как правило, соревнование проходит в нескольких форматах. Самый распространенный — Task-based. В этом случае организаторы предоставляют игрокам задания — проблемы в системе, которые нужно найти. А ответы команды — это своеобразные флаги. Чем больше флагов за кратчайшее время «захватила» команда, тем больше очков она получает. Также на количество баллов влияет сложность задачи.

При этом задания, как правило, даются в нескольких категориях: реверс бинарей, эксплуатация уязвимостей, веб-безопасность, криптография, стенография, форензика, PPC (программирование и кодинг) и любые другие задания, которые не вписываются в основные категории. Это помогает участникам изучить новые методы, а также понять важность различных техник.

Классический формат — Attack-defense. В этом случае есть две команды: «защита» и «атака». У каждой есть один или несколько серверов, где располагаются сервисы — приложение, которое запущено на хосте и доступное другим людям. Все сервисы спроектированы так, что люди могут оставлять там приватную информацию, например, данные карты или пароль от имейла. Эти данные создают организаторы, так они оставляют «флаги». А еще в сервисах есть уязвимости. Задача команд — защитить свои флаги и украсть их у соперников. При этом все архитектура сервисов идентична, и если одна уязвимость есть у вашей команды, то она же есть у противников. Такой тип помогает прокачать скорость работы: чем быстрее и точнее будет одна команда, тем выше ее шансы на победу.

И самый молодой тип — King of the hill. Идея в том, чтобы взломать систему и не дать другим участникам перехватить доступ. Например, за счет исправления уязвимостей. Загвоздка в том, что иногда система откатывается назад и команде снова нужно получить к ней доступ. Это обучающий тип соревнования, которое позволяет игрокам получить опыт в тестировании системы на проникновение. Кроме того, участникам приходится идти на компромиссы, с которыми сталкиваются ИБ-специалисты в реальной работе.

Как создаются задачи

Если у вас нет опыта проведения CTF-соревнований, можно взять в партнёры опытных организаторов. Они помогут разработать правила, придумать задания и в целом помочь с подготовкой.

Есть платформы с открытым исходным кодом, которые позволяют превратить любое испытание в CTF с помощью настраиваемых страниц испытаний, списков лидеров и других ожидаемых функций такого события с помощью zero coding. Одна из популярных open source-платформ — CTFd. Можно выбрать подходящий план управляемого хостинга и функций.

Для поддержания собственной инфраструктуры соревнования потребуется либо собственные сервера, либо ресурсы облачного провайдера. Например, для соревнования Bank Security Challenge Yandex Cloud выделил более 70000 Gb пространства HDD-дисков и 400 Gb SSD-дисков, 3000 виртуальных машин с 6500 vCPU и объемом RAM более 6000 Gb. При этом контест был рассчитан на 200 команд, в которых не более пяти участников.

Для проведения соревнования понадобится отдельная сеть, в которой разместятся задания — достаточно будет создать VPN. Нужно предусмотреть отдельные узлы для каждой из команд, для вулнбоксов команд и узел для членов жюри.

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

Сами задания можно объединить конкретной тематикой. Например, рассмотреть типичную структуру какой-то компании (банка или ритейлера), либо же связать с книжным персонажем или фильмом.

Несмотря на то, что CTF — это соревнование в игровой среде, задания там максимально приближены к реальным. Поэтому организаторы крупнейших CTF-соревнований делают ставку на актуальность своих заданий, большинство из них и решения прошедших контестов легко найти в открытом доступе.

Например, одна задач выглядит так: «Мой друг спрятал секрет на портале, но его можно получить только пройдя голосовую аутентификацию. Поможешь?». А другое: «Кэширование — это хорошо, но логические баги в процессе кеширования — лучше. Что скажешь?» Задача в том, что участникам нужно проэксплуатировать цепочку уязвимостей: обход проверки IP-адреса при запросе записи DNS, SSRF, SQL-инъекция через ssrf. В результате у игрока получается украсть админскую сессию из базы данных или создать администратора, указав валидный bcrypt-хеш.

После проведения мероприятия проведите серию онлайн-вебинаров, на которых разберете задания. Также будет полезно, если опубликуете сами решения, например на Хабре.

В отличие от реальных инцидентов ИБ, в CTF нет цены отказа. Даже проигрыш — это уже победа, потому что компания может увидеть слабые места в своей стратегии по защите инфраструктуре или выявить потребность в дополнительном персонале. Поэтому организовывайте собственные соревнования, становитесь партнерами крупных CTF и сами становитесь участниками.

Yandex.Cloud
Автор: Yandex.Cloud
Комплекс облачных сервисов для организаций и технических специалистов. Инфраструктурные сервисы позволяют обеспечить проект основными ресурсами: наладить обработку и хранение данных, безопасный доступ и обмен трафиком. Благодаря платформенным сервисам можно разрабатывать приложения на основе управляемых баз данных, а также пользоваться речевыми технологиями и машинным переводом.
Комментарии: