Безопасность
Runne Engine спроектирован вокруг default deny для защищённых побочных эффектов, принципа наименьших привилегий с ослаблением (attenuation) возможностей и fail-closed применения. Эта страница кратко описывает модель; полный контракт лежит в репозитории рантайма в docs/05-security/.
Гранты возможностей и одобрения
- Capability — именованная способность (
fs:read,fs:write,process:exec,network:outbound, …). Capability Grant — неизменяемый, версионируемый грант с точным действием, нормализованным ресурсом, ограничениями, скоупом, сроком действия и лимитом делегирования. - Операция разрешена только когда активный грант полностью покрывает субъект, действие, ресурс, скоуп и текущую эпоху политики/отзыва. Неизвестное действие/ресурс/ограничение/версия → deny.
- Дочерний субъект (делегированный TaskRun, плагин, MCP-сервер, адаптер) может держать только ослабленные (attenuated) гранты — никогда не шире, чем у его эмитента.
- Approval — это решение человека, а не грант. После одобрения capability engine переоценивает текущую политику, и результат всё равно может быть deny. Гранты, порождённые одобрением, привязаны к операции и короткоживущие.
Sandbox и изоляция процессов
- Sandbox-хелпер (
runne-sandbox-helper) и платформенные sandbox-бэкенды ограничивают возможности агента по файловой системе, процессам и сети. - Профили sandbox варьируются от
read-onlyиworkspace-codingдоplugin-hostиmcp-local.trusted-adminостаётся короткоживущим, требует сильной аутентификации и причины и несёт обязательный аудит. - Плагины и MCP-серверы работают в отдельных процессах (ADR-0007); каждый запрос проходит через capability engine со свежей привязкой вызова (invocation binding) и одноразовым разрешением (permit).
- Если sandbox, политика или слой аудита недоступны или неизвестны, применение fails closed — операция отклоняется.
Credential-сервис и macOS Keychain
runne-credential-serviceиrunne-credential-service-coreработают с учётными данными провайдеров (openai,deepseek). CLI задаёт credential только из не-TTY stdin — никогда через argv, переменные окружения или пути к файлам.- На macOS credential-сервис хранит элементы в Data Protection Keychain за ACL —
runne-macos-keychain-aclприменяет контракт access-group (758F9Z45SR.com.runne.credential-service) сkSecUseDataProtectionKeychain=true,kSecAttrAccessibleWhenUnlockedThisDeviceOnly=trueиkSecAttrSynchronizable=false. runne-secure-storeхранит секреты в состоянии покоя (at rest); доменные события и checkpoint-ы несут толькоSecretRef, никогда само значение секрета.
Сопряжение (pairing) и платформенная идентичность
runne-pairing-cryptoпредоставляет криптографию сопряжения для аутентификации хостов и клиентов.- Платформенная идентичность устанавливается через нативные примитивы —
runne-macos-xpc(транспорт XPC-сервиса),runne-macos-process-identity,runne-sqlite-handle-identity,runne-sqlite-native-identityиrunne-windows-native-handleпривязывают идентичность к OS-уровневым handle.
Что определяет репозиторий
docs/05-security/ содержит целевой контракт безопасности (все ready): модель безопасности, модель угроз, границы доверия, модель возможностей, движок разрешений, модель одобрений, sandbox-профили, политику файловой системы/процессов/сети, управление секретами, доверие MCP, доверие плагинов, требования аудита и тестирование безопасности. Обязательный путь побочного эффекта:
intent → capability decision/grant → budget reservation → gateway
→ sandbox/process enforcement → side-effect evidence → auditСбой аудита накладывает вето на защищённый эффект — никакого защищённого эффекта без durable-доказательства аудита.
Связанное
- Архитектура — карта крейтов.
- Понятия — гранты, бюджеты, sandbox.
- Безопасность Pass — отдельная модель безопасности managed API.