Главная / Блог / Форматы CTF соревнований: jeopardy vs AD

14 мин.00

Форматы CTF соревнований: jeopardy vs AD

Форматы CTF соревнований: jeopardy vs AD

Первый CTF — онлайн-jeopardy на 24 часа. Я пришёл ломать серверы соперников, а попал на платформу с двумя сотнями задач-головоломок в шести категориях. Два часа ушло на разбор правил, ещё час — на осознание, что половина моих инструментов бесполезна для категорий, о которых я вообще не слышал. Итог: нижняя четверть таблицы. Через год та же команда из трёх человек на attack-defense турнире вошла в десятку — и дело было не в скачке навыков, а в понимании того, как устроены форматы CTF соревнований. Разница между «решай головоломки» и «обороняй инфраструктуру, одновременно атакуя чужую» определяет всё: набор инструментов, состав команды, стратегию на каждую минуту. Разберём оба формата так, чтобы к первому турниру вы пришли с ясной картиной.

Что такое CTF и какие виды CTF соревнований существуют

CTF (Capture The Flag) — соревнования по кибербезопасности, где участники ищут скрытые строки-«флаги» в уязвимых системах, файлах или приложениях. Флаг — строка в определённом формате, заданном организаторами. Выглядит примерно так: flag{you_found_me} или CTF{s3cur1ty_r0cks}. Формат объявляют заранее, чтобы ты точно знал, что ищешь.

По данным CTFtime — крупнейшего агрегатора capture the flag соревнований — ежегодно проходят сотни турниров: от студенческих на 20 команд до глобальных с тысячами участников. Первый jeopardy CTF провели на конференции DEF CON в 2000 году (по данным blog.cyber-edu.co), и с тех пор формат разделился на два направления:

  • Jeopardy (task-based) — набор независимых задач по категориям. Решаете задачу, находите флаг, сдаёте на платформу, получаете баллы.
  • Attack-defense (classic) — команды получают одинаковые уязвимые серверы. Атакуете чужие, защищаете свои — одновременно.

Есть ещё mixed CTF — гибрид обоих форматов, и King of the Hill — борьба за удержание контроля над общим сервером. Но jeopardy и attack-defense — два фундамента, от которых отталкивается всё остальное. Понимание того, как проходят соревнования CTF в каждом из этих форматов, определяет успех участия.

Jeopardy CTF: как устроены задания и скоринг

Jeopardy — самый распространённый формат среди онлайн CTF для начинающих. Причина проста: он масштабируется от одного участника до тысячи команд, не требует сложной сетевой инфраструктуры и допускает удалённое участие из любой точки мира.

Механика прямолинейная. Организаторы размещают задачи на платформе (чаще всего CTFd — open-source система, которую легко поднять в Docker). Каждая задача привязана к категории и стоит определённое количество баллов. Выбираете задачу, скачиваете файл или подключаетесь к сервису, находите флаг и вбиваете его в поле на платформе. Порядок решения — на ваше усмотрение: можете начать с лёгких за 50 баллов или сразу вгрызться в 500-балльный хардкор.

Время обычно ограничено: от 6 до 48 часов. На DEF CON CTF Qualifier 2020 свыше 1300 команд из разных стран соревновались в онлайн-формате (по данным blog.cyber-edu.co). DefCamp D-CTF 21-22 собрал более 1000 команд и свыше 3000 игроков из 96 стран — тоже полностью онлайн. Участвовать в CTF соревнованиях jeopardy-формата можно и в одиночку — ограничения задаёт конкретный организатор.

Категории задач CTF: от web до OSINT

Задачи в jeopardy CTF делятся на категории. Каждая проверяет отдельный набор навыков. Вот основные — и что стоит знать о каждой.

Web — поиск и эксплуатация уязвимостей в веб-приложениях. SQL-инъекции, XSS, SSRF, обход авторизации. По классификации OWASP, 94% приложений содержат проблемы с контролем доступа (A01:2021 — Broken Access Control), инъекции — на позиции A03:2021. Именно такие сценарии моделируют CTF-задачи. В терминах MITRE ATT&CK web-задачи чаще имитируют технику Exploit Public-Facing Application (T1190, Initial Access). На практике: находите уязвимый параметр, подбираете payload, вытаскиваете флаг.

