Ответ
В DevOps-практике безопасность (DevSecOps) встраивается на всех этапах. Я применяю следующие инструменты:
1. Безопасность инфраструктуры как кода (IaC):
- Checkov и Terrascan — для статического анализа Terraform-конфигураций на предмет небезопасных настроек (открытые порты, некорректные политики IAM).
# Пример сканирования директории с Terraform-кодом checkov -d ./terraform/ --compact
2. Безопасность контейнеров и зависимостей:
- Trivy — мой основной инструмент для сканирования Docker-образов на уязвимости (CVEs) и проблемные конфигурации (например, запуск от root).
# Сканирование образа перед отправкой в registry trivy image --severity HIGH,CRITICAL myapp:latest - Snyk — для сканирования зависимостей в манифестах (package.json, requirements.txt, pom.xml) и образов. Интегрирую его в CI/CD пайплайн.
3. Управление секретами:
- HashiCorp Vault — для централизованного хранения и динамической выдачи секретов (токены, пароли, сертификаты). Например, приложение в Kubernetes получает доступ к БД через временные учетные данные, которые Vault создает по запросу.
- Git-secrets / TruffleHog — для предотвращения случайного коммита секретов в Git-репозиторий.
4. Сетевая безопасность и политики:
- В Kubernetes использую Network Policies (Calico, Cilium) для сегментации трафика между подами.
- Open Policy Agent (OPA) / Gatekeeper — для создания и принудительного применения политик на уровне кластера (например, запрет образов из непроверенных registry, требование наличия меток).
5. Динамический анализ (DAST):
- OWASP ZAP — интегрировал в пайплайн для базового сканирования запущенного веб-приложения на наличие распространенных уязвимостей (OWASP Top 10).