
Фреймворк с открытым исходным кодом для проведения соревнований CTF формата Attack/Defense с автоматизированным игровым ботом, выполнением скриптов, VPN-маршрутизацией и управлением облачной инфраструктурой для преподавателей и тренеров.
Это фреймворк, который Shellphish использует для проведения iCTF.
Фреймворк iCTF описан в статье, представленной на семинаре Usenix 3GSE в 2014 году.
Мы выпустили это в надежде, что это позволит преподавателям и тренерам проводить свои собственные A/D CTF. Этот фреймворк бесплатен для коммерческого использования, но поддержка, которую мы можем оказать, ограничена.
Мы планируем выпустить больше технической документации по каждому компоненту в будущем; сейчас вы можете найти инструкцию по созданию игры здесь.
Если у вас есть вопросы, отправьте письмо на [email protected].
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Этот фреймворк всё ещё находится в разработке, и данный релиз следует считать БЕТА-версией. Приветствуются новые pull request'ы и новые issue :)
Это центральная база данных, которая отслеживает состояние игры. Она работает на виртуальной машине Database и предоставляет RESTful API. Обратите внимание, что команды не должны напрямую обращаться к этой базе данных, вместо этого они должны использовать компонент team services.
Gamebot — это компонент, отвечающий за продвижение соревнования. Соревнование делится на тики. В начале каждого тика gamebot решает, какие скрипты должны быть выполнены scriptbot'ом (например, скрипты для установки флагов, извлечения флагов или тестирования сервисов), и записывает расписание в центральную базу данных. Затем он извлекает из базы данных информацию о предыдущем тике (например, отправленные флаги и статус проверок сервисов) и вычисляет очки, которые будут присвоены каждой команде. Новые баллы сохраняются в базе данных, чтобы их можно было отобразить с помощью компонента dashboard.
Scriptbot отвечает за выполнение скриптов, запланированных gamebot'ом. Scriptbot извлекает скрипты, запланированные для выполнения, из центральной базы данных, а затем запускает их. Например, скрипты извлекают флаги, установленные в предыдущем тике, или проверяют, работают ли сервисы и функционируют ли они.
Компонент маршрутизатора отвечает за маршрутизацию трафика между командами на соревновании. Данный компонент реализует сервис OpenVPN. Каждая команда получает виртуальную машину, которая выступает в роли маршрутизатора для команды. Трафик между командами необходимо анонимизировать, чтобы команды не могли отличить трафик, сгенерированный scriptbot'ом, от трафика команд.
Для получения дополнительной информации посетите нашу страницу в вики о проведении классного CTF