Аудитор безопасности кода на основе ИИ на платформе AgentField, который доказывает эксплуатируемость уязвимостей с помощью заключений, трасс и практических доказательств.
Результат • Тест • Как это работает • Сравнение • Быстрый старт • API
Другие инструменты отмечают шаблоны. SEC-AF доказывает эксплуатацию: каждая находка сопровождается вердиктом, трассировкой потока данных и доказательствами, с которыми можно работать. Бесплатно, с открытым исходным кодом, один вызов API. Полный аудит с 30 подтверждёнными находками стоит примерно $1.40 на вызовы LLM.
Запустите с помощью CLI af (требуется af ≥ 0.1.87) — он выводит живой прогресс и печатает результат:```bash
af call sec-af.audit --in '{"repo_url": "https://github.com/dolevf/Damn-Vulnerable-GraphQL-Application"}'
Предпочитаете сырой HTTP? Используйте API напрямую через curl:```bash
curl -X POST http://localhost:8080/api/v1/execute/async/sec-af.audit \
-H "Content-Type: application/json" \
-d '{"input": {"repo_url": "https://github.com/dolevf/Damn-Vulnerable-GraphQL-Application"}}'
Это реальная находка от аудита SEC-AF DVGA (специально уязвимое GraphQL-приложение):```jsonc { "title": "OS Command Injection in run_cmd Helper Function", "severity": "critical", "verdict": "confirmed", // not "maybe" — confirmed exploitable "evidence_level": 5, "cwe_id": "CWE-78",
"rationale": "Tracer confirms complete data flow from GraphQL parameters (host, port, path, scheme, cmd, arg) to os.popen(cmd).read() sink. Sanitization functions are bypassable in Easy mode...",
"proof": { "verification_method": "composite_subagent_chain:sast", "data_flow_trace": [ { "description": "core/views.py:203 — GraphQL args defined (host, port, path, scheme)", "tainted": true }, { "description": "core/views.py:210 — URL constructed from user input", "tainted": true }, { "description": "core/views.py:211 — helpers.run_cmd(f'curl {url}') called", "tainted": true }, { "description": "core/helpers.py:9 — os.popen(cmd).read() executes input", "tainted": true } ] },
"location": { "file_path": "core/helpers.py", "start_line": 9, "code_snippet": "def run_cmd(cmd):\n return os.popen(cmd).read()" } }
Каждый вывод содержит **вердикт** (`confirmed` / `likely` / `inconclusive` / `not_exploitable`), **объект доказательства** с полным трассировочным следом и точное местоположение в коде. Не «это может быть проблемой». SEC-AF отслеживает данные от источника до стока и доказывает, действительно ли они эксплуатируемы.
> Полный вывод бенчмарка (30 результатов): [`exampl/dvga-benchmark-result.json`](https://github.com/agent-field/sec-af/blob/main/exampl/dvga-benchmark-result.json) | Анализ производительности: [`exampl/benchmark-analysis.json`](https://github.com/agent-field/sec-af/blob/main/exampl/benchmark-analysis.json)
## Бенчмарк: DVGA
Мы запускаем SEC-AF против [Damn Vulnerable GraphQL Application](https://github.com/dolevf/Damn-Vulnerable-GraphQL-Application), намеренно уязвимого приложения с 21 задокументированным сценарием безопасности.
| Метрика | Значение |
|---|---|
| Обнаружено сырых находок | 106 |
| После AI-дедупликации | 61 |
| **После состязательной верификации** | **28 подтверждено** |
| Неопределённые (требуют ручной проверки) | 1 |
| Не эксплуатируемые (корректно отклонены) | 1 |
| Снижение шума | 94% |
| Рёбер DAG (вызовов рассуждателя) | 82 |
| Вызовов агентов | ~166–255 |
| Запущено стратегий | 11 |
| Время выполнения | ~78 мин |
| Оценка стоимости (Kimi K2.5) | ~$0.18–$0.90 |
<details>
<summary><strong>Разбивка: 30 проверенных находок по категориям</strong></summary>
| Категория | Количество | Примеры |
|---|---|---|
| Отсутствие аутентификации | 8 | ImportPaste, delete_all_pastes, system_debug, CreateUser, file upload |
| Инъекция команд | 4 | `os.popen(cmd)` через ImportPaste, system_debug, system_diagnostics |
| SQL-инъекция | 3 | Несанированный `filter` в `resolve_pastes`, внедрение LIKE-паттерна, вход |
| Обход аутентификации | 3 | Отключённая подпись JWT, обход авторизации JWT, сломанная аутентификация по паролю |
| Учётные данные в открытом виде | 3 | Хранение паролей в открытом виде, сравнение в открытом виде, пароль в диагностике |
| SSRF | 2 | Мутация ImportPaste подписывается на URL, предоставленные пользователем, на стороне сервера |
| Бизнес-логика / санитизация URL | 2 | Недостаточная санитизация URL, массовое удаление без аутентификации |
| DoS / истощение ресурсов | 3 | Отсутствие пагинации в запросах пользователей/аудитов, неконтролируемый simulate_load |
| Конфигурация / секреты | 2 | Жёстко закодированные секреты JWT/Flask, режим отладки включён в продакшне |
</details>
<details>
<summary><strong>Проектные паттерны: как работает ИИ-нативный анализ безопасности</strong></summary>
SEC-AF применяет несколько архитектурных паттернов, которые становятся возможными только при компоновке множества специализированных ИИ-агентов вместо одного монолитного сканирования. Эти паттерны решают фундаментальные задачи ИИ-управляемого анализа безопасности.
**1. Состязательное напряжение агентов (HUNT vs. PROVE)**
Большинство ИИ-инструментов безопасности спрашивают одну модель «уязвимо ли это?» и принимают ответ. SEC-AF структурно разделяет агентов _нахождения_ и _опровержения_. Охотники стимулированы находить уязвимости; проверяющие — опровергать их. Каждая находка проходит через цепочку верификации из 4 агентов — трассировщик восстанавливает поток данных, анализатор санитизации ищет смягчения, которые охотник мог пропустить, гипотезатор эксплойтов конструирует конкретный сценарий атаки, а агент вердикта взвешивает все противоречивые свидетельства. Это состязательное напряжение между агентами и обеспечивает снижение шума на 94% — сама архитектура кодирует скептицизм.
**2. Сигнальный каскад с прогрессивным сужением**
Вместо того чтобы сбрасывать все находки на пользователя, конвейер сжимает сигнал на каждом этапе: 106 сырых находок → 61 после AI-дедупликации → 30 после состязательной верификации. Каждая фаза — это фильтр. Это отражает то, как человеческие команды безопасности проводят триаж: сначала широкое обнаружение, затем последовательно более строгая проверка. Ключевая идея в том, что каждый фильтр — это _иной вид_ ИИ-рассуждения: семантическое сходство для дедупликации, анализ распространения для верификации, конструирование эксплойта для подтверждения.
**3. Информационная экономия через обрезку контекста**