PWN (binary exploitation) — эксплуатация уязвимостей в скомпилированных программах. Buffer overflow, format string, heap exploitation. Обычно дают бинарник для Linux, к которому нужно написать эксплойт. Основной инструмент — библиотека pwntools для Python. Категория считается одной из самых зубодробительных — зато и баллов дают больше всего.

Crypto (криптография) — взлом шифров и анализ криптографических протоколов. От классического Цезаря и Виженера до RSA с косяками в реализации. Задачи могут включать кодировки — Morse, Base64, XOR. Для тренировки рекомендую CryptoPals — практический курс по криптоатакам, после которого RSA перестаёт казаться магией.

Reverse (reverse engineering) — препарирование программ без исходного кода. Дан бинарник или APK — нужно понять логику, найти проверку пароля или зашитый ключ. Основные инструменты: Ghidra (бесплатный декомпилятор от NSA — да, тот самый NSA) и IDA Pro. Категория требует терпения: иногда сидишь часами, разбирая ассемблерный код, и в какой-то момент картинка щёлкает.

Forensics — цифровая криминалистика. Анализ дампов памяти, сетевого трафика (pcap-файлы), образов дисков. Нужно восстановить удалённые файлы, извлечь данные из дампа или найти следы вторжения. Wireshark — ваш главный друг. Вопросы в forensics-задачах звучат типично: «Какой IP-адрес жертвы?», «Какой файл просматривал атакующий?», «Какая версия FTP используется?» (по данным Cybrary).

Stegano (стеганография) — поиск скрытой информации в изображениях, аудиофайлах или видео. Инструменты: steghide, exiftool, binwalk. Один из популярных приёмов — текст, спрятанный в спектрограмме аудиофайла. Категория — чистый перебор: единого подхода нет, пробуешь инструмент за инструментом, пока что-нибудь не вывалится.

OSINT — разведка по открытым источникам. Профили в соцсетях, метаданные файлов, открытые базы данных. Задачи проверяют навыки поиска информации, а не технического взлома. Иногда удивляешься, сколько можно раскопать по одной фотографии.

Misc (miscellaneous) — всё, что не вписывается в другие категории. Головоломки, задачи на программирование, нестандартные челленджи. Иногда — просто «следуйте описанию и попробуйте».

Admin — задачи на системное администрирование: настройка серверов, управление правами доступа, анализ конфигураций.

Не обязательно владеть всеми категориями на старте. Для первого турнира хватит уверенности в 2-3 категориях (web + crypto + misc — самый доступный набор), а дальше — наращивайте арсенал от турнира к турниру.

Подсчёт очков: динамический скоринг и first blood

В jeopardy CTF используются две модели скоринга, и разница между ними напрямую влияет на стратегию.

Статический скоринг — каждая задача стоит фиксированное количество баллов. Лёгкая — 100, средняя — 250, сложная — 500. Баллы не меняются в ходе турнира. Модель простая, но с подвохом: организаторы субъективно оценивают сложность, и иногда «лёгкая» задача за 100 баллов оказывается злее «средней» за 250.

Динамический скоринг — задача стартует с максимумом баллов, и стоимость падает по мере того, как всё больше команд её решают. Решили три команды — она «стоит» 450 баллов. Решили пятьдесят — 150. По данным CTF-Wiki, стоимость снижается до заданного минимума и дальше не падает. Модель честнее: рынок сам определяет реальную сложность.

First blood — бонусные очки за первое решение задачи. По данным CTF-Wiki, первые три команды получают отметки first blood, second blood, third blood и дополнительные баллы. Это создаёт гоночную динамику в первые минуты после открытия задач.

Из скоринга следует стратегия: начинайте с категорий, в которых сильны, чтобы собрать first blood, пока другие команды ещё читают условия. Потом переключайтесь на дорогие задачи, которые мало кто решил.

