Десять команд, представляющих десять разных вузов, сошлись в петербургской «Точке кипения», чтобы выявить лучшую городскую студенческую команду по информационной безопасности. На этот титул претендовали победители прошлого года из «ЛЭТИ», студенты Университета ИТМО, представители «Военмеха», Военно-космической академии им. Можайского и другие команды. Каждая команда насчитывала до семи человек возрастом не старше 25 лет. Все прошли предварительный отбор, чтобы попасть на турнир.
Чтобы выявить лучшего, командам предстояло за шесть часов решить набор заданий. Решение каждого из них называют «флагом» (от этого название типа соревнований CTF – Capture the flag, т.е. «захвати флаг»). За каждый сданный флаг команды получали очки, что позволяло им двигаться по турнирной таблице. При этом они были ничем не ограничены – все пришли на соревнования со своими ноутбуками, они могли искать пути решения задач в интернете, использовать домашние заготовки.
«У участников есть пул из 28 тасков, — рассказывает технический директор соревнований Александр Усков. — Каждый таск изначально, в зависимости от сложности, оценивается в определенное количество очков. Есть три категории сложности: легкая, средняя и высокая. При этом система оценки динамическая – допустим, изначально задание оценивалось в триста очков, но если его решат все, то оно станет “дешевле”, если только одна команда, то оно сохранит свою стоимость».
Компьютерная криминалистика и поиск уязвимостей
В начале соревнований уверенный старт показала команда Военно-космической академии с говорящим названием «Red cadets», вырвавшиеся в лидеры. Однако их лидерство длилось совсем недолго, вскоре команда [SPbCTF]Kappa, представляющая Университет ИТМО, вырвалась вперед и начала стремительно наращивать свое преимущество, сдавая флаг за флагом.
«Задания, которые выполняют участники, отражают самые разные сферы компьютерной безопасности, с которыми реально сталкиваются специалисты в этой области, — поясняет соорганизатор соревнований Сергей Антонов. — Есть таски на форензику или компьютерную криминалистику. К примеру, есть запись трафика, которым клиент обменивался с сервером, грубо говоря, в этом огромном массиве информации есть флаг, который должны найти команды, чтобы получить очки. Методы поиска самые разные, в некоторых случаях это что-то типа известной всем команды «Ctrl+f». Есть программы, которые позволяют искать нужные фрагменты кода с учетом особо заданных условий».
Также участники соревнуются в поиске уязвимостей, которые позволяют заставить программу делать то, что не предполагалось разработчиками – менять изображения на сайте, выдавать секретные данные. Кроме того, есть задания на стеганографию и криптографию.
«И в том, и другом случае у нас есть данные, — поясняет Антонов. — В случае с криптографией мы данные шифруем, в случае со стеганографией — скрываем сам факт наличия данных, прячем их в картинке или в какой-то записи звука. Также есть еще задания на реверс, то есть на обратную разработку. То есть программу нужно декомпилировать, проще говоря, разобрать и заставить работать немного иначе. Простой пример: вы скачиваете с торрента игру, и вам уже не надо вводить лицензионный ключ. Потому что кто-то эту игру уже разобрал и заставил работать иначе, чтобы она не спрашивала у вас лицензию».
Широкий кругозор и умение нестандартно мыслить
В скором времени преимущество представителей Университета ИТМО становится разгромным. Еще до обеденного перерыва они смогли набрать 1865 очков, решая в том числе задания из самой сложной категории. Ближайшие преследователи «Red Cadets» к этому времени набрали 415 очков. Замыкали тройку лидеров представители Санкт-Петербургского государственного экономического университета с 328 очками.
После обеда преследователям удалось подобраться ближе к лидерам. В какой-то момент разрыв сократился с четырехкратного до трехкратного. Кроме того, борьба периодически возникала за третье место между представителями «ЛЭТИ», экономического университета и Санкт-Петербургского государственного университета телекоммуникаций им. Бонч-Бруевича. Удача в этой борьбе осталась на стороне «ЛЭТИ».
«Для хорошего выступления на таких соревнованиях нужно множество качеств, в том числе стрессоустойчивость, так как время ограничено и нужно решить большое количество заданий. Нужен широкий кругозор, ведь задания нестандартные, нет единой методички по их решению, а решение может быть абсолютно неожиданное. Важнейшие же вещи здесь — логика и умение быстро искать нужную информацию», — считает Усков.
В ожидании поездки в Сколково
К концу турнира кто-то стал тянуться к выходу, а кто-то продолжал упорно решать задания, сдавая флаги до последнего. Представители Университета ИТМО предлагали решения до последней минуты. Расслабляться не следовало, ведь иногда на таких соревнованиях команды хитрят и до последнего не сдают решения, в которых абсолютно уверены. Это позволяет не давать подсказки противнику, ведь решенное другой командой задание неизменно привлекает внимание остальных. Кроме того, это позволяет в последние минуты вырваться вперед, даже находясь во второй половине турнирной таблицы.
Однако этого не произошло. Команда Университета ИТМО вновь вернула себе практически четырехкратное преимущество и одержала победу.
«В этом году задания были достаточно хорошими, разносторонними, в основном решать было очень приятно, — делится сразу после объявления итогов игрок «[SPbCTF] Kappa» Никита Сычев. — Лично мне понравились два задания на криптографию, в которых генерировались математические уравнения. Нужно было придумать алгоритм, который бы ускорил их решение. Было интересно этим заниматься».
«Сегодня мы более-менее хорошо контактировали внутри команды, на таких турнирах это у нас получается не всегда, — добавил другой представитель Университета ИТМО Максим Прокопович. — Из запомнившихся мне заданий могу вспомнить одно, которое мы очень долго решали. Мы нашли похожие задания из других уже прошедших соревнований. Общие моменты были, но их не получалось эксплуатировать. Потом мы заметили, что версия программного обеспечения на сервере заданий достаточно старая. Мы нашли эксплоит для этой версии ПО (компьютерная программа или фрагмент кода, позволяющий использовать обнаруженную ранее уязвимость — прим. ITMO.NEWS) и получили исполнение кода на игровом сервере. Наше решение оказалось незапланированным и немного удивило разработчиков задания. Случается и такое, что задания, которые по задумке должны быть очень сложными, решаются неожиданно просто».
После завершения соревнований команды не расходятся в ожидании награждения, они обмениваются впечатлениями, спрашивают, как их соперники решили то или иное задание. В ходе раздачи призов, в которой принял участие в том числе член оргкомитета соревнований, декан факультета безопасности информационных технологий Данил Заколдаев, было объявлено, что команда-победительница представит Петербург на всероссийском кубке для студенческих команд CTF Россия. Он состоится в Сколково.
О соревнованиях
Организатором турнира выступили Межрегиональная общественная организация Ассоциация руководителей служб информационной безопасности (МРОО «АРСИБ»), Комитет по науке высшей школе правительства Санкт-Петербурга и Университет ИТМО.
На следующий день в стенах Университета ИТМО состоялся турнир NordCTF для школьных команд. Участие в нем приняли 16 команд из 12 школ (в том числе две команды из Москвы, выступавших вне основного зачета). Самые юные участники учатся в 8 классе. Первое место заняла команда из Президентского физико-математического лицея №239, набрав 1032 балла. Второе место досталось команде из школы 113, набравшей 559 баллов. Замкнули тройку лидеров школьники из лицея 393, набравшие 514 балла.
«Мы участвуем уже второй год в соревнованиях такого рода, — рассказывает капитан команды-победительницы Артем Насонов. — Наверное, поэтому мы победили. Рады, что удалось выиграть. Победа также ценна потому, что мы планируем поступать в Университет ИТМО».