Penetration testing: методология, стандарты, виды пентестов
Penetration testing — это контролируемая симуляция реальной атаки на информационные системы компании с целью выявить уязвимости до того, как ими воспользуется реальный атакующий. В отличие от автоматических сканеров, пентестер использует творческое мышление, нестандартные комбинации техник, понимание контекста бизнеса. Сканер находит известные уязвимости по сигнатурам; пентестер выясняет, как уязвимости можно соединить в полноценную атаку.
За последние двадцать лет в индустрии сложились формальные методологии пентестов, набор стандартных этапов, регламентированные правила взаимодействия с заказчиком. PTES, OWASP, NIST SP 800-115, OSSTMM — основные референсы, которые применяются на практике. Понимание этих стандартов помогает заказчику оценивать предложения подрядчиков, а специалистам по безопасности — выстраивать собственный процесс тестирования.
Что такое пентест
Пентест — это процесс целенаправленного поиска уязвимостей в системе путём моделирования действий злоумышленника. Цель — найти слабые места и оценить их реальную эксплуатируемость, а не просто отметить теоретические риски. Пентестер действует с разрешения владельца системы и в строго очерченных рамках, что отличает его от настоящего атакующего.
Цели пентеста
- Выявить эксплуатируемые уязвимости, которые могут быть использованы для проникновения
- Оценить реальный риск этих уязвимостей в контексте конкретной системы
- Проверить эффективность существующих защитных механизмов
- Получить независимую оценку зрелости security-программы
- Удовлетворить регуляторные требования (PCI DSS, банковские стандарты)
- Подготовить compliance-сертификацию (ISO 27001, SOC 2)
- Оценить готовность к публичному запуску продукта или функции
Чем пентест не является
Распространённые заблуждения о пентесте важно развеять, чтобы правильно использовать этот инструмент:
- Пентест — это не сканирование уязвимостей. Сканер находит известные CVE, пентестер ищет реальные пути компрометации
- Пентест — не панацея от взлома. Он показывает срез безопасности на момент тестирования, не гарантирует защиту в будущем
- Пентест — не замена постоянной защиты. После пентеста нужно продолжать мониторить, обновлять, тренировать команду
- Пентест — не разовая активность. Зрелые организации проводят его регулярно, минимум раз в год, чаще для критичных систем
Виды пентестов
В зависимости от объекта тестирования и контекста выделяют несколько типов пентестов.
| Тип | Объект | Особенности |
|---|---|---|
| External | Системы, доступные из интернета | Атака извне периметра компании |
| Internal | Внутренняя сеть | Моделирование инсайдера или компрометации первого узла |
| Web application | Веб-приложения и API | OWASP Top 10, инъекции, авторизация, бизнес-логика |
| Mobile | iOS и Android приложения | Reverse engineering, локальное хранение, API mobile-приложений |
| Network | Сетевая инфраструктура | Сегментация, конфигурация сетевого оборудования |
| Wireless | Wi-Fi и Bluetooth-сети | Точки доступа, протоколы шифрования, rogue APs |
| Social engineering | Сотрудники компании | Phishing, vishing, физическое проникновение |
| Physical | Физический доступ | Lock-picking, tailgating, badge cloning |
| Red team | Вся организация | Многоэтапная атака с использованием всех методов |
| Cloud | AWS/Azure/GCP-инфраструктура | IAM, конфигурации сервисов, container security |
Модели доступа к информации
В зависимости от объёма информации, предоставляемой пентестеру, тестирование делится на три категории.
Black box
Пентестер не получает никакой внутренней информации о системе. Стартует с того, что доступно публично: домены, IP-адреса, сайты, информация в OSINT. Моделирует подход внешнего атакующего. Минусы — много времени уходит на reconnaissance, может пропустить уязвимости в недоступных снаружи частях.
White box
Пентестер получает полный доступ: документация, исходный код, архитектурные диаграммы, учётные записи разных ролей. Может глубже исследовать систему, найти больше уязвимостей за то же время. Минусы — менее реалистично моделирует реальную атаку, требует большей подготовки от заказчика.
Grey box
Промежуточный вариант: пентестер получает частичную информацию — обычно учётные записи пользователей разных уровней, общее описание архитектуры, но без исходного кода. Самая распространённая модель на практике, балансирующая реалистичность и эффективность.
Стандарты и методологии
PTES — Penetration Testing Execution Standard
Один из самых полных стандартов, описывающий все этапы пентеста от подготовки до отчёта. Содержит детальные рекомендации по каждому этапу, технические гайды, шаблоны документов. Применяется как референс для построения собственных процессов.
Этапы PTES:
- Pre-engagement Interactions — согласование scope, целей, правил
- Intelligence Gathering — сбор информации о цели
- Threat Modeling — построение модели угроз
- Vulnerability Analysis — анализ выявленных уязвимостей
- Exploitation — попытки эксплуатации
- Post Exploitation — действия после первичного проникновения
- Reporting — формирование отчёта
OWASP Testing Guide
Подробное руководство по тестированию веб-приложений от организации OWASP. Содержит более 100 конкретных тестов с описанием, инструментами, ожидаемыми результатами. Самый детальный референс для тестирования веб-приложений.
NIST SP 800-115
Технический гайд от NIST по тестированию безопасности информационных систем. Менее детальный, чем PTES или OWASP, но более формальный — часто используется в государственном секторе и регулируемых отраслях.
OSSTMM
Open Source Security Testing Methodology Manual — академический стандарт с акцентом на измеримость и формальные критерии. Менее популярен в коммерческом секторе, но имеет вес в академических и научных проектах.
Этапы пентеста
Pre-engagement
Подготовительный этап, на котором согласовываются все детали тестирования. От качества этого этапа зависит успех всего проекта.
- Scope: какие системы, IP-диапазоны, домены, приложения тестируются
- Out of scope: что явно исключено из тестирования
- Rules of Engagement (RoE): правила взаимодействия, разрешённые техники, окно тестирования
- Контакты: с кем связываться при критических находках, при необходимости остановить тест
- Юридические документы: NDA, договор, разрешение на тестирование
- Цели: что именно проверяется, какие сценарии моделируются
Reconnaissance / Intelligence Gathering
Сбор информации о цели. Делится на passive (без прямого взаимодействия с целью) и active (с прямым взаимодействием, более рискованным для обнаружения).
| Passive recon | Active recon |
|---|---|
| WHOIS, DNS-записи | Сканирование портов (Nmap) |
| Google dorking | Service fingerprinting |
| LinkedIn, OSINT-инструменты | Crawling веб-сайтов |
| Поиск утечек в Have I Been Pwned | Перебор поддоменов |
| Анализ публичного кода (GitHub) | Banner grabbing |
| Метаданные в публичных документах | Probing API-эндпойнтов |
Vulnerability Scanning vs Pentest
Vulnerability scanning — автоматизированный поиск известных уязвимостей по сигнатурам. Это часть пентеста, но не весь пентест. Сканеры дают список потенциальных проблем, пентестер их проверяет вручную, отсеивает false positives, ищет дополнительные пути эксплуатации, комбинирует уязвимости в полноценные атаки.
Использование только сканеров — это vulnerability assessment, а не пентест. Пентест включает ручную работу человека, способного выйти за рамки шаблонов.
Exploitation
Попытка эксплуатации найденных уязвимостей. Цель — подтвердить, что уязвимость реальна и может быть использована, а не просто существует теоретически.
Основные инструменты:
- Metasploit Framework — стандарт индустрии, тысячи готовых exploit-модулей
- Burp Suite Professional — основной инструмент для веб-приложений
- Cobalt Strike — коммерческая платформа для red teaming и advanced persistent threat-моделирования
- Empire — open source post-exploitation framework
- Custom exploits — собственная разработка для уникальных уязвимостей
Post-exploitation
Действия после первичного проникновения. Цель — оценить, что атакующий может сделать после успеха, как далеко может продвинуться, к каким данным получить доступ.
- Privilege escalation: повышение прав от обычного пользователя до администратора
- Lateral movement: распространение по сети, проникновение к другим системам
- Persistence: установка механизмов сохранения доступа
- Data exfiltration: моделирование вывода данных за пределы периметра
- Coverage analysis: оценка, насколько глубоко удалось проникнуть
Reporting
Финальный документ с результатами тестирования. От качества отчёта зависит, будут ли исправлены найденные проблемы.
Стандартная структура отчёта:
- Executive Summary — краткое резюме для руководства, без технических деталей, с оценкой общего уровня риска
- Methodology — описание подхода, использованных стандартов, методов
- Scope — что тестировалось, что не входило
- Findings — детальное описание каждой уязвимости с подтверждением, шагами воспроизведения, доказательствами
- Risk Rating — оценка критичности по CVSS или собственной шкале
- Recommendations — конкретные рекомендации по устранению
- Appendices — технические детали, скриншоты, выводы инструментов
CVSS — оценка критичности
Common Vulnerability Scoring System — стандартная методология оценки критичности уязвимостей. Текущая версия — CVSS 4.0 (выпущена в 2023 году), но 3.1 остаётся широко используемой.
Базовые метрики CVSS:
| Метрика | Описание |
|---|---|
| Attack Vector | Откуда атака: network, adjacent, local, physical |
| Attack Complexity | Сложность эксплуатации: low, high |
| Privileges Required | Нужны ли права: none, low, high |
| User Interaction | Нужны ли действия пользователя: none, required |
| Scope | Затрагивает ли уязвимость другие компоненты |
| Confidentiality Impact | Влияние на конфиденциальность: none, low, high |
| Integrity Impact | Влияние на целостность |
| Availability Impact | Влияние на доступность |
Итоговая оценка CVSS — число от 0 до 10:
- 0.0 — None
- 0.1–3.9 — Low
- 4.0–6.9 — Medium
- 7.0–8.9 — High
- 9.0–10.0 — Critical
Red Team vs пентест
Red Team-операции — продвинутая форма security-тестирования, отличающаяся от классического пентеста по нескольким параметрам.
| Параметр | Пентест | Red Team |
|---|---|---|
| Цель | Найти максимум уязвимостей | Достичь конкретной цели (украсть данные, скомпрометировать ключевую систему) |
| Информированность защиты | SOC знает о тесте | SOC не знает, blue team защищается реалистично |
| Длительность | 2–6 недель | 2–6 месяцев |
| Скрытность | Не обязательна | Обязательна |
| Покрытие | Широкое сканирование | Узкий целенаправленный путь |
| Уровень атакующего | Любой | Имитация APT-группы |
Red Team применяется в зрелых организациях с развитой security-программой. Для большинства компаний классический пентест — более подходящая модель тестирования.
Bug bounty как альтернатива
Bug bounty-программы — публичное или приватное приглашение сторонних исследователей искать уязвимости в обмен на денежное вознаграждение. Платформы вроде HackerOne, Bugcrowd, Intigriti управляют процессом и обеспечивают legal framework.
Преимущества bug bounty
- Постоянное тестирование, не разовое
- Доступ к большому пулу исследователей с разными подходами
- Оплата по факту — за реальные находки
- Хорошо работает для масштабных публичных сервисов
Ограничения bug bounty
- Не подходит для систем, недоступных из интернета
- Не обеспечивает полного покрытия — исследователи ищут известные и эксплуатируемые уязвимости
- Не заменяет compliance-пентесты с обязательной структурой отчётности
- Требует зрелого процесса triage и реагирования
Зрелые компании используют комбинацию: классические пентесты для compliance и регулярных проверок, bug bounty для непрерывного покрытия публичных сервисов, red team для проверки готовности к APT.
Сертификации пентестеров
Профессиональные сертификации помогают оценить уровень компетенций пентестера.
| Сертификация | Уровень | Особенности |
|---|---|---|
| OSCP (Offensive Security Certified Professional) | Базовый-средний | Практический экзамен, золотой стандарт начального уровня |
| OSCE3 / OSEP / OSWE / OSED | Продвинутый | Продвинутые сертификации Offensive Security по различным направлениям |
| CEH (Certified Ethical Hacker) | Начальный | Теоретический экзамен, широко известен, но без практической части |
| GPEN (GIAC Penetration Tester) | Средний | SANS-сертификация, теория плюс практика |
| GXPN / GCIH | Продвинутый | Специализированные SANS-сертификации |
| PNPT (Practical Network Penetration Tester) | Средний | Более доступная альтернатива OSCP |
| CRTO / CRTP | Средний | Red team-фокус, активные операции |
Сертификации — не главный критерий. Реальный портфолио проектов, профессиональная репутация, рекомендации заказчиков значат больше формальных дипломов.
Юридические аспекты
Пентест без должного оформления может стать уголовным преступлением. Базовые юридические документы:
- Master Services Agreement — общий договор между компанией и подрядчиком
- Statement of Work (SOW) — детальное описание конкретного проекта
- Rules of Engagement — правила взаимодействия с описанием разрешённых техник
- Letter of Authorization — официальное разрешение на тестирование
- NDA — соглашение о конфиденциальности
- Liability and Indemnification — распределение ответственности при возможном ущербе
Особенности облачных пентестов
Тестирование систем в публичных облаках (AWS, Azure, GCP) требует дополнительного согласования с провайдером. У AWS есть формальная политика acceptable testing — некоторые сервисы можно тестировать без отдельного разрешения, другие требуют notification. Нарушение этих правил приводит к блокировке аккаунта.
Стоимостная модель
Цена пентеста зависит от scope, сложности, типа тестирования и подрядчика.
| Тип пентеста | Длительность | Стоимость |
|---|---|---|
| Внешний пентест малого периметра | 1–2 недели | $5K–15K |
| Веб-приложение средней сложности | 2–3 недели | $10K–25K |
| Внутренний пентест корпоративной сети | 3–4 недели | $20K–50K |
| Мобильное приложение | 2–3 недели | $15K–35K |
| Полный red team | 2–6 месяцев | $80K–300K+ |
| Cloud-infrastructure | 2–4 недели | $15K–40K |
Очень дешёвые предложения ($1K–5K за полноценный пентест) обычно означают автоматическое сканирование с минимальной ручной работой. Качественный пентест требует времени опытного специалиста, что закладывает минимальную стоимость на уровне рыночных ставок.
Частота пентестов
Рекомендуемая частота зависит от типа системы и регуляторных требований.
- Критичные системы и payment-инфраструктура: каждые 6–12 месяцев + после крупных изменений
- Веб-приложения с активной разработкой: каждые 12 месяцев + после значимых релизов
- Корпоративная сеть: каждые 12–24 месяца
- Внутренние системы низкой критичности: каждые 24–36 месяцев
- Bug bounty: непрерывно как дополнение к классическим пентестам
Регуляторные требования (PCI DSS, SOC 2, банковские стандарты) часто фиксируют минимальную частоту, обычно 12 месяцев.
Пентест — это срез безопасности на момент тестирования, а не сертификат непробиваемости. Зрелая security-программа использует пентесты как один из инструментов наряду с непрерывным мониторингом, threat modeling, обучением, реагированием на инциденты.
Типичные ошибки при заказе пентеста
Слишком узкий scope
Тестирование одного веб-приложения без проверки сопутствующей инфраструктуры (API, мобильные клиенты, third-party интеграции) даёт неполную картину. Реальные атакующие не ограничивают себя scope — они используют любую слабость на периметре.
Тестирование без подготовки
Заказ пентеста на системе с очевидными дырами (отсутствие basic-патчинга, дефолтные пароли) приведёт к отчёту с базовыми проблемами вместо реальной проверки security-програмы. Базовая гигиена должна быть выполнена до пентеста.
Игнорирование отчёта после получения
Получение отчёта без последующего устранения находок — пустая трата денег. Зрелый процесс включает: triage находок, постановку в backlog с SLA на устранение, regression-проверку после исправления.
Выбор по самой низкой цене
Между пентестером за $3K и пентестером за $30K разница не только в цене, но и в качестве. Дешёвые подрядчики обычно автоматизируют то, что должно быть ручной работой. Найдут уязвимости, видимые сканерами, пропустят сложные комбинированные атаки.
Скрытие информации от тестера
Black box-тесты редко дают полное покрытие за разумное время. Предоставление информации (grey/white box) позволяет тестеру сосредоточиться на поиске реальных уязвимостей, а не на reconnaissance.
Часто задаваемые вопросы
Чем пентест отличается от vulnerability assessment
Vulnerability assessment — это сканирование на известные уязвимости с инструментами вроде Nessus, OpenVAS. Результат — список потенциальных проблем. Пентест включает scanning, но идёт дальше: ручная проверка, эксплуатация, комбинирование уязвимостей, моделирование реальной атаки. Пентест существенно дороже, но даёт намного более точную картину реальных рисков.
Можно ли провести пентест своими силами
Внутренний пентест возможен и полезен, особенно для непрерывной проверки изменений. Но независимый внешний пентест даёт другие преимущества: непредвзятый взгляд, отсутствие конфликта интересов с разработкой, требование compliance во многих стандартах. Зрелые организации используют оба подхода.
Что делать, если пентест нашёл критическую уязвимость в проде
Стандартная процедура — немедленное уведомление в рамках Rules of Engagement, обсуждение временных компенсирующих мер, ускоренная разработка fix-а. Срок устранения зависит от критичности: critical обычно 24–48 часов с workaround или полным fix, high — 1–2 недели, medium — 30 дней, low — следующий релиз.
Нужен ли пентест для малого бизнеса
Зависит от типа бизнеса. SaaS-стартап, обрабатывающий чувствительные данные, обязательно нуждается в пентесте перед основным запуском и регулярно после. Локальный бизнес без чувствительных данных может обойтись базовой security-гигиеной. Финансовые и медицинские компании обязаны проводить пентесты по регуляторным требованиям независимо от размера.
Как выбрать подрядчика для пентеста
Несколько критериев: опыт работы с похожими системами и индустрией, наличие сертифицированных специалистов (OSCP, GPEN), примеры обезличенных отчётов из прошлых проектов, рекомендации существующих клиентов, наличие профессиональной liability-страховки. Цена — важный, но не единственный критерий.
Сколько времени занимает устранение находок пентеста
Зависит от количества и критичности. Типичный отчёт пентеста средней системы содержит 10–30 находок разной критичности. Critical и high обычно требуют отдельных спринтов разработки, medium и low попадают в backlog с SLA. Полное устранение всех находок может занять 1–3 месяца от получения отчёта.
Заключение
Пентест — практический инструмент оценки реальной безопасности информационных систем, выходящий за рамки автоматического сканирования. Зрелая методология включает несколько чётких этапов: подготовку, сбор информации, анализ уязвимостей, эксплуатацию, post-exploitation, формирование отчёта. Стандарты вроде PTES, OWASP, NIST SP 800-115 структурируют процесс и помогают как подрядчикам, так и заказчикам говорить на одном языке.
Эффективность пентеста зависит не от выбора инструментов или сертификаций пентестера, а от качества всего процесса: подготовки scope, выбора правильной модели доступа, доступности информации и людей, дисциплины устранения находок. Однократный пентест не делает систему безопасной — это снимок состояния на момент тестирования. Регулярные пентесты в сочетании с непрерывными процессами (vulnerability management, security monitoring, обучение разработчиков) формируют зрелую защиту, способную противостоять реальным атакам современного уровня сложности.