Attack-defense CTF: атака и оборона одновременно

Если jeopardy — олимпиада по решению задач, то attack-defense — боевые учения в реальном времени. Формат чаще используется на финалах крупных турниров и очных соревнованиях. Финал DEF CON CTF — классический пример. RuCTF, организованный командой HackerDom — ещё один известный attack-defense турнир (по данным FluidAttacks).

Каждая команда CTF получает идентичный набор уязвимых сервисов на выделенном сервере. Задача двойная: найти уязвимости в своих сервисах и закрыть их (defense), одновременно эксплуатируя те же уязвимости у соперников и забирая их флаги (attack). По данным CTF-Wiki, attack-defense соревнования обычно проводятся офлайн и длятся около 48 часов — это проверка не только технических навыков, но и физической выносливости. Кофе заканчивается быстрее, чем уязвимости.

Gamebox, тики и чекеры

Три механики attack-defense CTF, которые русскоязычные источники почти не раскрывают.

Gamebox — виртуальный сервер с набором уязвимых сервисов. Каждая команда получает идентичную копию. Все gamebox-ы одинаковы на старте: одни и те же сервисы, одни и те же дыры. Команда подключается по SSH и начинает копать код. По данным CTF-Wiki, организаторы часто раскрывают детали окружения за 30 минут или за день до старта — атаковать ещё нельзя, но можно готовить инфраструктуру защиты.

Тики (раунды) — соревнование разбито на интервалы по 1-5 минут. В каждом тике организатор обновляет флаги в сервисах всех команд. Задача: за каждый тик вытащить свежие флаги у соперников и защитить свои. По данным SimulationsLabs, на DEF CON 2025 тики составляли 1-5 минут. Давление постоянное: нельзя потратить час на анализ одного сервиса, пока по остальным утекают флаги.

Чекеры (checkers) — автоматические скрипты организаторов, которые проверяют работоспособность ваших сервисов. Закрыли уязвимость, но сломали функциональность — чекер это обнаружит. Потеря баллов за доступность (SLA) бывает катастрофичнее, чем потеря флага. Нельзя просто выключить уязвимый сервис: он должен отвечать на запросы, как будто им пользуется легитимный пользователь. Грубо говоря, нужно залатать дыру так, чтобы снаружи ничего не изменилось.

Scoring в attack-defense строится из трёх компонентов: очки за захваченные флаги соперников (attack), штрафы за потерянные собственные флаги (defense) и штрафы за неработающие сервисы (SLA). По данным CTF-Wiki, все команды стартуют с одинаковым количеством очков. Если ваш сервис скомпрометирован — вы теряете баллы, соперник их получает. Zero-sum game: каждый ваш провал — чей-то успех.

Командные роли в attack-defense

В jeopardy каждый может тихо решать свои задачи. В attack-defense без координации команды вы проиграете за первый час. Типичное распределение ролей:

Attack team (2-3 человека) — сканируют сервисы соперников, ищут уязвимости, пишут эксплойты. Начинают со сканирования подсети: nmap -sV -p- <subnet> — определение версий сервисов. Это техника Network Service Discovery (T1046, Discovery) по MITRE ATT&CK. Найденные уязвимости сразу передают defense-команде для патча на своём gamebox-е.

Defense team (2-3 человека) — анализируют код сервисов, ищут уязвимости и патчат их, не ломая функциональность. Мониторят входящий трафик для обнаружения атак соперников. Один из сильных приёмов — перехватить эксплойт соперника из трафика и передать attack-команде для использования против остальных. По сути, противник сам приносит вам оружие.

Infrastructure (1-2 человека) — автоматизация: скрипты для сдачи флагов, мониторинг SLA, анализ трафика через инструменты вроде Tulip. Без автоматизации вручную сдавать флаги каждый тик — нереально.

Captain — координирует команду, расставляет приоритеты. Главный вопрос каждый тик: патчить сервис, который нас ломают, или сначала написать эксплойт для атаки того же сервиса у соперников?

Разница jeopardy и attack-defense CTF

