Всероссийские открытые межвузовские соревнования по защите информации RuCTF

Отчет по поездке

Каждый год, вот уже в течении 11 лет проходят всероссийские открытые межвузовские соревнования по защите информации RuCTF.

Идея соревнований в том, что каждой команде выдаются идентичные серверы с набором уязвимых сервисов, на которые организаторы периодически посылает приватную информацию — флаги. Результатом правильного решения сервиса являются «флаги» (специально сформированный правильный ответ в формате): /^[A-Z0-9]{31}=$/ (набор цифр и букв в верхнем регистре). Задача каждой команды заключается в том, чтобы найти уязвимости, устранить их на своем сервере и воспользоваться ими для получения флагов у соперников.

В качестве отборочного этапа RuCTF выполняют международные соревнования RuCTFE. Они прошли 12 ноября, в ходе которых участие приняли более 400 команд со всего мира.

Наша команда знала 45 место. По правилам соревнований по второй тур проходят первые 15 российских команд. Среди российских команд мы занимали 16 место, а значит не проходили в очный тур соревнований. Но с течением обстоятельств, за неделю до соревнований одна из команд отказалась ехать и нам предложили занять их место. Для нас всех это было очень неожиданно, мы небыли готовы к такому повороту событий, времени на организацию поездки оставалось очень мало, не говоря уже о подготовке к самим соревнованиям. Первым делом мы с капитаном команды решили сходить к директору института, чтобы заручиться поддержкой со стороны университета. Мы не рассчитывали на положительный результат, но директор института Галкин А.А. со своей стороны приложил все усилия, чтобы наша поездка состоялась. В ходе оперативного взаимодействия, нашей команде были выделены деньги на организацию поездки, а именно проезд до города Екатеринбурга и обратно.

В связи с небольшим количеством времени всю команду собрать не удалось, всего поехало 6 человек. Путь до Екатеринбурга не близкий, от Владимира ехали ровно сутки. После прибытия сразу отправились заселяться. Нам крупно повезло! Проживание нам предоставила Ассоциация руководителей служб информационной безопасности (АРСИБ), в частности Председатель правления АРСИБ Минин В.В. 

14 апреля, первый день начался с регистрации. Тут каждый участник получал индивидуальный набор, в который входили: футболка, бейджик, стикеры и многое другое. Сразу после этого мы направились на церемонию открытия. Больше всего нас поразил уровень организации и глобальность мероприятия (финал RuCTF как-никак!). Большинство выступающих дублировало свою речь на английском языке, чтобы напутствия и пожелания смогли получить абсолютно все команды, включая и иностранных гостей.

После открытия началась серия конференций. Тут снова каждое выступление переводилось на английский язык, так что все сидящие в зале, в том числе и зарубежные гости, могли активно обсуждать поставленные проблемы. Помимо русскоговорящих выступающих были приглашены и иностранные исследователи, от чего ощущение масштабности данного мероприятия только росло. Конференции сопровождалась как грамотно поставленной речью, так и качественной презентацией, что визуально помогало гораздо лучше усвоить материал. Особенно хочется отметить атмосферу, которая царила в аудитории. Докладчики не были скованны каким-либо регламентом и вели себя непринужденно, из-за чего поддерживалась дружественная беседа со всеми слушателями. Одни названия чего только стоят – «Фаззинг-шмаззинг. Нежный поиск RCE в индустриальных решениях» или «Охота на APT и других зверей с помощью YARA правил». Стоит также отметить то, что каждый гость являлся действующим работником какой-либо ведущей IT компании, например, Лаборатории Касперского, Digital Security, Wallarm, ИнфоТеКС и так далее.

С определенным интервалом между конференциями осуществлялись так называемые «кофе-брейки», где можно было выпить чашечку чая или кофе и пообщаться с зарубежными участниками. Для облегчения коммуникаций между участниками организаторы оформили на каждом бейджике три места, на которые можно было клеить наклейки. Например, использование трех наклеек означало то, что участник свободно владеет английским языком и с легкостью может поддержать любую беседу. В четыре часа начались традиционные «баттлы». В течение целого часа на сцену вызывались двое участников, а их ноутбуки подключались к проекторам, в результате чего все могли наблюдать процесс решения задания. Зрители также принимали активное участие в решении и в равной степени претендовали на призы. От нашей команды в батлах выступил Алексей Харламов, которому в качестве задания попался обжим кабеля, с чем он успешно справился и получил в подарок термос с символикой соревнований и флешку-браслет от Лаборатории Касперского.

