AI Code Security — четыре агента, которые ловят то, что пропускает SAST в коде, сгенерированном ИИ. Построено на платформе GitLab Duo Agent.
Безопасность AI-кода — ловим то, что пропускает SAST в коде, сгенерированном ИИ Построено на платформе GitLab Duo Agent
40-62% кода, созданного ИИ, содержит уязвимости безопасности. Традиционные SAST ловят CVE. Мы ловим то, что пропускает SAST — инъекции промптов, выполнение вывода LLM, небезопасная десериализация ML.
Начало работы · Архитектура · Правила обнаружения · Руководство по настройке · Реализация
ИИ ускоряет генерацию кода, но создаёт новые узкие места в безопасности:
| Проблема | Влияние |
|---|---|
| Проверки безопасности блокируют MR на часы или дни | 7 часов/неделю теряет каждый член команды |
| ИИ усложняет управление соответствием требованиям | 70% команд сообщают об этом |
| Проблемы соответствия обнаружены после развертывания | 76% организаций |
| Традиционные SAST-инструменты пропускают риски, специфичные для ИИ | Инъекции промптов, выполнение вывода LLM, небезопасная десериализация ML |
| 40-62% кода, созданного ИИ, содержит уязвимости | Ни один существующий инструмент не обнаруживает угрозы, специфичные для ИИ |
Источник: Отчет GitLab 2025 Global DevSecOps
AgentFlow Auditor — Четыре AI-агента, которые ловят риски безопасности, пропускаемые традиционными SAST в коде, созданном ИИ. 41 правило обнаружения, включая инъекции промптов LLM, выполнение вывода, небезопасную десериализацию, SQL-инъекции, SSRF и обход путей. Публикует сканируемые отчеты, генерирует патчи для исправлений, отслеживает дрейф рисков. Один @mention запускает все.
Developer opens MR │ ▼ @duo-agentflow-auditor review this MR │ ▼ ┌───────────────────────────────────────────────────────┐ │ │ │ ┌─────────────┐ ┌──────────────────┐ │ │ │ Scanner │──────▶│ Reporter │ │ │ │ Agent │ │ Agent │ │ │ │ │ │ │ │ │ │ Read diffs │ │ Grade risk │ │ │ │ Match 34 │ │ Risk heatmap │ │ │ │ rules │ │ Post MR comment │ │ │ │ Score risk │ │ Create issue │ │ │ └─────────────┘ └────────┬─────────┘ │ │ │ │ │ ┌───────┴────────┐ │ │ │ SAFE? │ │ │ │ ├─ Yes ──────────────┐ │ │ │ └─ No ───┐ │ │ │ │ └───────────┘ │ │ │ │ │ │ │ │ │ ┌─────────────┐ ┌────────▼───────┘┐ │ │ │ │ Metrics │◀──────│ Fixer │ │ │ │ │ Agent │ │ Agent │ │ │ │ │ │◀──────────────────────────────┘ │ │ │ Baseline │ │ Confidence-scored│ │ │ │ Cross-MR │ │ patches │ │ │ │ Green │ │ Fix branch + MR │ │ │ │ Posture │ │ │ │ │ └─────────────┘ └─────────────────┘ │ │ │ │ GitLab Duo Agent Platform (ambient) │ │ │ │ ┌───────────────────────────────────────────┐ │ │ │ External SAST Agent (CI/CD container) │ │ │ │ bandit + semgrep + custom rules merge │ │ │ └───────────────────────────────────────────┘ │ └───────────────────────────────────────────────────────┘
### Состав агентов
| Агент | Роль | Инструменты | Ключевая возможность |
|:------|:-----|:------|:---------------|
| **Scanner** | Анализировать MR-дифы | 10 инструментов | 41 правило (26 regex + 15 Semgrep), обнаружение угроз, специфичных для ИИ, интеграция с уязвимостями |
| **Reporter** | Публиковать отчёты по аудиту | 7 инструментов | Сканирование за 10 сек (оценка + тепловая карта + топ-5), привязка уязвимостей, автоматическое создание задачи при DANGER |
| **Fixer** | Генерировать исправления кода | 8 инструментов | Патчи с оценкой уверенности (HIGH/MEDIUM/LOW), автоматическое создание MR с исправлением |
| **Metrics** | Отслеживать базовый уровень риска | 6 инструментов | Обучение между MR, состояние команды, отклонение базы, отслеживание энергии/углерода |
| **SAST Scanner** | Внешний SAST | CI/CD | Запускает bandit + semgrep, объединяет с пользовательскими правилами через Python-скрипт |
---
## Возможности
<table>
<tr>
<td width="50%">
### Сканирование безопасности
- **41 правило обнаружения** — 26 regex + 15 пользовательских правил Semgrep
- **8 категорий риска** — От разрушительных команд до внедрения промптов
- **Обнаружение, специфичное для ИИ** — Внедрение промптов LLM, выход-в-исполнение, небезопасная десериализация
- **Оценка риска** — 0-100 за находку (серьёзность x контекст x категория)
- **Система оценок** — SAFE / WARNING / DANGER
</td>
<td width="50%">
### Автоматизация
- **Одно событие для активации** — `@упоминание` или назначение рецензента
- **Условная маршрутизация** — SAFE сканирование пропускает Fixer, экономя токены
- **Структурированные комментарии к MR** — Таблицы рисков, предложения по исправлению, сворачиваемые детали
- **Автоматическое создание исправлений** — Патчи кода в новой ветке
- **Создание задачи** — Автоматически при оценке DANGER
</td>
</tr>
<tr>
<td width="50%">
### Отслеживание базового уровня
- **Обнаружение отклонений риска** — Сравнение результатов сканирования с течением времени
- **Анализ трендов** — Улучшение / ухудшение / стабильно
- **Уровень принятия исправлений** — Отслеживание количества применённых предложений
- **Журнал истории** — JSONL-добавление при каждом сканировании
</td>
<td width="50%">
### «Зелёные» метрики
- **Отслеживание токенов** — Использование за сканирование
- **Оценка энергии** — кВт·ч за сканирование
- **Углеродный след** — кг CO2 с реальными аналогиями
- **Предложения по оптимизации** — Уменьшить область сканирования, кэшировать базовые уровни
</td>
</tr>
</table>
---
## Категории обнаружения
### Пользовательские правила Semgrep
15 правил Semgrep производственного качества по 6 категориям: