Bulba Hackers и RuCTFE 2020
Artyom Kadushko![](/file/ae13a45731b05c647a3bc.jpg)
Всем привет, меня зовут Артём и являюсь капитаном команды Bulba Hackers (Беларусь). Как всем известно, 26 декабря прошло одно из главнейших событий года - RuCTFE 2020. В этой статье я расскажу об опыте, который мы получили и постараюсь объяснить, почему 13 место это очень хорошо. Надеюсь, что это поможет кому-нибудь в организации работы внутри команды.
Примечание: этим постом я не стараюсь никого оскорбить, обидеть или каким-либо образом высказать своё неуважение к организаторам или своим тиммейтам.
Предыстория команды
Самым правильным способом начать подведение итогов будет рассказ о том, как мы пришли в мир CTF'a.
Всё началось с обычного желания попробовать себя в мире соревнований по компьютерной безопасности. ... И моим первым соревнованием стал Кибервызов 2019 года, на котором я смог взять 65 место.
За сентябрь-октябрь я смог собрать первый состав Bulba Hackers: Я, Егор и Стас. Из всех нас троих, опыта в CTF ни у кого не было, но тем не менее, это не помешало нам взять первое место на тренировках от команды C4T-BuT-S4D.
И завершающим соревнованием 2019 года в мире Attack Defence стал RuCTFE 2019, на котором мы смогли взять 8 место:
![](/file/cd9e7855ba01794605e6f.png)
Подготовка к RuCTFE 2020
После этого мероприятия мы приняли решение, что у нас есть силы продолжать в том же духе. Из-за мировой пандемии, RuCTF 2020 отложили на неопределенный срок, следом перенесли (отложили) на неопределенный срок CTF Agat 2020 (чисто белорусское соревнование).
Помимо прокачки опыта мы осознали, что нам нужно увеличить количество людей в команде, потому что в 3 человека решать CTF несколько сложно... Особенно, когда у тебя 7 сервисов. И так мы плавно пришли к идее создания курсов на базе Белорусского Государственного Университета Информатики и Радиоэлектроники.
Курсы получили название "Компьютерная Безопасность: Введение в CTF" и состояли по программе из краткого обзора категорий в соревнованиях Task-Based и отдельном обзоре некоторых моментов в мире Attack Defence. По итогу мы смогли отобрать ~6 человек, у которые было желание и способности заниматься CTF. А по окончанию курса отобрали ещё 4 человека, которые хотели продолжить бы своё обучение в индивидуальном формате.
За время подготовки, мы успели поучаствовать в некоторых соревнованиях, но нашей "вишенкой" на торте стал Students CTF Final 2020:
![](/file/0894ee1cdee94203cc672.png)
Во время мероприятия мы тестировали наших новичков и старались дать им опыт реального участия в Attack Defence.
RuCTFE 2020
Теперь мы подобрались к самой сути написания этого поста.
Перед соревнованием
Я смог договориться, что нам предоставят на время соревнований кабинет, со всем необходимым для удобного участия: интернет, посадочные места, проектор и так далее. Да, это был наш первый опыт очного написания соревнований. Некоторые команды арендуют квартиры для написания соревнований, но мы решили от этого отказаться и воспользоваться всем готовым.
Какие моменты я проверил заранее:
- Убедился, что в кабинете работает всё, что потребуется для соревнований (проектор, кабели, переходники, интернет)
- Заранее "забронировал" кабинет
- Проинструктировал ребят о том, что им потребуется взять (ноутбуки, зарядные устройства, кабели, даже домашний сервер для отображения с проектора)
- Аккаунт для доступа к интернету (у нас используется прокси аккаунт, поэтому это необходимо заранее согласовать для гостей)
Какие моменты доставили трудности во время написания соревнований:
- Пропадал интернет
Всё же я переоценил интернет в университете, поэтому некоторые люди использовали свой мобильный, что доставляло нам неудобства. - Не проконтролировал каждого участника команды
Я заранее предупреждал, что буду ожидать сообщения о том, что человек в пути. Однако... Подушка оказалась коварней и человек уснул ещё на час, опоздав на соревнование, а я позвонил ему за пол часа до начала соревнования (Бывает со всеми, я не обижен, ведь мы смогли вовремя приехать)
![](/file/feaa1fc43bb8e5c74ee17.png)
Во время соревнований
- Это моя ошибка, что я подошёл к соревнованию слишком серьезно и плохо проинструктировал новичков о том, что им придётся работать самостоятельно (и не сильно ждать от меня помощи и то, что я буду подходить и спрашивать "как дела").
По итогу мы расставили ребят на сервисы и некоторые люди сидели почти всё соревнование над сервисами, которые даже топовые команды открывали только в конце. По итогу, впечатление ребят явно не оставляет самого лучшего об организации работы внутри команды.
- Проблемы с Cloud Host.
По опыту RuCTFE 2019, мы думали, что организаторы предоставляют хостинг достаточный для хоста сервисов без каких затруднений. По итогу мы столкнулись с тем, что ресурсов Cloud-Hosting нам не хватило даже для чистого хостинга задач. Не говоря уже о Packmate и прочих элементов внутренней инфраструктуры.
Хотя, если бы мы знали о подобным трудностях - мы бы арендовали сервак на Я. Облаке:
![](/file/336d5a03789ec79c8eb92.png)
- User Agent чекера.
Внезапно, это стало очень большим моментом, который вызвал некоторое непонимание работы инфраструктуры. Если кратко, то все чекеры писались на python-requests/2.24.0 и можно было успешно отфильтровать. К сожалению, никто не додумался сфотографировать меня в тот момент, когда я ребятам объяснял что можно (на самом деле нельзя) фильтровать по юзер агенту.
UPD (из чатика CBS A/D Trainings):
![](/file/94504d7164e9c91602a0b.png)
- Сбои инфраструктуры
И я сейчас говорю не только об сбоях Packmate. Внутри команды проводились некоторые разработки (о которых я не могу сказать) и эти разработки мы не успели протестировать к соревнованию, из-за чего пришлось дописывать всё прямо на ходу. Из-за этого, развертка инфры затянулась на час, т.е. объективно я потерял пол часа времени, которые я мог потратить на изучение сервиса и написания сплоитов.
- Плохой инструктаж
В один момент, мне пришло сообщение о том, что мы дудосим одну из команд (я очень сожалею о том, что мы дудосили её), хотя вроде бы никто этого не делал.... После тщательного анализа мы поняли, что один из новичков написал сплоит, который дудосил одну из команд. Конечно, мы очень быстро прояснили этот момент, однако я всё равно чувствую себя виноватым:
![](/file/c1586c1e41985c63abbed.png)
Общие впечатления о RuCTFE 2020 и почему 13 место лучше 8?
Хоть соревнование (на мой взгляд) прошло не сильно успешно (не только по вине организаторов, но и из-за плохой организации работы внутри команды с моей стороны), однако я считаю, что взять 13 место намного лучше, чем взять 8 место в прошлом году.
Взяв восьмое место мы испытывали следующие моменты:
- Психологическое и физическое истощение
- "Гонка" внутри команды и ощущение того, что ты опаздываешь
- Малый опыт в CTF
Взяв 13 место, мы ощутили следующие моменты:
- Радость за наших новичков
- Работа доставила больше комфорта, ведь теперь тебя окружают люди, которые понимают о чём ты говоришь
- Отсутствие задержек во время общения (которые мы испытывали при игре в дискорде)
- Ощущение, что за год с прошедших соревнований мы существенно выросли
И общее впечатление:
- Ситуация с Cloud-Hosting немного расстроила (ведь с открытыми 4 сервисами мы могли бы быть выше в рейтинге), к тому же, это минус нервы во время соревнования
- Сервисы были хорошие и они максимально были приближены к тематике (особенно Free Flags)
- Плохая организация работа внутри команды (в том числе проблемы с внутренними разработками), однако вместе с этим, это задаёт новый вектор для развития
- Ждём RuCTF 2021 (И 2020 =))
- Спасибо команде, которая смогла сегодня собраться
- Спасибо ребятам, благодаря которым CTF движение (не только в Беларуси) набирает обороты (open-source разработчики, разработчики курсов и материалов, личности, которые продвигают CTF с точки зрения культуры)
Что будет дальше с Bulba Hackers?
Сейчас команда уйдет на заслуженный отдых (примерно полтора-2 месяца). После отдыха - готовиться дальше и прокачивать новое поколение. Необходимо сдать зимнюю сессию, привести в норму внутреннюю инфраструктуру, обрисовать план дальнейших индивидуальных занятий для ребят и двигаться вперёд.
Отдельным пунктом стоит "сбор" материалов, за время BSUIR CTF CAMP.
Собрать все материалы в одном месте и сделать ссылки для тех, кто хочет начать своё обучение CTF.
А после отдыха - с новыми силами в бой.
Если вы из Беларуси, вам нравится CTF, вы хотите им заниматься и вы прикладываете усилия - можете связаться с нами посредством моего телеграмма: @herrlestrate
Подписывайтесь на телеграмм канал @ctfby, там мы будем выкладывать актуальные новости о CTF в Беларуси (а ещё там можно будет найти ссылки на материалы).
![](/file/aa02f46bab415c96b5a20.png)
![](/file/4f38ac155ee82b037b764.jpg)