Что такое тестирование на проникновение?

Тестирование на проникновение (пентест) — это имитация кибератаки для оценки безопасности системы. В отличие от сканирования уязвимостей, которое использует автоматические инструменты, пентест вовлекает человека-тестировщика, активно пытающегося эксплуатировать уязвимости.

Аналогия: сканер уязвимостей — как инспектор, отмечающий слабый замок на окне. Пентестер пробует открыть окно и залезть внутрь, документируя, к чему получил доступ.

Пентест vs Сканирование уязвимостей

АспектСканирование уязвимостейТестирование на проникновение
ПодходАвтоматический сканРучное тестирование
ГлубинаВыявляет потенциальные проблемыДоказывает эксплуатируемость
ЧастотаНепрерывно (CI/CD)Периодически (ежеквартально)
Бизнес-логикаНе может тестироватьМожет тестировать
Цепочечные атакиНе обнаруживаетНаходит отлично
СтоимостьНизкаяСредняя-высокая

Оба необходимы. Сканирование быстро находит известные проблемы. Пентест обнаруживает сложные цепочечные уязвимости и дефекты бизнес-логики.

Типы пентеста

По уровню знаний

  • Black-box: Тестер не имеет информации о системе. Имитирует внешнего атакующего.
  • Grey-box: Частичные знания (учётные данные, документация API). Имитирует аутентифицированного атакующего.
  • White-box: Полные знания (исходный код, архитектура). Наиболее тщательный, но наименее реалистичный.

Пять фаз пентеста

Фаза 1: Разведка (Reconnaissance)

Пассивная разведка: WHOIS-запросы, перечисление DNS, Google dorking, публичные репозитории кода.

Активная разведка: Сканирование портов Nmap, определение версий сервисов, технологический fingerprinting.

Фаза 2: Сканирование и перечисление

Активное исследование цели: сканирование портов, сканирование уязвимостей OWASP ZAP, маппинг эндпоинтов и параметров.

Фаза 3: Эксплуатация

Попытка использовать обнаруженные уязвимости: инъекционные атаки, обход контроля доступа, повышение привилегий, объединение нескольких мелких проблем в серьёзную атаку.

Фаза 4: Постэксплуатация

Определение реального воздействия: какие данные доступны? Можно ли повысить привилегии? Какой радиус поражения?

Фаза 5: Отчётность

Документирование: резюме для руководства, методология, находки с серьёзностью и доказательством, приоритизированные рекомендации.

Основные инструменты

OWASP ZAP

Бесплатный open-source сканер. Идеален для QA-инженеров, начинающих с тестирования безопасности.

Ключевые возможности: Автоматическое сканирование, ручное тестирование (прокси), пассивное сканирование, сканирование API, интеграция с CI/CD.

Burp Suite

Отраслевой стандарт. Community Edition бесплатна; Professional — платная.

Ключевые возможности: Прокси (перехват трафика), Repeater (воспроизведение запросов), Intruder (автоматический фаззинг).

Nmap

Инструмент сетевого сканирования.

nmap -sV target.com
nmap --top-ports 1000 target.com
nmap --script vuln target.com

Юридические и этические аспекты

Всегда получайте письменное разрешение перед пентестом. Несанкционированное тестирование незаконно.

Необходимо перед тестированием: Документ с областью тестирования, письменное разрешение владельца, правила взаимодействия, контакты для экстренных случаев.

Когда QA проводит пентест vs привлекает специалистов

QA может справитьсяПривлечь внешних пентестеров
Автоматические сканы ZAPНормативные требования (PCI-DSS, SOC 2)
Базовое тестирование инъекцийПентест сети и инфраструктуры
Проверка контроля доступаПродвинутые техники эксплуатации
Проверка заголовков безопасностиРеверс-инжиниринг (мобильные приложения)

Упражнение: Базовое сканирование с OWASP ZAP

Проведите базовое сканирование безопасности намеренно уязвимого приложения с помощью OWASP ZAP.

Подготовка

# OWASP ZAP
docker run -u zap -p 8080:8080 -p 8090:8090 -i zaproxy/zap-stable zap-webswing.sh

# Juice Shop
docker run --rm -p 3000:3000 bkimminich/juice-shop

Задание

  1. Настройте ZAP как прокси браузера
  2. Запустите автоматический spider на http://localhost:3000
  3. Запустите активное сканирование
  4. Просмотрите все алерты High и Medium
  5. Для топ-3 находок задокументируйте: уязвимость, категорию OWASP, влияние и рекомендацию
Подсказка: Настройка ZAP
  • Настройте ZAP как прокси (localhost:8080)
  • Для spider максимальная глубина 5, используйте традиционный и AJAX spider
  • Во время активного сканирования обращайте внимание на алерты с высокой достоверностью
  • Проверяйте вкладку «Alerts» для категоризированных находок
Решение: Анализ результатов ZAP

Типичные находки High/Medium при сканировании Juice Shop:

#АлертРискOWASPДостоверность
1SQL InjectionHighA03High
2XSS (отражённый)HighA03Medium
3Отсутствие Anti-CSRF токеновMediumA05Medium
4X-Frame-Options не установленMediumA05Medium
5CSP не настроенMediumA05High

Топ-3 детально:

1. SQL Injection (High): В /rest/products/search?q=. Атакующий может извлечь всю БД. Исправление: параметризованные запросы.

2. Отражённый XSS (High): В /#/search?q=<script>alert(1)</script>. Позволяет выполнять JS в браузере жертвы. Исправление: валидация ввода и кодирование вывода.

3. Отсутствие CSP (Medium): На всех страницах. Без CSP атаки XSS сложнее смягчить. Исправление: добавить заголовок Content-Security-Policy.

Профессиональные советы

  • Начните с ZAP, перейдите к Burp: OWASP ZAP бесплатен и отлично подходит для QA. Burp Suite Professional предлагает продвинутые функции.
  • Сочетайте автоматическое и ручное: Сначала запускайте автоматические сканы ZAP, затем вручную тестируйте области высокого риска.
  • Практикуйтесь на уязвимых приложениях: Кроме Juice Shop, пробуйте DVWA, WebGoat, HackTheBox и TryHackMe.
  • Документируйте всё: Фиксируйте каждый шаг — временные метки, запросы, ответы, скриншоты.
  • OWASP Testing Guide: Руководство WSTG содержит чеклист из 90+ тестов, организованных по категориям.