Skip to content

security: document Carapace threat model and non-goals #483

Description

@puremachinery

Problem

Several planned architecture changes depend on a shared security model: outbound networking, dispatcher routing, prompt-extension skills, memory, plugin revocation, and channel abstractions. Without a concise threat model, every implementation issue has to re-litigate assets, attackers, and non-goals.

Goal

Write a small threat model document that is practical enough to guide implementation and review. This should be a working engineering artifact, not a sprawling exercise.

Scope

  • Assets: credentials, config secrets, auth profiles, session history, Matrix state, plugin binaries, device/node tokens, audit logs, user memory, and agent reasoning/output.
  • AI-specific asset flow: agent reasoning, tool results, and outputs can become an exfiltration vector when copied into later LLM requests to third-party providers.
  • Attackers: remote channel sender, malicious plugin publisher, compromised plugin, malicious website/browser context, hostile network peer, compromised paired node/device, and compromised local non-operator account where applicable.
  • Non-goals: Carapace defends operator integrity against external attackers and compromised integrations; it does not defend operators from themselves or defend against root/admin control of the host OS.
  • Supply chain position: define the bar for upstream Rust dependencies, such as cargo-audit/cargo-deny/cargo-vet expectations, and explicitly state that full SBOM attestation is out of scope unless separately approved.
  • Trust boundaries: local operator, paired device/node, channel sender, plugin, LLM provider, tool output, fetched media, browser client, and OS credential store.

Acceptance criteria

  • Add or update a concise threat-model document under docs/.
  • Include assets, attackers, trust boundaries, defended properties, and non-goals.
  • Include review guidance for future network broker, dispatcher, skills, memory, and plugin-revocation work.
  • Link the document from the security docs index or equivalent discoverable place.
  • Keep the document specific enough that future issues can cite it for audit retention, redaction policy, and dispatcher exemption decisions.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationsecuritySecurity controls, vulnerabilities, or hardening

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions