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