Security & Compliance

Security & Compliance Overview

A complete reference to how Versus protects data — in transit, at rest, and in use — written to support the security and compliance evaluations that precede adoption at regulated enterprises. It states the data Versus handles, the controls around it, the cryptography that backs them, and direct answers to the questions a compliance officer will ask.

Control status:Implemented in the product todayIn progress being formalizedRoadmap planned — stated honestly so this document survives an auditor's scrutiny.

Security posture & guiding principles

Versus connects to a customer's most sensitive infrastructure — firewalls, load balancers, routers, and the credentials that operate them. That places security at the center of the product. Four principles recur through every control below:

Least privilege

Every actor gets the minimum access required. Tenant traffic never runs as a privileged database role; credentials are scoped by path and capability; the platform never holds device credentials it doesn't need.

Fail closed

When context is missing or a check is inconclusive, access is denied. Tenant isolation errors rather than leaks; keys that can't be resolved deny rather than expose; an unverifiable token is rejected.

Defense in depth

No single control is load-bearing. Application scoping sits over database-enforced isolation; secrets are encrypted at the field and envelope level; identity is authenticated, authorized, and MFA-gated independently.

Verifiable, not asserted

Controls are backed by tamper-evident audit, automated scanning, and conformance tests — so "isolation holds" is continuously demonstrated rather than claimed once.

NoteVersus runs as multi-tenant SaaS or as a fully isolated on-premises / air-gapped appliance (OVA, KVM/qcow2, or Kubernetes/Helm). Customers with data-sovereignty or air-gap mandates deploy on-prem, where their data never leaves their network and the same controls apply within their own perimeter.

Compliance frameworks

Versus is engineered against the control families common to the major frameworks. Standing is stated honestly — several items are formal-audit-in-progress rather than certified today.

FrameworkStandingHow Versus addresses it
SOC 2 (Security, Availability, Confidentiality)In progressThe technical controls for the Trust Services Criteria exist (access control, encryption, change management, monitoring, audit). A formal Type 2 examination window is the remaining work — the gaps are process and evidence, not missing controls.
ISO/IEC 27001AlignedAnnex A objectives — access control, cryptography, operations security, supplier & asset management — are reflected in the architecture; certification can be pursued on the same base.
GDPR / data protectionSupported by designData residency via on-prem/regional deployment, tenant isolation, deletion & export paths, and minimized PII (Versus is infrastructure data, not consumer PII). DPA available.
HIPAA / regulated sectorsDeployable in scopeOn-prem deployment keeps regulated data in the customer’s controlled environment; encryption, audit, and access controls support a BAA-style arrangement where applicable.
PCI-DSS adjacencySupporting controlsNot a cardholder-data system, but segmentation, key management, audit, and least-privilege align with PCI network-security and access-control requirements.
NoteWhere this document marks a control Implemented, it is in the product today. Where it says in progress or roadmap, that is stated plainly so nothing here is contradicted by evidence during an examination. Overstating controls fails audits; this document is written to pass one.

The data Versus handles

Effective controls start from knowing what is being protected. Versus handles infrastructure operational data, not consumer PII datasets.

CategoryExamplesSensitivityPrimary controls
Device credentials & secretsAdmin passwords, SSH keys, API tokens, device certificatesCriticalVault envelope encryption, per-secret keys, path policies, PSM injection, audit
Device configuration & stateFirewall rules, LB/ADC configs, routing tables, topology, backupsConfidentialEncryption at rest, tenant isolation, RBAC, encrypted backups
User & account dataOperator identities, roles, MFA enrollment, sessionsConfidential (limited PII)Dedicated IdP, MFA, encrypted storage, minimal PII footprint
Telemetry & observabilityMetrics, logs, PCAP captures, device healthInternalTenant isolation, access control, retention limits
Audit & security logsWho accessed which secret/device/session; admin actionsIntegrity-criticalTamper-evident hash-chained audit, restricted access
Platform secretsEncryption keys, signing keys, service credentialsCriticalKey hierarchy, fail-closed resolution, kept out of source & logs
NoteVersus is deliberately not a store of end-customer consumer PII. Its most sensitive holdings are infrastructure credentials — which is why secrets management and privileged-session brokering are the most heavily engineered subsystems in the platform.

