Что такое СTF

Capture the Flag (СTF) — это соревнования по компьютерной безопасности. Участники делятся на команды и соревнуются в выполнении разнообразных задач. Их цели зависят от формата соревнования. Традиционные проходят по принципу Attack-Defense: команды получают идентичные серверы с набором уязвимых сервисов, на которые жюри периодически посылает приватную информацию — флаги. Задача каждой команды заключается в том, чтобы найти уязвимости, устранить их на своем сервере и воспользоваться ими для получения флагов соперников. Корректная работа своего сервера и украденная информация с серверов соперников приносит участникам баллы, необходимые для победы. 

Второй формат — Jeopardy — предлагает игрокам набор заданий, решения которых нужно отправить быстрее своих соперников. Чем сложнее задача, тем больше очков получает команда. Задачи касаются всех областей компьютерной безопасности: администрирования, криптографии, нахождения веб-уязвимостей и т.д. Этот формат считается более чистой проверкой навыков, в то время как Attack-Defense — более спортивный и непредсказуемый благодаря прямому противостоянию с соперниками. Продолжительность игры устанавливают организаторы: участники могут играть как несколько часов, так и несколько суток.

Сам формат CTF зародился в 1996 году на хакерской конференции DEF CON в Лас-Вегасе, а затем стал настолько популярным, что соревнования стали проходить по всему миру. Их проводят команды энтузиастов и организации, связанные с практической безопасностью — за 2018 год в мире состоялись 152 соревнования по правилам CTF. Онлайн-соревнования, в которых участие открыто для любых желающих, проходят практически каждые выходные. Следить за ближайшими CTF и лучшими командами можно на портале CTFtime, где организаторы со всего мира публикуют информацию о своих мероприятиях.

RuCTF
RuCTF

Как проходит RuCTF

В конце апреля в 13-ый раз завершилось крупнейшее в России открытое межвузовское соревнование RuCTF. Уже несколько лет подряд отборочным этапом для него выступает международное онлайн-соревнование RuCTFE. Оно тоже проводится в формате Attack-Defense, но участвовать могут все желающие. Обычно в нём принимают участие более сотни команд со всего мира. Топ-25 студенческих команд получают приглашение на RuCTF в Екатеринбург. Он проходит в том же формате и длится девять часов.

Согласно результатам контеста, первое место заняла команда Tower of Hanoi из вуза Politecnico di Milano (Италия, Милан). Второе — Shadow Servants, в составе студентов московского НИУ ВШЭ. На третьем месте разместилась команда Университета ИТМО [SPbCTF] LC↯BC. 

Секреты победы

Лидером команды [SPbCTF] LC↯BC является Влад Росков, магистрант факультета безопасности информационных технологий (БИТ) Университета ИТМО и многократный участник соревнований CTF с 2009 года. По его словам, тактика проста: как можно быстрее атаковать чужие уязвимости и закрывать собственные, используя знания, полученные на тренировках. Из-за ограничения времени в соревнованиях формата Attack-Defense важны две вещи: опыт и множество заготовок. Соревнования идут восемь часов, а процесс нахождения уязвимости в сервисе и написания программы для ее эксплуатации занимает полтора часа. Сервисов шесть, в каждом по несколько ошибок — следовательно, для экономии времени нужно максимально автоматизировать работу участников. Потому игроки пишут свои заготовки: как взаимодействовать с веб-сервисами, использовать криптографические примитивы и так далее. Эта подготовка пригодится и в атаке, и в защите.

Команда [SPbCTF] LC↯BC
Команда [SPbCTF] LC↯BC

