#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
В наиболее упрощенном варианте игровая архитектура выглядит следующим образом:
Игроки получают от организаторов VPN-конфиг для доступа к своему vulnbox по SSH, а также к клиентской части игровой платформы, где игроки могут отслеживать свой прогресс (Scoreboard).
Общая статистика по всем командам выглядит следующим образом:
Далее поговорим об условных обозначениях, которые показаны на скриншоте выше.
#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