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

Введение

Безопасность программного обеспечения перестала быть отдельной дисциплиной — она встроена в каждый этап разработки. DevSecOps, по данным отчёта GitLab за 2025 год, внедряют уже более 65% команд, использующих CI/CD. Однако ключевая проблема остаётся: как эффективно формулировать задачи для инструментов SAST, DAST и управления политиками доступа? Ответ — в промтах. Правильно составленный промт (запрос к AI-модели или инструменту) может автоматизировать аудит кода, генерацию политик и анализ уязвимостей. В этой статье — 15 промтов, разбитых на три уровня сложности, с примерами результатов и ссылками на реальные инструменты.

Базовые промты для безопасности

Эти промты подойдут разработчикам и инженерам, которые только начинают внедрять безопасность в процесс. Они фокусируются на простых задачах: поиск распространённых уязвимостей, базовый аудит зависимостей и генерация простых политик доступа.

Промт 1: Поиск SQL-инъекций в коде

Задача: Найти фрагменты кода, уязвимые для SQL-инъекций, в Python-приложении.

Промт:

Проанализируй следующий код на Python и найди места, где возможна SQL-инъекция. Для каждого уязвимого места предложи исправление с использованием параметризованных запросов или ORM.

Код:
@app.route('/user')
def get_user():
    user_id = request.args.get('id')
    query = f"SELECT * FROM users WHERE id = {user_id}"
    cursor.execute(query)
    return cursor.fetchall()

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

Уязвимость найдена в строке 4: используется f-строка для формирования SQL-запроса. Исправление:
query = "SELECT * FROM users WHERE id = ?"
cursor.execute(query, (user_id,))

Этот промт основан на практике OWASP Top 10, где SQL-инъекции остаются одной из самых критичных уязвимостей. Инструменты вроде Semgrep или Bandit могут выполнять подобный анализ статически.

Промт 2: Анализ зависимостей на известные уязвимости

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

Промт:

У меня есть файл requirements.txt с зависимостями: Flask==2.0.1, requests==2.25.0, numpy==1.21.0. Найди для каждой зависимости известные уязвимости (CVE) с указанием severity и версии, в которой они исправлены.

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

Flask 2.0.1: CVE-2023-30861 (Medium) — исправлено в 2.3.0
requests 2.25.0: CVE-2023-32681 (High) — исправлено в 2.31.0
numpy 1.21.0: CVE-2021-41495 (Low) — исправлено в 1.22.0

Для автоматизации используйте инструменты вроде Snyk или OWASP Dependency-Check. Они интегрируются в CI/CD и обновляют базу CVE ежедневно.

Промт 3: Генерация простой политики доступа (RBAC)

Задача: Создать политику доступа на основе ролей для веб-приложения.

Промт:

Создай политику RBAC для приложения с тремя ролями: admin, editor, viewer. Admin может всё, editor может редактировать и просматривать, viewer — только просматривать. Используй синтаксис JSON.

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

{
  "roles": {
    "admin": {"permissions": ["*"]},
    "editor": {"permissions": ["read", "write"]},
    "viewer": {"permissions": ["read"]}
  }
}

Такие политики легко интегрируются с инструментами управления доступом, например, Open Policy Agent (OPA) или AWS IAM.

Промт 4: Обнаружение hardcoded секретов

Задача: Найти секреты (пароли, токены, ключи) в коде.

Промт:

Найди в следующем коде hardcoded секреты: пароли, API-ключи, токены. Предложи способ их вынести в переменные окружения.

Код:
api_key = "sk-1234567890abcdef"
password = "supersecret"
db_host = "localhost"

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

Найдены:
- api_key: "sk-1234567890abcdef"
- password: "supersecret"

Исправление: создать файл .env и загружать через os.getenv().

Инструменты: GitLeaks, TruffleHog. Они сканируют коммиты и историю репозитория.

Промт 5: Проверка конфигурации Dockerfile на безопасность

Задача: Проанализировать Dockerfile на лучшие практики безопасности.

Промт:

Проверь Dockerfile на уязвимости: запуск от root, использование непроверенных образов, открытые порты. Предложи исправления.

Dockerfile:
FROM ubuntu:latest
RUN apt-get update && apt-get install -y nginx
EXPOSE 80
USER root
CMD ["nginx", "-g", "daemon off;"]

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

- Используется latest-тег — заменить на конкретную версию.
- Запуск от root — добавить USER nginx.
- Не установлены security-патчи — добавить apt-get upgrade.

