Это был далекий 2014 год, когда еще зеленые, недавно поступившие в универ, парни, услышали, что есть какие-то соревнования с завлекающим названием — «Capture the flag» (сокр. CTF, в переводе «Захват флага»).

Фото с сайта securitylab.ru к новости про Facebook CTF 2016

На факультете был один парнишка, который уже играл в эту увлекательную игру и потому соизволил рассказать нам что же это такое и с чем его едят…

Итак, давайте теперь я вам немножко поведаю:

1. CTF (Capture the flag или Захват флага) — командные соревнования (изредка бывают личными) в области компьютерной (информационной) безопасности.

2. Формат проведения :

2.1. Task-based (или jeopardy) — игрокам предоставляется набор тасков (заданий), к которым требуется найти ответ (флаг) и отправить его.
Пока все более чем просто, обычные правила, но только все задания в этом формате разделены на категории (расскажу про основные):

Криптография — задания связаны с расшифровкой сообщений, защищенных различными алгоритмами (от самых простейших до современных шифров);
Стеганография — наука о тайной передаче информации путем сокрытия самого факта передачи. Следовательно, вам нужно найти, как именно и какую информацию передали (очень интересная тема, позже накатаю статей);
Web — поиск уязвимостей на серверах и сайтах (используются специально развернутые сервера и сайты на них, не ведется взлом открытых платформ);
Реверс-инжиниринг — исследование кода программного обеспечения, дальше методы зависят от задания (очень муторная тема, для усидчивых);
Recon — моя любимая тема поиска информации по открытым источникам (OSINT, разведка). Тема, которой тоже будет посвящен отдельный блок статей;
Joy — развлекательные задачи разнообразной тематики.
2.2. Attack-Defense (или classic) — каждая команда получает выделенный сервер или небольшую сеть для поддержания её функционирования и защиты. Во время игры команды получают очки за корректную работу сервисов своего сервера, защиту своей информации и за украденную информацию (она же — «флаги») с серверов соперников.

3. Уровень соревнований
Международный уровень: самое престижное соревнование DEF CON CTF, которое ежегодно проходит в Лас-Вегасе и собирает сильнейшие команды мира (берет свое начало с девяностых годов).

Россия: имеет активное развитие с 2009 года. Проводятся множество локальных соревнований (в ВУЗах, городах, округах) в различных режимах.
Самый масштабный CTF в России — RuCTFE, победа в котором даёт возможность попасть на DEF CON CTF.
Интересный факт: В 2014 году в RuCTFE сражалось уже 322 команды из различных стран мира!

После услышанного появилось бешеное желание попробовать пройти через эти круги ада и изучить данную тематику. Мы попросили того самого парня курировать нас первые пару игр.

Следом, мы начали изучать сайт ctftime.org — тут размещено расписание всех соревнований (по всему миру) и рейтинг команд-участников (зарегистрированных на сайте).

Мы адекватно понимали, что Attack-Defense нам пока не светит, но порешать какие-нибудь задания в формате Task-based, чтобы набраться опыта, мы были готовы.

Первый в жизни CTF

Нам несказанно повезло, что один из ближайших CTF’ов был русский, а именно School CTF (организатор — команда SiBears), в котором было разделение между школьниками и не школьниками и указано время проведения — 8 часов (кажется это было именно так).

Конечно же, было очень важно зарегистрироваться… Но как? Какое название команды?

Как-то так получилось, что именно я организовал наше участие и стал негласным «капитаном» команды.

Это же был первый раз, а мы понимали, что морское ДНОэто как раз мы в этих соревнованиях… Собственно, не долго думая, я предложил и здравствуйте, Мы — команда DnO.

Мы вооружились ноутбуками, ручками, блокнотами и переживали, что нам еще может понадобиться.

Итак, началось… Мы открыли задания и для нас это были иероглифы, которые никак не складывались в предложения (тем более в задания).

Но, спасибо Google, мы постепенно начали разбираться что означает то или иное слово и наконец начали гуглить не просто слова, а уже пытаться решать задания и, стоит отметить, у нас это даже получалось…


