Агент Triage
Агент triage независимо проверяет черновики уязвимостей, воспроизводя их HTTP-доказательства. Он никогда не доверяет описанию отчитывающегося агента — он воспроизводит каждый запрос и самостоятельно проверяет тело ответа.
Обзор
| Свойство | Значение |
|---|---|
| ID агента | triage |
| Режим | subagent |
| Доступ к инструментам | Ограниченный (read, grep, http_replay, triage_vulnerability, web_get_session_context) |
| Подход | Консервативный — оставляет непроверяемые находки как черновики |
Протокол проверки
Для каждого черновика находки агент triage:
- Читает приложенные HTTP-доказательства (захваченный запрос/ответ)
- Использует
http_replayдля независимого воспроизведения запроса - Анализирует ответ воспроизведения на наличие фактических доказательств
- Принимает решение о судьбе находки:
| Вердикт | Когда |
|---|---|
| Проверено (Triaged) | Воспроизведение подтверждает уязвимость |
| Отклонено (Rejected) | Воспроизведение показывает ложное срабатывание |
| Дубликат (Duplicate) | Находка дублирует другую подтверждённую находку |
| Черновик (Draft) (без изменений) | Невозможно проверить — оставлено для ручного рассмотрения |
Что считается доказательством
Агент triage применяет строгие стандарты доказательств:
- Статус
200сам по себе не является доказательством — тело ответа должно содержать целевые данные deleted:0, пустые массивы, общие сообщения об успехе — не являются доказательством- Для находок cross-tenant/IDOR ответ должен содержать данные другого арендатора
- Для находок по авторизации воспроизведение в режиме
compareдолжно показать пересечение границы привилегий
Пример
Draft: IDOR in GET /api/users/42 — claimed to return user data for another tenant
Triage:1. Replay GET /api/users/42 with original auth → 200, body: {"id": 42, "name": "Other User"}2. Replay GET /api/users/42 with attacker auth → 200, body: {"id": 42, "name": "Other User"}3. Both return the same user data → CONFIRMED cross-tenant access4. → triage_vulnerability(id, status: "triaged")Info
Агент triage запускается автоматически после того, как подагенты тестирования уязвимостей сообщают о находках. Он работает как финальный контроль качества перед представлением находок.