- PVSM.RU - https://www.pvsm.ru -

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

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

Обычно соревнования проходят в двух форматах или их вариациях:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Smoked Chicken [7]
Leet More [8].

Автор: kyprizel


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/dropbox/4742

Ссылки в тексте:

[1] Google Wave: http://wave.google.com

[2] Image: http://habrastorage.org/storage2/8e8/0d4/4d1/8e80d44d194f6e59b00bff6931366954.png

[3] Image: http://habrastorage.org/storage2/7a9/f5a/9e8/7a9f5a9e813a26f229cd380710808360.png

[4] Rizzoma.com: http://rizzoma.com/

[5] Image: http://habrastorage.org/storage2/9f2/93f/977/9f293f9778f28eeb0ef3108b27873106.png

[6] Dropbox: http://dropbox.com/

[7] Smoked Chicken: http://smokedchicken.org

[8] Leet More: http://ctf.su