О соревновании:
На протяжении вот уже 5 лет завершающим событием каждого зимнего CTF-сезона является Кубок CTF России — масштабный турнир по информационной безопасности, на который приглашаются студенческие и школьные команды, а также команды колледжей и СПО. Масштабный CTF-турнир ежегодно дает возможность командам со всей страны посоревноваться за главный приз — кубок CTF России!
За стратегическую подготовку к Кубку отвечает Оргкомитет, возглавляемый Председателем Совета Директоров ООО «Орион» Виктором Пяриным. Состав Оргкомитета: председатель Координационного совета, Всероссийское общественное движение наставников детей и молодёжи «Наставники России» Дмитрий Бархатов, руководитель перспективных проектов в области информационной безопасности Кластер информационных технологий | ФОНД СКОЛКОВО Оксана Ульянинкова, ВРИО начальника Департамента информационных технологий, связи и защиты информации, МВД России Юрий Войнов, управляющий ООО Servicepipe Артем Избаенков, заместитель руководителя Департамента информационных технологий города Москвы Александр Горбатько, начальник управления, ФСТЭК России Дмитрий Шевцов, директор Департамента обеспечения кибербезопасности, Министерство цифрового развития, связи и массовых коммуникаций Российской Федераци Владимир Бенгин, управляющий директор по информационной безопасности ПАО АФК «Система» Александр Будников, директор по направлению «Информационная безопасность» АНО «Цифровая экономика» Николай Зубарев, Председатель правления МРОО АРСИБ Виктор Минин, генеральный директор «Лавина Пульс» Андрей Масалович и директор международных соревнований RuCTF Александр Алексеев.
Подготовкой к мероприятию занималась проектная команда, в которую вошли сотрудники МРОО АРСИБ и также разработчики из ведущих российских CTF команд: kks, Хакердом, C4T BuT S4D.
География: Всего на соревнование зарегистрировалось более 200 команд со всей России, больше 100 из которых имели хотя бы один решенный таск на момент подведения итогов.
Формат турнира этого года:
В этом году Кубок состоял из 3 этапов: он-лайн Task-Based на сутки, офф-лайн полуфинал в формате Attack-Defense и финал в смешанном формате. К участию в первом этапе допускались команды в любом составе (можно было сыграть в команде, состоящей из школьников и студентов одновременно, чего не допускалось в предыдущие годы), но вне зачета. По итогу в полуфинал проходило 10 команд.
В полуфинале участники соревновались в формате Classic от команды Хакердом, за 8 часов нужно было решить 3 сервиса. В финал выходило 4 команды, а сам финал делился на две части: сначала нужно было решить 2 сервиса в Attack-Defense, а по его итогам, в суперфинале встречались две самых сильных команды. Суперфинал состоял из баттла в формате Task-Based: участники каждой команды заранее выбирали кто из игроков отправляется решать какую категорию: 1 пара игроков решала категорию reverse, 2 пара — PWN, 3 — web. Далее шли OSINT, Crypto и Misc. 1 игрок от команды — 1 таск. Команда, которая первая закрывала таск, получала балл. Игрок, который решал таск быстрее мог помогать сокомандникам с их тасками, а проигравший покидал игру.
Attack-Defense
Всего команда Хакердом подготовила для V Кубка 5 сервисов. За описание концепций сервисов спасибо тимлиду A/D Роману Быкову.
1. ATM Machine
Сервис-банкомат, работал по недобинарному протоколу поверх TCP, написан на Java. Функционал был больше про банкинг: транзакции, счета и тому подобное.
В нем было 2 около криптографических уязвимости:
- Padding oracle
- Предсказуемые ключи шифрования.
2. CTF Land
Сервис-развлекательный парк. Написан на C#. Работал по HTTP протоколу. Можно создавать свои парки развлечений, свои аттракционы, и даже генерировать на них билеты. Также пара уязвимостей:
- SSTI, атакуются User login & почта
- Логическая уязвимость, позволяющая красть билеты на аттракционы в другие парки, строя при этом собственные.
3. Resoccessor aka RESOurce aCCESSOR
Написан на Go. Работает по HTTP. Выдан участникам скомпилированным. Сервис предоставлял возможность регистрироваться, выдавать токены на ресурсы, загружать сами ресурсы и распределять доступы между пользователями к ресурсам. Тут была только одна уязвимость, но какая!
- Парсинг json-схем происходил с помощью буфера фиксированного размера, который был уязвим.
Подвох уязвимости в том, что для облегчения взлома на машинах отключили ASLR, что не является стандартным условием при решении подобных задач.
4. 5G Shop
Сервис-магазин, написанный на C++. Работал поверх HTTP. Выдавался участникам скомпилированным. Данные хранились в postgres. По задумке автора, в этом сервисе продавали телефоны, ловящие 5G. Что касается уязвимостей:
- RCE при правильной SQL-инъекции плагина для Postgres;
- Сама по себе SQL-инъекция для энумерации флагов;
- Самописный генератор кук, который работает предсказуемо. Генератор основан на линейном конгруэнтном методе, который легко взламывается.
5. Trash factory
Фабрика по переработке мусора. Написан на GO, работал поверх TCP на самопальном бинарном протоколе. Выдан участникам с исходниками. Уязвимостей 4:
- Path traversal до контейнеров
- предсказуемые токены пользователя
- предсказуемые токены администратора
- опечатка в получении ключа сессий из переменных окружения
Карта города Дружба из легенды турнира
Концепция:
Кубок славится тем, что каждый год организаторы готовят специальную легенду: тематику соревнования, к которой привязываются задания и эстетика мероприятия. В 2017 году тематикой соревнования были роботы, в 2018 - апокалипсис, в 2019 году - киберпанк, а в 2020 - Алиса в Стране чудес. В этом году организаторы уделили большое внимание легенде соревнования и визуальной сопровождающей: темой легенды стали «городские истории» - участникам вместе с главными героями легенды, Кибермышью и Сберкотом, предстояло разобраться, кто стоит за чередой поломок и инцидентов в маленьком городе Дружба.
Особенностью этого года стало визуальное сопровождение: специально для финала и полуфинала была разработана анимированная карта города, привязанная к состоянию сервисов каждой команды. Если какой-то из сервисов команд работал стабильно, подвергался атаке или не работал вообще - привязанная к сервису локация карты отражала это в анимации. Например, при поломке сервиса с банкоматом, банкомат на карте города начинал хаотично «выплевывать» деньги. Такой вариант анимации скорборда для Attack-Defense до этого не применялся ни на одном из соревнований.
фрагменты визуальной концепции соревнования
За ходом соревнования можно было следить в прямом эфире, оба дня с площадки велась трансляция. Помимо новостей с соревнования, в трансляции есть интервью с разработчиками контеста, игроками и членами жюри.
Итоги:
11 декабря состоялся полуфинал, а 12 декабря завершился V Кубок CTF России.
В полуфинал вышло 10 команд, а в финал прошло 4. Всего в первый день на площадке присутствовало около 70 игроков, а во второй 27.
Четверка финалистов:
1. C4T BuT S4D, НИУ ВШЭ, НИЯУ МИФИ, Университет ИТМО, ТГУ;
2. s3qu3nc3, ГАУ КО ОО ШИЛИ, Калининград,АНО ОШ ЦПМ, Москва, СУНЦ УРФУ, Екатеринбург, МАОУ СОШ №4 г. Первоуральск, МАОУ Лицей №8 имени Н.Н. Рукавишникова, Томск, Лицей 486, Санкт-Петербург;**
3. SPRUSH, НИЯУ МИФИ, Москва;
4. FaKappa, Университет ИТМО, Санкт-Петербург.
В супер-финале в столкнулись команды FaKappa и C4T BuT S4D. Со счетом 5:2 победила команда C4T BuT S4D, а команда FaKappa второй год подряд взяла специальную номинацию лучшей академической команды и получила призы в номинации от Сбера «Первый таск на финале». Поздравляем победителей!
Оценка контеста:
В целом, турнир этого года был хорошо принят сообществом. Согласно нашему опросу, V Кубок получил хорошую оценку.
Репозиторий A/D полуфинала: https://github.com/HackerDom/ctfcup-2021-AD
Репозиторий A/D финала: https://github.com/HackerDom/ctfcup-2021-finals
Репозиторий финального баттла: https://github.com/acisoru/ctfcup21_battle
Сайт соревнования: https://ctfcup.ru/
Благодарности и партнеры:
Команда организаторов Кубка благодарит за помощь в организации мероприятия членов жюри и партнеров.
Генеральный партнер: Сбер;
Технологические партнеры: МТС, ServicePipe;
Партнеры призового фонда: Координационный центр доменов .RU/.РФ, НТЦ «Система», Cisco, Kaspersky;
Главный информационный партнер: Хакер
При поддержке: Минцифры России, ФСТЭК России, АФК «Система», ДИТ Москвы, ДИТСиЗИ МВД России, Armada Media Group, Банк России, Совет Безопасности РФ, АНО «Цифровая Экономика», НАМИБ Фонд Сколково, Наставники России, Международная академия связи, Борей, CTF News.
Команда организаторов Кубка благодарит за помощь в организации мероприятия членов жюри и партнеров.
Генеральный партнер: Сбер;
Технологические партнеры: МТС, ServicePipe;
Партнеры призового фонда: Координационный центр доменов .RU/.РФ, НТЦ «Система», Cisco, Kaspersky;
Главный информационный партнер: Хакер
При поддержке: Минцифры России, ФСТЭК России, АФК «Система», ДИТ Москвы, ДИТСиЗИ МВД России, Armada Media Group, Банк России, Совет Безопасности РФ, АНО «Цифровая Экономика», НАМИБ Фонд Сколково, Наставники России, Международная академия связи, Борей, CTF News.