Про соревнования СTF
CTF – соревнования по спортивному хакингу или командная игра, главной целью которой является захват «флага» у соперника. Формат Сapture the flag может использоваться и в пейнтболе, и среди ролевиков, и в компьютерных играх. В области компьютерной безопасности есть свое понятие CTF. Есть два типа соревнований. Первый – Attack-Defence – считается классическим, поскольку использует правила Capture the Flag в чистом виде. Основная идея CTF — искать уязвимости в своей системе и атаковать чужие. Данные соревнования проходили в формате Task-Based CTF. Вместо того, чтобы взламывать друг друга, команды решают определенные задачи, за которые получают флаги и очки соответственно. Обычно в таком CTF есть несколько веток заданий – каждая по своей дисциплине. Соревнования формата CTF могут проходить удаленно (в сети) и очно. В первом случае команды соревнуются через интернет, находясь в разных точках мира. Такие соревнования чаще всего длятся больше суток в формате нон-стоп. На очных соревнованиях команды собираются в одном месте каждая за своим столом. Такие соревнования длятся семь-восемь часов, а то и больше.
Про QSTF Starter
QSTF Starter – это соревнования, предназначенные для новичков по правилам CTF. Во время контеста участникам предложили несколько задач, в каждой из которых нужно было найти «флаги». Кто нашел большее количество «флагов» за минимальное время, тот и выиграл. Задания бывают разных категорий, однако есть несколько устоявшихся. Как правило, это веб-безопасность (дается сайт, в работе которого участникам нужно найти уязвимости, получить каким-либо способом права администратора и найти в структуре сайта «флаг»), криптография (задачи, связанные с шифрованием), реверс-инжиниринг (дается программа без исходного кода, и нужно разобрать ее алгоритм), задачи PPC (professional programming coding), где нужно реализовать что-то глобальное, используя навыки программирования и другие. В России соревнования такого формата проводятся несколько раз в год, но все они разного масштаба. Группа энтузиастов Hackerdom из Екатеринбурга проводят самые масштабные в России состязания, среди которых RuCTF, RuCTFE, QCTF и некоторые другие соревнования (например, они же делали PHD CTF 2017, Яндекс.Root). Именно эта команда организовала соревнования по всей России, в которых мы победили. В каждом городе была своя организация, которая занималась площадкой для проведения состязаний. В нашем случае это были SPbCTF. Все участники из Петербурга находились на площадке Университета ИТМО.
Про участие в QSTF Starter 2018
Всего на состязаниях мы провели восемь часов, работая над задачами, после чего состоялось награждение победителей. Наша команда состояла из трех человек, в нее, помимо меня, вошли Андрей Комаров и Илья Селиванов. Мы впервые участвовали на конкурсе таким составом. Принятие решения об участии было спонтанным. Я и Илья впервые участвовали в этих соревнованиях, но у Андрея опыт уже есть. Я учусь на шестом курсе на кафедре проектирования и безопасности компьютерных систем в Университете ИТМО, в учебной программе, однако, хакингу внимание почти не уделяется. Так получилось, что по-настоящему заинтересовалась информационной безопасностью я только в этом учебном году, после того как приняла участие во Всероссийской олимпиаде «Я — профессионал», по итогам которой прошла в Зимнюю школу Университета ИТМО, приуроченную к олимпиаде. В разделе мастер-классов по треку «Информационная и кибербезопасность» у нас преподавали участники команды SPbCTF, которые анонсировали занятия по хакингу в Университете ИТМО каждое воскресенье. Оказалось, что каждый выходной день ребята приходят и учат студентов реальному хакингу. С Ильей Селивановым мы как раз познакомились на Зимней школе и стали ходить на занятия от SPbCTF, где и узнали о предстоящих соревнованиях QCTF Starter. Нам стало интересно поучаствовать, к тому же у меня был знакомый Андрей Комаров, который окончил Университет ИТМО год назад и которого тоже интересуют такие мероприятия. Так мы оказались втроем в одной команде. Мы пошли ради нового опыта, а в итоге выиграли. В тройке лидеров также оказались команды из Иннополиса и Томска.
Про подготовку к соревнованиям
Отдельно хочется отметить работу команды SPbCTF – очень крутой группы ребят, которые рассказывают очень интересные и полезные вещи. На занятиях мы сидим довольно долго, порядка шести часов, однако время пролетает незаметно, и те знания, что мы там получаем, порой оказываются полезнее теоретических массивов, которыми изобилует учебная программа.
Каждые полгода SPbCTF открывает новый сезон, который посвящен какой-либо тематике. Сейчас у нас тема «форензика», то есть изучение данных. Цель полугодия – научить ребят, которые ходят на занятия, взглянув на данные, делать выводы о том, что перед ними, откуда, зачем и почему. Сделать это не так просто, ведь, смотря на шестнадцатеричные данные, сказать, что в них хранится, действительно сложно.
Каждое воскресенье, в свою очередь, посвящено отдельной подтеме. Программы выстроены по принципу нарастания сложности: первая лекция была посвящена различным кодировкам, следующая лекция – криптографии (хоть я и знаю все алгоритмы из учебной вузовской программы, мне эта лекция очень помогла, потому что разложила все по полочкам), а последняя лекция была по стеганографии (способ передачи или хранения информации с учетом сохранения в тайне самого факта такой передачи (хранения)). Формат тренировок следующий: студенты слушают часовую лекцию, после чего начинается тренировка на заданиях, посвященных общей теме. И так повторяется раза три-четыре. Это действительно интенсивные, интересные и полезные занятия.
Про задания на QCTF Starter
Всего было порядка 12 заданий – все они дают разное количество баллов, поскольку отличаются по сложности. Так, например, были задания из категории криптографии, где была дана платформа, на которой можно зашифровать любое сообщение определенным алгоритмом, реализованным на данной платформе, также дан шифротекст, который был получен в результате шифрования на этой платформе. Нам нужно было дешифровать сообщение, однако это нельзя сделать на представленной платформе, потому что она не дает возможность расшифровывать. Другими словами, наша задача состояла в поиске пути для дешифровки.
Также была представлена категория веб-безопасности – нам дали сайт, в одном из ответов сервера при определенных условиях и определенном запросе приходит флаг. Для заданий данной категории необходимы знание сетей, протоколов и администрирования.
Про победу на QCTF Starter
Мне бы хотелось, чтобы к таким событиям в вузе привлекали больше внимания, ведь если поддерживать эту стезю, то из таких соревнований могли бы вырасти серьезные команды, которые могли бы проявить себя на крупных международных конкурсах. Полагаю, следует работать по двум основным направлениям: разнообразить учебную программу настоящим хакингом и поддерживать инициативы, которые реализует команда SPbCTF.