1. Что общего у CTF и тестов на
проникновение?
Летняя школа «Развитие CTF в России»
Ганиев Омар
Отдел анализа защищенности
2. Curriculum vitae
• Увлекаюсь ИБ со школьного времени
• Образование – факультет математики НИУ-ВШЭ
• CTF-команда RDot.Org
• Работаю пентестером в компании «Информзащита»
3. О чём пойдёт речь?
• Что такое испытание на проникновение (пентест)?
• Рассмотрим некоторых «персонажей» хакерского
мира и навыки, необходимые для их работы
• Польза от CTF-навыков в практической деятельности
• Что делать?
4. • Метод оценки безопасности компьютерных систем
или сетей средствами моделирования атаки
злоумышленника
• Может ставить целью как проверку факта
возможности проникновения хотя бы одним способом
(после исправления недостатков, обнаруженных в
ходе аудита), так и обнаружение максимального
количества уязвимостей
Penetration testing
5. Penetration testing
Методология проведения тестов на проникновение
подразумевает наличие нескольких этапов:
• Определение области обследования
• Составление модели угроз
• Сбор информации об объекте исследования
• Поиск уязвимостей
• Попытки эксплуатации обнаруженных уязвимостей
• Получение доступа к критичным ресурсам
• Составление отчѐтной документации
6. Penetration testing
Существует 3 типа пентестов:
• White box
Заведомо известна структура информационной
системы (ИС). Это может быть схема сети,
конфигурация оборудования, исходные тексты ПО.
• Black box
Известны лишь точки входа – адреса, через которые
следует пытаться проникнуть в ИС Заказчика.
• Grey box
Комбинация white и black box
7. Хакеры
• Студенты и любители участвуют в CTF
• Black-hat'ы занимаются взломом, нарушая закон
• Исследователи разрабатывают новые методики
• Пентестеры занимаются взломом, не нарушая закон
Какие есть особенности у задач, возникающих у
каждого из этих персонажей, и как правильно
применить навыки, полученные в соревнованиях?
8. Особенности CTF-задач
• Главные цели – самообучение, получение
(соревновательного) опыта
• Фиксированное количество различных
задач, конкретный формат ответа (не всегда)
• Лаконичные формулировки задач
• Сильно ограничено время, поэтому требуется уметь
очень быстро поглощать новую информацию и
решать большое количество задач
9. Особенности задач black-хакера
• Главная цель – длительное получение денежной
выгоды (если взлом не политизирован)
• Нет ограничения законодательством
• Нельзя оставлять следов
• Ограничения по времени нет, главное чтобы
временные затраты окупались
• Романтика обманчива, денежная выгода тоже
10. Особенности задач исследователя ИБ
• Главные цели – денежная выгода (0-day рынок),
научное признание, востребованность
работодателями
• Как правило, нет точных формулировок задач
• Как следствие, неизвестно сколько времени
потребуется для их достижения
• Требуются глубокие знания, терпение, удача
11. Особенности задач пентестера
• Главные цели – получение контроля над ИС
заказчика, получение доступа к критичным данным
(таким как данные платѐжных карт) и обнаружение
максимального количества недостатков
• О системе может быть известно многое (white-box)
или почти ничего (black-box)
• Время ограничено, но не так сильно как в CTF
• Требуются практические навыки эксплуатации,
знание инструментария, встречаются и
нестандартные задачи
12. Чему CTF научит?
• Искать уязвимости в коде, сетевых и веб-сервисах
• Быстро разобраться в совершенно незнакомой
технологии (языке программирования, прикладном
ПО, инструментах, и т. п.)
• Распознавать в реальных системах задачи, уже
встречавшиеся в CTF (ведь их не выдумывают, а
делают по мотивам реальных случаев)
• Делать смелые и нестандартные догадки
• Быстро программировать и использовать
инструментарий для рутины
• Иметь широкий кругозор, зная в той или иной мере
все сферы, связанные со взломом
13. Чему CTF не научит?
• Несколько месяцев скрупулѐзно изучать одну
область, решая конкретную задачу
• Проводить некоторые атаки, типичные для тестов на
проникновение (например, сетевые атаки,
социальная инженерия)
• Действовать при этом осторожно, не нарушая
работоспособность информационной системы
• Писать отчѐтную документацию (написание write-
up'ов облегчает эту задачу)
14. Какие прикладные задачи есть в CTF?
• Успешное проникновение в корпоративную ИС часто
начинается со взлома web-приложения
• Поэтому, для будущего пентестера целесообразно
акцентировать в CTF-соревнованиях внимание на
заданиях категории web
• Понятие «анализ защищѐнности» включает в себя не
только собственно пентесты ИС, но и анализ ПО
• Поэтому задания на reverse engineering и binary
exploitation также очень важны
15. Выводы
• CTF учит за короткое время решать много различных
задач
• Это умение полезно для пентестера, поскольку
пентест тоже ограничен сроками
• Однако, в пентесте нужно также целостное
понимание процессов обеспечения ИБ, структуры
корпоративных информационных систем, а также
умение использовать комбинации обнаруженных
уязвимостей для проникновения (пост-эксплуатация)
• Кроме того, пентестер должен уметь грамотно
резюмировать свою работу и давать рекомендации
по снижению обнаруженного риска
16. Так что всё-таки делать?
• Программировать. Причѐм и спортивное
программирование тоже полезно и развивает нужные
качества, однако это большая отдельная тема сама
по себе
• Решать задачи. Причѐм полезны не только CTF-
задачи – математика, программирование к вашим
услугам
• Читать bugtrack’и и блоги
исследователей, мониторить твиттер-ленту. Нельзя
упускать свежие новости
• Читать и писать write-up’ы по итогам CTF-событий.
Углубляет знания и учит приводить свои мысли в
порядок
• Следить за новыми технологиями. Скоро и
они станут целью атак