В Омске вчера провели соревнование формата attack-defense — OmCTF.Lab-2018 в экспериментальном формате (в режиме «чёрного ящика»). Событие традиционно проходило в рамках III Международного ИТ-Форума. Представляем ёмкий и познавательный отчет со стороны организаторов — клуба исследователей OmCTF.
Прежде всего, нужно рассказать про план соревнования. Тут стоит отметить, что подготовка к OmCTF.Lab-2018 шла с сентября 2017 года в рамках проведения CTF-занятий OmCTF. Каждой команде на этих занятиях необходимо было разработать сервис с заложенными самописными уязвимостями согласно настоящему ТЗ. После разработки сервис передается другой команде в виде готовой виртуальной машины для развертывания.
Соревнования включают в себя следующие этапы:
1. В начале соревнований каждая команда представляла свой разработанный сервис (описание основной идеи и легенды сервиса, какие функции реализованы, согласно представленному заранее ТЗ, какие новые технологии узнали, с какими трудностями столкнулись).
2. Затем проводился анализ полученного сервиса, разработанного на предмет наличия уязвимостей с целью их устранения.
3. Следом шло исследование на предмет наличия уязвимостей в других сервисах в режиме «черного ящика».
4. И, наконец, представление результатов анализа различных типов уязвимостей в большом многообразии разработанных сервисах.
При оценке использовались следующие критерии:
— степень соответствия сервиса заложенным основным и дополнительным требованиям в ТЗ
— статус функционирования полученного сервиса (запуск в работу и обеспечение его функционирования)
— количество и сложность выявленных уязвимостей в полученном и в других запущенных сервисах в CTF-инфраструктуре, а также наличие разработанной программы по автоматизации возможности захвата и сдачи флага в систему жюри.
Обязательными к реализации были следующие возможности игрового сервиса:
— наличие характеристик для прокачки игрового персонажа (как минимум уровень);
— наличие инвентаря у персонажа;
наличие ботов с некоторым игровым ИИ;
— API для управления ботами (с расчетом на управление сторонним ИИ)
сервис должен иметь не менее 3 уязвимостей
— на каждую разработанную уязвимость требуется сделать эксплоит для проверки ее эксплуатабельности
— сервис должен предоставлять API для чекерной системы.
Среди дополнительных требований — наличие внутриигрового чата и рынков игрового инвентаря, использование systemd для запуска и работы с сервисом, утилита управления сервисом. Контейнеризация сервиса при помощи lxc или docker и соблюдение best-practices тоже учитывались. А также — регулярный бэкап конфигурации и данных сервиса с возможностью легкого и понятного восстановления, создание архитектуры для выдерживания большой нагрузки или минимизации времени ответа, понятное и информативное логирование, ну и, пожалуй, устойчивость к потере данных.
Результаты OmCTF.Lab-2018
1 — rwx (СибАДИ)
2 — Omaviat (Омский авиационный колледж)
3 — 0x1DEA (ОмГУПС)
4 — HawkSquad (ОмГТУ)
5 — Melkie (ОмГУ)
6 — R136a1 (ОмГТУ)
Была также учреждена отдельная номинация «За лучший игровой сервис», которая досталась команде rwx (СибАДИ).