Skip to content
All tags

#access-control

13 posts

Who Can Read Which Data After Login? Identity and Authorization for AI Assistants

The backend derives the acting identity from trusted authentication, then checks the requested action against the resource. Test an explicit same-tenant, owner-only policy with allowed and denied reads.

Where should prompt-injection defenses live?

Replay one malicious tool proposal through different execution paths and distinguish model manipulation from unauthorized effects. Labels, data permissions, and action approvals serve different purposes.

MCP trust boundaries: what exactly did you trust?

Verify tool provenance, complete definitions, token audience, and downstream actions separately. A manifest hash detects metadata changes, not hidden remote behavior changes.

How model output becomes XSS, commands, or data exfiltration

Identify the consumer before validating output. HTML, URLs, and operation arguments require different controls; valid JSON, escaping, and authorization are separate properties.

A correct RAG answer can still disclose someone else’s data

Authorize every retrieval before data reaches the model. Cache hits and post-revocation responses must also respect current access to their source data.

Agent sandboxes, credentials, and network boundaries

Probe OS-enforced file and network denials separately from scoped, expiring authorization. Application allowlists are not OS sandboxes, and transport choices do not restrict process capabilities.

How to verify defenses: red teaming, regression, and monitoring

Replay an independent authorization matrix against real HTTP responses before and after a fix, correlate audit events, and report model behavior, enforcement, and production monitoring separately.

An available tool does not authorize this invocation

Bind a ticket export to its caller, resource, action, destination, and approval. Test substituted arguments, revocation, expiry, and replay.

AI Says It Found a Vulnerability. What Evidence Do You Need?

Treat AI suggestions as hypotheses. Preserve actual inputs and outputs, check the target data against the authorization policy, and use normal and patched controls to rule out false positives.

Permissions: How to Make Sure the AI Doesn't Hand Department A's Documents to Department B

Filter permissions at retrieval time: each chunk carries the groups allowed to see it, each query carries the user's groups, and anything that doesn't match never becomes a candidate, rather than letting the model read it and then telling it not to say it. AI doesn't create new permissions, but it makes documents that were shared too widely findable with a single question, so clean up oversharing before launch. When permissions change, the index doesn't necessarily follow: some connectors update permissions only on full crawls, up to a day late. Filtering has a cost too: with strict conditions, some vector databases return too few results. Before launch, add a permission-crossing question to your test set.

Securing Private-Corpus Queries: ACLs, Deletion Propagation, and Freshness

Authorization must take effect before candidate generation, while ACLs, deletion events, and source versions must propagate to every derived index; freshness needs measurable event-time SLOs too.

Private Corpus Search Boundaries: Decide Where Data May Go First

The first private-corpus decision is not which vector database to buy. Define data classes, trust zones, policy enforcement points, and freshness SLAs so every index, model, and observability system receives only the minimum data it is allowed to process.

OpenClaw Channels Overview: 31 Channels, Nearly All Plugins — and Why 'Who Can Trigger' Is Not 'What the Model Sees'

OpenClaw supports 31 chat channels, but only WebChat lives in core — even Slack and WhatsApp are plugins you install. And group safety has two independent axes: allowlists govern who can trigger the agent, not which quotes and history the model sees. That second one is contextVisibility, and it defaults to wide open.