Продвинутые промты для DevSecOps

Эти промты требуют понимания CI/CD, контейнеризации и облачных политик. Они автоматизируют интеграцию безопасности в пайплайны.

Промт 6: Создание SAST-скрипта для CI/CD

Задача: Написать bash-скрипт для запуска SAST-анализа в GitLab CI.

Промт:

Создай bash-скрипт, который запускает Semgrep для Python-файлов и выводит результаты в формате JSON. Скрипт должен завершаться с ошибкой, если найдены уязвимости с severity 'high'.

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

#!/bin/bash
semgrep --config=auto --json --error --severity=HIGH .
if [ $? -ne 0 ]; then
  echo "Critical vulnerabilities found!"
  exit 1
fi

Этот скрипт можно вставить в job GitLab CI. Semgrep поддерживает сотни правил, включая OWASP Top 10.

Промт 7: Генерация политики сети для Kubernetes (NetworkPolicy)

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

Промт:

Сгенерируй Kubernetes NetworkPolicy, которая блокирует весь входящий и исходящий трафик для подов с меткой app: frontend, кроме трафика от пода с меткой app: backend на порт 8080.

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

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: deny-all-except-backend
spec:
  podSelector:
    matchLabels:
      app: frontend
  policyTypes:
  - Ingress
  - Egress
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: backend
    ports:
    - protocol: TCP
      port: 8080
  egress: []

Промт 8: Автоматическое исправление уязвимостей в Terraform

Задача: Исправить конфигурацию Terraform, где S3 bucket открыт для всех.

Промт:

В Terraform-коде S3 bucket имеет public access block: false. Измени код так, чтобы блокировать публичный доступ и добавить шифрование.

Код:
resource "aws_s3_bucket" "my_bucket" {
  bucket = "my-bucket"
  acl    = "public-read"
}

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

resource "aws_s3_bucket" "my_bucket" {
  bucket = "my-bucket"
}

resource "aws_s3_bucket_public_access_block" "my_bucket" {
  bucket = aws_s3_bucket.my_bucket.id
  block_public_acls       = true
  block_public_policy     = true
  ignore_public_acls      = true
  restrict_public_buckets = true
}

resource "aws_s3_bucket_server_side_encryption_configuration" "my_bucket" {
  bucket = aws_s3_bucket.my_bucket.id
  rule {
    apply_server_side_encryption_by_default {
      sse_algorithm = "AES256"
    }
  }
}

Промт 9: Создание политики IAM с минимальными привилегиями

Задача: Создать IAM-политику для Lambda, которой нужен доступ только к одному S3 bucket.

Промт:

Создай IAM-политику для AWS Lambda, которая разрешает только s3:GetObject и s3:ListBucket для bucket 'my-app-data'. Запрети все остальные действия.

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

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::my-app-data",
        "arn:aws:s3:::my-app-data/*"
      ]
    }
  ]
}

Промт 10: DAST-сканирование с OWASP ZAP через API

Задача: Запустить DAST-сканирование для staging-окружения.

Промт:

Напиши Python-скрипт, который запускает OWASP ZAP в режиме daemon, сканирует URL http://staging.example.com и экспортирует отчёт в HTML.

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

from zapv2 import ZAPv2
zap = ZAPv2(apikey='changeme')
zap.urlopen('http://staging.example.com')
zap.spider.scan('http://staging.example.com')
zap.ascan.scan('http://staging.example.com')
zap.core.save_session('report.html')

OWASP ZAP — один из самых популярных DAST-инструментов с открытым исходным кодом.

Экспертные промты для безопасности

Эти промты требуют глубоких знаний в области криптографии, сложных политик и интеграции с SIEM-системами.

Промт 11: Анализ логов на признаки атаки (Log Analysis)

Задача: Найти в логах веб-сервера признаки SQL-инъекции или XSS.

Промт:

Проанализируй логи Nginx и найди запросы, которые могут быть SQL-инъекцией или XSS. Используй регулярные выражения для поиска типичных паттернов: UNION SELECT, <script>, OR 1=1.

Логи:
192.168.1.1 - - [14/Jul/2026:10:15:30] "GET /search?q=1' OR '1'='1 HTTP/1.1" 200
192.168.1.2 - - [14/Jul/2026:10:16:00] "GET /search?q=<script>alert(1)</script> HTTP/1.1" 200

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

Подозрительные запросы:
1. q=1' OR '1'='1  возможная SQL-инъекция.
2. q=<script>alert(1)</script>  возможная XSS.

