Security at Sessionwright: read-only by default, every change approved and logged
How Sessionwright stays safe: a runner you host, read-only collectors, signed approvals for every change, rollback and a tamper-evident audit log.
Summary
No customer data reaches us
In v1 the runner lives in your environment and has no connection to Sessionwright at all.
No inbound connections
The runner only calls out: to the platforms it manages, your model endpoint and your SIEM.
Credentials stay in your vault
They are resolved inside collectors and the executor, never placed in a prompt, a tool result or a log.
What data stays where
| Data | Where it lives | Leaves your environment? |
|---|---|---|
| Credentials and secrets | Your vault: Windows DPAPI, Azure Key Vault or HashiCorp Vault | Never |
| Inventory snapshots and raw evidence | Runner storage in your environment | No |
| Findings and reports | Runner storage in your environment | Only if you choose to share a report; secrets are redacted first |
| Chat and plan narratives | Your model endpoint | Redacted findings go to the endpoint you choose, when you use chat or narratives |
| Audit log | Runner, append-only and hash-chained | Only to the SIEM you configure |
| Anything sent to Sessionwright | Not applicable | Nothing, in v1 |
Credentials, by platform
Read-only first. Write identities are separate, scoped, and fetched just in time by the executor.
| Platform | Read-only (default) | Write (only when enabled) |
|---|---|---|
| Citrix Virtual Apps and Desktops | Service account (gMSA) with the Read Only Administrator role | A scoped custom role for maintenance mode and messages; disruptive changes use a separate identity checked out from your vault |
| Citrix DaaS | Read-only Citrix Cloud API client | A separate, scoped API client with a short-lived secret |
| NetScaler | NITRO user bound to a show-and-stat command policy | An upgrade account from your vault, used only in the window; never nsroot |
| Azure Virtual Desktop | Desktop Virtualization Reader, Reader, Log Analytics Reader | Scoped operator roles, or PIM-eligible assignments activated for the window |
Platforms named here: Citrix® Virtual Apps and Desktops, Citrix DaaS, NetScaler® ADC and Gateway, and Azure Virtual Desktop.
Every action has a tier
T0Read
Examples: Inventory, findings, metrics, logs, NITRO show and stat
Gate: Allowed. Results are redacted and labelled as untrusted data.
T1Low-risk write
Examples: Save the NetScaler config, drain a host with no sessions, create a disabled scaling plan
Gate: Plan, dry-run and one approval. Automatic rollback available.
T2Disruptive write
Examples: Firmware upgrades, failover, reboots with users on them, image updates
Gate: Change Approver, optional second approver, change window, backup, staged rollout, health gates, rollback.
T3Never
Examples: Deleting catalogs or host pools, arbitrary shell, credential export
Gate: Not in the catalog. There is no way to request it.
Approvals the model cannot forge
The executor accepts only an Ed25519-signed approval token that names the plan, its hash, the approver, their role, an expiry and the change window. Tokens are minted through the CLI or console after a person signs in, with a key the model process cannot read. Before each step the executor checks the token again, along with the live state, because time has passed since the dry-run.
Prompt-injection defenses
Machine names, session client names, descriptions and log lines can all carry hostile text. The design assumes they will.
- Findings are computed by rules, so injected text cannot create or suppress a finding.
- Environment data reaches the model only inside tool results, JSON-encoded and labelled as untrusted.
- Free-text fields are truncated and stripped of control and zero-width characters.
- The agent that reads environment data has no outbound tools: no web, email or webhooks.
- Actions bind to object IDs from the snapshot, never to free-text targets.
- Approvers sign the structured plan rendered by the executor, not the model's prose.
Bring your own model endpoint
Sessionwright uses Claude through the endpoint you choose: your organization's Claude seats through the Claude Code or Claude Desktop plugin, your own Anthropic API key, or Claude in Microsoft Foundry. Your provider's terms govern that data. Under Anthropic's Commercial Terms, customer content is not used to train models.
Source: Anthropic Commercial Terms
Firmware and vendor terms
We never host, cache or redistribute NetScaler firmware; you download it with your own entitled account. Sessionwright uses documented vendor APIs only: no scraping, no undocumented endpoints, no reverse engineering.
Compliance status, stated plainly
- SOC 2
- On the roadmap. Not started; we will begin when the hosted control plane ships or a customer needs it.
- Security whitepaper and questionnaire answers
- In preparation. Ask and we will walk you through the architecture.
- Penetration test of the runner
- Planned before any customer write action.
- Insurance (tech E&O and cyber)
- To be bound before any customer write action. Until then, engagements are read-only.
Reporting a vulnerability
If you find a security issue in Sessionwright or this website, email hello@sessionwright.com with details. We will acknowledge your report and keep you updated. Please do not test against systems you do not own.
Questions
Does Sessionwright store any of our data?
Not in v1. The runner keeps snapshots, findings and the audit log in your environment. Nothing is sent to Sessionwright.
Who can approve a change?
People you assign in the runner. Operators can approve low-risk actions; disruptive ones need a Change Approver, and you can require a second approver. Roles map to your directory groups.
Are you SOC 2 certified?
No. SOC 2 is on the roadmap. Because the runner is hosted by you and no customer data reaches us, most pilots proceed on an architecture review instead.
Can we keep model traffic inside Azure?
Yes. Use Claude in Microsoft Foundry as the model endpoint, so model calls go through your Azure subscription.
Start read-only. Decide with evidence.
A drop-in assessment shows what the agent finds in your own environment, with nothing changed. The fee is credited toward a subscription if you continue within 60 days.