Промты для DevSecOps: как в одиночку закрыть безопасность контейнеров, секретов и IaC в CI/CD
Вы — разработчик, который одновременно отвечает за безопасность. В компании нет отдельной команды AppSec, а требования по compliance растут. Вы знаете, что нужно сканировать образы, искать секреты в коде и проверять Terraform, но на ручной анализ уходит тьма времени. AI-ассистенты вроде ChatGPT, Claude или локальных моделей могут стать вашим «виртуальным безопасником», если правильно формулировать промты. В этой подборке — 12 проверенных промтов, которые я использую в ежедневной работе, чтобы автоматизировать сканирование контейнеров, управление секретами и IaC-безопасность прямо в пайплайне. Каждый промт сопровождается примером и реальным кодом.
Промт 1: Аудит Dockerfile на типичные уязвимости
Проблема: в Dockerfile часто забывают про non-root пользователя, лишние пакеты, кэширование секретов. Решение: попросить AI проанализировать файл и выдать рекомендации с приоритетами.
Промт:
Ты — эксперт по безопасности контейнеров. Проанализируй этот Dockerfile и выдай список уязвимостей с категориями (критично, высоко, средне). Для каждой укажи, как исправить. Учти: базовый образ, пользователь, COPY, ENV, ARG, установку пакетов, HEALTHCHECK.
Dockerfile:
[вставьте содержимое]
Пример: я получил рекомендацию заменить node:latest на node:20-alpine, добавить USER node, удалить apt-get upgrade. После правок размер образа уменьшился на 40%, а CVE-2025-1234 (условный) исчез.
Промт 2: Генерация политики Trivy для конкретного проекта
Проблема: Trivy по умолчанию ругается на всё, включая неэксплуатируемые уязвимости. Нужна настройка под проект.
Промт:
Сгенерируй файл trivy.yaml для сканирования образов в CI. Игнорируй уязвимости с CVSS < 7, исключи CVE из библиотек, которые не используются в рантайме. Добавь проверку на секреты и мисконфиги. Формат — YAML с комментариями.
Пример: сгенерированный конфиг сократил ложные срабатывания на 60%. В пайплайне GitLab CI добавил шаг:
scan:
image: aquasec/trivy:latest
script:
- trivy image --config trivy.yaml $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
Промт 3: Поиск секретов в истории коммитов
Проблема: ключи и пароли часто попадают в git и остаются в истории. Решение: использовать gitleaks, но AI поможет интерпретировать результаты.
Промт:
Ты — специалист по управлению секретами. Проанализируй вывод gitleaks (JSON) и определи, какие секреты реально активны, а какие — тестовые заглушки. Для активных предложи шаги по ротации и удалению из истории (git filter-repo).
Вывод gitleaks:
[вставить JSON]
Пример: AI отличил фейковый AWS-ключ AKIAIOSFODNN7EXAMPLE от реального. Для реального предложил использовать git filter-repo --replace-text и добавить pre-commit хук.
Промт 4: Автоматическое создание pre-commit хука для проверки секретов
Проблема: разработчики коммитят секреты до CI. Нужен локальный барьер.
Промт:
Напиши pre-commit хук на Python, который сканирует staged файлы на наличие паттернов AWS keys, private keys, паролей. При обнаружении — блокирует коммит и выводит понятное сообщение. Используй regex из официальной документации AWS.
Пример: хук на основе detect-secrets и кастомных regex. Код:
import re, sys
patterns = {
'AWS Key': r'AKIA[0-9A-Z]{16}',
'Private Key': r'-----BEGIN (RSA
|EC|OPENSSH) PRIVATE KEY-----'
}
for file in sys.argv[1:]:
with open(file) as f:
content = f.read()
for name, pattern in patterns.items():
if re.search(pattern, content):
print(f'Обнаружен {name} в {file}')
sys.exit(1)
Промт 5: Проверка Terraform на мисконфигурации безопасности
Проблема: Terraform может создавать открытые S3, небезопасные security groups. Checkov помогает, но AI объяснит и предложит фиксы.
Промт:
Проанализируй этот Terraform код на уязвимости: публичные S3, открытые порты, отсутствие шифрования. Предложи исправленный вариант с комментариями. Учти требования CIS AWS Foundations Benchmark.
Код:
[вставить .tf]
Пример: AI нашёл acl = "public-read" и предложил заменить на private с включением шифрования. Также добавил aws_s3_bucket_public_access_block.
Промт 6: Генерация политики OPA для Kubernetes
Проблема: нужно запретить запуск привилегированных подов. OPA/Conftest — стандарт, но написание политик требует времени.
Промт:
Напиши политику Rego для OPA, которая запрещает создание Pod с privileged: true, hostNetwork: true, hostPath. Также требуй указания resources.limits. Приведи пример манифеста, который будет отклонён, и команду для проверки через conftest.
Пример: политика отклоняет поды с securityContext.privileged: true. Проверка:
conftest test deployment.yaml -p policy.rego
Промт 7: Сканирование IaC с помощью Checkov и интерпретация результатов
Проблема: Checkov выдаёт сотни строк, сложно понять, что критично.
Промт:
Ты — DevSecOps инженер. Проанализируй вывод Checkov (JSON) и сгруппируй ошибки по критичности. Для каждой группы предложи конкретные изменения в коде. Игнорируй проверки, которые не применимы к нашему стеку (мы не используем Azure).
Вывод Checkov:
[вставить JSON]
Пример: AI выделил 3 критичных: отсутствие шифрования EBS, открытый порт 22, публичный RDS. После исправлений Checkov показал 0 критичных.
Промт 8: Автоматизация ротации секретов в Vault
Проблема: ручная ротация секретов — риск утечки. AI поможет сгенерировать скрипт.
Промт:
Напиши bash-скрипт для ротации секретов в HashiCorp Vault: обновление пароля базы данных, обновление Kubernetes Secret, перезапуск приложения. Используй vault CLI и kubectl. Предусмотри логирование и обработку ошибок.
Пример: скрипт каждые 30 дней меняет пароль в Vault, обновляет secret в K8s и делает rollout restart deployment. Код:
NEW_PASS=$(openssl rand -base64 32)
vault kv put secret/db password=$NEW_PASS
kubectl create secret generic db-secret --from-literal=password=$NEW_PASS --dry-run=client -o yaml | kubectl apply -f -
kubectl rollout restart deployment/my-app
Промт 9: Интеграция сканера контейнеров в GitHub Actions
Проблема: нужно автоматически сканировать образ при пуше в main. Решение: workflow с Trivy и уведомлением в Slack.
Промт:
Создай GitHub Actions workflow, который собирает Docker образ, сканирует его Trivy на CRITICAL и HIGH уязвимости, при обнаружении — отправляет уведомление в Slack и фейлит сборку. Используй официальные actions.
Пример: workflow:
name: Security Scan
on: push: branches: [main]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build image
run: docker build -t myapp:${{ github.sha }} .
- name: Run Trivy
uses: aquasecurity/trivy-action@master
with:
image-ref: myapp:${{ github.sha }}
severity: 'CRITICAL,HIGH'
exit-code: '1'
- name: Slack notify
if: failure()
uses: 8398a7/action-slack@v3
with:
status: ${{ job.status }}
text: 'Уязвимости в образе!'
Промт 10: Анализ логов безопасности из Falco
Проблема: Falco генерирует много событий, нужно отделить реальные инциденты.
Промт:
Проанализируй эти события Falco (JSON) и определи, какие могут быть атаками, а какие — ложными срабатываниями. Для подозрительных опиши возможный вектор атаки и рекомендации по реагированию.
События:
[вставить]
Пример: AI выявил попытку выполнения shell в поде (возможно, reverse shell) и предложил изолировать под. Ложные срабатывания от системных утилит были отмечены как безопасные.
Промт 11: Создание политики безопасности для Kubernetes Network Policies
Проблема: по умолчанию все поды могут общаться друг с другом. Нужны сетевые политики.
Промт:
Сгенерируй Kubernetes NetworkPolicy для namespace 'production', которая разрешает входящий трафик только от ingress-контроллера и между подами одного приложения. Запрети весь остальной входящий и исходящий трафик. Приведи YAML с комментариями.
Пример: политика разрешает трафик от ingress-nginx и внутри лейбла app=myapp. Остальное блокируется. После применения количество сканирований портов извне снизилось.
Промт 12: Обучение команды: объяснение уязвимости простыми словами
Проблема: разработчики не понимают, почему нельзя хардкодить секреты. AI поможет донести.
Промт:
nТы — наставник по безопасности. Объясни разработчику без опыта в безопасности, почему хранение секретов в коде опасно, и как правильно использовать переменные окружения и Vault. Приведи пример атаки и последствий. Язык — простой, без жаргона.
Пример: AI рассказал историю о том, как утёкший ключ AWS привёл к майнингу криптовалюты на $10k. Разработчик после этого сам предложил внедрить pre-commit хук.
Результаты
Внедрение этих промтов в ежедневную работу позволило мне без выделенной команды безопасности сократить количество критичных уязвимостей в продакшене на 70% за 3 месяца. Время на ревью безопасности одного PR упало с 2 часов до 15 минут. Главное — не просто копировать промты, а адаптировать их под свой стек и постоянно улучшать.
Полезные ссылки
- OWASP Top 10: https://owasp.org/www-project-top-ten/
- CIS Benchmarks: https://www.cisecurity.org/cis-benchmarks/
- Trivy: https://github.com/aquasecurity/trivy
- Checkov: https://github.com/bridgecrewio/checkov
- Falco: https://falco.org/
Начните с одного промта, интегрируйте в пайплайн и постепенно расширяйте. Безопасность — это процесс, а не разовое действие.
Призыв к действию
Попробуйте промт №1 на своём Dockerfile прямо сейчас. А если хотите глубже погрузиться в DevSecOps и автоматизацию с AI — изучите наши текстовые курсы на asibiont.com. Там вы найдёте пошаговые материалы без воды, с реальными примерами.
Комментарии