Рекомендация: добавить WAF (например, ModSecurity) и экранировать ввод.

Промт 12: Генерация правил для Falco (runtime security)

Задача: Создать правило Falco для обнаружения запуска shell в контейнере.

Промт:

Напиши правило Falco, которое срабатывает при запуске /bin/bash в контейнере с меткой app: production. Уровень тревоги — Critical.

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

- rule: Shell in Production Container
  desc: Detect shell execution in production containers
  condition: container.image.repository contains "production" and proc.name = "bash"
  output: "Shell detected in container (user=%user.name container=%container.id)"
  priority: CRITICAL
  tags: [container]

Falco — стандарт де-факто для runtime-безопасности контейнеров, поддерживается CNCF.

Промт 13: Создание политики шифрования для базы данных

Задача: Сгенерировать политику шифрования данных в PostgreSQL с использованием pgcrypto.

Промт:

Создай SQL-скрипт для шифрования столбца 'email' в таблице 'users' с использованием pgcrypto. Используй симметричное шифрование с ключом из переменной окружения.

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

CREATE EXTENSION IF NOT EXISTS pgcrypto;

UPDATE users SET email = pgp_sym_encrypt(email, current_setting('app.encryption_key'));

ALTER TABLE users ALTER COLUMN email SET DATA TYPE bytea USING email::bytea;

Промт 14: Интеграция с SIEM (например, Splunk) через API

Задача: Отправить алерт о найденной уязвимости в Splunk.

Промт:

Напиши Python-скрипт, который отправляет JSON-событие с типом 'vulnerability' в Splunk HTTP Event Collector. Событие должно содержать: CVE ID, severity, affected component.

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

import requests
import json

event = {
    "event": {
        "type": "vulnerability",
        "cve_id": "CVE-2023-30861",
        "severity": "MEDIUM",
        "component": "Flask 2.0.1"
    }
}

url = "https://splunk-instance:8088/services/collector"
headers = {"Authorization": "Splunk <token>"}
requests.post(url, data=json.dumps(event), headers=headers, verify=False)

Промт 15: Построение модели угроз (Threat Modeling) для микросервисов

Задача: Создать модель угроз для микросервисной архитектуры.

Промт:

Построй модель угроз для системы из трёх микросервисов: API Gateway, User Service, Order Service. Используй методологию STRIDE. Для каждой угрозы укажи mitigation.

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

| Сервис | Угроза (STRIDE) | Mitigation |
|--------|-----------------|------------|
| API Gateway | Spoofing (подделка токенов) | Использовать JWT с проверкой подписи |
| User Service | Tampering (изменение данных) | Input validation, prepared statements |
| Order Service | Information Disclosure | Шифрование данных в покое |

Заключение

Промты — это не просто запросы к AI, а инструмент для автоматизации безопасности. Используя их, можно сократить время на аудит, сканирование и генерацию политик. Начните с базовых промтов, затем переходите к продвинутым и экспертным. Главное — помните: безопасность должна быть встроена, а не добавлена постфактум. ASI Biont поддерживает подключение к Splunk через API — подробнее на asibiont.com/courses. Экспериментируйте, адаптируйте промты под свои инструменты и делитесь результатами с сообществом.

← Все статьи

Комментарии

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

Автоматизация LiveChat с помощью ИИ: как интеграция без кода от ASI Biont сокращает время ответа на 70% и повышает конверсию на 25%

14 июля 2026

Lean Six Sigma Black Belt — управление качеством: как я готовился к ASQ на Asibiont.com и почему AI-тьютор изменил всё

14 июля 2026

Интеграция Snowflake с AI-агентом ASI Biont: автоматизация SQL-запросов и отчетов без кода

14 июля 2026

Интеграция 1С с AI-агентом: как ASI Biont через HTTP Services экономит 40 часов в месяц на рутине

14 июля 2026

Actegories: новая парадигма Vibe Coding, которая меняет разработку

14 июля 2026

Почему практическая криптография — обязательный навык разработчика в 2026 году: глубокое погружение в курс Asibiont

14 июля 2026

OSCP — Offensive Security Certified Professional (PEN-200): Ваш ускоритель карьеры в пентестинге

14 июля 2026

AI-агент ASI Biont + S7 Siemens: как автоматизировать PLC без переписывания кода и сэкономить 60% времени инженера

14 июля 2026

7 промтов для Swift и iOS: SwiftUI, UIKit, Core Data и Combine

14 июля 2026