Что такое Defense CTF?

« Маленькое приключение AvoidAttack »

#1

About Defense CTF

  Defense CTF - один из форматов соревнований Capture The Flag (CTF), где команды выступают в роли защитников и обеспечивают безопасность своих ресурсов от атак со стороны ботов.

  В отличие от классического Attack-Defense, где команды одновременно защищаются и атакуют, в Defense CTF команды сосредоточены исключительно на защите собственной инфраструктуры, а их успех зависит от того, насколько эффективно реализуется защита сервисов

#2

AvoidAttack

  «AvoidAttack Checksystem» - платформа для проведения соревнований в формате Defense CTF, разработанная командой o1d_bu7_go1d

  Основной задачей платформы AvoidAttack является отслеживание прогресса участников по защите сервисов в ходе игры. При этом, сама платформа производит все необходимые проверки в отношении сервисов команд, а также фиксирует результаты, полученные при проверках. Таким образом формируется как общая статистика команд, так и более детальная для каждой отдельной команды.

#3

Vulnboxes

  У каждой команды есть свой виртуальный сервер, который называется vulnbox, где располагаются сервисы. Все команды на старте игры находятся в равных условиях, т.е. на каждом vulnbox расположены исходники сервисов, в которых заранее заложен ряд уязвимостей, одинаковый для всех команд без исключений. Vulnbox может быть на основе любой операционной системы, в зависимости от выбора организаторов, но наиболее часто используется либо Ubuntu, либо Debian.

#4

Services

  В свою очередь, каждый сервис - это определенное приложение, выполняющее определенные функции и работающее по сети. Сервисы могут быть как бинарными, так и на web-основе.

#5

Docker

  Зачастую, оперирование приложениями происходит в рамках Docker. Сделано это для удобства развертывания и устранения различных проблем, например, с зависимостями или совместимостью. Поэтому в текущих реалиях Docker - незаменимая технология. Перед тем, как играть в Attack-Defense или же в Defense CTF, необходимо изучить основы работы с Docker и Docker Compose.

#6

Game architecture

  В наиболее упрощенном варианте игровая архитектура выглядит следующим образом:

Fantom Image

  Игроки получают от организаторов VPN-конфиг для доступа к своему vulnbox по SSH, а также к клиентской части игровой платформы, где игроки могут отслеживать свой прогресс (Scoreboard).

  Общая статистика по всем командам выглядит следующим образом:



Fantom Image

  Далее поговорим об условных обозначениях, которые показаны на скриншоте выше.

#7

Checkers

  Checker - скрипт, который проверяет корректность работы целевого сервиса. В рамках платформы AvoidAttack один скрипт проверять часть функционала того или иного сервиса. Таких скриптов может быть несколько для одного сервиса, количество зависит от общего объема функциональных блоков сервиса.

  Если Checker - скрипт, который проверяет функциональность, имитируя действия пользователя, то со Sploit ситуация ровно противоположная.

#8

Sploits

  Sploit - скрипт, используемый для атаки на уязвимый сервис с целью демонстрации уязвимости и получения несанкционированного доступа к целевому ресурсу. В некоторых отдельных случаях Sploit или Checker может называться Bot.

#9

Status Codes

  Разберемся более детально, что подразумевают под собой статусы от чекеров:

UNKNOWN

Ситуация, когда состояние сервиса неизвестно - обычно перед стартом игры

OK

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

CORRUPT

Cитуация, когда проверяющие скрипты не могут получить данные пользователя, например, невозможно получить данные пользователя в его профиле

MUMBLE

Ситуация, когда часть функционала сервиса работает некорректно, например, не работает регистрация пользователя

DOWN

Ситуация, когда проверяющие скрипты не могу получить доступ к сервису по сети

CHECKER ERROR

Ситуация, когда проверяющие скрипты возвращают внутреннюю ошибку, не связанную с проверкой функциональности сервиса

#10

Monitoring

  Возникает закономерый вопрос: каким образом команде отслеживать атаки на сервисы? Правильно - настроить средство мониторинга на своем vulnbox. На GitHub есть множество проектов с системами мониторинга, нацеленных на игру в формате Attack-Defense, но они могут быть полезными и при Defense CTF

  *Стоит отметить, что представленные ниже системы реагируют на флаги, а не только отслеживают трафик, но AvoidAttack не имеет под собой необходимости работать с флагами:

#11

References

   Attack-Defense для новичков - материал знаменитой команды C4T_BuT_S4D. Настоятельно рекомендуем ознакомиться!

#12

Hall of Fame

   В нашем Зале Славы, можно ознакомиться со списком проведенных нами соревнований!

#13

Developers

   Разработчики: danchous и o1d_bu7_go1d

#14

Socials