Кратко о событии
Уже второй год, весной, мы проводим соревнования по информационной безопасности SibirCTF при поддержки Томского государственного университета систем управления и радиоэлектроники (ТУСУР), Администрации Томской области, межрегиональной общественной организации «АРСИБ», Сибирского регионального отделения учебно-методического объединения (СибРОУМО) вузов России по образованию в области информационной безопасности.
Соревнования проводились с 22 по 23 мая в рамках мероприятий Форума молодых ученых U-NOVUS – 2015. Формат игры стал уже традиционный Attack-Defense. В этом году участвовало 14 команд из разных городов СФО: Новосибирск, Омск, Красноярск, Барнаул, Томск. К нам даже хотели приехать команды из Самары и Дальнего Востока, но у них почему-то не получилось. Впрочем, конкуренция была и так высокая.
Организация соревнований
Техническую часть соревнований уже второй год подряд взяла на себя команда keva. Команда состоит в основном из студентов и выпускников ТУСУРа. За создание сервисов, организацию и настройку сети, настройку жюрейной системы, а также другие технические вопросы отвечали 10 человек.
Вся работа началась за 3 месяца до проведения мероприятия. Было принято решение использовать жюрейную систему Екатеринбургской команды HackerDom (после проведения соревнования было принято решение ее больше не использовать). Каждой команде выдавался доступ к виртуальной машине, на которой были запущены игровые сервисы. Жюрейная система также была запущена на виртуальной машине.
Оборудование
Понадобилось много оборудования. Но желание оптимизировать бюджет дало свои плоды. В итоге обошлись одним сервером для виртуальных машин (в прошлом году их было 2: игровой и резервный). Конфигурация серверов такова: 2 четырехядерных Xeon, 64 Гб ОЗУ, RAID массив на 8 Тб. В качестве головного маршрутизатора использовался Mikrotik RB1100X2AH. Агрегирующий коммутатор — Mikrotik серии CloudRouter Switch. В качестве коммутаторов доступа — россыпь различных D-link и 3Com. В прошлом году все коммутаторы и маршрутизаторы были Cisco (в этом году мы поддержали программу импортозамещения).
Сервисы
Основу любых соревнований CTF Attack-Defense составляют сервисы. Их качество, оригинальность во много определяют успех соревнований.
Подготовку сервисов мы начали за 3 месяца до старта. Нам хотелось сделать сервисы легкие в понимании (ведь уровень команд разный), но и достаточно сложные в нахождении и исправлении всех уязвимостей.
В итоге было принято решение разработать 4 сервиса: CryChat, O'Foody, CTFGram, EasyAs. Далее подробно о каждом из них.
CryChat
Сервис написан на языке PHP. Хотелось создать анонимный чат для двух пользователей для отсылки друг другу сообщений и файлов. Что актуально на сегодняшний день. Видео разбора сервиса:
O'Foody
Сервис написан на языке Perl. В сервисе присутствовало 4 уязвимости. Perl был выбран из-за высокой скорости разработки, а также из-за желание показать участникам, что на этом языке можно писать красивый код. В качестве БД использовался PostgreSQL. Видео разбора сервиса:
CTFGram
Сервис написан на языке Javascript. Основная идея сервиса аналог Instagram-a. Можно было регистрироваться, загружать свои фотографии, ставить лайки. Видео разбора сервиса:
EasyAs
Сервис написан на языке Python. Этот сервис предполагался как начальный и самый простой. Если вы посмотрите код, то поймете почему. Видео разбора сервиса:
Видео
Ролик от наших партнеров из АРСИБ:
Результаты
Результаты выглядят следующим образом:
- SuSlo.PAS
- Failers
- FTS
- Life
- Mustang
- OMAVIAT
- Sharlike
- SibirTSU
- Zanyato
- TIO
- Luck3rz
- Shikata ga nai
- Hell ZIP
- n57u n00bz
Команды Mustang и Shikata ga nai участвовали вне зачета.
SibirCTF 2016
В следующем году мы хотим многое сделать, у нас куча идей, новые форматы, приближенные к реальным ситуациям. Если у Вас есть какие-то предложения, то мы будем рады выслушать их.
Ждем вас в следующем году.
Ссылка на репозиторий: SibirCTF
Отдельное спасибо хотелось бы сказать АРСИБ за предоставленные фотографии.
P.S. Хотелось бы услышать мнение ХабраСообщества о сервисах, а также услышать впечатления от участников соревнования.
Комментарии (13)
axilirator
24.07.2015 18:18Небольшое дополнение от участников. Начну с критики.
1) Изначально не был установлен формат флагов. Сразу после взлома сервиса CryChat мы попытались отправить их на сервер жюри. Результат: «Incorrect flag». Спустя час или больше длина флагов изменилась, и сервис приема флагов заработал. За 3 месяца Вы не смогли настроить сервис сдачи флагов?
2) Согласно правилам, соревнования длятся около 8 часов и подразумевают наличие постоянно работающего скорборда. Однако, данное чудо заработало только к концу соревнований, а затем вообще ни с того ни с сего сломалось. :(
3) Насколько правильно работали чекеры сервисов? После исправления уязвимостей в двух сервисах сервера нашей команды, мы занимались анализом оставшихся, а также атакой на серверы соперников. Как только заработал скорборд, оба сервиса светились зеленым цветом, что означало корректное их функционирование и отсутствие уязвимостей. После падения скорборда и его чудесного возвращения в аптайм два исправленных нами сервиса и еще один нетронутый нами сервис светились как «Unavailable». В результате чего мы потеряли возможность сдачи флагов. Не смотря на демонстрацию аптайма и корректной функциональности сервисов организаторам соревнований с нашей стороны, мы активно теряли позиции на скорборде.
Из понравившегося: очень вкусно кормили, спасибо!DarkByte
24.07.2015 18:39+1Судя по статье, за 3 месяца до начала сервисы только начали писать, судя по собственному опыту проведения регионального CTF, заканчивали в последние минуты до начала игры, а закончили к середине игры. Помнится как то закончил писать свой сервис ещё за месяц до начала, локально всё протестировал и считал что был готов, но собрать готовы образ со всеми сервисами удалось только в последнюю ночь, и вдруг оказалось, что у сервиса различное поведение на х86 и 64 архитектурах, в итоге исправлял сервис вместе со всеми :)
Proger10
24.07.2015 19:52Как только заработал скорборд, оба сервиса светились зеленым цветом, что означало корректное их функционирование и отсутствие уязвимостей
Неа, вот тут вот неа. Уязвимости чекер не проверяет.
Вообще то, что у других сервисы работали означает, что что-то делалось не так. Насколько помню проблемы у чекера были с easyas и с периодическим падением. А так работал более менее.shipko Автор
24.07.2015 22:52Да, например ситуация с сервисом CTFgram оставалась загадкой до конца соревнований.
А неработоспособность сервиса EasyAs компенсировалась наличием в ней критической уязвимости, которую многие команды эксплуатировали успешно.
Как помнится, одной команде залили 13 ключей для доступа.
Так что я считаю, что сервисы были неплохие.
Proger10
25.07.2015 17:53Есть такой вопрос к организаторам: во время открытия мероприятия говорилось что якобы победитель соревнования также едет на RuCTF без прохождения квалсов (что особенно актуально, если учесть что вместо них вроде опять будет RuCTFE =) ). Актуально?
yegreS
а можно подробнее чем не понравилась система HackerDom? Я так понимаю команды только студенческие? Как происходил отбор команд?
Nostr
Не имею отношения ни к организаторам SibirCTF ни к участникам, но могу высказать свое мнение по использованию жюрейки хакердома на региональных соревнованиях.
Дело в том, что формат начисления баллов через SLA, который дает огоньку на крупных турнирах вроде RuCTFE, не очень себя показывает на маленьких турнирах (порядка 10 команд) и особенно с командами новичками.
Проблемы динамики набора баллов и обнулений для команд с низким уровнем подготовки приводят к тому, что они «не понимают что происходит». Старая схема с attack+defence в этом контексте более применима.
Proger10
Падала она периодически. У меня есть фотка на фоне «упавших у всех сервисов». На самом деле просто чекер очередной раз сдох.
Команды были студенческие, да.
shipko Автор
Система не падала, были проблемы с работой сервисов (как я уже писал, не было никакой документации по созданию сервисов), для их отладки нам приходилось их временами перезагружать.
shipko Автор
Система устанавливается очень долго. В процессе запуска у нас были большие проблемы с запуском скорборда (требовались какие-то непонятные модули, которые установились с помощью танца с бубном)
Не понравилось, что вся информация заносилась руками через текстовые файлы. У нас есть API и front-end для нее, мы хотели бы запускать систему, загружать данные именно через эту связку.
Ну и напоследок нет никакой документации с ней (что очень критично, если нужно быстро развернуться).
Команды были студенческие, как помню, хотя к нам хотели приехать школьники из Новосибирска.
Отбора как такового не было. Из-за этого количество команд изначально было неизвестно. В следующем году планируется отбор.
yegreS
а не думали приглашать более-мение известные команды?
shipko Автор
Если участники команды считают, что уровень соревнований будет приемлем, то они сами подадут заявку.
Наша задача не приглашение известных команд, а объединение участников (начинающих и опытных), обмен опытом, а в целом, развитие CTF в Сибири и на Дальнем Востоке.