Data in transit Implemented

All communication with and within Versus is encrypted — no plaintext transport of customer data at any hop.

  • Client ↔ platform: HTTPS over TLS 1.2+ (1.3 preferred), modern cipher suites, HSTS.
  • Collector ↔ control plane: outbound HTTPS/WSS on 443, authenticated with a short-lived signed ES256 bearer token the collector signs with its enrollment key (CSR proof-of-possession, CA-signed enrollment certificate; the token is verified against its public key); the collector also verifies the gateway's server certificate.
  • Service ↔ service: private network with TLS; encrypted database connections.
  • Device ↔ collector (on-prem): native secure protocols (HTTPS/iControl-REST, SSH); private-LAN traffic stays inside the customer network.
  • Signed payloads: task dispatch and update manifests are Ed25519-signed — integrity and authenticity independent of the transport.

Data at rest Implemented

Protected in layers, strongest around the most sensitive data:

  • Storage-level encryption of the primary datastore (PostgreSQL) and backup object storage (server-side encrypted).
  • Field-level encryption — sensitive columns (device credentials, connection secrets) are encrypted at the application layer before they touch the database, so a raw read never yields plaintext.
  • Secret envelope encryption — Vault secrets use AES-256-GCM with a unique data key (DEK) per secret, each wrapped by a key-encryption key (KEK). Compromise of one secret never exposes another.
  • Signed license & artifacts — license keys and release manifests are Ed25519-signed; on-prem images verify integrity before activation/update.
NoteRoadmap  The key hierarchy is designed to accept an external HSM / cloud KMS as the root KEK custodian. Today keys are held in a fail-closed, access-controlled hierarchy; HSM/KMS backing is the planned hardening for customers whose policies require it.

Secrets management — the Versus Vault Implemented