По завершению баттлов были дослушаны оставшиеся доклады. Лишь к восьми часам вечера мы смогли вернуться домой, на ходу переваривая тонны полученной информации и делясь впечатлениями друг с другом. Так прошел наш первый день на финале RuCTF 2017.

Второй день открывала всероссийская олимпиада по информационной безопасности, которая представляла собой обычный тасковый CTF, состоящий из четырёх задач. На её решение отводилось четыре часа, по истечению которых закрывался доступ к ресурсу. Хотя организация соревнований оставалась на высоком уровне, проведение олимпиады прошло не так гладко. Например, у некоторых участников возникли проблемы с регистрацией и первое задание, являющееся web-ресурсом, работало не до конца корректно. Но эти мелкие недочеты не смогли испортить общее впечатление от организации соревнований в целом.

После олимпиады нас ждал традиционный обед и продолжение серии конференций и докладов на актуальные темы. Также на территории университета организаторами были устроены так называемые “Fun Activities”. В одном месте участникам предлагалось захватить управление квадрокоптером и поуправлять им, в другом прочитать файл на старом компьютере без OC. Самым интересным оказалось прохождение лазерного лабиринта Lazer Maze. Цель: пройти лазерный лабиринт быстрее чем закончатся 2 минуты, и так ловко, чтобы вас не задели лучи.

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

Утром 16 апреля мы сели в автобус от организаторов и прибыли в Ельцин-центр, где и прошли соревнования.

В этом году легендой соревнований стал космос. 6 сервисов, запущенных на 6 Orange Pi Zero, которые после раздали нам. Итак, сервисы: capter, electrohub, fooddispenser, redbutton, settings и stargate.

  • Food Dispenser — система распределения еды на космической станции (в зависимости от статуса жителя определяется категория еды). Сервис на Python с XSS уязвимостью, которую удалось выявить через анализ трафика нашей команды программой Wireshark.
  • ElectroHub отвечает за распределение квот на электроэнергию между устройствами на планете. Жители могут буквально заказать электроэнергию в любую точку планеты. Веб-сервис на PHP, нам удалось найти и эффективно использовать SQL-инъекцию. 
  • C.A.P.T.E.R — система поиска наиболее перспективных для развития участков планет. Сервис на Golang общающийся через JSONRPC. Использовался уязвимая версия метода шифрования TEA, которую достаточно было заменить другой для исправления уязвимости.
  • Star Gate — звёздные врата, которые позволяют телепортироваться между космическими городами. Уязвимость переполнения буфера.
  • Red Button — система защиты от различных вне-городских угроз. С++ с использованием OpenGL для обработки шейдеров. Уязвимость загрузки шейдеров вынуждающих систему отдать флаг.
  • Settings — сервис, позволяющий городу решать технические проблемы силами внешних программистов. COBOL, уязвимость проверки, которая выполнялась после 72-го символа строки кода. 

Помимо этого, был условный 7-ой сервис -- Pool. По легенде, это инкубатор с икрой инопланетян. Сервис представляет собой надувной бассейн, наполненный, правда, не водой, а шариками из гидрогеля. Участникам по очереди нужно отыскать здесь флаг — это обыкновенный шарик, в котором спрятана бумага с флагом. Однако флаги из этого весьма условного сервиса не давали ощутимого количества очков.

Помимо сервисов примечательной была визуализация табло: на огромном настенном экране вокруг планеты летают космические станции — как раз по одной для каждой команды. Все украденные флаги перелетают между командами как ракеты.

После окончания соревнований нас отправили праздновать в кафе, где члены нашей команды заняли призовые места в проводимых конкурсах по общей тематике ИБ :)