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

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

image

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

Одно дело участвовать в CTF, совершенно другое, с чем я вас и познакомлю — создавать и организовывать данное мероприятие.

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


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

Разные типы тасков:

  • Quiz — то же самое, что и обыкновенные вопросы, на которые требуется дать ответ (слово, фразу)
  • Flag — тасковое задание (файл, ссылка и тд) ответ на который является флаг в соответствующем формате (наш формат h4ck1t{текст}).
  • 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! Рассмотрим области, которые мы затронули:

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

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

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


Далее про конкурс тасков: это для вас реальная возможность потренироваться в создании своих тасков фактически во всех категориях! В случае, если ваш таск проходит на CTF, то вы получаете бесплатный билет на конференцию, уважение почет. Пока прислали мало тасков, поэтому шанс быть выбранным высокий! Заявки принимаются на почту: ctf@hackit-ukraine.com

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


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

image

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


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

Надеюсь не сочтут за коммерческую рекламу, регистрироваться на CTF можно здесь

Разбор самых интересных заданий для страждущих будет опубликован после проведения мероприятия.

И скидка на само мероприятие для хабровчан: промокод на 10%, может кому пригодится:
HABR0710
Поделиться с друзьями
-->

Комментарии (4)


  1. chupasaurus
    06.09.2016 11:17

    Спасибо за труды!
    Добавлю каплю дёгтя:
    Почините бар с иконками на странице регистрации, при уходе влево нельзя отмотать ленту назад.
    Смените тэг title (как минимум в дэшборде), у вас всё же не Facebook :).


  1. peck_wtf
    06.09.2016 11:48

    FYI с включённым Adguard на сайте ничего не работает


  1. alice23
    06.09.2016 15:42

    Промокод, как я поняла, для участия в форуме hackit-ukraine.com? Потому что если это для CTF, то не понятно куда его вбивать


    1. kot9pko
      11.09.2016 12:48

      Участие в СTF бесплатное. Промокод на билеты для самой конференции, где будут выступать с докладами.