Что за RuCTF, кому это нужно и как в этом участвовать
RuCTF – это соревнования по защите информации, которые проходят в Уральском федеральном университете уже в 11 раз с 2009 года. В этом году в отборочном туре участвовали более 400 команд со всего мира, а в очном финале встретились 24 команды из России, Австрии, Германии, Италии и Белоруссии. Чтобы попасть на игру, необходимо было показать отличные результаты на онлайн-соревнованиях в ноябре прошлого года, либо победить в региональных студенческих CTF-соревнованиях. Главный приз для победителей RuCTF – это поездка на финал старейшего международного соревнования по кибербезопасности DEF CON CTF, которое ежегодно проходит в Лас-Вегасе и собирает сильнейшие команды мира.
«Попасть на соревнования не очень трудно, думаю, что если люди зададутся реальной целью попасть в финал RuCTF, то смогут за несколько лет достичь необходимого уровня. А вот на самих соревнованиях конкуренция огромная. Очень много сильных и опытных команд в финале. Но зато благодаря таким соревнованиям начинаешь быстро разбираться и находить слабые места в неизвестной системе, написанной на разных языках с использованием различных технологий. Это, безусловно, полезный навык, который следует прокачивать специалистам по информационной безопасности», – считает участник команды-сборной из Университета ИТМО, МФТИ и ВШЭ, студент кафедры проектирования и безопасности компьютерных систем (ПБКС) Александр Менщиков.
СTF – это Capture the Flag, дословно переводится как «захвати флаг». Команды должны забирать «флаги» у соперников. Формат используется практически в любых командных играх – от пейнтбола до ролевых. В соревнованиях по компьютерной безопасности в УрФУ использовался классический вариант CTF. Каждая команда получила выделенный сервер с набором уязвимых сервисов и должна была поддерживать их функционирование и защиту. Периодически жюри посылали на сервисы приватную информацию – те самые «флаги». Любая команда могла украсть эти данные, обнаружив уязвимости в сервисах соперников. Соответственно, необходимо было вовремя устранять эти уязвимости. Они во многом имитируют реальные ошибки, существующие в программном обеспечении.
Как проходит игра
«Команды получают абсолютно одинаковые серверы: все настройки/файлы/уязвимости у команд одинаковы. С момента получения серверов и до самого конца соревнования команды анализируют свои сервисы и ищут в них как заложенные разработчиками уязвимости, так и те, которые организаторы оставили непреднамеренно. Но найти уязвимость недостаточно. Нужно грамотно ее проэксплуатировать. Иногда бывает такая ситуация: уязвимость найти просто, а вот проэксплуатировать ее очень сложно. И несколько часов уходит на то, чтобы написать под нее эксплойт. Команда, которая первая находит уязвимость в каком-либо сервисе и успешно начинает ее эксплуатировать, обычно, сразу же получает очень много очков. Однако, опытные команды почти сразу могут узнать, как их атакуют, потому они следят за входящим и исходящим трафиком и могут даже "похитить" готовый эксплойт, который первая команда писала несколько часов. Поэтому, зачастую, многие команды стараются не атаковать опытных соперников, так как знают, что они только этого и ждут», – поделился тонкостями игры другой участник команды-сборной из Университета ИТМО, МФТИ и ВШЭ, студент кафедры безопасных информационных технологий Григорий Саблин.
При этом на каждых соревнованиях, региональных или всероссийских, есть свой сюжет: иногда международные киберпреступники похищают данные национальных банков или чертежи отечественных звездолетов, а иногда действие разворачивается в будущем, где необходимо спасти от вымирания те или иные расы. Легенда RuCTF-2017 была связана с космосом: каждая команда получила виртуальный космический корабль-город. Инфраструктуру корабля как раз формировали сервисы, которых было семь: системы распределения еды, электроэнергии, поиска перспективных для развития участков планет, защиты от угроз, сервис, позволяющий городу решать технические проблемы силами внешних программистов, а также звездные врата для телепортации между городами. Седьмым сервисом был инкубатор с икрой инопланетян. Это был надувной бассейн с шариками из гидрогеля, в котором команды должны были покопаться, чтобы отыскать «флаг». «Флагом» был обыкновенный шарик с QR-кодом, который нужно было отсканировать.
«Честно говоря, зачастую легенды сделаны не для участников, а для зрителей. Обычно у команд нет времени разбираться в легенде соревнований, особенно, если она никак не влияет на сам игровой процесс. Иногда в легенде описываются какие-то экономические механики, по которым происходит начисление/обмен виртуальных денег на очки, например. В таком случае приходится разбираться с легендой, чтобы правильно спланировать экономическую стратегию. Но в этом году легенда соревнований просто описывала сами сервисы и никак больше не была связана с игровым процессом», – пояснил Григорий Саблин.
Процесс игры отражался на огромном экране. Участники могли видеть планету, вокруг которой и летали их космические города. «Флаги» перелетали между этими станциями. Тут же показывались текущие результаты. Игра проходила нон-стоп в течение примерно девяти часов.
Как проходят соревнования
Лидеры соревнований менялись едва ли не каждую минуту. Получение командой очков зависело от того, насколько успешно команда атаковала другие команды, защищалась от атак других команд и поддерживала работоспособность своих сервисов (иначе команды могли бы просто выключить свой игровой серверю, и его невозможно было бы взломать). По мнению Григория Саблина, игра все-таки была больше нацелена на взлом, точнее, на поиск и эксплуатацию уязвимостей: сделать это гораздо сложнее, чем заблокировать ее эксплуатацию или изменить ее в самом сервисе.
«Соревнования крайне динамичны. Одна вовремя найденная уязвимость может поднять команду с последнего места на первое. Борьба идет за каждый “флаг”. Специальная судейская проверяющая система раскладывает один “флаг” каждый раунд на каждый сервис каждой команды. Раунд длится несколько минут. Взламывать уязвимые сервисы можно постоянно, пока они не упадут, или уязвимость не закроют. Обычно в команде есть один человек, который отвечает за администрирование сервисов команды, остальные по одному или по парам изучают разные сервисы. Взлом же противников идет уже в автоматическом режиме, если написать грамотный эксплойт», – описал соревнования Александр Менщиков.
Он подчеркнул, что 9-10 часов проведения соревнований – это вполне адекватное время. С одной стороны, его достаточно, чтобы разобраться даже в очень сложном сервисе, а, с другой стороны, участники не успевают устать. При этом у команд есть перерыв на обед.
Но RuCTF – это не только увлекательная игра, но и образовательное мероприятие. Все участники могли послушать лекции профессионалов в области программирования и защиты данных. На IT-конференции выступили представители «Лаборатории Касперского», «ИнфоТеКС», Wallarm, Центра специальных разработок Министерства обороны, Digital Security и других компаний. Кроме того, в рамках соревнований состоялась Всероссийская студенческая олимпиада по защите информации.
Победителями RuCTF-2017 стала команда Bushwhackers из МГУ, которые занимают первое место уже второй год подряд. Второе место взяла команда Shadow Servants из НИУ ВШЭ, а ребята из МФТИ под названием команды LightsOut завоевали «бронзу». Сборная Университета ИТМО, МФТИ и ВШЭ заняла шестое место.