Security and trust
Built to be safe on your data and on your site
Ghost Agent Lab reads your logs and sends AI agents to your site, so we take both jobs seriously. Here's how we keep organizations apart, protect secrets, and make sure our agents never do anything you didn't ask for.
Your data
Your data stays yours
Organizations kept apart
Every query is filtered by organization and site, and the database enforces it too, so a mistake in our code returns nothing rather than someone else's data. Automated tests try every page as another organization.
- Row-level security in the database for every customer table
- Tests that check every new page for cross-organization access
- Read-only staff access is logged, time-limited and can't change accounts
Minimal personal data
We need your access logs to tell agents apart from people, not to profile your visitors.
- Visitor IP addresses stored only as a salted hash, with a salt per site
- No tag on your pages and no cookies set on your visitors
- Test data for Ghost Agents is checked, and anything that looks like a real card number or password is refused
Secrets encrypted
The keys that let you send us data, your Slack webhooks and two-step sign-in secrets are encrypted at rest.
- AES-256-GCM, with each secret bound to its own context
- No silent fallback: without the key, nothing is decrypted
- Ingest keys looked up by hash, never by the key itself
Your site
Agents that never go too far
Ghost Agents are safe on a live site
A Ghost Agent works through one journey like a customer would, with hard limits on what it can do.
- Never types into card fields, and stops if a payment form is submitted
- Refuses buttons like “Place order”, “Pay”, “Delete” and “Cancel”
- Stays on your site, with downloads and new tabs blocked
- Limits on steps, time and cost for every run
- Treats page text as data, never as instructions, and reports pages that try to instruct it
Bots that say who they are
Our scanner and Ghost Agents identify themselves, and you can verify every request really came from us.
- Requests signed with Ed25519 (Web Bot Auth, RFC 9421)
- Public keys published at a well-known address
- Scans only reach public addresses, checked at every redirect
- Opt out any time by email
Your account
Secure by default
Sign-in
Two-step sign-in with an authenticator app, Google sign-in, and single sign-on (SAML) on the way for Scale and Enterprise.
Activity log
Team and above get a log of every change your team makes, with CSV export for audits.
Browser protections
A strict content security policy, HSTS over HTTPS and checks that refuse cross-site form posts.
Isolated browsers
Our browsers run on a separate private service with no database access and no keys.
Careful engineering
Dependencies audited on every change, CodeQL security analysis on every pull request, and pinned CI actions.
Payments by Stripe
Card details go straight to Stripe. We never see or store them.
FAQ
Questions
Do you see my customers' personal data?
Very little. We need the requests in your access logs to tell agents apart from people. Visitor IP addresses are stored only as a salted hash, with a different salt for each site, and we don't need names, emails or payment details.
Can you share security and compliance documentation?
Yes. Enterprise customers get a security review: we'll answer your questionnaire and walk your team through how we protect your data. Contact us to start.
How do I report a security issue?
Email security@ghostagentlab.com with what you found and how to reproduce it. Please give us a chance to fix it before you share it.
How do I stop your bots visiting my site?
Our scanner and Ghost Agents identify themselves and sign their requests. See the AgentScore bot and Ghost Agent pages, or email bot@ghostagentlab.com.
Have a security questionnaire?
Enterprise includes a security review. Tell us what you need.