
На первом CTF-турнире в 2019 году я два часа отправлял флаги в формате flag{...}, хотя организаторы объявили формат ctf{...}. Три задачи решены — ноль засчитано. Соседняя команда из четырёх человек просидела весь шестичасовой турнир на одной web-задаче, потому что никто не умел в crypto. Обе ошибки объединяет одно: никто не разобрался в формате до старта. Форматы CTF-соревнований определяют всё — от состава команды до набора инструментов. Три основных вида CTF соревнований — jeopardy, attack-defense и king-of-the-hill — отличаются не только правилами, но и навыками, которые они проверяют и прокачивают.
Jeopardy (или Task-Based) — самый распространённый формат capture the flag соревнований. Название стянули у американской телевикторины: участникам дают доску с заданиями, разбитыми по категориям и уровням сложности. Задача — найти скрытую строку (флаг), доказывающую решение, и отправить её на платформу проверки. Флаги обычно выглядят как flag{s0m3_t3xt_h3r3} — конкретный формат объявляют организаторы перед стартом.
DEF CON CTF проводится с 1996 года и исторически считается родоначальником attack-defense формата. Точное происхождение jeopardy менее задокументировано, но к началу 2000-х он уже вовсю использовался на конференциях. С тех пор формат стал стандартом для онлайн-соревнований: на CTFtime.org ежегодно проходят сотни турниров именно этого типа.
Как проходит CTF в формате jeopardy: команда или одиночный участник регистрируется на платформе (обычно CTFd), получает доступ к доске заданий, выбирает категорию и уровень, решает задачу, находит флаг и отправляет его в форму. За каждое решение начисляются баллы. Побеждает тот, кто набрал максимум очков к моменту окончания турнира.
Формат подходит для старта по трём причинам: можно участвовать соло, задания решаются в произвольном порядке, и не надо защищать инфраструктуру. Для начала — за глаза.
Типы задач на CTF в формате jeopardy покрывают основные области кибербезопасности. Каждая категория тренирует отдельный пласт навыков:
Web — поиск и эксплуатация уязвимостей в веб-приложениях: SQL-инъекции, XSS, SSRF, IDOR, обход аутентификации. Задачи напрямую связаны с OWASP Top 10 — A01:2021 (Broken Access Control) и A03:2021 (Injection) встречаются чаще всего. Из инструментов хватает Burp Suite Community Edition и браузерных DevTools. Самая доступная категория для новичков — базового понимания HTTP и HTML достаточно для первых задач.
PWN (Binary Exploitation) — эксплуатация уязвимостей в скомпилированных бинарниках. Buffer overflow, format string, use-after-free, ROP-цепочки. Вам дают ELF-файл и адрес удалённого сервера, где бинарник запущен, — нужно получить контроль над выполнением и прочитать файл с флагом. Инструменты: gdb, pwntools. В терминах MITRE ATT&CK типичные PWN-задачи с удалённой эксплуатацией моделируют технику Exploit Public-Facing Application (T1190, Initial Access), а задачи с локальной эскалацией привилегий (например, suid-бинарники) — Exploitation for Privilege Escalation (T1068, Privilege Escalation). Кривая обучения крутая, зато после неё вы понимаете, как программы работают на уровне стека и регистров. Это стоит боли.
Crypto — от шифра Цезаря до атак на RSA с малым экспонентом, padding oracle, bit-flipping в блочных шифрах. PyCryptodome для программных решений, CyberChef для быстрых преобразований.
Reverse Engineering — анализ программ без исходного кода через дизассемблирование и декомпиляцию. Ghidra, IDA Free, radare2. По сути — вскрытие чужого бинарника и попытка понять, что автор имел в виду.
Forensics — цифровая криминалистика: анализ дампов памяти, сетевого трафика (pcap), образов дисков, восстановление удалённых файлов. Часто включает стеганографию — поиск данных, спрятанных в изображениях или аудио. Wireshark, Volatility.
OSINT — разведка по открытым источникам: метаданные файлов, социальные сети, WHOIS, Shodan. Тренирует навыки, близкие к Active Scanning (T1595, Reconnaissance) и Network Service Discovery (T1046, Discovery) из MITRE ATT&CK.
Misc (Joy) — задачи вне стандартных категорий: логические головоломки, нестандартные форматы данных, творческие задания. Иногда самые интересные.
Русскоязычные гайды обычно ограничиваются фразой «чем сложнее задача, тем больше очков». На практике используются две системы, и разница между ними меняет стратегию.
Static scoring — организатор вручную задаёт стоимость каждого задания. Лёгкое — 100 очков, среднее — 300, сложное — 500. Стоимость не меняется в течение турнира. Просто и предсказуемо.
Dynamic scoring — стоимость задачи уменьшается по мере того, как её решают другие команды. Начальная цена может быть 500, но после 20 решений упадёт до 100. Логика: если задачу решили почти все, она не стоит много. Этот механизм описан в документации платформы Traboda Arena как decay-модель, и он применяется в большинстве крупных онлайн-CTF.
Практический вывод: при dynamic scoring выгодно решать задачи быстрее конкурентов, пока стоимость высока. Формула decay на бумаге понятна, но по-настоящему ощущается только когда сам прогоняешь сабмишены и видишь, как тает стоимость задачи, которую ты решал три часа. На HackerLab.pro есть категории web, crypto, forensics и другие — можно потренироваться на задачах разной сложности, прежде чем идти на турнир с dynamic scoring.
Attack-defense (или Classic) — формат, в котором команды одновременно атакуют инфраструктуру соперников и защищают свою. Если jeopardy — это квест-комната с категориями, то attack-defense — войнушка в реальном времени с живыми противниками.
Каждая команда получает идентичный сервер (vulnbox) с набором уязвимых сервисов. Организаторы периодически размещают на этих серверах приватную информацию — флаги. Задача двойная: найти уязвимости в своих сервисах и закрыть их (защита) и одновременно эксплуатировать те же уязвимости на серверах соперников, чтобы забрать их флаги (атака).
DEF CON CTF — самый престижный турнир в индустрии — использует этот формат для финалов. По публикациям участников, финал DEF CON 2025 проходил в тиках по несколько минут, а формат, по неподтверждённым данным сообщества, включал также компоненты King of the Hill и LiveCTF. Многослойное соревнование, которое невозможно оптимизировать одним набором навыков.
Attack-defense проводится реже jeopardy, потому что организация требует серьёзной инфраструктуры. Организаторы International Cybersecurity Challenge описали attack-defense как редкость даже среди глобальных CTF-событий — именно потому, что формат требует одновременных навыков атаки и защиты.
Инфраструктура attack-defense принципиально сложнее jeopardy. Вот что нужно понимать до регистрации.
Vulnbox — сервер команды с набором сервисов (обычно 3-6 штук), написанных на разных языках. Каждый сервис содержит одну или несколько уязвимостей, заложенных организаторами.
Чекеры (checkers) — автоматические скрипты, которые регулярно проверяют, что ваши сервисы работают корректно. Чекер имитирует легитимного пользователя: отправляет запросы, проверяет ответы, записывает флаги в сервис и потом их читает. Запатчили уязвимость и при этом сломали функциональность — чекер это обнаружит, и вы потеряете SLA-очки. Классическая ловушка: закрыл дыру, но сервис перестал отвечать чекеру. Минус очки.
Изолированная сеть — все серверы находятся в одной VPC. Каждая команда подключается через VPN-конфигурацию. Доступ к серверам соперников — только внутри игровой сети.
Анализ трафика — в attack-defense мониторинг сетевого трафика — это ваши глаза. Команды используют инструменты вроде Tulip для отслеживания входящих запросов. Фишка: можно обнаружить и воспроизвести эксплойты других команд, находя уязвимости в CTF-заданиях, которые вы сами ещё не нашли. По сути — подсматриваете чужие решения прямо в трафике.
Подсчёт баллов в attack-defense CTF состоит из трёх компонентов — понимание каждого критично для стратегии.
Attack Points — начисляются за успешную эксплуатацию сервиса соперника и сдачу его флага. Один и тот же сервис можно атаковать у разных команд, но каждого конкретного соперника — только раз за раунд. В следующем раунде, если соперник не закрыл уязвимость, можно атаковать повторно.
Defense Points — начисляются за каждый раунд, в котором ваш сервис не был скомпрометирован. Ни один соперник не вытащил флаг из конкретного сервиса — получаете защитные очки.
SLA Points — начисляются за аптайм сервисов. Чекер проверяет работоспособность каждый раунд: упал сервис — потеряли SLA, сломали функциональность неудачным патчем — тоже потеряли SLA. Это принципиальное отличие от jeopardy: мало найти и закрыть уязвимость — нужно сделать это так, чтобы сервис продолжил работать для чекера.
King of the Hill (KotH) — формат, который русскоязычные гайды почти не упоминают, хотя он активно набирает вес на крупных турнирах. KotH стоит между jeopardy и attack-defense: команды соревнуются за контроль над общими системами.
Механика: вы эксплуатируете уязвимость для получения доступа к серверу, устанавливаете свой флаг (маркер команды), а затем удерживаете позицию, пока другие команды пытаются вас вытеснить. Баллы начисляются за время удержания контроля. Если attack-defense — войнушка с двумя фронтами (свой сервер и чужие серверы), то king of the hill — это «захват флага» из шутеров: одна точка, много претендентов, побеждает тот, кто дольше удержит.
DEF CON CTF 2025, по публикациям участников, предположительно включил KotH как отдельный компонент наряду с attack-defense. По имеющимся описаниям, задачи KotH проходили в раундах по несколько часов, и цель — разработать наиболее эффективное решение для каждого раунда. После каждого раунда условия менялись, вынуждая команды адаптироваться на лету.
Конкретный пример: задача KotH может требовать написать шеллкод минимальной длины для чтения флага. В следующем раунде организаторы запрещают определённые байты, и команда вынуждена переписать решение с учётом новых ограничений. Это проверяет не разовую способность найти уязвимость, а умение быстро адаптироваться под давлением.
Что делает KotH принципиально сложнее jeopardy: недостаточно найти эксплойт — нужно удерживать доступ, пока противники активно пытаются вас вытеснить. Отсюда стратегические дилеммы. Патчить уязвимость, через которую вошли, чтобы закрыть путь другим? Или оставить как запасной вход? Защищать текущую позицию или атаковать более ценную цель? В реальной ИБ это близко к persistence — удержание доступа в скомпрометированной инфраструктуре, что моделирует техники Valid Accounts (T1078, Persistence / Initial Access) из MITRE ATT&CK.
По описанию CybExer, KotH оптимален для тренировки навыков устойчивого контроля над спорной системой — навык, который пригодится и в Red Team операциях, и при расследовании инцидентов, когда нужно понять, как атакующий удерживал присутствие.
Ниже — сравнительная таблица трёх основных форматов CTF-соревнований. Подобного разбора в русскоязычных гайдах нет, хотя именно он отвечает на вопрос «куда идти первому».
| Критерий | Jeopardy | Attack-Defense | King of the Hill |
|---|---|---|---|
| Участники | Соло или команда | Только команда (3-10 чел.) | Команда (2-6 чел.) |
| Формат | Онлайн или оффлайн | Чаще оффлайн (финалы) | Оба варианта |
| Длительность | 24-48 ч (онлайн), 6-8 ч (оффлайн) | 6-12 часов | Раунды по 2-4 часа |
| Ключевые навыки | Специализация по категориям | Атака + защита + координация | Атака + удержание + адаптация |
| Сложность для новичка | Низкая — средняя | Высокая | Средняя — высокая |
| Своя инфраструктура | Нет | Да (vulnbox от организаторов) | Нет (общие серверы) |
| Оценивание | Флаги и баллы (static/dynamic) | Attack + Defense + SLA | Время удержания контроля |
| Реальная ИБ-аналогия | Пентест-аудит (offense) | SOC + Red Team одновременно | Red Team persistence |
| Минимальный инструментарий | Зависит от категорий | nmap, Burp, gdb, Wireshark, Tulip | Зависит от задачи + скрипты |
Рекомендация для тех, кто готовится к первому турниру CTF: начинайте с jeopardy. Формат доступнее, пути обучения понятнее, и не нужна собранная команда. После 3-5 jeopardy-турниров, когда появится специализация и понимание сильных сторон, есть смысл собирать команду для attack-defense.
Требования к окружению:
Минимальный набор инструментов:
nmap — для разведки в attack-defense и KotHДокументы и шаблоны:
strings filename | grep -i flag для быстрого поиска флага в бинарных файлах (не заменяет Wireshark для pcap или Volatility для memory dump) или sqlmap -u "URL" --batch для webНеправильный формат флага. Правила CTF для новичков начинаются с этого: формат флага указан на главной странице турнира. flag{...}, ctf{...}, CODEBY{...} — формат отличается от соревнования к соревнованию. Проверьте до первой попытки отправки. Я на этом потерял два часа — не повторяйте.
Вся команда на одной задаче. Если идёте командой из четырёх человек — заранее договоритесь, кто берёт web, кто crypto, кто forensics. Четыре человека на одной web-задаче — тупо потеря времени.
Игнорирование лёгких задач. На jeopardy-турнирах задачи на 50-100 очков часто решаются за 5-10 минут. Набрать 500 очков на десяти лёгких задачах продуктивнее, чем просидеть три часа над одной сложной за те же 500.
Отсутствие записей. Через два часа вы не вспомните, какие пейлоады уже пробовали. Write-up пишется параллельно с решением, а не после турнира.
Установка инструментов во время турнира. Ставьте окружение за день до старта. Команда apt install на медленном Wi-Fi в разгар соревнования — проверенный способ потерять час. Убедитесь, что VM загружается, pwntools импортируется, Burp Suite запускается — до того, как начнётся таймер.
Где искать турниры. CTFtime.org — главный агрегатор: расписание турниров, рейтинг команд, архив задач с прошедших соревнований. Для начала подойдут платформы с постоянно доступными задачами: picoCTF от Carnegie Mellon (задачи с пошаговым введением), Hack The Box (ранжирование по уровням), TryHackMe (интерактивные сценарии).
Для jeopardy-турнира длительностью 24 часа типичное распределение:
Первые 30 минут — скаут-фаза. Каждый участник пробегает задания в своей категории, оценивает сложность, помечает «быстрые победы» — задачи, решаемые за 10-15 минут.
Часы 1-6 — лёгкие и средние задачи. Цель — максимум очков с минимальным усилием. Если задача не поддаётся за 40 минут — переключайтесь на другую. Серьёзно, переключайтесь. Потом вернётесь со свежей головой.
Часы 6-18 — работа над сложными задачами. «Быстрые победы» закончились, нужно копать глубже.
Часы 18-24 — финальный рывок. Пересмотрите нерешённые задачи с учётом подсказок (hints), которые организаторы могут открыть ближе к концу.
Для attack-defense тайминг и роли в CTF устроены принципиально иначе:
| Роль | Задача | Число людей |
|---|---|---|
| Patcher | Анализ сервисов, поиск и закрытие уязвимостей | 2-3 |
| Exploiter | Разработка эксплойтов для атаки соперников | 2-3 |
| Traffic Analyst | Мониторинг трафика, обнаружение атак соперников | 1 |
| Scripter | Автоматизация атак для повторного запуска каждый раунд | 1 |
| Team Lead | Координация, приоритеты, коммуникация | 1 |
Критическая ошибка в attack-defense — вся команда занимается только атакой. Без патчинга вы теряете defense-очки и SLA каждый раунд. Баланс атака/защита — ключевой стратегический выбор, и его нужно обсудить до начала турнира, а не посреди второго раунда, когда SLA уже просел.
King of the hill требует ещё большей гибкости: после каждого раунда условия меняются, и жёстко фиксированные роли работают хуже. Здесь нужны люди, способные переключаться между задачами, — универсалы ценнее узких специалистов.
За пять лет участия и организации CTF я пришёл к одному выводу: формат определяет опыт, а не абсолютная сложность задач. Jeopardy может быть технически сверхсложным — когда криптографическая задача требует реализации атаки Coppersmith. Attack-defense может быть относительно прост по задачам — но разваливается, когда команда не умеет координироваться в реальном времени.
Главная проблема, которую я вижу в русскоязычном CTF-комьюнити: участники годами сидят в jeopardy и ни разу не пробуют attack-defense. Jeopardy тренирует глубину в отдельных категориях, но полностью игнорирует defensive security — навык, который большинство ИБ-специалистов используют на работе ежедневно. Защищаться от реальных атак нужно не в режиме «реши задачку за 20 минут», а в формате непрерывного мониторинга и реагирования — это гораздо ближе к attack-defense. King of the Hill ещё более недооценён: он единственный из трёх форматов, который учит удерживать позицию в условиях, где среда меняется каждый раунд, — навык, критичный для реальных Red Team операций. Мой прогноз: в ближайшие два года KotH станет обязательным компонентом финалов крупных CTF, как это, по имеющимся данным, произошло на DEF CON 2025. Если стоите в самом начале и кроме CTF хотите системную базу по ИБ — IB Basics на Codeby Academy закрывает основы за пару месяцев, без академических лекций и с фокусом на практику.
🚀 Хочешь закрепить на практике? Реши задачи по теме на HackerLab — категория «pentest-machines».
0 комментариев
Пожалуйста, войдите, чтобы оставить комментарий.
Загрузка комментариев...