Wargame (взлом)

undefined

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].

Виды заданий

undefined

Задачи CTF обычно делятся на следующие категории:

  • Бинарный анализ — реверс-инжиниринг или эксплуатация двоичных файлов. Применяются методы «коррупции памяти» для получения дополнительных привилегий или управления потоком выполнения приложения.
  • Веб — поиск флага на веб-страницах и в веб-приложениях. Для анализа применяются инструменты вроде Nmap, Wireshark и Metasploit.
  • Криптография — дешифрование или шифрование данных, преобразования строк, требующие знания программирования и криптографических алгоритмов.
  • Pwn — эксплуатация удалённых сервисов с целью нахождения флага.
  • Стеганография — обнаружение скрытой информации в файлах или изображениях. Техника скрытия сообщений внутри других, например, в графических изображениях или иных файловых структурах[4].
  • Forensics — восстановление данных, анализ дампов памяти и трафика, поиск скрытых или удалённых данных в различных форматах.
  • Networking — анализ сетевых пакетов, протоколов маршрутизации, изучение дампов сетевого трафика.
  • XPL — задачи на эксплуатацию приложений с целью изменения логики их работы.
  • Miscellaneous — смешанные или необычные задачи, не входящие в стандартные категории: могут требовать и форенсики, и программирования одновременно.
  • Реверс-инжиниринг — изучение принципов работы приложений для поиска скрытых строк или понимания алгоритма функционирования[5].
  • PPC (Professional Programming and Coding) — задачи на программирование (на различных языках): участнику необходимо модифицировать код, чтобы получить флаг, или реализовать эффективное решение сложной задачи.

Крупнейшие мероприятия

undefined
Примеры 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 методами: от классических шифров до современных асимметричных схем, цифровых подписей и примитивов постквантовой криптографии.
  • John The Ripper — многофункциональная программа для взлома (подбора) паролей поддерживающая различные форматы хэшей и платформы (изначально — для UNIX), позволяет обнаруживать тип хэша и использовать индивидуальные словари или правила к перебору[10].
  • Binwalk — утилита для анализа и извлечения данных из образов файлов прошивок, поиска в raw-образах, идентификации «магических чисел» и скрытых файлов.
  • Burp Suite — программный комплекс для тестирования безопасности веб-приложений, включающий различные модули (прокси, сканер, spider, repeater, decoder и др.), разработанный компанией PortSwigger Web Security.
  • GDB — отладчик проекта GNU для работы с программами на C, C++, Fortran, Java и других языках; может использоватся для пошагового выполнения, изменения переменных во время исполнения, анализа аварийных завершений.

Трудности участия

Игры в стиле CTF не всегда просты для новичков. В отличие от шахмат или шашек, где стартовые правила достаточно прозрачны, CTF требует значительной предварительной подготовки. Входной порог для новых участников весьма высок: отсутствие интуитивной инструкции, высокая техническая сложность задач, использование сложного софта для дизассемблирования или анализа файлов — всё это отпугивает многих начинающих.

Отличие CTF от хакатонов

Хотя CTF и хакатоны оба предполагают соревновательную работу команд над техническими задачами в ограниченное время, их цели различны. CTF ориентирован на «атаку» и «защиту» ИТ-инфраструктуры в контролируемых условиях, изучение практик информационной безопасности. Хакатон — это более общий формат для совместной разработки новых продуктов или приложений, и не ограничивается кибербезопасностью[11].

Примечания