По пунктам:
- Что такое CTF-соревнования?
- Зачем в них участвовать?
- Какие соревнования бывают?
- Как подготовиться к соревнованиям?
- Как выбрать подходящее соревнование?
- Какие турниры пройдут в ближайшее время?
Что такое CTF-соревнования?
CTF (Capture The Flag, или «Захват флага») — это соревнования, которые посвящены практико-ориентированной информационной безопасности. Контесты проходят в формате как индивидуальных, так и командных игр. А участвовать в них могут как школьники, студенты, начинающие специалисты, так и профессионалы.
Главная задача на всех CTF-соревнованиях ― захватить как можно больше флагов (комбинаций уникальных символов) и сделать это быстрее соперников. Для этого участники решают прикладные задачи из области информационной безопасности. Решения отправляются на специальную платформу для проверки. Если задача сделана верно, участник или команда получает флаг, если нет — пытается решить ее снова. Чем больше флагов, тем ближе победа.
Механика CTF-соревнований похожа на контесты по олимпиадному программированию ― например, крупнейший и самый престижный чемпионат мира по программированию ICPC (подробнее о нем мы рассказывали в нашем спецпроекте).
Зачем в них участвовать?
Узнать, как на практике устроена информационная безопасность. CTF-соревнования — это хороший способ в игровой форме познакомиться с разными направлениями кибербезопасности, например, администрированием и поиском уязвимостей в информационных системах, криптографией, расследованием киберинцидентов и так далее.
Для начинающих специалистов участие в соревнованиях ― это возможность более детально определиться с будущей профессией и конкретной специализацией.
Для профессионалов это способ приобщиться к актуальным практикам, с помощью которых можно решать прикладные задачи на учебе и работе. По словам Георгия Геннадьева, в кибербезопасности постоянно возникают новые угрозы, к которым нужно уметь быстро подбирать эффективные способы решения. Один из способов научиться это делать — придумывать что-то самому, готовясь к турнирам, или перенимать опыт у других команд на соревнованиях.
Получить дополнительные баллы для поступления в вуз. Победа в Neva CTF дает школьникам пять дополнительных баллов при поступлении в ИТМО на образовательную программу «Технологии защиты информации». На программе готовят специалистов информационной безопасности, которые способны создавать и внедрять аппаратные средства защиты информации, в частности от хакерских атак, сертифицировать технические устройства и программные продукты, а также руководить командами в компаниях.
Усилить резюме при поиске работы. На соревнованиях участники могут быстро прокачать необходимые хард-скиллы. Например, задачи турниров, связанные с поиском веб-уязвимостей, очень похожи на реальные задачи, которые встречаются в пентесте — тестировании информационных систем на проникновение и безопасность, а также поиск в них веб-уязвимостей. Участие в CTF-соревнованиях доказывает, что специалист не только обладает определенным набором навыков, но и может быстро применить их на практике. Например, после побед на турнирах Георгия Геннадьева пригласили пройти собеседование в компанию BI.ZONE. Сейчас он работает на позиции Senior Penetration Tester (старший специалист по анализу защищенности — прим. ред.).
Потренировать действующих сотрудников компаний и найти новых. Компаниям, работающим в области кибербезопасности, CTF-соревнования также приносят пользу. Во-первых, на задачах внутренних турниров сотрудники могут в игровой форме отработать уязвимости, из-за которых возникают сложности в работе. Таким образом, повышается уровень кибербезопасности сервисов компании в целом.
Во-вторых, IT-компании часто выступают в качестве спонсоров CTF-соревнований. На турнирах представители фирм могут понаблюдать за работой команд, а их лучших игроков пригласить к себе на стажировку или работу.
Выиграть деньги. У крупных CTF-соревнований есть призовой фонд Например, победители и призеры турнира IT’s Tinkoff CTF разыграли более миллиона рублей. А российские и иностранные команды будут бороться за призовой фонд размером 800 тыс. рублей в финале международного соревнования BRICS+ CTF.
Также победы в турнирах повышают шансы выиграть стипендию. Студенты ИТМО, у которых есть сертификаты о победе в CTF-соревнованиях, могут претендовать на повышенную государственную академическую стипендию.
Какие соревнования бывают?
Task-Based, или Jeopardy. Это классическая викторина, в которой команды независимо друга от друга решают набор заданий. За правильные ответы они получают флаги, которые конвертируются в баллы. Чем сложнее задание, тем больше баллов получает команда.
Classic, или Attack Defence. Это более соревновательный вид турнира. Команды получают идентичные серверы с набором уязвимых сервисов. В режиме реального времени жюри периодически посылает на сервисы обеих команд комбинации уникальных символов — флаги. Задача каждой команды — найти уязвимости на своих сервисах и устранить их, а также атаковать уязвимости на сервисах соперников, чтобы получить их флаги. Баллы начисляются за корректную работу своего сервера и захваченную информацию с чужих серверов.
Соревнования могут длиться от четырех часов до месяца. За это время команда из 5–7 участников должна решить задачи из разных областей кибербезопасности:
- поиск веб-уязвимостей;
- поиск бинарных уязвимостей;
- поиск и эксплуатация уязвимостей в приложениях;
- исследование программ без исходного кода (реверс-инжиниринг, или обратная разработка);
- форензика (расследование инцидентов);
- задачи на администрирование сервисов;
- криптография (метод защиты информации с помощью использования закодированных алгоритмов, хэшей и подписей);
- стеганография (передача секретных данных, при котором сам факт передачи — секрет);
- поиск информации из открытых источников (OSINT).
Также на разных соревнованиях отличается и работа команд. На Jeopardy задачи распределены по категориям — веб-уязвимости, криптография, форензика и так далее. Каждый участник сам решает, какие задачи ему интересно решить или какие подходят под его специализацию, и практикуется именно на них.
Во время Attack Defence члены команды сразу распределяют роли, чтобы быстрее решать задачи. Например, один участник скачивает сервисы, второй — аналитику, а третий — проверяет решение на специальной платформе, чтобы получить за него флаг. На Attack Defence распределение обязанностей зависит не только в зависимости от профессиональных интересов участников, но и от их навыков — один лучше знаком с криптографией и умеет программировать на C++, а другой специализируется на поиске информации с помощью Python.
Как подготовиться к соревнованиям?
Чтобы начать участвовать в CTF-соревнованиях, достаточно владеть базовыми функциями C++, Python или других языков программирования и уметь работать в команде. Остальными специфичными навыками можно овладеть, готовясь к турнирам и участвуя в них. При подготовке Георгий Геннадьев и Александр Менщиков рекомендуют использовать следующие ресурсы.
Очное обучение и тренировки:
- Студенческий клуб CTFClub ИТМО. В сообществе можно найти единомышленников, разобрать задачи прошедших турниров и поучаствовать во внутренних соревнованиях. Участники клуба могут войти в сборную команду университета и в дальнейшем выступать на российских и международных соревнованиях.
Подборки теории и задач по разным темам:
- Подборка ресурсов от SPbCTF — открытого независимого петербургского сообщества, которое с 2016 года проводит тренировки по спортивному хакингу. Подборка подойдет начинающим и поможет освоить базовые навыки. Здесь собрана литература, обучающие курсы и видеоразборы, а также задачи прошлых CTF-сезонов по веб-безопасности, криптографии, форензике, реверс-инжинирингу и эксплуатации бинарных уязвимостей.
- Подборка заданий для новичков на платформе forkbomb. Здесь также можно найти задачи по веб-безопасности, криптографии, форензике, реверс-инжинирингу и эксплуатации бинарных уязвимостей. Чтобы воспользоваться сервисом, нужно зарегистрироваться через Telegram-бот.
Онлайн-тренажеры с теорией по конкретным темам:
- Платформа, посвященная веб-безопасности, разработана компанией PortSwigger. Пользователи могут изучить 19 тем и попрактиковаться, решая задачи разного уровня сложности — для начинающих, продвинутых и экспертов.
- Площадка для изучения и практики взлома TryHackMe. На интерактивных уроках новички обучаются фундаментальным навыкам кибербезопасности и тренируются на задачах в режиме реального времени.
- Платформа для обучения криптографии CryptoHack. Начинающие и продвинутые специалисты могут пройти пять курсов по криптографии и попрактиковаться на задачах по каждой теме.
- Обучающие видео по эксплуатации бинарных уязвимостей. Просмотрев 59 коротких видеозаписей, можно разобраться в тонкостях темы и закрепить знания, прорешав задачи.
- На платформе ROP Emporium и репозитории на GitHub также можно прорешать задачи по эксплуатации бинарных уязвимостей.
Как выбрать подходящее соревнование?
Мониторить сайт CTFtime. Здесь публикуется ключевая информация по отборочным и финальным этапам турниров — формат проведения (онлайн или офлайн, Attack-Defense или Jeopardy), даты проведения, количество команд, которые планируют участвовать, а также рейтинг соревнования (от 0 до 100).
Рейтинг формируется на основе оценок участников прошлого сезона конкретного соревнования и показывает, насколько сложными были задания турнира (чем выше рейтинг, тем сложнее задачи). Такое ранжирование помогает командам сразу правильно рассчитать силы.
Начинающим участникам подойдут турниры с рейтингом от 0 до 30, продвинутым — от 30 до 70, а опытным — от 70 до 100. Самыми сложными, крупными и престижными CTF-соревнованиями в России считаются VolgaCTF, CTF.Zone и RuCTF.
Какие турниры пройдут в ближайшее время?
28 октября состоится отборочный этап VII Кубка CTF России — одного из крупнейших турниров страны по информационной безопасности. Соревнование будет проводится в трех зачетах с участием школьных, академических (студенты вузов и ссузов) и смешанных команд (от школьников до аспирантов в возрасте 18–25 лет включительно). Победители каждого из зачетов получат по кубку и 250 000 рублей. Чтобы участвовать в VII Кубке CTF России, нужно зарегистрировать команду до 27 октября.
4 ноября в онлайн-формате пройдет квалификационный тур международного соревнования по защите информации RuCTF. В прошлом году турнир прошел в 15-й раз и в финале собрал 33 российские и иностранные команды. Победителем стала команда C4T BuT S4D. Коллектив получил сертификат на 100 тыс. рублей. Следить за новостями и стартом регистрации на новый сезон турнира можно на сайте и в социальной сети.
11 ноября состоится финал международного соревнования BRICS+ CTF. Организатором турнира выступает ИТМО, а задания для него пишет команда C4T BuT S4D, в которую входят студенты Первого неклассического. В 2023 году эта команда взяла первые места в двух крупных международных турнирах по информационной безопасности — VolgaCTF и RuCTF.
На BRICS+ CTF 25 команд из стран-участниц БРИКС (России, Китая, Индии, Бразилии и Южной Африки) и другие в течение восьми часов будут решать задачи в формате Attack-Defence. Лучшие команды разделят призовой фонд размером 800 тыс. рублей.