Безопасность

Модель безопасности

Шесть уровней авторизации, фильтрация Discovery, Human-in-the-loop, Step-up Authentication, Consent Ledger и Audit Trail — полная модель безопасности для систем MCP-first.

Агентно-ориентированный не значит неконтролируемый. Система MCP-first описывает каждую возможность машиночитаемо — и одновременно определяет, кто вправе её вызвать, при каких условиях и какие следы при этом остаются. Безопасность — не дополнение постфактум, а часть дизайна возможностей.

Если агент может это вызвать, Policy должна это контролировать.

Основной принцип

Шесть уровней авторизации

Аутентификация отвечает на вопрос: Кто ты? Авторизация отвечает: Что тебе позволено? Система MCP-first требует обоих вопросов — и отвечает на них на шести независимых уровнях, которые вместе определяют фактический доступ.

Уровень 1: User Role

Роль авторизованного пользователя образует самый широкий уровень. Она определяет базовые классы доступа, а не отдельные инструменты.

admin
manager
employee
viewer
external_client

Уровень 2: Tenant Scope

В мультитенантных системах каждый доступ должен быть привязан к тенанту. Никакой агент не вправе читать или писать данные за пределами тенанта, даже если его роль пользователя технически допускает это.

tenant:abc
project:123
contact:456

Уровень 3: Tool Scope

Каждый инструмент защищён собственными скоупами. Агент получает исключительно те скоупы, которые необходимы для его определённой задачи.

contacts:read
contacts:write
projects:read
projects:write
files:read
files:write
emails:draft
emails:send
calendar:create
billing:read
billing:write
admin:users
admin:security

Уровень 4: Resource Scope

Помимо Tool Scopes, доступ можно ограничить отдельными типами ресурсов. Это гарантирует, что агент с contacts:read всё равно не сможет просматривать каждый ресурс контакта.

resource.project.visible
resource.contact.visible
resource.employee.visible
resource.file.downloadable
resource.email.readable

Уровень 5: Risk Level

Каждый инструмент несёт объявленный уровень риска. Этот уровень влияет на Confirmation Policy и конфигурацию аудита.

УровеньЗначение
Low Автономное выполнение обычно допустимо
Medium Автономно при однозначном скоупе и контексте
High Подтверждение рекомендуется
Critical Всегда требует подтверждения, часто Step-up Auth
Forbidden for AI Доступ для ИИ запрещён

Уровень 6: Confirmation Policy

Confirmation Policy определяет, какое дополнительное препятствие необходимо преодолеть перед выполнением. Она настраивается для каждого инструмента и применяется Policy Layer — не самим агентом.

no_confirmation_required
confirmation_required
step_up_auth_required
admin_approval_required
four_eyes_required
not_allowed_for_ai

Видимость инструментов

То, существует ли инструмент, само по себе является информацией, значимой для безопасности. Агент, знающий о запрещённом инструменте, может использовать его как поверхность атаки — даже если последующий вызов будет заблокирован.

Sales Assistant, например, получает следующий отфильтрованный список инструментов:

Sales Assistant видит
  • contacts.search
  • projects.list
  • emails.create_draft
  • reminders.create
  • calendar.create_event
  • users.delete не видно Forbidden for AI
  • billing.change_plan не видно Forbidden for AI
  • security.rotate_keys не видно Forbidden for AI
  • tenant.export_all_data не видно Forbidden for AI

Human-in-the-loop

MCP-first не означает полную автоматику. Это означает полную управляемость — но под контролем. При чувствительных или рискованных действиях система прерывает агента и активно запрашивает согласие пользователя.

Агент по объявленным метаданным риска определяет, что действие требует разрешения человека, и передаёт управление. Только после явного подтверждения инструмент выполняется.

Следующий пример показывает типичный диалог согласования для массовой рассылки внешних электронных писем — одного из наиболее частых критических действий агента:

Sales Assistant

emails.send_external
Critical

Отправить всем потенциальным клиентам актуальное экспозе в виде персонализированного электронного письма.

Получатели
43 потенциальных клиента из проекта Havelblick
Тема
Ваше экспозе — Проект Havelblick
Вложение
Без прямого вложения — ссылка для скачивания, действительна 14 дней
Время отправки
Сразу после подтверждения

GrundВнешняя массовая рассылка с информацией о проекте и персональными данными получателей. Действие необратимо.

Step-up Authentication

Для особо чувствительных действий активной сессии недостаточно. Даже авторизованный администратор должен повторно подтвердить свою личность, прежде чем будут выполнены критические операции.

Типичные триггеры для Step-up Auth:

  • Изменение или назначение прав администратора
  • Изменение платёжных данных или подписки
  • Данные о зарплатах или экспорт расчётов
  • Создание или ротация API-ключей
  • Полные экспорты данных
  • Удаление пользователей или тенантов

Принятые методы Step-up (в зависимости от системной политики):

Повторный запрос пароля
TOTP / приложение аутентификатора
Passkey
Разрешение администратора от второго лица
Принцип четырёх глаз

Каждое согласие на действие агента — это событие, которое должно храниться постоянно. Consent Ledger позволяет впоследствии восстановить, какое действие было одобрено кем, на какой объём и каким методом безопасности.

Сохраняемые поля записи о согласии:

consentId        — уникальный идентификатор согласия
userId           — пользователь, давший разрешение
agentId          — действующий агент
clientId         — подключённый MCP-клиент
toolName         — вызванный инструмент
inputSummary     — структурированная сводка входных данных (не открытый текст)
riskLevel        — объявленный уровень риска инструмента
approvedAt       — временная метка разрешения
expiresAt        — срок действия разрешения (если ограничен по времени)
approvalMethod   — использованный метод разрешения (например, "totp", "passkey", "manual")

Некоторые разрешения могут быть ограничены по времени — например, однократное разрешение на конкретную рассылку. Другие действительны на сессию или настроенный период. Policy определяет гранулярность.

Audit Trail

Каждое MCP-действие создаёт запись аудита. Эта запись неизменна, привязана к тенанту и машиночитаема. Она является основой для подтверждения соответствия, обнаружения аномалий и внутренних проверок.

{
  "event": "mcp.tool.executed",
  "tool": "emails.send_external",
  "tenantId": "tenant_123",
  "userId": "user_456",
  "agentId": "agent_sales_assistant",
  "clientId": "client_claude_desktop",
  "riskLevel": "critical",
  "confirmationId": "confirm_789",
  "inputHash": "sha256:a3f2c1...",
  "result": "success",
  "createdAt": "2026-06-11T10:00:00Z"
}

Журнал аудита можно автоматически отслеживать на предмет аномалий: необычные частоты выполнения, действия вне обычного рабочего времени или доступ к скоупам, которые агент обычно не использует — всё это обнаруживаемо, потому что каждое действие чётко типизировано и аудировано.

100 % управляемо означает: каждая возможность описана, авторизована, подтверждена и аудирована — прежде чем она произведёт эффект.