Что такое тестирование на проникновение?
Тестирование на проникновение (пентест) — это имитация кибератаки для оценки безопасности системы. В отличие от сканирования уязвимостей, которое использует автоматические инструменты, пентест вовлекает человека-тестировщика, активно пытающегося эксплуатировать уязвимости.
Аналогия: сканер уязвимостей — как инспектор, отмечающий слабый замок на окне. Пентестер пробует открыть окно и залезть внутрь, документируя, к чему получил доступ.
Пентест 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
Задание
- Настройте ZAP как прокси браузера
- Запустите автоматический spider на
http://localhost:3000 - Запустите активное сканирование
- Просмотрите все алерты High и Medium
- Для топ-3 находок задокументируйте: уязвимость, категорию OWASP, влияние и рекомендацию
Подсказка: Настройка ZAP
- Настройте ZAP как прокси (localhost:8080)
- Для spider максимальная глубина 5, используйте традиционный и AJAX spider
- Во время активного сканирования обращайте внимание на алерты с высокой достоверностью
- Проверяйте вкладку «Alerts» для категоризированных находок
Решение: Анализ результатов ZAP
Типичные находки High/Medium при сканировании Juice Shop:
| # | Алерт | Риск | OWASP | Достоверность |
|---|---|---|---|---|
| 1 | SQL Injection | High | A03 | High |
| 2 | XSS (отражённый) | High | A03 | Medium |
| 3 | Отсутствие Anti-CSRF токенов | Medium | A05 | Medium |
| 4 | X-Frame-Options не установлен | Medium | A05 | Medium |
| 5 | CSP не настроен | Medium | A05 | High |
Топ-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+ тестов, организованных по категориям.