7 промтов для безопасности и DevSecOps: аудит кода, сканирование и политики доступа
DevSecOps перестал быть просто модным термином. Согласно отчёту GitLab за 2025 год, 78% команд разработки уже интегрировали инструменты безопасности в пайплайны CI/CD. Но есть проблема: даже лучшие SAST- и DAST-сканеры генерируют сотни ложных срабатываний. Чтобы их отсеять и ускорить аудит, нужны не только инструменты, но и грамотные промты для AI-ассистентов.
В этой статье — 7 готовых промтов, которые помогут вам:
- Провести статический анализ кода (SAST) без настройки сложных правил.
- Сэмулировать динамическое сканирование (DAST) для веб-приложений.
- Сформулировать политики доступа на основе Zero Trust.
- Написать IaC-шаблоны с учётом best practices безопасности.
Все промты проверены на GPT-4 и Claude 3.5 Sonnet (июль 2026). Копируйте и адаптируйте.
1. SAST-аудит: поиск уязвимостей в коде
Задача: Быстро проверить фрагмент кода на OWASP Top 10 (инъекции, XSS, небезопасная десериализация).
Промт:
Ты — senior security engineer. Проведи SAST-анализ следующего кода на Python (FastAPI).
Найди уязвимости из OWASP Top 10 2021, включая:
- SQL-инъекции (A03)
- XSS (A07)
- Небезопасную десериализацию (A08)
- Использование компонентов с уязвимостями (A06)
Для каждой найденной проблемы укажи:
1. Строка кода
2. Тип уязвимости (CWЕ)
3. Критичность (Critical/High/Medium/Low)
4. Рекомендация по исправлению с примером кода
Код для анализа:
```python
from fastapi import FastAPI, Request
import pickle
app = FastAPI()
@app.post("/data")
async def process_data(request: Request):
data = await request.body()
obj = pickle.loads(data) # <-- небезопасно
return {"status": "ok"}
**Пример использования:**
Вставьте этот промт в чат с AI-ассистентом вместе с вашим кодом. Ассистент выдаст таблицу уязвимостей, например:
| Строка | CWE | Критичность | Рекомендация |
## 2. DAST-симуляция: тест на SQL-инъекции
**Задача:** Сэмулировать динамическое сканирование эндпоинта без запуска реального сканера.
**Промт:**
Ты — пентестер. Сэмулируй DAST-сканирование эндпоинта /api/login на SQL-инъекции.
Сгенерируй 5 тестовых payload'ов для параметра 'username'.
Для каждого payload укажи:
- Ожидаемый ответ сервера (200/403/500)
- Индикатор уязвимости (наличие ошибки SQL, тайминг, необычный ответ)
- Метод детектирования (boolean-based, time-based, error-based)
Метод: POST
Параметры: username (string), password (string)
**Примечание:** Этот промт полезен для быстрой проверки гипотез до запуска OWASP ZAP или Burp Suite.
## 3. Политика доступа Zero Trust
**Задача:** Сформулировать политику доступа для микросервисной архитектуры с использованием принципа наименьших привилегий.
**Промт:**
Ты — архитектор безопасности. Разработай политику доступа для микросервисов на Kubernetes.
Используй модель Zero Trust (Never trust, always verify).
Сервисы:
- frontend (React, порт 3000)
- api-gateway (Nginx, порт 443)
- user-service (Go, порт 8080)
- payment-service (Python, порт 8081)
- database (PostgreSQL, порт 5432)
Требования:
1. Frontend может общаться только с api-gateway.
2. Api-gateway может общаться с user-service и payment-service.
3. User-service может общаться с database.
4. Payment-service НЕ может общаться с database напрямую.
5. Все сервисы используют mTLS.
Сформируй политику в формате NetworkPolicy для Kubernetes (YAML).
**Результат:** Вы получите готовый манифест Kubernetes, который можно сразу применить в кластере.
## 4. IaC-шаблон с безопасными настройками
**Задача:** Сгенерировать Terraform-шаблон для AWS S3 с включённым шифрованием, блокировкой публичного доступа и версионированием.
**Промт:**
Ты — DevOps-инженер. Напиши Terraform-конфигурацию для создания S3 bucket с максимальным уровнем безопасности.
Учти следующие best practices (CIS AWS Foundations Benchmark):
- Блокировка публичного доступа (public_access_block)
- Шифрование AES-256 (server_side_encryption_configuration)
- Версионирование (versioning)
- Логирование доступа (logging)
- Теги: Environment = "production", Owner = "security-team"
Используй Terraform >= 1.5 и провайдер AWS >= 5.0.
**Пример вывода:**
```hcl
resource "aws_s3_bucket" "secure_bucket" {
bucket = "secure-data-bucket-2026"
versioning {
enabled = true
}
server_side_encryption_configuration {
rule {
apply_server_side_encryption_by_default {
sse_algorithm = "AES256"
}
}
}
}
5. Анализ логов на предмет угроз
Задача: Проанализировать логи веб-сервера на признаки атаки (брутфорс, path traversal).
Промт:
Ты — SOC-аналитик. Проанализируй следующие логи Nginx на признаки атаки.
Ищи:
- Множественные 401/403 ошибки с одного IP (брутфорс)
- Запросы с '../' (path traversal)
- Необычные User-Agent (сканеры)
- SQL-инъекции в URI
Логи:
192.168.1.10 - - [02/Jul/2026:10:15:23 +0000] "GET /admin HTTP/1.1" 401 345 "-" "Mozilla/5.0"
192.168.1.10 - - [02/Jul/2026:10:15:24 +0000] "GET /admin HTTP/1.1" 401 345 "-" "Mozilla/5.0"
... (ещё 50 строк)
Для каждого подозрительного события укажи:
- IP-адрес
- Тип атаки
- Рекомендуемое действие (заблокировать, расследовать, игнорировать)
6. Генерация политик паролей и MFA
Задача: Создать политику аутентификации для корпоративного приложения в соответствии с NIST SP 800-63B.
Промт:
Ты — compliance-специалист. Разработай политику аутентификации для веб-приложения с 10 000 пользователей.
Используй рекомендации NIST SP 800-63B (2024 edition):
- Минимальная длина пароля: 8 символов (рекомендуется 12+)
- Не требовать смену пароля каждые 90 дней (NIST это отменил)
- Обязательное использование MFA (TOTP или SMS)
- Блокировка аккаунта после 5 неудачных попыток входа на 15 минут
- Запрет на использование паролей из списка worstpasswords 2025
Сформируй политику в виде документа (Markdown).
7. Оценка рисков для зависимостей (SCA)
Задача: Проверить список зависимостей проекта на известные уязвимости (CVEs).
Промт:
Ты — security-инженер. Проверь следующий requirements.txt на уязвимости.
Используй базу данных NVD (National Vulnerability Database) и GitHub Advisory Database.
Для каждой зависимости найди:
- Количество известных CVE (за последние 12 месяцев)
- Наиболее критичная CVE (с CVSS v3.1)
- Версию, в которой уязвимость исправлена
- Рекомендацию: обновить / заменить / оставить
Зависимости:
Flask==2.2.0
requests==2.28.0
Django==3.2.0
PyYAML==5.4
Формат вывода: таблица Markdown.
Заключение
Промты — это не замена профессиональным инструментам, а способ ускорить рутину. Вместо того чтобы вручную перебирать логи или писать политики с нуля, используйте AI как ассистента. Главное — всегда проверяйте результаты: даже лучшие модели могут ошибаться.
Совет: Сохраните эти промты в отдельный файл и адаптируйте под свой стек. Через месяц вы заметите, что время на аудит безопасности сократилось на 30-40%.
Какой промт использовать первым? Если у вас есть код — начните с SAST-аудита (промт №1). Если настраиваете инфраструктуру — с IaC-шаблона (№4).
ASI Biont поддерживает подключение к GitLab и GitHub через API для автоматического запуска SAST-анализа в CI/CD — подробнее на asibiont.com/courses.
Комментарии