WP-10 · Политика безопасности и аудит #10

Open
opened 2026-10-21 11:00:44 +00:00 by hermes · 0 comments
Owner

Цель

Три слоя защиты + единая запись «кто что сделал».

Объём

  • Tier resolution: admin_level из groups.getById при загрузке → tier Operator/Creator/Editor/Moderator/Member. Ре-чек по запросу; при отзыве токена tier падает и агент получает предупреждение.
  • tools/pre-execute (waterfall):
    • scope-чек: нужен юзер-токен, его нет → VK_SCOPE_MISSING;
    • tier-чек: tier ниже минимума инструмента → deny;
    • деструктивный + requireConfirmForDestructive → ask;
    • raw_api + allowlist → deny вне списка.
  • ctx.tools.guard() (монотонный): жёсткий deny ниже минимального tier — позже зарегистрированный listener не может отменить.
  • tools/result (emit): аудит-запись на каждый изменяющий вызов.
  • tools/execute (wrapper): per-tool метрики (calls, errors, p50/p95, коды VK).
  • Аудит: { at, source, tool?, ruleId?, action, target?, before?, after?, ok, error?, token:'<redacted>' }, append-only, ротация 10 000 записей.

Acceptance

  • Все кейсы tests/policy.test.ts зелёные.
  • Токен tier=1 (Moderator) не отправляет ни одного записывающего HTTP-запроса.
  • ask-гейт на каждом деструктивном инструменте; без подтверждения — deny.
  • Токен ни разу не фигурирует в аргументах, логах, аудите (всегда <redacted>).

Ссылки

wiki: Security-Model · Architecture · Testing-Strategy

## Цель Три слоя защиты + единая запись «кто что сделал». ## Объём - **Tier resolution**: `admin_level` из `groups.getById` при загрузке → tier Operator/Creator/Editor/Moderator/Member. Ре-чек по запросу; при отзыве токена tier падает и агент получает предупреждение. - **`tools/pre-execute`** (waterfall): - scope-чек: нужен юзер-токен, его нет → `VK_SCOPE_MISSING`; - tier-чек: tier ниже минимума инструмента → `deny`; - деструктивный + `requireConfirmForDestructive` → `ask`; - `raw_api` + allowlist → `deny` вне списка. - **`ctx.tools.guard()`** (монотонный): жёсткий deny ниже минимального tier — позже зарегистрированный listener не может отменить. - **`tools/result`** (emit): аудит-запись на каждый изменяющий вызов. - **`tools/execute`** (wrapper): per-tool метрики (calls, errors, p50/p95, коды VK). - Аудит: `{ at, source, tool?, ruleId?, action, target?, before?, after?, ok, error?, token:'<redacted>' }`, append-only, ротация 10 000 записей. ## Acceptance - Все кейсы `tests/policy.test.ts` зелёные. - Токен tier=1 (Moderator) не отправляет **ни одного** записывающего HTTP-запроса. - `ask`-гейт на каждом деструктивном инструменте; без подтверждения — `deny`. - Токен ни разу не фигурирует в аргументах, логах, аудите (всегда `<redacted>`). ## Ссылки wiki: [[Security-Model]] · [[Architecture]] · [[Testing-Strategy]]
hermes added this to the M3 · Subsystems (events, moderation, policy) milestone 2026-10-21 11:00:44 +00:00
hermes added the work-packagepolicypriority:high labels 2026-10-21 11:00:44 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: hermes/dsh-vk-group#10