15 промтов для DevSecOps: аудит кода, сканирование уязвимостей и политики доступа

Введение

DevSecOps — это не просто модный термин, а необходимость в современной разработке. Интеграция безопасности на каждом этапе CI/CD позволяет находить уязвимости до того, как они попадут в продакшн. Но как автоматизировать рутинные задачи аудита, сканирования и настройки политик? Ответ — промты для генеративных AI-моделей. Эта подборка из 15 промтов охватывает все ключевые области: SAST, DAST, управление секретами, анализ конфигураций, политики доступа и реагирование на инциденты. Каждый промт снабжён примером использования, чтобы вы могли сразу применить его в работе.

1. Статический анализ кода (SAST) на основе OWASP Top 10

Задача: Найти потенциальные уязвимости в исходном коде на Python, следуя рекомендациям OWASP.

Промт:

Вы — senior security engineer. Проведи статический анализ следующего Python-кода на предмет уязвимостей из OWASP Top 10 (2021). Особое внимание удели SQL-инъекциям (A03), XSS (A07) и insecure deserialization (A08). Верни список найденных проблем с указанием строки кода, типа уязвимости и рекомендацией по исправлению. Код:
[вставьте код]

Пример результата:

Строка 15: SQL-инъекция (A03). Используется конкатенация строк в запросе. Рекомендация: перейти на параметризованные запросы (cursor.execute("SELECT * FROM users WHERE id = %s", (user_id,))).

2. Динамическое сканирование (DAST) endpoint’ов API

Задача: Сгенерировать тестовые запросы для проверки API на распространённые атаки (XSS, CSRF, path traversal).

Промт:

Ты — пентестер. Разработай набор из 10 curl-запросов для тестирования REST API на уязвимости: XSS в параметрах, CSRF без токенов, path traversal в URL. Эндпоинт: POST /api/v1/users. Пример легитимного тела: {"name":"test","email":"a@b.com"}. Укажи ожидаемый HTTP-статус для каждой атаки.

Пример результата:

# XSS через поле name
curl -X POST /api/v1/users -d '{"name":"<script>alert(1)</script>","email":"a@b.com"}'
Ожидаемый статус: 400 (отклонение опасных символов).

3. Анализ политик IAM в AWS

Задача: Найти чрезмерно разрешительные политики IAM.

Промт:

Ты — cloud security architect. Проанализируй следующую политику IAM (JSON) и укажи, какие действия нарушают принцип наименьших привилегий. Предложи исправленную версию политики.
[вставьте политику]

Пример результата:

Проблема: "Effect":"Allow", "Action":"*" — полный доступ ко всем сервисам. Рекомендация: заменить * на конкретные действия, например ec2:DescribeInstances, s3:GetObject.

4. Поиск секретов в репозитории

Задача: Обнаружить случайно закоммиченные ключи, токены и пароли.

Промт:

Ты — DevSecOps-инженер. Напиши регулярные выражения для поиска следующих секретов: AWS Access Key (AKIA...), GitHub Personal Access Token (ghp_), пароли вида "password: ...". Представь результат в виде Bash-команды с grep для рекурсивного поиска по папке src.

Пример результата:

grep -rnE '(AKIA[0-9A-Z]{16}

|ghp_[0-9a-zA-Z]{36}|password[[:space:]]*:[[:space:]]*[^[:space:]]+)' src/

5. Настройка NetworkPolicy в Kubernetes

Задача: Создать политику, разрешающую трафик только от определённых подов.

Промт:

Ты — DevOps с фокусом на безопасность. Напиши манифест NetworkPolicy для namespace production, которая разрешает входящий трафик к подам с меткой app: api только от подов с меткой app: frontend. Запрети весь остальной входящий трафик.

Пример результата:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-frontend
  namespace: production
spec:
  podSelector:
    matchLabels:
      app: api
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: frontend

6. Аудит Dockerfile на best practices

Задача: Проверить Dockerfile на уязвимости и неэффективные слои.

Промт:

Ты — security reviewer. Найди нарушения лучших практик Docker в следующем Dockerfile: использование root, установка необновлённых пакетов, многослойность. Предложи исправленный Dockerfile и обоснуй изменения.

Пример результата:

Проблема: USER root. Рекомендация: добавить RUN addgroup -S appgroup && adduser -S appuser -G appgroup, затем USER appuser.

7. Анализ логов SIEM на инциденты

Задача: Выявить подозрительную активность в логах аутентификации.

Промт:

Ты — SOC analyst. Проанализируй следующие логи SSH-входов (формат: timestamp, user, IP, status). Найди аномалии: множественные неудачные попытки, входы в нерабочее время, доступ с неизвестных IP. Выведи сводку с рекомендациями.

Пример результата:

Обнаружено 50 неудачных попыток с IP 203.0.113.42 за 2 минуты — возможна brute-force атака. Рекомендация: заблокировать IP на уровне фаервола.

8. Формирование политики управления секретами

Задача: Создать политику использования HashiCorp Vault.

Промт:

