Ответ
OWASP ZAP (Zed Attack Proxy) — это инструмент с открытым исходным кодом для автоматизированного тестирования безопасности веб-приложений (DAST — Dynamic Application Security Testing). В DevOps его интегрируют в CI/CD-пайплайны для "сдвига безопасности влево" (Shift Left Security), позволяя находить уязвимости на ранних этапах разработки.
Как ZAP используется в DevOps-процессе:
- Автоматическое сканирование в CI/CD: ZAP запускается как этап сборки (например, в Jenkins, GitLab CI, GitHub Actions) для тестирования staging- или test-окружения.
- API-сканирование: ZAP может тестировать REST API и GraphQL endpoints, что критично для современных микросервисных архитектур.
- Интеграция с пайплайнами: Результаты сканирования (в форматах XML, JSON, HTML) публикуются в артефактах сборки или отправляются в системы мониторинга (например, Jira, Security Hub).
Типичные обнаруживаемые уязвимости: SQL-инъекции, XSS (межсайтовый скриптинг), CSRF (межсайтовая подделка запроса), небезопасные десериализации, проблемы с заголовками безопасности.
Пример запуска автоматического сканирования в Docker-контейнере (для CI/CD):
# Запуск ZAP в режиме daemon с API
sudo docker run -u zap -p 8080:8080 -i
owasp/zap2docker-stable zap.sh -daemon
-host 0.0.0.0 -port 8080
-config api.disablekey=true
-config scanner.attackOnStart=true
-config view.mode=attack
-config connection.dnsTtlSuccessfulQueries=-1
-config api.addrs.addr.name=.*
-config api.addrs.addr.regex=true
# Запуск активного сканирования через API (из другого шага пайплайна или скрипта)
curl "http://localhost:8080/JSON/ascan/action/scan/?url=https://your-test-app.com&recurse=true&inScopeOnly=true"
# Генерация отчета после завершения сканирования
curl "http://localhost:8080/OTHER/core/other/htmlreport/" -o zap-report.html
Важно: В production-пайплайнах сканирование ZAP часто настраивают как "неблокирующий" этап: критичные уязвимости (High/Critical) могут прерывать сборку, а medium/low — только отправлять оповещения.