Формат соревнования

CTF Attack-Defense: один день, одно поле, живой счёт

Каждая команда получает одинаковый сервер с набором сервисов и одновременно защищает свои сервисы, исследуя чужие. Слабые места у всех одни и те же: уязвимость, найденная у себя, есть у каждого соперника.

Один зачёт — игра CTF Attack-Defense. Очки начисляются каждый раунд, итог — по табло.

Пять принципов формата

  • Все в одной сети

    Команды играют друг против друга: действия одних сразу меняют счёт других.

  • Флаги

    Секретные данные внутри сервисов. Обновляются каждый раунд и добываются у соперников.

  • Раунды

    Игра идёт раундами; очки начисляются по итогам каждого раунда.

  • Автоматизация

    Эксплойты запускаются по всем соперникам автоматически: вручную за раундами не успеть.

  • Инфраструктура

    У каждой команды свой уязвимый сервер (vulnbox), общий сервер жюри и единая игровая сеть через VPN.

Параметры финала в Дубае

Команда
5 спортсменов и 1 тренер (представитель команды)
Длительность
6 часов игры
Сервисы
5 одинаковых сервисов у каждой команды с одними и теми же слабыми местами
Флаги
Секретные строки в сервисах, обновляются каждый раунд; добытый чужой флаг сдаётся жюри
Проверка
Чекер судьи каждый раунд проверяет, что сервис работает как задумано
Язык
Все материалы, брифинги и судейство — на английском
Победитель
По итоговой таблице; результаты объявляются в день игры

Сервер судей и серверы команд

Свой сервер команда контролирует целиком; чужие доступны только через общую игровую сеть. Сервер жюри раздаёт флаги, проверяет сервисы и ведёт табло.
  • Сервисы

    Программы на сервере команды с уязвимостями и хранилищами флагов.

  • Флаги

    Секретные данные, которые жюри кладёт в сервисы каждый раунд.

  • Взаимодействие

    Команды исследуют сервисы друг друга только внутри игровой сети.

Что происходит каждый раунд

Игра — это цикл одинаковых раундов: за шесть часов финала их проходят десятки.

  1. Судьи

    Новые флаги

    Сервер жюри кладёт свежие флаги в сервисы каждой команды.

  2. Чекер

    Проверка сервисов

    Чекер проверяет, что сервисы работают и флаги читаются.

  3. Команды

    Защита и исследование

    Команды закрывают уязвимости у себя, добывают флаги соперников и сдают их жюри.

  4. Табло

    Пересчёт очков

    Результат раунда попадает в живую таблицу.

Следующий раунд — новые флаги, всё сначала. Флаги прошлых раундов остаются действительными ещё несколько раундов.

Три составляющие результата

Результат команды за раунд складывается из трёх частей, и доступность собственных сервисов работает как множитель.

  • Исследование

    Плюс — флаги соперников, сданные жюри.

  • Защита

    Минус — собственные флаги, добытые соперниками.

  • Доступность (SLA)

    Множитель — доля раундов, в которых сервис имел статус OK.

Статусы сервиса

OK
Работает, флаги читаются. Единственный статус с очками.
MUMBLE
Отвечает, но не по протоколу.
CORRUPT
Работает, но старые флаги потеряны.
DOWN
Сервис недоступен.

Выключить сервис нельзя — закрытый сервис теряет очки так же, как сломанный. Побеждает баланс защиты, исследования и работоспособности. Точная формула и веса фиксируются регламентом.

Пять линий работы команды

  1. До старта

    Развернуть сервисы, снять резервные копии, изучить исходный код, пока сеть ещё закрыта.

  2. Исследование

    Найти уязвимость, написать эксплойт, применить ко всем соперникам, сдать флаги жюри.

  3. Защита

    Закрыть уязвимость патчем кода или бинарным патчем, не сломав сервис: перезапуск может стоить раунда.

  4. Автоматизация

    Автомат повторяет эксплойты каждый раунд, отбирает флаги и сдаёт их пачками.

  5. Разбор трафика

    Анализ записей сети превращает чужие приёмы в точечные патчи и ответные действия.

Флаги обновляются каждый раунд, поэтому одно и то же действие приходится повторять снова и снова. Побеждает команда, которая автоматизировала и защиту, и исследование.

Честная игра и судейство

  • Судейская коллегия

    Единые правила для всех команд, протокол каждого раунда, порядок апелляций.

  • Запрещено

    Воздействие на игровую инфраструктуру и сервер жюри, перегрузка сети, любые действия вне полигона, вмешательство в оборудование других команд.

  • Безопасность

    Игра идёт в изолированной сети на полигоне организатора; затрагиваются только игровые серверы команд. Реальные системы и внешние сети не участвуют.

Расписание дня соревнования, 12 декабря

Время по Дубаю (GMT+4)

  1. Церемония открытия

  2. Выдача доступов, открытие сети

  3. Старт игры

  4. Финиш

  5. После финиша

    Разбор и награждение

Частые вопросы о формате

Чем отличается от «обычного» CTF?

«Обычный» CTF — набор независимых задач. Здесь команды играют друг против друга в общей сети, и счёт меняется каждый раунд.

Нужно ли уметь программировать?

Да. Эксплойты, патчи и автоматическая сдача флагов — это код; без него команда не успевает за раундами.

Почему нельзя просто выключить сервис?

Доступность входит в счёт как множитель: закрытый сервис штрафуется так же, как сломанный. Нужно закрыть уязвимость и сохранить работу.

Зачем автоматизация?

Флаги обновляются каждый раунд, поэтому действия нужно повторять по всем соперникам автоматически.

Что важнее — защита или исследование?

Баланс. Сильное исследование не спасёт, если собственные сервисы не работают: их доступность умножает весь результат.

Можно ли играть в одиночку?

Формально да, но пять линий работы одному человеку не закрыть — поэтому дисциплина командная.

Это законно?

Да: игра идёт на полигоне организатора, затрагиваются только игровые серверы команд, а все действия описаны регламентом.

Как принять участие