Предварительные результаты

Стоит отметить, что мы были на кураже, у нас многое получалось и мы чувствовали, что старт был более чем идеален. Как вы можете увидеть на предварительных результатах, мы держали 6 место, но потом сместились примерно на 10 (но с учетом количества команд, мы уже не думали об этом, а отмечали успешный старт).

Конечно же, следующий CTF, в котором мы решили участвовать — был какой-то иностранный, но, несмотря на то, что мы понимали все задания, у нас абсолютно ничего не получалось решить, поэтому там мы если что-то и сделали, то в лучшем случае одно задание.

Было ясно, что мы абсолютно ничего не знаем, надо тренироваться, учиться, готовиться, искать платформы для решения подобных заданий…

Что за команда DnO?

Время шло, мы участвовали в различных CTF’ах и набивали руку, нашли несколько очень полезных платформ с тасками, благодаря которым можно развиваться в этом направлении (перечислять их не буду, можно спокойно найти в гугле).

Вдруг, произошло интересное событие, мы собрались на очный CTF (до этого всегда выступали только online), кажется это был QCTF и проходил он в Москве, а точнее в МИРЭА. Естественно, это совсем другая энергетика, вокруг все давит, потому что ты не сидишь себе на диване спокойно, но ощутить это тоже хочется.


Фото одного из заданий QCTF

Была безумно интересная космическая тематика, задания различного уровня, мы выступали достойно, потому что эти соревнования были «для новичков», каковыми считались и мы.

Как итог, команда DnO из 20 команд заняла почетное 4 место (ну вы понимаете как было обидно), но когда мы вернулись в универ, нам сказали, что это обязательно надо рассказать всем, как там называется ваша команда?

Этот вопрос поставил нас в тупик… Конечно, парни особо не загонялись и такие: «Ну ты же предлагал DnO, теперь давай придумывай расшифровку, чтобы весь ВУЗ над нами не ржал в голос».

После часа штудирования словаря, придумал единственную адекватную расшифровку как Destroy Network of Opponent, что переводится как «Уничтожить сеть противника» (спасибо, что предлоги не учитываются в сокращениях).

С тех самых пор мы следовали старой поговорке про судно… Как назвали, так и поплыло.

Первая победа «пополам»

В очередной раз мы решили попробовать свои силы на очном CTF, только в этот раз было решено посетить город-герой Волгоград.

Наша команда уже была на опыте, мы разделились по направлениям и каждый участник команды развивался в одном основном направлении и одном/двух смежных, чтобы быть готовым помочь/подменить своего товарища. Но, конечно, мы всё еще были далеки до «хороших» познаний в этих областях.


Команда DnO в Волгограде

Честно говоря, уже даже не могу описать тех эмоций, которые мы испытывали, а всё из-за того, что было 2 лидирующие команды… мы шли очко в очко, решая чуть ли не одни и те же задания.

Финальный «свисток» и мы… Вторые? Как? Но ведь… У нас одинаковое количество очков, но команда Life сдала последний флаг раньше нас по времени, из-за чего мы заняли второе место… Команда DnO впервые была близка к победе, но упустила её в последний момент.


Финальный скорборд соревнований VolSUCTF

Первый Кубок CTF России

Прошло пару месяцев, мы не оставляли попытки добиться высоких результатов в различных online CTF’ах, но всё было тщетно, а тут мы еще узнали, что идёт набор на ПЕРВЫЙ «Кубок CTF России», а отбор на него идет по результатам отдельно выбранных организаторами CTF, проходивших с начала года.

Естественно, среди них был и VolSU CTF, в котором мы успешно заняли 2 место и, по сути не проходили на этот безумно интригующий ПЕРВЫЙ Кубок…

Однако, после мониторинга обстановки, нам стало известно, что команда Life, с которой мы поделили 1 место, участвует в данном мероприятии как организатор… Ииииииииии, да, команда DnO приглашается на «I Кубок CTF России», как призер VolSU CTF.