Because Versus's crown jewels are infrastructure credentials, secret handling is its most engineered subsystem — a HashiCorp-style secrets engine built for least privilege and tamper-evidence.

  • Envelope encryption & key hierarchy: AES-256-GCM, per-secret DEK wrapped by a KEK; key resolution fails closed — if key material can't be established, the secret is denied, never returned degraded.
  • Path-based, capability-scoped policies: path-glob policies bound to roles and capabilities, including a distinct session capability disjoint from read (use a secret without seeing it, via PSM). Per-user templating (personal/${user}/*) gives true least privilege; a controlled, audited super-admin break-glass path exists.
  • Programmatic access & audit: services fetch via an authenticated service-account API — never by embedding secrets in code — and every access is written to a hash-chained, tamper-evident audit log.
NoteFor on-prem/collector deployments, device credentials can be resolved and injected entirely within the customer's network (local vault mode). The cloud control plane can orchestrate operations without ever holding the device credential — the strongest posture for sovereignty-sensitive customers. See Collector Security.

Privileged session management (PSM) Implemented

PSM lets an operator act through a privileged credential without ever seeing it. Versus brokers SSH and HTTPS sessions, injecting the secret at the broker so it never reaches the operator's screen, clipboard, or client.

  • Credential injection using the disjoint session capability — the actor drives the session without possessing the secret.
  • Session recording for audit and forensic review.
  • Tamper-evident trail — session events are hash-chained.
  • Rotate-on-close — credentials can be rotated when a session ends, so a captured secret has no lasting value.

Identity, MFA & access control Implemented

  • Dedicated IdP (OIDC): a purpose-built identity provider issues asymmetrically-signed (RS256) tokens; applications are relying parties that verify without a shared secret.
  • Multi-factor authentication: TOTP plus passkeys / WebAuthn, enforceable as mandatory at the IdP.
  • SSO & BYO-IdP: enterprises federate their own identity provider, so access follows their joiner/mover/leaver process.
  • RBAC: module- and action-level roles gate what an authenticated user can do — distinct from the row-level data isolation below.
  • Session security: short-lived signed tokens, server-side session lifecycle, MFA step-up challenges.

Tenant isolation Implemented

In multi-tenant SaaS, tenant data is separated in the database itself with fail-closed, forced PostgreSQL Row-Level Security. Every tenant-scoped table carries a tenant discriminator and a policy that constrains every read and write to the caller's tenant — a database guarantee, not an application convention. The tenant is derived from a signed token claim, applied per transaction, and the policy errors rather than leaks if context is missing.

NoteTenant isolation has its own dedicated deep-dive for security teams: Row-Level Security & Tenant Isolation.

Database security

  • Least-privilege roles Implemented — tenant traffic uses a non-owner, non-BYPASSRLS role subject to forced RLS; privileged operations use a separate connection.
  • Encryption in transit & at rest — encrypted DB connections, encrypted volumes, application field-level encryption for sensitive columns.
  • Parameterized access — an ORM/parameterized layer structurally resistant to SQL injection; RLS caps the blast radius of any injection to one tenant.
  • Controlled schema change — reviewed, versioned migrations; the RLS policy shape comes from one shared definition so it cannot drift.

Audit logging & tamper-evidence Implemented

Security-relevant events are recorded in hash-chained logs: each entry incorporates a hash of the previous one, so any retroactive alteration or deletion breaks the chain and is detectable — a stronger guarantee than an ordinary append log. Covered: secret access (Vault fetch/reveal), privileged sessions (PSM), administrative actions, and authentication events. Access to audit data is restricted and, in multi-tenant deployments, tenant-scoped.


Application security & secure development Implemented

Recurring automated security scanning runs across code, dependencies, containers, and the running application:

DisciplineToolingWhat it catches
Static analysis (SAST)SemgrepInsecure code patterns, injection risks, unsafe APIs
Dependency & container scanningTrivyKnown-vulnerable libraries and base-image CVEs
Secret scanningGitleaksCredentials accidentally committed to source
Dynamic analysis (DAST)OWASP ZAPRuntime web-app vulnerabilities against the live app
  • Standard web defenses against XSS, CSRF, and injection built into the framework and API layer.
  • Change management — reviewed, version-controlled changes; traceable deployments.
  • Secret hygiene in build — secrets excluded from source, images, and logs; secret scanning enforces it.
  • On-prem source hardening Implemented — on-prem images ship compiled bytecode rather than readable source.

Collector / agent security Implemented

The on-prem agent is designed so a customer can grant Versus operational reach without surrendering control of credentials or exposing devices to inbound access. It is outbound-only over bearer-authenticated TLS on 443 (short-lived ES256 token signed with its CA-issued enrollment cert's key, no inbound listener), executes only Ed25519-signed, verified, replay-protected instructions, updates only from signed, checksum-verified manifests (with health-check and rollback), and resolves/injects credentials locally so they never leave the network. A demo Data Mask mode pseudonymizes IPs and object names on the collector. Full detail: Collector Security Architecture.


Cryptography — algorithms & key management

PurposeAlgorithmNotes
Transport encryptionTLS 1.2 / 1.3Modern cipher suites; bearer over TLS for collectors; HSTS on web
Secret encryption at restAES-256-GCMEnvelope: unique DEK per secret, wrapped by KEK; authenticated encryption
Field-level encryptionAuthenticated symmetric encryptionSensitive DB columns encrypted before persistence
Token / assertion signingRS256 (RSA-SHA256)Asymmetric — services verify without a shared secret
Collector bearer tokensES256 (ECDSA-SHA256)Short-lived, per-request
Task & release signingEd25519Dispatch integrity, signed update manifests, license keys
Audit integritySHA-256 hash chainingTamper-evident logs
Key custodyFail-closed key hierarchyKEK/DEK separation; HSM/KMS root custody on roadmap

Key management principles: keys are separated by purpose (encryption vs signing; dispatch vs release) and never reused across roles; key material is kept out of source and logs; DR-critical keys are handled under strict custody and never printed or written to shared files; key resolution fails closed.


Infrastructure, hosting & data residency

  • SaaS hosting — managed cloud with private inter-service networking, encrypted storage, and a hardened edge (TLS termination, WAF-class protections). Tenant isolation is enforced in-app and in-database.
  • On-premises / air-gapped — ESXi OVA, KVM qcow2, or Kubernetes/Helm; the customer controls the full environment and data never leaves their network. Air-gapped installs never phone home; licensing supports fully offline activation.
  • Data residency — satisfied by where you deploy: regional SaaS or on-prem in the customer's own jurisdiction.
  • Network posture — outbound-only collector connectivity, no inbound exposure to devices, segmented service network, least-privilege service credentials.

Backup, business continuity & DR

  • Encrypted backups Implemented — device and platform backups stored in S3-compatible object storage with server-side encryption and a local-disk fallback; access is credential-controlled.
  • High availability & DR (on-prem) In progress — a detailed HA/DR and Kubernetes design exists; production HA topology is delivered per engagement.
  • Restore validation — backups are restorable; DR runbooks accompany on-prem deployments.

Vulnerability management & incident response

  • Continuous scanning Implemented — recurring SAST, dependency/container, secret, and DAST scans surface vulnerabilities on an ongoing basis.
  • Patch management — findings drive remediation; the signed auto-update pipeline delivers agent fixes with integrity guarantees.
  • Incident response In progress — the tamper-evident audit trail provides the forensic record; a formal IR policy with severities and notification SLAs is part of the SOC 2 formalization.
  • Responsible disclosure — a channel for researchers and customers to report issues is maintained.

Data lifecycle, retention & deletion

  • Tenant offboarding — data can be exported and then deleted across the platform.
  • Retention — telemetry and logs retained per configurable policy; audit logs retained to meet evidentiary needs.
  • Secret lifecycle — rotation supported (including rotate-on-close via PSM); revoked secrets are removed from active use.
  • On-prem — the customer owns the full data lifecycle within their environment.

Questions a compliance officer will ask — answered

QuestionAnswer
Is all data encrypted in transit and at rest?Yes. TLS 1.2+/1.3 for every network hop (bearer over TLS for collectors); storage-level plus application field-level encryption and AES-256-GCM envelope encryption for Vault secrets.
How are secrets stored, and who can see device credentials?Envelope-encrypted with a unique key per secret, governed by path-and-capability policies, every access audited. With PSM, operators use a credential without seeing it; on-prem, credentials can stay entirely within your network.
How do you guarantee one customer can’t access another’s data?Database-enforced, forced, fail-closed PostgreSQL Row-Level Security, with the tenant derived from a signed token — not application filtering alone. It contains even forgotten filters and ORM bugs.
Is MFA available and enforceable?Yes — TOTP and passkeys/WebAuthn, enforceable as mandatory at a dedicated OIDC identity provider, with SSO/BYO-IdP for enterprises.
Can we keep our data in our jurisdiction / on our premises?Yes. Deploy on-prem (OVA / KVM / Kubernetes) or air-gapped; data never leaves your network, and air-gapped installs never phone home. Regional SaaS is also available.
How do you detect tampering with logs or audit records?Audit logs are hash-chained: each record binds the previous one, so any edit or deletion breaks the chain and is detectable.
What is your SOC 2 / ISO 27001 status?The technical controls exist; a formal SOC 2 Type 2 examination is in progress — the remaining work is process and evidence, not missing controls. Control mapping and progress can be shared.
How is the software developed and scanned?Recurring SAST (Semgrep), dependency/container (Trivy), secret (Gitleaks), and DAST (OWASP ZAP) scanning; reviewed, version-controlled changes; secrets excluded from source and images.
What does the agent you install on our network expose?No inbound exposure. The collector is outbound-only over bearer-authenticated TLS on 443, executes only signed, verified, replay-protected instructions, and updates only from signed, checksum-verified manifests.
Do you support HSM/KMS-backed key management?The key hierarchy is designed for it; HSM/KMS root custody is on the roadmap. Today keys are held under a fail-closed, access-controlled hierarchy with strict DR-key custody.
What happens to our data when we leave?Tenant data can be exported and then deleted across the platform; on-prem, you control the entire lifecycle.
How are privileged/administrative actions controlled and reviewed?RBAC gates actions; privileged device access is brokered and recorded via PSM; administrative actions are captured in the tamper-evident audit trail; tenant traffic never runs on privileged database roles.
NoteDetailed evidence — control mappings, scan reports, penetration-test summaries, the RLS conformance suite, and a Data Processing Agreement — is available under NDA on request.