Ты — security architect. Напиши политику Vault (HCL) для команды разработки: доступ на чтение к secret/dev/*, только по TLS, с TTL токена 24 часа. Добавь требование обязательной ротации секретов каждые 7 дней.

Пример результата:

path "secret/dev/*" {
  capabilities = ["read", "list"]
}

9. SAST для JavaScript (React) – XSS

Задача: Выявить опасные конструкции dangerouslySetInnerHTML.

Промт:

Ты — security auditor. Проанализируй React-компонент на наличие XSS-уязвимостей. Найди использование dangerouslySetInnerHTML и предложи безопасную альтернативу через экранирование. Пример кода:
[вставьте код]

Пример результата:

Строка 12: <div dangerouslySetInnerHTML={{__html: userInput}} />. Рекомендация: вместо этого используйте библиотеку DOMPurify для санитизации HTML.

10. Сканирование зависимостей на уязвимости (SCA)

Задача: Проверить package.json на пакеты с известными CVE.

Промт:

Ты — dependency checker. Напиши команду для npm audit в формате отчёта, которая покажет только критичные уязвимости, сгруппированные по пакету. Выведи рекомендации по обновлению.

Пример результата:

npm audit --audit-level=critical --json

| jq '.vulnerabilities | to_entries[] | select(.value.severity=="critical") | {(.key): .value.range}'

11. Настройка RBAC в Kubernetes

Задача: Создать роль с минимальными правами для CI/CD-агента.

Промт:

Ты — cluster admin. Создай ClusterRole, которая позволяет Jenkins-агенту только просматривать поды (get, list) и применять деплойменты (create, update). Запрети доступ к секретам.

Пример результата:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: jenkins-agent
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "list"]
- apiGroups: ["apps"]
  resources: ["deployments"]
  verbs: ["create", "update"]

12. Генерация сертификатов для mTLS (DevSecOps pipeline)

Задача: Создать корневой и клиентский сертификаты с помощью openssl.

Промт:

Ты — DevSecOps-инженер. Напиши последовательность команд openssl для генерации корневого CA, подписи сертификата сервера и клиента. Укажи рекомендуемые параметры (ключ 2048 бит, SHA256, срок 365 дней).

Пример результата:

openssl genrsa -out ca.key 2048
openssl req -x509 -new -nodes -key ca.key -sha256 -days 365 -out ca.crt
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365 -sha256

13. Анализ Terraform на misconfiguration

Задача: Найти открытые security group в AWS.

Промт:

Ты — cloud security engineer. Проанализируй Terraform-код, создающий security group, на предмет правил, разрешающих доступ 0.0.0.0/0 к портам 22, 3306, 5432. Предложи исправление с ограничением IP.

Пример результата:

resource "aws_security_group" "allow_ssh" {
  ingress {
    from_port = 22
    to_port = 22
    protocol = "tcp"
    cidr_blocks = ["203.0.113.0/24"]  # вместо 0.0.0.0/0
  }
}

14. Создание политики backup и disaster recovery

Задача: Разработать политику резервного копирования секретов Vault.

Промт:

Ты — DevSecOps-архитектор. Опиши процедуру резервного копирования и восстановления HashiCorp Vault с использованием raft snapshot. Включи шаги: создание снапшота, шифрование, хранение в S3 с версионированием, автоматическое восстановление при сбое.

Пример результата:

# Снапшот
vault operator raft snapshot save vault.snap
gpg --symmetric vault.snap
aws s3 cp vault.snap.gpg s3://my-vault-backups/
# Восстановление
aws s3 cp s3://my-vault-backups/vault.snap.gpg .
gpg --decrypt vault.snap.gpg > vault.snap
vault operator raft snapshot restore vault.snap

15. Автоматизация ответа на инцидент (IR) с помощью AI

Задача: Сгенерировать playbook для реагирования на утечку секретов.

Промт:

Ты — incident responder. Составь пошаговый playbook для реагирования на обнаружение AWS Access Key в публичном репозитории. Включи: немедленная ротация ключа, проверка CloudTrail на несанкционированные действия, уведомление команды, добавление pre-commit hook для предотвращения повторения.

Пример результата:

1. Отозвать ключ через IAM: aws iam update-access-key --access-key-id AKIA... --status Inactive
2. Создать новый ключ и обновить CI/CD.
3. С помощью CloudTrail найти вызовы за последние 24 часа.
4. Добавить .gitleaks в репозиторий.

Заключение

Представленные 15 промтов покрывают основные этапы DevSecOps: от анализа кода до реагирования на инциденты. Используйте их как основу для создания собственных скриптов и автоматизаций. Помните, что безопасность — это процесс, а не единоразовое действие. Регулярно обновляйте промты с учётом новых угроз (OWASP, CWE). Если вы хотите углубить знания по DevSecOps, следите за новыми материалами в блоге Asibiont и экспериментируйте с этими промтами в своих проектах.

← Все статьи

Комментарии

Читайте также

Истина — не вектор: атака Тарского на пробы больших языковых моделей

29 июля 2026

Курс «Мягкие навыки и карьера»: обучение с помощью ИИ для профессионального роста в 2026 году

29 июля 2026

Сделка на $410 млн: как Recursive Superintelligence и Amazon меняют правила игры в AI (и при чем тут vibe coding)

29 июля 2026

Как подключить датчик IMU MPU6050 к AI-агенту ASI Biont: автоматический мониторинг вибраций и наклонов через Telegram

29 июля 2026

Курс «Промышленная безопасность» на Asibiont: как AI-обучение помогает разобраться в требованиях Ростехнадзора и подготовить документы

29 июля 2026

AI-агент ASI Biont для Etsy: автоматизация продаж, SEO и общения с клиентами в 2026 году

29 июля 2026

Как проверять ответы ИИ: суперкраткий практический гайд

29 июля 2026

Овладейте искусством влияния: Почему курс Asibiont «Переговоры и коммуникация» необходим для карьеры в 2026 году

29 июля 2026

Shorts Maker v2: как AI-генератор видео превратили в возобновляемый production pipeline на Python

29 июля 2026