Однако заготовки могут не спасти от неожиданных ситуаций во время игры. Влад приводит в пример случай с RuCTF: команда из Италии, в итоге занявшая 4-е место, перенаправляла трафик со своего сервера случайным соперникам, и воспользоваться уязвимостью на ее сервере так и не получилось. Быстрая реакция на непредсказуемые приемы — обязательное условие для победы в соревнованиях Attack-Defense. Подвергнувшись нападению, команды должны быстро адаптироваться, понять устройство атаки и использовать ее против других соперников. Участники могут искать уязвимости и использовать приемы соперников в свою пользу любыми способами, что и делает игру интересной. CTF совмещает хакерское творчество и спортивное противостояние: нужно и гибко мыслить, чтобы найти уязвимость в алгоритме, и обхитрить соперников. Потому участие и выигрыши в соревнованиях CTF значительно повышают шансы найти хорошую работу для специалистов в области практической информационной безопасности.    

Где набраться опыта в CTF  

Специально для помощи новичкам и отработки навыков было создано сообщество SPbCTF, встречи которого сейчас проходят при поддержке факультета БИТ, – Влад Росков является одним из наставников. Это открытое независимое сообщество, созданное для популяризации спортивного хакерства. Они проводят тренировки и семинары для всех, кто желает больше узнать о CTF и попробовать в нем свои силы.

«Про соревнования по программированию, на которых студенты ИТМО занимают высокие места, детям рассказывают еще в школе — рассказывает Влад. — Существуют отдельные школьные олимпиады по программированию, о которых ребятам говорят учителя информатики. В моей школе была, например, собственная локальная олимпиада. А про CTF, соревнования по хакерству, никто не говорит. Чтобы исправить это, мы начали организовывать собственные мероприятия. Уже на протяжении трех лет мы продвигаем их среди студентов из самых разных вузов. Прошлой осенью мы поставили цель — за два месяца подготовить с нуля как можно больше команд, чтобы они прошли на RuCTF. Поэтому мы тренировались в ИТМО каждое воскресенье, собирали желающих со всего города (изначально пришло чуть больше 200 человек, а к концу осталось 80) и проводили соревнования».

Участники RuCTF
Участники RuCTF

В итоге, ребята подготовились так, что на RuCTF прошли сразу три команды, представляющие Университет ИТМО. Не каждый участник из прошедших в финал 20 человек обучается в Университете ИТМО, но студенты первого неклассического составляют больше половины в каждом составе.

Одним из участников сообщества и сформированной команды [SPbCTF] LC↯BC стал Илья Глебов, «первопроходец» программы ITMO.STARS, которая позволяет абитуриентам поступить в Университет ИТМО благодаря своим достижениям и мотивации, а не баллам ЕГЭ. В 2017 году он нашел уязвимость в социальной сети «ВКонтакте» и поступил на образовательную программу «Технологии защиты информации» факультета БИТ. Подробнее об истории Ильи можно прочитать здесь.    

«Факультет БИТ считает важной составляющей образовательного процесса оттачивание практических навыков у студентов, поэтому всячески поддерживает сообщество SPbCTF, — рассказывает декан факультета безопасности информационных технологий Данил Заколдаев.Особенно радует, что по результатам RuCTF вторая и третья команды, также представлявшие Университет ИТМО, оказались в десятке сильнейших, что показывает общий высокий уровень подготовки ребят. В ближайших планах факультета БИТ — усиливать развитие компетенций, необходимых для состязаний в области компьютерной безопасности у студентов ИТМО путем перехода от факультативной подготовки к обязательной (по некоторым специализациям)».  

Награждение победителей RuCTF
Награждение победителей RuCTF

Команда SPbCTF планирует и дальше проводить тренировки для всех желающих, чтобы ставить рекорды и открывать мир спортивного хакинга всем желающим. Новые семинары намечены на осень. Главное условие участия желание учиться. Наставники заботятся о том, чтобы студенты получали все необходимые знания на тренировках. Из базовых навыков пригодится умение писать код на любом удобном языке и хакерская смекалка умение представлять в голове, как работает система и как она себя поведет при пограничных условиях. 

Регистрация на тренировки уже открыта. Подробности можно узнать по ссылке.