# Checklist безопасности MCP перед релизом

Версия: 2026-08-26  
Целевая ревизия MCP: 2026-07-28

Для каждого пункта укажите reviewer, build ID, ревизию протокола и ссылку на
evidence. Не вставляйте в checklist tokens, tool payloads, персональные данные и
внутренние host names.

## Identity и authorization

- [ ] Каждый HTTP request передаёт authorization в header, а не в URL.
- [ ] Сервер проверяет issuer, audience, expiry, signature и нужный scope.
- [ ] Доступ к tenant и объекту следует из verified identity. Tool arguments сами по
      себе прав не дают.
- [ ] State handles случайны, имеют срок действия и привязаны к principal на сервере.
- [ ] Сервер отклоняет upstream и downstream tokens, выпущенные для другого ресурса.
- [ ] Начальные scopes узкие. Опасные tools получают права через явный step-up flow.

## OAuth client и proxy

- [ ] Для PKCE, issuer, redirect URI и state есть negative tests.
- [ ] Proxy сохраняет consent отдельно для пары user и client до сторонней авторизации.
- [ ] Consent screen показывает client, точный redirect URI и запрошенные scopes.
- [ ] OAuth discovery и каждый redirect проходят production SSRF policy.
- [ ] В production закрыты private, loopback, link-local и cloud metadata addresses,
      кроме документированных исключений.

## Tools и подтверждение пользователя

- [ ] Tool inputs описаны строгой schema и повторно проверяются в handler.
- [ ] Handler проверяет доступ к конкретному ресурсу и действию.
- [ ] Annotations и descriptions считаются недоверенными metadata.
- [ ] Для чувствительного вызова интерфейс показывает arguments и просит подтверждение
      вне контроля модели.
- [ ] Retries, timeouts, rate limits и idempotency учитывают side effects каждого tool.
- [ ] Tool output проверяется и отделяется от инструкций перед возвратом в model context.

## Local servers и supply chain

- [ ] До запуска пользователь видит точную команду и источник установки.
- [ ] Процесс получает минимум прав на files, network и OS resources.
- [ ] Local HTTP listener требует authorization и ограничивает доступ. Если другим
      процессам доступ не нужен, используется stdio.
- [ ] Зафиксированы package identity, checksum или signature и результат dependency
      review.
- [ ] Изменение catalog или schema запускает diff, security review и новое consent,
      если риск изменился.

## Audit и release evidence

- [ ] Logs содержат actor, tenant, tool, decision, result, latency и correlation ID.
- [ ] Тесты подтверждают, что tokens, secrets, raw PII и чувствительные arguments
      удаляются из logs или не записываются.
- [ ] Cross-tenant, wrong-audience, expired-token, hostile-output и approval-bypass
      cases завершаются отказом в CI или датированном security exercise.
- [ ] Rollback удаляет новый server или tool и не оставляет credentials, listeners и
      scheduled work.
- [ ] У каждого exception есть owner и дата окончания.

Лицензия CC BY 4.0. Правила атрибуции находятся в `LICENSE-CC-BY-4.0.md`.
