Формат соревнования
CTF Attack-Defense: один день, одно поле, живой счёт
Каждая команда получает одинаковый сервер с набором сервисов и одновременно защищает свои сервисы, исследуя чужие. Слабые места у всех одни и те же: уязвимость, найденная у себя, есть у каждого соперника.
Один зачёт — игра CTF Attack-Defense. Очки начисляются каждый раунд, итог — по табло.
Пять принципов формата
-
Все в одной сети
Команды играют друг против друга: действия одних сразу меняют счёт других.
-
Флаги
Секретные данные внутри сервисов. Обновляются каждый раунд и добываются у соперников.
-
Раунды
Игра идёт раундами; очки начисляются по итогам каждого раунда.
-
Автоматизация
Эксплойты запускаются по всем соперникам автоматически: вручную за раундами не успеть.
-
Инфраструктура
У каждой команды свой уязвимый сервер (vulnbox), общий сервер жюри и единая игровая сеть через VPN.
Параметры финала в Дубае
- Команда
- 5 спортсменов и 1 тренер (представитель команды)
- Длительность
- 6 часов игры
- Сервисы
- 5 одинаковых сервисов у каждой команды с одними и теми же слабыми местами
- Флаги
- Секретные строки в сервисах, обновляются каждый раунд; добытый чужой флаг сдаётся жюри
- Проверка
- Чекер судьи каждый раунд проверяет, что сервис работает как задумано
- Язык
- Все материалы, брифинги и судейство — на английском
- Победитель
- По итоговой таблице; результаты объявляются в день игры
Сервер судей и серверы команд
Сервер жюри флаги · чекер · табло
Игровая сеть · VPN
- Команда 1 vulnbox
- Команда 2 vulnbox
- Команда 3 vulnbox
- Команда 4 vulnbox
- …
- Команда 20 vulnbox
-
Сервисы
Программы на сервере команды с уязвимостями и хранилищами флагов.
-
Флаги
Секретные данные, которые жюри кладёт в сервисы каждый раунд.
-
Взаимодействие
Команды исследуют сервисы друг друга только внутри игровой сети.
Что происходит каждый раунд
Игра — это цикл одинаковых раундов: за шесть часов финала их проходят десятки.
-
Судьи
Новые флаги
Сервер жюри кладёт свежие флаги в сервисы каждой команды.
-
Чекер
Проверка сервисов
Чекер проверяет, что сервисы работают и флаги читаются.
-
Команды
Защита и исследование
Команды закрывают уязвимости у себя, добывают флаги соперников и сдают их жюри.
-
Табло
Пересчёт очков
Результат раунда попадает в живую таблицу.
Следующий раунд — новые флаги, всё сначала. Флаги прошлых раундов остаются действительными ещё несколько раундов.
Три составляющие результата
Результат команды за раунд складывается из трёх частей, и доступность собственных сервисов работает как множитель.
-
Исследование
Плюс — флаги соперников, сданные жюри.
-
Защита
Минус — собственные флаги, добытые соперниками.
-
Доступность (SLA)
Множитель — доля раундов, в которых сервис имел статус OK.
Статусы сервиса
- OK
- Работает, флаги читаются. Единственный статус с очками.
- MUMBLE
- Отвечает, но не по протоколу.
- CORRUPT
- Работает, но старые флаги потеряны.
- DOWN
- Сервис недоступен.
Выключить сервис нельзя — закрытый сервис теряет очки так же, как сломанный. Побеждает баланс защиты, исследования и работоспособности. Точная формула и веса фиксируются регламентом.
Пять линий работы команды
-
До старта
Развернуть сервисы, снять резервные копии, изучить исходный код, пока сеть ещё закрыта.
-
Исследование
Найти уязвимость, написать эксплойт, применить ко всем соперникам, сдать флаги жюри.
-
Защита
Закрыть уязвимость патчем кода или бинарным патчем, не сломав сервис: перезапуск может стоить раунда.
-
Автоматизация
Автомат повторяет эксплойты каждый раунд, отбирает флаги и сдаёт их пачками.
-
Разбор трафика
Анализ записей сети превращает чужие приёмы в точечные патчи и ответные действия.
Флаги обновляются каждый раунд, поэтому одно и то же действие приходится повторять снова и снова. Побеждает команда, которая автоматизировала и защиту, и исследование.
Честная игра и судейство
-
Судейская коллегия
Единые правила для всех команд, протокол каждого раунда, порядок апелляций.
-
Запрещено
Воздействие на игровую инфраструктуру и сервер жюри, перегрузка сети, любые действия вне полигона, вмешательство в оборудование других команд.
-
Безопасность
Игра идёт в изолированной сети на полигоне организатора; затрагиваются только игровые серверы команд. Реальные системы и внешние сети не участвуют.
Расписание дня соревнования, 12 декабря
Время по Дубаю (GMT+4)
-
Церемония открытия
-
Выдача доступов, открытие сети
-
Старт игры
-
Финиш
-
После финиша
Разбор и награждение
Частые вопросы о формате
Чем отличается от «обычного» CTF?
«Обычный» CTF — набор независимых задач. Здесь команды играют друг против друга в общей сети, и счёт меняется каждый раунд.
Нужно ли уметь программировать?
Да. Эксплойты, патчи и автоматическая сдача флагов — это код; без него команда не успевает за раундами.
Почему нельзя просто выключить сервис?
Доступность входит в счёт как множитель: закрытый сервис штрафуется так же, как сломанный. Нужно закрыть уязвимость и сохранить работу.
Зачем автоматизация?
Флаги обновляются каждый раунд, поэтому действия нужно повторять по всем соперникам автоматически.
Что важнее — защита или исследование?
Баланс. Сильное исследование не спасёт, если собственные сервисы не работают: их доступность умножает весь результат.
Можно ли играть в одиночку?
Формально да, но пять линий работы одному человеку не закрыть — поэтому дисциплина командная.
Это законно?
Да: игра идёт на полигоне организатора, затрагиваются только игровые серверы команд, а все действия описаны регламентом.