db.query в 3 часа ночи
в воскресенье, агент, долбящий один сбойный инструмент в тесном цикле, переход
от инструмента к инструменту, который это рабочее пространство никогда раньше не
делало. Каждый вызов проходит каждое правило; проблема — паттерн.
Детектирование аномалий firewall — это поведенческий слой. Шлюз обучается
нормальной форме использования инструментов вашего рабочего пространства и
оценивает живую активность против неё, выводя отклонения в ленте, которую может
читать любой Member. Так вы замечаете скомпрометированного агента или
убегающий цикл, не написав заранее правило для формы, которую никогда не
видели. Эта страница — сфокусированная посадочная для этой ленты
детектирования аномалий firewall; обзор Firewall
— глубокий справочник.
Лента аномалий — это детектирование, не применение. Она говорит вам, что
выглядит не так — она не блокирует. Когда паттерн реален, вы превращаете его в
правило или
вердикт с лимитом частоты, так чтобы
следующее появление останавливалось inline. Чтение ленты открыто каждому
Member; превращение находки в политику — Developer+.
1. Что флагирует детектирование аномалий firewall
Четыре вида сигналов, каждый привязан к своему режиму сбоя:rate_spike — слишком много вызовов для этого часа
rate_spike — слишком много вызовов для этого часа
Объём вызовов на инструмент, оценённый против обученного базиса по часу
недели. Инструмент срабатывает
rate_spike, когда его счётчик
преодолевает абсолютный пол и идёт высоко относительно базиса для этого
часа, или когда его z-score пересекает порог. Привязка к часу недели (не
часу дня) означает, что вторник-14:00 сравнивается с прошлыми
вторниками-14:00, так что законный пиковый трафик буднего дня не читается
как всплеск, тогда как тот же объём в 3 часа ночи в воскресенье — да.burn_spike — стоимость идёт горячо против базиса
burn_spike — стоимость идёт горячо против базиса
То же сравнение по часу недели, применённое к накопленной стоимости, а
не счётчику вызовов. Инструмент, чьи траты идут значительно сверх его
обученной нормы стоимости, всплывает как
burn_spike — сигнал раннего
предупреждения для агента, который дорог до того, как деструктивен.retry_loop — тот же вызов, снова и снова
retry_loop — тот же вызов, снова и снова
Группа
(conversation, tool, arguments), которая повторяется много раз
внутри короткого окна — агент, застрявший на повторном выпуске того же
сбойного вызова инструмента вместо восстановления. Медленный, законный опрос
его не срабатывает; сигнал — это тесный цикл.novel_path — переход, невиданный ранее
novel_path — переход, невиданный ранее
Последовательный переход
tool_a → tool_b, для которого у этого рабочего
пространства нет обученного базиса. В первый раз, когда агент идёт, скажем,
crm.read → http.fetch, это ребро ново — ровно такой шаг делает цепочка
эксфильтрации данных.2. 14-дневный базис
Детектор — это не фиксированный порог, это обученная норма. Для каждого ведра(tool, hour-of-week) шлюз держит скользящий ожидаемый счётчик вызовов и
стоимость, заполненные из 14-дневного ретроспективного окна (около двух
вхождений каждого ведра по часу недели — достаточно, чтобы сгладить один
странный день, не теряя недельную форму). novel_path использует параллельный
базис переходов: обученный счётчик вхождений для каждого ребра tool_a → tool_b в этот час недели.
У совершенно нового рабочего пространства пока нет базиса. Это нормально: без
обученной нормы детекторы объёма откатываются к абсолютному полу, так что
очевидный поток всё равно ловится в первый день, пока нормы по часам
наполняются.
| Сигнал | Из чего он обучается |
|---|---|
rate_spike / burn_spike | Счётчик и стоимость на (tool, hour-of-week), 14-дневное скользящее. |
novel_path | Счётчик переходов на (tool_a → tool_b, hour-of-week). |
retry_loop | Нет базиса — оконный порог повтора на (conversation, tool, args). |
Лента сообщает только имена инструментов, отредактированные id токенов и
счётчики. Сырой id API-ключа никогда не появляется — каждый элемент несёт
односторонний дайджест вызывающего токена, так что вы можете различить две
аномалии без того, чтобы лента когда-либо утекла ключ за ними.
3. Один конкретный разбор
Допустим, ключ агента начинает зацикливаться. Подтяните ленту в консоли под Security → Firewall → Anomalies или прочитайте её напрямую — любой Member может:retry_loop не несёт baseline или z_score (эти поля остаются 0 —
они принадлежат детекторам объёма/стоимости) и несёт стабильный непрозрачный
id, так что два разных цикла на одном инструменте не сталкиваются на одной
строке. rate_spike — обратное: он сообщает обученный baseline и z_score и
оставляет id пустым.
Каждый элемент называет инструмент, отредактированный токен, сколько вызовов
сработало, z-score (только сигналы объёма/стоимости) и suggested_action
(rate_limit, block_tool или review). Отсюда вы действуете: бросьте
правило deny на инструмент,
проверьте его аргументы или
откройте журнал событий, чтобы увидеть
ровно, что сделал агент.
4. Откладывание ленты
Известный нагрузочный тест или плановая дозагрузка зажгут ленту. Вместо того чтобы гоняться за шумом, отложите её — на срок до 7 дней:snoozed_until; она очищается сама в тот момент, когда дедлайн проходит.
Потолок — жёсткий предел — толстопалый или враждебный until дальше в будущее
ограничивается, так что детектирование аномалий нельзя заглушить бессрочно.
POST’инг прошлого или текущего until очищает существующее откладывание.
Чтение ленты — действие Member; откладывание её — Developer+ —
заглушение сигнала безопасности уровня рабочего пространства — это запись, не
чтение.
5. RBAC с одного взгляда
Поверхность аналитики делится по обычной линии чтение/действие:| Действие | Роль |
|---|---|
| Прочитать ленту аномалий | Member |
| Прочитать настройки, политики, обнаруженные инструменты | Member |
| Отложить ленту | Developer+ |
| Events, runs, aggregate, trace | Developer+ |
| Создать правило из находки | Developer+ |
6. От сигнала к политике
Лента — это начало цикла, не конец:Заметьте паттерн
novel_path или rate_spike показывает форму, которую вы не ожидали.
Прочитайте её против журнала событий,
чтобы подтвердить, что она реальна, а не разовая.Напишите правило
Превратите находку в применение — блокировку,
клаузу аргумента,
правило последовательности для
цепочки или потолок стоимости для трат.
Разверните безопасно
Сначала приземлите правило под shadow-режимом,
так чтобы вы измерили его радиус поражения до того, как оно заблокирует хоть
один вызов, затем применяйте.
Куда двигаться дальше
Обзор Firewall
Полный справочник детектирования аномалий и остальная плоскость политик.
Журнал событий
Углубитесь из аномалии в точные вызовы за ней.
Заблокировать инструмент
Превратите находку в применяющее правило.
Режимы применения
Как детектирование, audit, shadow и enforce вписываются вместе.
