Надеюсь, многие из вас посещают HackIT не только ради after-party, но и также для того, чтобы размять ум и смекалку на CTF (Capture The Flag). Организовывая мероприятие, в котором будет совмещено все вышеперечисленное, хотели бы поделиться опытом нашей команды по выбору платформы для СTF и собственно самой разработки.

 

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

 

На среди посетителей HackIT есть немало увлеченных CTF играми, поэтому на вопрос: почему существует множество сайтов, с рейтингом команд и участников, scoreboard’ами и аналитическими статьями, уже многие давно нашли ответ. Ведь это чуть ли не единственное занятие, в котором есть дух соперничества и каждый «безопасник» может померятся достоинством, хоть и в искусственных, и лишь в некотором роде приближенных к реальности условиям. Одно дело участвовать в CTF, совершенно другое, с чем я вас и познакомлю — создавать и организовывать данное мероприятие.

 

Выбор платформы

Платформы для CTF бывают двух типов: готовые и самописные. Готовые платформы хороши своими «фичами», которые дорабатываются годами и проверены многими соревнованиями. Самописные же фактически гарантируют безопасность сайта т.к. их будут писать люди, которые знают больше о ней, чем среднестатистический программист-верстальщик (чего мы не можем гарантировать в случае с готовыми платформами, тут все зависит от прямых рук). Поэтому лично наш выбор пал на платформу Facebook CTF — интересная система со следующими настройками: Разные типы тасков:

  1. Quiz — то же самое, что и обыкновенные вопросы, на которые требуется дать ответ (слово, фразу)
  2. Flag — тасковое задание (файл, ссылка и тд) ответ на который является флаг в соответствующем формате (наш формат h4ck1t{текст}).
  3. Bases — аналогия игры «Царь горы», кто первый решает таск, тот получает больше всех баллов (и так по убыванию)

 

А так же есть подсказки, при открытии которых снимается какое-то количество баллов. Не малый плюс: У Facebook один из самых захватывающих интерфейсов среди платформ. Платформа Facebook CTF вначале использовалась в таких CTF’ах, как Facebook CTF в Csu San Bernardino и на конференции BruCON 2014. Впоследствии Facebook начал продвигать политику OpenSource ПО. Это также и затронуло их CTF платформу. И в мае 2016 года они открыли ее исходный код на github. Но, как вы можете догадаться, продукт был недоделанным, но разработчики не спали и к сентябрю сделали уже около 401 правки в их код с момента публикации. Надеемся, что они и дальше будут в таком же темпе апгрейдить их продукт 🙂

 

Настройка платформы

И вот мы столкнулись с первыми трудностями: оказалось, что платформа находится только в бета-тестировании и имеет множество недочетов. Перед нами встала задача исправить и подкорректировать некоторые баги. Не буду описывать весь процесс исправления и костылей, скажу лишь, что несколько раз хотели менять платформу, но все же решили, что будем одними из первых покорять Facebook CTF. Все редактирования мы проводили, основываясь на нашем трехлетнем опыте участия в CTF соревнованиях. Учитывались все недочеты, допущенные другими соревнованиями, такие как отсутствие bugbounty и очков за него, связь с создателями тасков и многое другое! Также на это повлияла платформа ctftime, на которой в том числе и выкладываются множество райтапов с отзывами участников о каком-либо проводимом соревновании.

 

Создание тасков

А это один из самых интересных этапов в разработке CTF’a! Рассмотрим области, которые мы затронули:

  1. Admin/Misc — таски приближенные к ежедневным проблемам сисадминов.
  2. Cryptography — задания, которые основываются на особенностях криптографических алгоритмов.
  3. PWN — поиск уязвимостей и последующая эксплуатация сервиса, запущенного на каком-то порту.
  4. Exploit — аналогично PWN, только нам еще предоставляются исходники этого бинарника.
  5. Forensics — расследование инцидентов, анализирование различных дампов и др.
  6. Joy — нужно периодически отвлекаться на несерьезные таски:)
  7. Network — сетевые задания.
  8. PPC — задания на программирование.
  9. Reverse — анализирование бинарников с последующим изучением алгоритмов, используемых в программе, для получения флагов
  10. Steganography — поиск скрытых каналов передачи информации.
  11. Web — веб-безопасность.

 

А для тех, кто хочет попробовать себя в создании тасков, мы сделали конкурс тасков.

 

Конкурс тасков

Далее про конкурс тасков: это для вас реальная возможность потренироваться в создании своих тасков фактически во всех категориях! В случае, если ваш таск проходит на CTF, то вы получаете бесплатный билет на конференцию, уважение почет. Пока прислали мало тасков, поэтому шанс быть выбранным высокий! Заявки принимаются на почту: [email protected]

 

Оффлайн тур H4ck1t CTF

Помимо 12 подготовленных категорий с интересными тасками, рассчитаных как для новичков, так и для профи в каждой из областях, 10-ку лучших команд ожидает оффлайн-тур с нестандартными и интересными конкурсами, более развлекательного, но все же не без смекалки, жанра (пока секрет какие 🙂 ).

 

 

Проведение соревнований

Проводиться онлайн тур будет с 23 сентября по 2 октября. И в каждый день будут открываться несколько тасков из различных категорий. По его итогам лучшие команды будут приглашены на оффлайн тур 7-ого октября на конференцию HackIT-2016. В финале команды будет ожидать тасковый CTF, но уже в реальной жизни с нестандартными конкурсами, блэкджеком и дамами. Наша команда готовит увлекательные квесты в реальности со взломом веб-камер, RFID, замков и многое другое. Разбор самых интересных заданий для страждущих будет опубликован на сайте ctf.com.ua