Ключевые различия форматов CTF соревнований — в таблице:

Параметр Jeopardy Attack-defense
Формат участия Онлайн или офлайн Чаще офлайн
Размер команды 1-10 человек 5-10 человек
Длительность 6-48 часов 24-48 часов
Тип задач Независимые, по категориям Уязвимые сервисы
Навыки атаки Да Да
Навыки защиты Нет Да
Автоматизация Желательна Необходима
Работа в команде Полезна Критична
Подходит новичкам Да Нет, нужен опыт
Динамика Темп задаёте сами Тики каждые 1-5 минут
Инфраструктура Не нужна, всё на платформе Gamebox, SSH, общая сеть

Для новичков jeopardy — однозначный старт. Можно участвовать в одиночку, выбирать задачи по силам, гуглить подходы. Attack-defense требует сыгранной команды, навыков патчинга кода вживую и опыта работы под давлением.

Ещё одна разница, которую редко проговаривают: jeopardy тестирует глубину в конкретной категории. Если вы отлично знаете web — можете набрать максимум в web-задачах и не трогать pwn. В attack-defense уязвимости распределены по разным сервисам, и слепые пятна команды бьют по общему результату. Нет варианта «я не буду делать криптографию» — если сервис с крипто-уязвимостью не закрыт, команда теряет баллы каждый тик.

Отдельно стоит формат King of the Hill — промежуточный вариант. Команды борются за контроль над общими серверами: эксплуатируете уязвимость, устанавливаете свой флаг, удерживаете позицию, пока соперники атакуют. На финале DEF CON CTF 2025 KotH использовался как отдельный компонент наряду с attack-defense (по данным SimulationsLabs). Одного эксплойта недостаточно — нужно удерживать позицию, пока остальные пытаются вас оттуда выкинуть.

CTFtime рейтинг и как выбрать первое соревнование

CTFtime.org — центральный агрегатор CTF-событий. Расписание турниров, рейтинг команд, архивы задач с прошедших соревнований — всё здесь.

Ключевой параметр для новичка — вес события (weight). CTFtime присваивает каждому соревнованию рейтинг от 0 до 100 по сложности (по данным FluidAttacks). Высокий вес = сложнее задачи и конкурентнее участники. Для первого турнира ищите события с весом 15-30: задачи будут доступными, но нетривиальными. Для сравнения: saarCTF — один из крупнейших онлайн attack-defense турниров — имеет вес 97.22 (по данным SimulationsLabs). Это уровень топ-команд мира, туда новичку лезть рано.

Помимо CTFtime, актуальные события публикуются на ctfnews.ru (для русскоязычного сообщества), в Telegram-каналах CTF-команд и на страницах конференций.

Отдельно про writeup-ы — разборы задач после соревнований. На CTFtime участники публикуют пошаговые описания решений. Чтение writeup-ов — один из самых эффективных способов расти: вы видите ход мысли опытного игрока, его инструменты и приёмы. Я после каждого турнира — решённого или нет — читаю writeup-ы к задачам, на которых застрял. Иногда оказывается, что до решения оставался один шаг, а иногда — что копал вообще не туда.

С чего начать CTF новичку: пошаговый план

Если вы ещё не участвовали в CTF или пробовали пару раз и не поняли, куда двигаться — вот конкретный план действий.

Инструменты и площадки для тренировки

Минимальный набор для первого jeopardy CTF:

  • Kali Linux (или Parrot OS) — дистрибутив с предустановленными инструментами для ИБ. Ставьте в виртуальную машину через VirtualBox или VMware. Не нужно сносить основную ОС.
  • Burp Suite Community — для web-задач. Перехват и модификация HTTP-запросов. Бесплатной версии для CTF хватает за глаза.
  • Ghidra — бесплатный декомпилятор для reverse-задач. Альтернатива — IDA Free.
  • Wireshark — анализ сетевого трафика для forensics.
  • Python 3 + pwntools — для pwn-задач и автоматизации.
  • CyberChef — браузерный инструмент для кодирования/декодирования (base64, XOR, ROT13 и десятки других операций). Не требует установки — открыл в браузере и работаешь.

