Командное взаимодействие во время соревнований CTF

    Нет, это не про Quake. Статья будет интересна тем, кто уже знает, что такое соревнования CTF и принимал участие хотя бы в одном подобном мероприятии. Для тех, кто не знает, CTF(Capture The Flag) — соревнования в сфере информационной безопасности, основной целью которых является захват т.н. «флагов», которые в дальнейшем превращаются в очки.

    Соревнования длятся 24–48 часов, часто без перерыва, что требует от участников обладания огромным багажом знаний и опыта. Немаловажным фактором является возможность быстрого обмена информацией/знаниями в режиме реального времени. Таким образом, CTF можно рассматривать как модель сжатого во времени процесса, связанного одновременно с анализом данных, мозговым штурмом, поиском и эксплуатацией уязвимостей, разработкой ПО.


    Обычно соревнования проходят в двух форматах или их вариациях:
    • Classic — команды должны находить уязвимости в инфраструктуре соперника, атаковать и извлекать флаги, при этом защищать свою инфраструктуру;
    • Jeopardy — команды решают серию задач различной сложности, получая флаги в качестве решений.




    Мы — объединенная сборная двух российских команд "Leet More" и Smoked Chicken (вместе "More Smoked Leet Chicken"). Сборная имеет в своем активе победы и высокие места на множестве международных соревнований, таких как iCTF, Defcon CTF, Mozilla CTF, Codegate, PlaidCTF и пр.
    Так как количество участников, в зависимости от соревнований, может колебаться от 5 до 15 человек, при этом исторически сложилось, что хотя всех нас и связывает ExUSSR, живем мы в различных частях света, от Осло до Токио, от Киева до Томска, и нам нужен был эффективный способ взаимодействия через Сеть.



    Для обсуждения заданий мы долгое время использовали IRC. Во время CTF часто возникает необходимость делиться файлами, кусками кода, обсуждать задачи контекстно, поэтому сервис Google Wave также стал для нас полезным инструментом. Но у Google Wave были и недостатки — из-за падений на больших волнах он не смог полностью заменить IRC. Со временем, отказались от IRC в пользу связки Skype+GWave. Skype позволил оперативно обмениваться файлами, общаться голосом, но обсуждение всё так же проходило отдельно от накопленных знаний и по-прежнему было никак не структурировано, в волну писались лишь выжимки. И хотя, GWave не был идеален, был заточен скорее под развлечения, чем под активное обсуждение одного вопроса, он нас устраивал.



    К сожалению, Google Wave перешел в режим read-only в 2012 году, а скоро и вовсе будет закрыт. Таким образом, перед нами вновь встал вопрос поиска удобного инструмента.
    Мы попробовали «Walkaround» и «Wave in a box», но по стабильности и функционалу они были слишком далеки от своего предка.
    На помощь пришла Rizzoma.com — они смогли взять лучшее из GWave, но при этом отказаться от многих лишних вещей, это была уже не социальная сеть с возможностью редактирования текста в реальном времени, а скорее наоборот — инструмент работы в реальном времени, с остальными фичами в нагрузку.
    И хотя, полноценное контекстное общение в Rizzoma всё еще невозможно, реализованные механизмы обновления и структурирования знаний в реальном времени нас полностью удовлетворили.

    Мы разработали свой способ формирования структуры обсуждения, цветовое кодирование.



    В случае с CTF Jeopardy типа, все задания делятся на категории, которые мы используем как основной метод структурирования. В классике, структура зависит от количества и типа сервисов.

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

    Для обмена файлами используются Dropbox shared folders. При необходимости, ссылки пишутся в соответствующую ветку обсуждения. Shared folders позволяют легко делиться наработками. Также, благодаря нотификациям легко следить за изменениями файлов.

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

    Если какая-то задача вызывает сложности, всё найденное по ней структурируется и записывается в Rizzoma. Таким образом, получается некая база знаний, позволяющая быстро продолжить работу при появлении новой информации.

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

    По окончании соревнований, мы имеем описание всех решенных заданий, собранное в одном месте с четкой структурой, что упрощает понимание хода решения для тех, кто не принимал в нем участие, а также написание отчетов и writeup'ов.

    Описание хода решения некоторых заданий с прошедших мероприятий можно почитать на сайтах команд:

    Smoked Chicken
    Leet More.
    Метки:
    Поделиться публикацией
    Похожие публикации
    Комментарии 21
    • +1
      Было бы интересно услышать про подобный опыт от других команд.
      • 0
        От всех десяти с половиной человек ;)
        • +4
          Да легко (= Моя команда (Midnighters) состоит из одного человека, и общение проходит по нейронным связям (=
          • 0
            Одному против таких банд. Да тяжко наверно. Получается побеждать?
            • 0
              Нет, но мои места далеко и не последние. На данный момент играю на интерес. Люблю порешать интересный задачки
        • 0
          Участвовал в CTF несколько раз. Чаще всего взаимодействия между игроками были через IRC, аську и закрытых разделах форума. Но надо взять на вооружение вышеизложенный материал :)
          • +1
            "… И хотя, полноценное контекстное общение в Rizzoma всё еще невозможно" ==> что добавить чтобы полноценное контекстное общение стало возмоно?
            • +1
              думаю, skype риззоме не заменить никогда, да и не нужно.
              • +1
                Или IRC.
                • 0
                  Да у нас есть свои задачи по развитию. Кстати есть вариант интегрироваться в google hangout.
                  • 0
                    Я бы в первую очередь пилил поддержку других браузеров.

                    P.S. спасибо за продукт!)
                    • 0
                      На той неделе хотим взяться на FireFox, первые результаты будут где-то через месяц.
                    • +1
                      google hangout — развлекуха, imho.
                      я видел ваш Roadmap, считаю что там всё Ok и без лишнего функционала вроде google hangout.
                • 0
                  Задания бы выложил кто, интересно поковырять ночь другую :)
                • 0
                  Кстати, вместо скайпа, наверное, было бы удобно использовать teamspeak или mumble, там комнаты и все такое.
                  • 0
                    skype в данном случае обладает следующими достоинствами:
                    • у большинства он уже установлен
                    • относительно безопасен
                    • p2p, отказоустойчив
                    • групповые звонки, обсуждения
                    • возможность одновременного общения как голосом, так и текстом


                    так что, конкурентов, увы, нет.
                    • 0
                      Mumble почти не пользовался, но teamspeak поддерживает текст, у него есть «комнаты», это удобней(по моему мнению) групповых звонков в скайпе(может кто-то зайти в любой момент, например).
                      Если вам нравится скайп — нет проблем, но для группового обсуждения, по моему личному мнению, можно попробовать тимспик.
                    • 0
                      +автоматическое «подсасывание» хистори, если кто-нибудь из участников комнаты отваливается. а также можно оперативно обмениваться файлами.
                    • 0
                      хочу поучаствовать в подобных мероприятиях. где почитать, кому отписать?

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.