Wargame (взлом)
Wargame, также известны как capture the flag, CTF — вид соревнований среди специалистов по информационной безопасности, в ходе которых участникам необходимо решать задачи по кибербезопасности и информационной защите. В таких состязаниях (также называемых ментальным спортом) участники должны обнаруживать и пользоваться уязвимостями или, напротив, защищать системы и приложения, чтобы получить или помешать получению доступа к информационным ресурсам.
Описание
CTF-соревнования охватывают широкий спектр киберзадач: отслеживание уязвимостей через проведение пентестов, использование уязвимых URL, атаки на системы аутентификации, реверс-инжиниринг программного обеспечения (особенно на JavaScript, Adobe Flash, ассемблере), взлом паролей, инъекции кода (code injection), межсайтовое скриптование (cross-site scripting), SQL-инъекции, эксплуатацию уязвимостей, фальсификацию IP-адресов, анализ цифровых доказательств, а также различные приёмы взлома.
CTF могут проводиться как в командном, так и в индивидуальном форматах, и обычно представлены в трёх основных разновидностях. Первый — Jeopardy-стиль, где участники решают задачи разного уровня сложности и получают за это баллы; выигрывает набравший больше всех очков. Этот вариант часто проводится онлайн и используется как отборочный к другому формату — «Attack/Defense», где командам выдаются отдельные уязвимые (обычно сетевые) окружения: сначала их нужно исследовать и устранить найденные уязвимости, а затем взломать системы соперников, одновременно защищая свои. Самые крупные мировые соревнования (например, DEF CON) проводятся именно в этом виде[1]. Также существуют гибридные CTF, сочетающие особенности обеих схем.
В рамках CTF-формата проверяются практические навыки в таких областях, как поиск уязвимостей в сетях, криптография и программирование, а также знания, выходящие за пределы ИТ — включая математику, лингвистику и историю. Обычно «захват» («флаг») — это строка или код, подтверждающий успешное выполнение задания. Соревнования по CTF нередко выступают обучающим инструментом: они знакомят участников с практикой компьютерной безопасности, учат реагировать на реальные кибератаки и защищать инфраструктуру[2].
История
Кибербезопасность стала приоритетной задачей как для крупных, так и для малых организаций, что связано с ростом числа кибератак. В ответ на новые угрозы специалисты по безопасности и студенты профильных вузов проходят специализированное обучение, включающее моделирование действий злоумышленников. Одним из распространённых форматов обучения и became CTF.
Первое CTF-соревнование по информационной безопасности было проведено в 1996 году на 4-й конференции DEF CON в Лас-Вегасе, штат Невада. DEF CON — крупнейшая кибербезопасностная конференция США, которая стартовала в 1993 году по инициативе Джеффа Мосса. Постепенно платформа DEF CON CTF приобрела мировую известность и вышла за национальные рамки, так как к онлайн-соревнованиям подключились международные команды: участники стали соревноваться не только за призы, но и за престиж в профессии[3].
Сегодня такие соревнования проходят по всему миру: в них участвуют студенты, специалисты по защите информации, а также профессиональные участники — и нередко именно на таких платформах компании знакомятся с будущими работниками. Например, Ernst & Young проводит собственные CTF в рамках отбора сотрудников, а Google организует аналогичные конкурсы[1].
Виды заданий
Задачи CTF обычно делятся на следующие категории:
- Бинарный анализ — реверс-инжиниринг или эксплуатация двоичных файлов. Применяются методы «коррупции памяти» для получения дополнительных привилегий или управления потоком выполнения приложения.
- Веб — поиск флага на веб-страницах и в веб-приложениях. Для анализа применяются инструменты вроде Nmap, Wireshark и Metasploit.
- Криптография — дешифрование или шифрование данных, преобразования строк, требующие знания программирования и криптографических алгоритмов.
- Pwn — эксплуатация удалённых сервисов с целью нахождения флага.
- Стеганография — обнаружение скрытой информации в файлах или изображениях. Техника скрытия сообщений внутри других, например, в графических изображениях или иных файловых структурах[4].
- Forensics — восстановление данных, анализ дампов памяти и трафика, поиск скрытых или удалённых данных в различных форматах.
- Networking — анализ сетевых пакетов, протоколов маршрутизации, изучение дампов сетевого трафика.
- XPL — задачи на эксплуатацию приложений с целью изменения логики их работы.
- Miscellaneous — смешанные или необычные задачи, не входящие в стандартные категории: могут требовать и форенсики, и программирования одновременно.
- Реверс-инжиниринг — изучение принципов работы приложений для поиска скрытых строк или понимания алгоритма функционирования[5].
- PPC (Professional Programming and Coding) — задачи на программирование (на различных языках): участнику необходимо модифицировать код, чтобы получить флаг, или реализовать эффективное решение сложной задачи.
Крупнейшие мероприятия
- Национальные
- Capture The Flag - HackerSec
- Hackaflag
- Hackversity от H2HC
- Sucuri Hacker Club
- Pwn2Win CTF
- Международные
| Jeopardy CTFs | Attack/Defense CTFs |
|---|---|
| CSAW CTF | DEF CON CTF (Финал) |
| PicoCTF | iCTF |
| DEF CON CTF (Отбор) | RuCTFE |
Применение и значимость
CTF — это отличная площадка для старта и построения карьеры в кибербезопасности: многие мероприятия активно посещают руководители и рекрутеры, чтобы находить перспективных специалистов. Вместе с тем соревнования позволяют «безопасно» проверить и развивать свои навыки как профессионалам, так и студентам или энтузиастам, а также способствуют развитию командной работы, коммуникации, управлению временем и решению сложных проблем.
Проведение CTF требует чёткого донесения правил и ограничений до всех участников события, а руководителям служб информационной безопасности рекомендуется поощрять коллег участвовать для профессионального роста и командного сплочения. Кроме того, подобные мероприятия формируют культуру ответственного отношения к цифровой безопасности и способствуют обмену знаниями.
Соревнования зачастую используются и в научных целях: анализ сетевого трафика и данных, собранных во время CTF, помогает моделировать реальные атаки и разрабатывать методы предотвращения инцидентов.
Однако к недостаткам относится и риск: знания, приобретённые на CTF, могут быть использованы во вред — шапка «black hat» противопоставляется этичному «white hat»-подходу, когда навыки применяют в интересах защиты информации[6].
CTF как образовательный инструмент
Роль CTF как обучающего средства признана ведущими образовательными и кибербезопасностными организациями. Традиционное обучение иногда не охватывает навыки обнаружения и исправления уязвимостей; CTF восполняет этот пробел, предоставляя студентам пространство для приобретения практических знаний по вскрытию, анализу и защите информационных систем.
Игра как командная деятельность по «контролируемому взлому» предоставляет уникальную мотивацию для улучшения технических и «междисциплинарных» умений. Вместе с тем требуется значительная инфраструктура: сетевое оборудование, сервера и высокая пропускная способность каналов. Нередко участие студентов в CTF создает давление на ИТ-отделы университетов из-за риска нарушений или возможных проблем с безопасностью внутренней сетевой инфраструктуры.
Сложность самостоятельной разработки и поддержки собственного CTF-окружения приводит к распространению типовых платформ и сервисов для хостинга соревнований — облегчая преподавателям и обучающимся организацию и проведение подобных курсов[7].
Часто используемые техники
- Return Oriented Programming — метод обхода защиты исполнения, позволяющий атакующему выполнить произвольный код, даже если в системе активированы защитные механизмы. В атаке злоумышленник перехватывает стек вызова программы, вводя последовательности команд («гаджеты»), найденные в памяти целевой машины, часто заканчивающиеся инструкцией возврата.
- SQL-инъекция — техника внедрения произвольных команд SQL с помощью веб- или локальных приложений, позволяющая изменять стандартные запросы к базе данных, что может привести к раскрытию, подделке или удалению информации, а также к исполнению команд операционной системы. К примеру:
- Извлечение скрытых данных;
- Подмена логики приложения;
- Использование объединённых SELECT-запросов (UNION attack) для получения информации из других таблиц;
- Получение информации о структуре и версии базы данных;
- «Слепая» SQL-инъекция — когда приложение не возвращает прямых ошибок и видимых результатов[8].
Инструменты
- Cryptoool — проект с открытым исходным кодом для обучения и анализа криптографических алгоритмов. Позволяет экспериментировать с более чем 400 методами: от классических шифров до современных асимметричных схем, цифровых подписей и примитивов постквантовой криптографии.
- Wireshark — известнейший анализатор сетевых протоколов, позволяющий отслеживать сетевой трафик на уровне пакетов[9].
- John The Ripper — многофункциональная программа для взлома (подбора) паролей поддерживающая различные форматы хэшей и платформы (изначально — для UNIX), позволяет обнаруживать тип хэша и использовать индивидуальные словари или правила к перебору[10].
- Binwalk — утилита для анализа и извлечения данных из образов файлов прошивок, поиска в raw-образах, идентификации «магических чисел» и скрытых файлов.
- Burp Suite — программный комплекс для тестирования безопасности веб-приложений, включающий различные модули (прокси, сканер, spider, repeater, decoder и др.), разработанный компанией PortSwigger Web Security.
Трудности участия
Игры в стиле CTF не всегда просты для новичков. В отличие от шахмат или шашек, где стартовые правила достаточно прозрачны, CTF требует значительной предварительной подготовки. Входной порог для новых участников весьма высок: отсутствие интуитивной инструкции, высокая техническая сложность задач, использование сложного софта для дизассемблирования или анализа файлов — всё это отпугивает многих начинающих.
Отличие CTF от хакатонов
Хотя CTF и хакатоны оба предполагают соревновательную работу команд над техническими задачами в ограниченное время, их цели различны. CTF ориентирован на «атаку» и «защиту» ИТ-инфраструктуры в контролируемых условиях, изучение практик информационной безопасности. Хакатон — это более общий формат для совместной разработки новых продуктов или приложений, и не ограничивается кибербезопасностью[11].