Онлайн CTF площадки для тренировки:

  • picoCTF — платформа от Carnegie Mellon University. Задачи с пошаговыми подсказками. Стартовая точка для абсолютного нуля.
  • TryHackMe — интерактивные сценарии с объяснениями теории. Подходит тем, кто хочет понимать «почему», а не только «как».
  • Hack The Box — тренажёр для пентестеров с ранжированием по уровням. Сложнее picoCTF, ближе к реальным задачам.
  • Root Me — задачи по категориям: reverse, crypto, web, forensics. Без лишней обёртки — голые задачи.
  • OverTheWire — серия wargames. Bandit — для тех, кто только осваивает Linux-командную строку.
  • CryptoPals — практический курс по криптоатакам. Для тех, кому категория crypto кажется интересной.

Чек-лист перед первым турниром

  1. Выберите формат. Первый CTF — только jeopardy. Не лезьте в attack-defense без минимум 5-7 турниров опыта.
  2. Найдите турнир на CTFtime. Фильтруйте по весу (15-30) и дате. Онлайн-формат удобнее: участвуете из дома.
  3. Соберите команду. 3-5 человек с разными специализациями: кто-то разбирается в web, кто-то — в crypto, кто-то — в forensics. Если команды нет — участвуйте в одиночку, это нормально.
  4. Подготовьте окружение. Kali Linux в виртуалке, Burp Suite, Wireshark, Python. Проверьте, что VPN работает — некоторые турниры требуют подключение через VPN к игровой сети.
  5. Изучите writeup-ы. Выберите 2-3 прошедших соревнования на CTFtime и прочитайте разборы задач. Это даст представление о формате и типичном уровне сложности.
  6. На соревновании начните с лёгких задач. Откройте категории, в которых уверены. Решите 3-4 простых задачи — это и баллы, и уверенность, прежде чем браться за сложные.
  7. Гуглите без стеснения. CTF — не экзамен. Любой источник информации — от Stack Overflow до GitHub — ваш союзник.
  8. Записывайте ход решения. Даже если не решили задачу — зафиксируйте, что пробовали. После турнира сравните с writeup-ами и увидите, где свернули не туда.

Пример типичной первой задачи (категория misc или crypto):

Флаг скрыт в файле secret.txt, закодированном в base64.
$ echo "Q1RGe3cwd195MHVfZjBVbmRfMXR9" | base64 -d
CTF{w0w_y0u_f0Und_1t}

Получили файл, определили кодировку, декодировали одной командой, сдали флаг. Первые задачи на реальных соревнованиях устроены ровно так же — только вместо base64 может быть XOR, ROT13 или кастомный шифр. Принцип один: идентифицировать метод сокрытия и применить обратную операцию.

Есть мнение, что начинать с jeopardy проще, а attack-defense — для продвинутых. Формально так и есть. Но я убеждён, что большинство новичков застревают в jeopardy навсегда — решают одни и те же web-задачи на трёх площадках и перестают расти. Jeopardy развивает навык решения изолированных головоломок. Attack-defense учит мыслить как защитник: видеть инфраструктуру целиком, расставлять приоритеты, работать под давлением времени и чужих атак. Именно эти навыки нужны в реальной работе — будь то SOC, пентест или incident response.

После 3-5 jeopardy-турниров ищите команду для attack-defense, даже если кажется, что не готовы. Первый AD будет провальным — это нормально. Но за два дня AD вы узнаете о защите больше, чем за полгода решения изолированных тасков. Разница между CTF-игроком и специалистом по ИБ — в способности защищать, а не только ломать. На IB Basics эту логику «от атаки к защите» дают системно — без требования «вы должны знать Linux на уровне X», берут с любого старта.

🚀 Хочешь закрепить на практике? Реши задачи по теме на HackerLab — категория «pentest-machines».

Поделиться

0 комментариев

Пожалуйста, войдите, чтобы оставить комментарий.

Загрузка комментариев...