Естественно, не было известно абсолютно ничего про данное мероприятие и все, что нам оставалось, это усиленно готовиться.

Пропуская все нюансы подготовок, мы приезжаем в Инновационный центр Сколково, где собрались 20 лучших команд со всей страны.


I Кубок CTF России. День первый. Task-based.

Нас встречают, выдают приколюхи (наклейки, футболки и самое главное, ФЛАЖКИ!)


Тот самый, заветный флаг команды DnO

Быстрая жеребьёвка и мы узнаём какой у нас номер стола, ушли готовиться. Оперативно развернув свои печатные машинки, выступление организаторов мероприятия, где мы узнаём интересные новости, а именно:

1. Кубок проходит в 3 этапа за 2 дня;
2. Этап №1 Task-based (участвует 20 команд, проходят в следующий этап 10 лучших);
3. Этап №2 Attack-Defense (участвует 10 оставшихся команд, в следующий этап проходят 4 лучших);
4. Этап №3 Финал. (участвуют 4 команды, что будет происходить — тайна, покрытая мраком…).

Не заглядывая вперед, начали готовиться к первому этапу сие мероприятия, которое обещало быть увлекательным…

Итак, ЭТАП №1, начали.

Изнурительные 8 часов работы с приостановкой соревнований на обед. Мы выкладывались на полную, показывали лучшую командную работу, которая была когда-либо и за это получали заветные «флаги», очки, которые могли вывести нас в следующий раунд.

Забыв про Scoreboard (таблицу результатов), мы работали до последней секунды данного этапа и, не без везения, мы занимаем 6 строчку в таблице.


Scoreboard после 1 тура Кубка CTF России

За нашим столом гробовое молчание… Никто не верит, что мы не просто прошли во второй этап, мы прошли уверенно.

Только после того, когда нас пришел поздравить наш куратор, мы осознали, что происходит и с нашего лица больше не сходила улыбка.

Это явно был наш день, мы его заслужили.Никаких разборов, только еда и хороший отдых перед вторым днём соревнований.

Да, мы понимали, что очень слабы в Attack-Defense, но всё равно были заряжены трудиться до последнего.

Итак, ЭТАП №2, начали.

Когда мы сели за стол и снова развернули наши печатные машинки, удивлению не было предела…


Наше «задание» второго этапа. Своя криптоферма.

Мы увидели эту, не сказать что огромную, коробку и сколько в ней всего, как там всё устроено и осознали, что попали по самое небалуй…

Много рассказать не получится, нюансы этого этапа забыты, за исключением одного… Мы работали и старались до последнего, не ради финала, а ради себя. Потому что мы хотели доказать себе, что способны на большее.

Стоит отметить, что наши старания не прошли мимо, мы все же подняли сервер и даже получили некоторую часть флагов, но, естественно, этого было мало, другие команды были куда более подготовлены…

Итог, 9 место на втором этапе. Конечно, есть небольшое расстройство, но задачу минимум мы выполнили, чем стоило гордиться.


Scoreboard 2 этапа.

Этап длился всего 4 часа, а финал планировался на после обеда, смотреть его мы уже не пошли (честно, не было сил), но там было не менее интересно, потому что там была война роботов, правда управление ими было не через пультик, а с помощью программирования.

До такого уровня, нам явно было далековато…

Именно этим Кубком закончилось моё выступление в этой команде и как капитана и как участника… Я выпустился, другие ребята взяли всё на себя, которые были заряжены и готовы идти дальше.

Но это уже совсем другая история…

Отдельно хочется поблагодарить организаторов таких соревнований (различные CTF-команды, а также организацию АРСИБ), наставникам, кураторам, моим друзьям, выступавшим за эту команду, и ребятам, выступающим за другие команды.

Никто не забыт, огромное спасибо за это превосходное время!

То, что описано в этой статье, определенно развернуло мою жизнь градусов на 60 минимум:D
А успехи команды вы можете посмотреть вот тут.

P.S. Флаг до сих пор стоит на рабочем месте возле монитора и греет душу

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *