Zero Door · Architecture

Where it sits, what it sends, who it talks to.

The questions an architect asks before a pilot, answered on one page: the shape of a deployment, the data that leaves a host, the systems it plugs into, and the things it deliberately does not do.

The shape of it

One agent out, nothing in.

A userspace agent

A small Rust agent runs as a service on each host. There is no kernel module and no driver to install. On Linux 5.8 and newer the deep sensor uses eBPF; where it cannot, the agent falls back to inotify and auditd and says so in its own status. On Windows it reads ETW and the USN journal.

The agent opens the connection

The agent dials out over gRPC on TLS 1.2 or better and keeps one stream open; commands ride back down that stream. Nothing connects in to your hosts, so no inbound firewall rule is needed. Mutual TLS and SPKI certificate pinning are both available, and a malformed pin stops the agent at startup rather than running unpinned.

The platform behind it

An API, a gRPC ingest tier and a set of workers, on PostgreSQL, ClickHouse, Redis and NATS, with reports written to S3 or MinIO. Tenants are separated in the database itself with row-level security, on a role that cannot bypass it.

Install and lifecycle

Distributed the way you already distribute software.

Packages, not a bespoke installer

.deb and .rpm for amd64 and arm64, an MSI for 64 and 32 bit Windows, and a plain static binary that runs on old glibc distributions. Install scripts are generated per platform, and an Ansible role ships with the agent.

Updates in rings, with a way back

Agent updates roll out in rings with a canary and automatic rollback. A separate updater verifies a pinned trust root before it swaps anything, refuses to move to an older version, and resumes or rolls back an update that was interrupted by a reboot.

Removal without the console

Uninstalling can be authorised with a signed token that the agent verifies offline, so a host that has lost its link can still be cleaned up.

The agent defends itself

The binary hashes itself at start-up, the binary and unit files can be made immutable, and remote commands can be required to carry a signature.

What leaves the host

Metadata and hashes, not your files.

The point of the product is evidence about files, not the files. What the agent sends is bounded and listed here.

File facts
Path, change type, cryptographic hash, size, mode, owner, timestamps, signature and package evidence.
Who and how
Process ancestry with command lines, truncated at 4 KB, and the user behind them, when the deep sensor runs.
Inventory
Installed packages and versions per source: dpkg, rpm, pacman, apk; MSI, installed programs and Store apps.
File contents
Not sent. The single exception is a Windows scheduled-task definition, capped at 64 KB, because the task document is the change.
Forensic packages
Stay on the host, encrypted. They are not uploaded.
Footprint

It gets out of the way when the host is busy.

  1. An adaptive governor targets 70 percent CPU, runs the work at low priority, and slows itself down file by file as load rises rather than stopping and lurching.

  2. When the link is down, events queue on disk, encrypted, up to 500 MB by default, and are only dropped from the queue once the server has acknowledged them.

  3. The ingest tier rate-limits per agent, so one noisy host cannot crowd out the fleet.

Integrations

It fits what you already run.

SIEM

  • CEF 0, LEEF 2.0, RFC 5424 syslog and JSON
  • Over TCP, UDP, TLS or HTTPS, with a preview of the exact line before you save it
  • What is forwarded is the alert stream; audit and file-event streams are not forwarded today

Notifications

  • Email over your own SMTP server
  • Slack and Microsoft Teams
  • PagerDuty, with the alert fingerprint as the deduplication key
  • Webhooks signed with HMAC, timestamped against replay

Tickets and change

  • Jira issues opened automatically for critical and high alerts, deduplicated
  • Any other ITSM through a signed webhook, with the ticket reference kept on the change record
  • Approvals, change windows and four-eyes review live in the product, not in a spreadsheet

Identity and API

  • OIDC and SAML 2.0 single sign-on, LDAP and Active Directory with group to role mapping
  • TOTP and passkeys, with step-up re-authentication on sensitive actions
  • A REST API with scoped keys that can never exceed the permissions of whoever created them
Where it runs

Your servers, ours, or none of the above.

Self-hosted

A Kubernetes chart with autoscaling, disruption budgets, network policies and a migration job, or a single-node compose stack for a smaller estate.

Run by us

The same build, operated by us, with tenants separated in the database and data kept in the European Union.

Air-gapped

An offline bundle carries the chart and every image with signatures and a software bill of materials; the install refuses an image that is not on your own mirror, and the licence is activated from a signed file.

Boundaries

What it does not do.

A buyer finds this out eventually. Better here than three weeks into a pilot.

  • It does not block, isolate a host, quarantine a file or kill a process. It detects, explains and evidences; the response is yours.

  • It is not a content inspector. There is no data-loss prevention, no scanning of file contents for personal or card data.

  • The agent has no proxy support: it needs a route to the ingest endpoint, through your own edge if you terminate there.

  • A published OpenAPI document does not exist yet.

  • There is no SCIM provisioning; accounts arrive through single sign-on or LDAP.

  • In an air-gapped install, vulnerability and end-of-life data does not refresh by itself.

  • There is no macOS build today, and on kernels older than 5.8 the deep sensor runs in its fallback mode.

Map it onto your own network.

Walk through a topology like yours with us: what runs where, what leaves a host and what never does.

Book an architecture session