CTF (Capture The Flag) - командная игра, целью которой является совершенствование навыков в области компьютерной безопасности.
Место проведения: сеть интернет, локальная подсеть (в зависимости от типа соревнования).
Язык: English (реже русский)
Состав команды: Команда состоит из 5-10 человек, которые имеют универсальную специализацию (разбираются во всем по чуть-чуть), но каждый из игроков обычно отвечает за свою категорию заданий. При удаленном участии количество человек не регламентируется.
Победитель: определяется по количеству очков.
Суть игры: Каждая команда в любом виде CTF должна достать так называемые флаги (flags, keys). Обычно флаг представляет собой строку, состоящую из 32 шестнадцатеричных символов (key(0920303251BABE89911ECEAD17FEBF30), flag=0920303251BABE89911ECEAD17FEBF30 flag:0920303251BABE89911ECEAD17FEBF30 flag:{0920303251BABE89911ECEAD17FEBF30} и т. д.), либо осмысленную строку с указанием, что это флаг
( flag{number2isalittlebitharder
}, Your key is: day 145: they still do not realize this software sucks, и т. д.).
Длительность: от 8 до 24 часов - Classic; от 4 часов до 7 дней - Task-based.
Порядок проведения игры (в команде bit0n): Капитан команды определяет предстоящую игру и регистрирует команду. Все игроки оповещаются через google+ и форум. Каждый, кто будет участвовать плюсует сообщение. Все игроки в момент начала игры находятся дома за компьютерами (если игра проходит локально - приходят со своими ноутбуками, едой, водой). Логин/пароль для выхода на сайт сообщаются заранее После старта соревнований каждый игрок выбирает понравившуюся категорию, скачивает таски (задания) и пытается их решить (добыть из них/с помощью них флаг).
Вся информация, которая сопутствует решению, как то: мысли (умные и глупые), догадки, находки, проделанные действия, полученную промежуточную информацию - всё это игроки выкладывают на форум. В форуме каждое сообщение оформляется примерно одинаковым образом (строгих правил нету). Если информацию по чужому сообщению добавляет другой человек, он должен указать свой ник после сообщения (//nickname). После решения какого-либо таска полученный флаг отправляется на сайт, потом указывается на форуме с пометкой (//solved by nickname).
Общение между игроками осуществляется через закрытый канал IRC. Дополнительные средства связи Google+, конференции в Jabber. Доступность для общения обязательна в течении всей игры.
После завершения соревнования игроки пишут КОРОТКИЕ writeup'ы (что-то вроде алгоритма решения), пытаются реализовать проделанные ручками действия с помощью python-скриптов (если возможно и необходимо). Вся используемая игроками информация в частном порядке сохраняется в отдельную папочку и запоминается. Задания, которые "почти решили", но не успели дорешать решаются после окончания игры самостоятельно. После игры возможны семинары, на которых можно будет задать вопросы участникам команды ufologists и получить ответы.
Цель игры (в команде bit0n): Определение категории, которая больше нравится (лучше получается, легче других решается и т. д.) каждому игроку. Изучение информации, связанной с решением тасков и совершенствование в выбранной области. Попутное освоение других областей. Люди, которые достигли определенных успехов в выбранной области получают шанс попасть в официальную команду UFOLOGISTS.
Преимущественно CTF бывают 2-х видов:
- Jeopardy (Task-based):
- Classic
1)Проходит в виде соревнования похожего на олимпиаду. Всем командам участницам предложено некоторое количество заданий и ограниченное время на их выполнение. Каждое задание стоит определенное количество очков. По истечении отведенного времени автоматически выбирается участник в зависимости от набранного количества очков.
2)Проходит преимущественно локально (иногда удаленно). Команды участницы собираются в одном месте и скачивают с сайта организаторов виртуальный образ сервера, готового к игре. Этот сервер изобилует уязвимостями. Каждой команде даётся 1 час на изучение предоставленного сервера, после чего начинается соревнование. Целью является защита от атак своего сервера и успешная атака наибольшего возможного количества серверов других команд. За атаку и защиту отдельно начисляются очки. По сумме очков определяется победитель.
Категории тасков:
- WEB - задания, связанные с поиском уязвимостей веб приложений, страничек, взломом БД, проведением XSS-атак, SQL-инъекций.
- PPC - задания на скоростное программирование. Обычно программная реализация действий невыполнимых или трудновыполнимых вручную.
- FORENSICS - поиск улик. Поиск любых файлов и информации в любых местах, следов файлов, восстановление их из трафика и т. д.
- RECON - задания на умение пользоваться поисковиком. Поиск людей, предметов, явлений, информации о них, необычных фактов и т. д.
- TRIVIA - вопросы, призваные отфильтровать совсем необразованных участников. Ответ на них не является обязательным и решаются они практически моментально, но лишние очки приносят.
- REVERSE - задания связанные с reverse ingeneering. Дизассемблирование, декомпилирование, построение обратных алгоритмов.
- STEGANO - поиск информации, передаваемой в неявном виде. Картинка в картинке, зашифрованные послания в последних битах и т. д.
- NET - задания, связанные с деятельностью сетевой инфраструктуры, анализ трафика, выявление атак и т. д.
- EXPLOIT - написание программ, эксплуатирующих найденную уязвимость на удаленном сервисе.
- BINARY - что-то вроде реверса под Linux.
- PWN - Некая смесь реверса и эксплоитов.
- CRYPTO - шифрование, дешифрование, алгоритмы и прочее.
- MISC - Некая произвольная комбинация вышеописанных категорий
- и др. - любые вариации категорий.
Где можно почитать про CTF: