view

Результаты отборочного тура IV Кубка CTF России

На прошедших выходных 137 команд соревновались за право выхода в первый этап четвертого по счету Кубка CTF России. Рассказываем, чему радовались любители бинарщины, кто победил, а кто прошёл, и заодно вспомним все вехи легендарности мероприятия.

Экскурс в историю



Кубок CTF России — ежегодный турнир для победителей и разработчиков региональных академических соревнований. С 2017 по 2019 год проходил в Сколково в рамках Skolkovo CyberDay Conference.

Первый день мероприятия проходил в тасковом формате, во второй — верхняя часть турнирной сетки в начале дня играла в Attack/Defense, нижняя — в модифицированную версию task-based. Далее, 2 или 4 команды (в зависимости от года проведения) соревновались на этапе Battle — именно там и определялся обладатель Кубка.

2017 год


Легенда мероприятия была связана с роботами. Тасковый этап запомнился заданиями на сложную математическую криптографию, A/D — наличием биткоин-фермы, а финальные турниры — боем роботов:

Attack-defense тур был построен на симуляции биткоин-сети. Командам предстояло майнить криптовплюту под названием CTF-коин. Добывать свою криптовалюту участникам предстояло путем увеличения мощности. Изначально командам был предоставлен специальный майнер, у которого заранее была занижена производительность и работал он на 1% от максимально теоретической мощности. Поэтому нужно было разобраться в бинарных уязвимостях, которые там заложены, и оптимизировать код.


У каждой из прошедших в финал четырёх команд есть по собственному роботу с неполным интерфейсом управления. Им нужно провести анализ протокола общения с роботом, чтобы получить над ним контроль — например, пошевелить роботизированной лапкой.


В супер-баттле Кубка CTF была продолжена тематика роботов, заявленная в финале. Оборудование на каждую из роботизированных «рук» усилилось — например, у неё появилась пила, которая будет крушить компьютер соперника.

UPD: полагаться только на отзывы из официальных источников — дело весьма однобокое, поэтому добавляем анонимный комментарий одного из участников событий:

Типа таски: ну средненькие.
Матеша была, сложная, но не разнообразная.
Привели кучу школьников на кубок и дали дофига тасков на FFT.
A/D можно считать, что не было. Серванты помогали поднимать жюрейку во время игры. Правильные флаги не принимались, жюри говорило, что они неправильные. Майнер это просто кек. Все уязвимости, кроме одной (открытого порта монги), были неэксплуатируемы, потому что сервис был написан под новую ноду, а запущен под старой (под armhf32 новую не завезли). Чекер возвращал ОК, если сервис по HTTP просто отвечал, поэтому замена сервиса на echo "Hello world" работала (и так делали). Среди всех честных команд игра была "урони сервис соперника перед приходом чекера"

Скорборд с Attack/Defense

Победителем первого Кубка стала команда Хакердом, а более подробную информацию о том времени, наверное, можно найти на трансляции.

2018 год


Официально, легендой второго Кубка был апокалипсис. Но в реальности тематике соответствовал лишь финал и общая атмосфера.




Самыми запоминающимися вещами того года стали фейковые таски — перед первым этапом всем командам раздали токены, с помощью которых участники должны были проверять подпись каждого задания. Команды, которые не поняли подсказку в одном из тасков, рисковали несколько часов прорешать сложное задание и получить за него 0 баллов.

Остальные этапы были ничем не примечательны: A/D — классический и ни капли не легендарный, флаграш по-прежнему зиял дырами в жюрейке, финал представлял собой пентест с крафтовой визуализацией. И только трансляция запомнилась слитыми флагами.

Обладателем второго кубка стала команда VoidHack, а все 11 часов трансляции того периода можно найти на ютубе.

2019 год


В прошлом году в чат вошла не только тематика киберпанка, но и обилие бинарных тасков — команда, которая первой решила бы 5 заданий категорий pwn, получала мгновенную проходку в финал. Но, увы, задумке не суждено было сбыться, и пришлось использовать дополнительный сценарий — в финал прошла команда Kappa, став лидером первого тура.

Команды, которые не смогли выйти в A/D, соревновались на этапе Chance — ещё одном нововведении прошлого года. Команда единовременно могла открыть только один таск, и либо отказаться от задания, уменьшив свои шансы на победу, либо начать его решать. Название этапа было выбрано не случайно — победившая команда получала шанс на выход в финал.


Сам финал был смесью пентеста, attack-defense и тасков на реверс и эксплуатацию бинарных уязвимостей — каждый из этих элементов отвечал за определенную ресурсность: свет, электричество и нефть. По итогам финала победителем третьего Кубка стала команда [SPbCTF] Kappa.

Трансляция — https://youtu.be/WoyGdxNbWp0

А что теперь


Изменение формата


В этом году, как и большинство вещей в этом мире, Кубок стал жертвой ковидных проделок — очных соревнований почти не было, найти 20 команд победителей и разработчиков стало невозможно. Да и собирать их в одном месте было бы  проблематично — в Москве действует ограничение на количество участников очных мероприятий.

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

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

Отборочный тур


Начнем с сухой статистики: всего было заявлено 137 команд, которые пытались решить 24 задания 6 категорий: реверс, pwn, misc, форензика, криптография и joy.

Лирическое отступление: мнения касательно качества контеста полярно разделились не только среди участвующих команд, но даже внутри CBS. Мы пришли к весьма своеобразному выводу: если в глубине души вы не промышляете организацией соревнований, то на неявные косяки других организаторов, вам, в принципе, плевать — дайте только таски нормальные. А всё остальное — издержки профдеформации.

Объективно: 6 категорий на одно соревнование — это довольно неплохо. Бинарных тасков было всего 11, из которых без решения осталось лишь одно задание на реверс. Другое дело — качество заданий: из 6 реверс-тасков 2 были на брут.

 Ещё одним неприятным моментом стала формула подсчёта очков: максимальная стоимость тасков независимо от их сложности составляла всего лишь 100 баллов, которые чрезмерно быстро обесценивались до 10. Вероятно, такая формула имела бы право на существование при меньшем количестве команд, но явно не на открытом соревновании.

Подвело и общее оформление жюрейки: таски были поделены по сложности, а не по категориям, и чтобы найти задание необходимой категории, приходилось открывать всё подряд. Главная страница не содержала в себе ничего: ни следов дизайнера, ни намёка на правила. В этом году легендой мероприятия является «Алиса в стране чудес» — и, увы, понять это можно лишь по сайту Кубка: ни один таск не имел тематической легенды.

И раз уж упомянули правила и сайт: в документах соревнования по-прежнему загружены только общее положение мероприятия и регламент отборочного тура. На носу уже следующий этап, и хотелось бы ознакомиться с его регламентом.

На этой ноте мы оставляем все права на слово «токсик» Бритни Спирс и переходим к приятному: к результатам.

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


А согласно квотам, на следующий этап проходят:

1. C4T BuT S4D
2. Импактный SUSlo.PAS
3. ♿️🅵🅰️🅺🅰️🅿️🅿️🅰️♿️
4. Punk Souls
5. SPRUSH
6. Red Cadets
7. SFT0
8. Любители поиграть за ИТМО
9. [SPbCTF] eltech
10. two lonely wetox
11. ONO
12. N0N@me13
13. Lunary
14. The Invisible Borsch
15. Команда Лучкиных Вячеславов
16. CatchFM
17. 5f3du_0v3rfl0w
18. Exodus
19. ИН0Ш4П07ЯН3
20. P1V0

Тасковый этап состоится 28 ноября, с 12:00 до 22:00. Не переключайтесь.

Результаты