Ga naar inhoud

Beveiligingsarchitectuur

Trust boundaries

┌─────────┐ HTTPS + Bearer + Ed25519-sig ┌──────────┐ pgx ┌──────────────┐
│ Agent │ ──────────────────────────────▶ │ Hub API │ ────────▶ │ TimescaleDB │
└─────────┘ └──────────┘ └──────────────┘
│ │ │
│ WebSocket (emergency + console RPC) │ │
▼ ▼ ▼
Honeypots Dashboard Row-Level
Process DNA (Next.js + Security per
inotify HMAC + TOTP cookies) tenant_id
Agent → Hub : Bearer token + X-Monsys-Signature (Ed25519 over sha256(body))
Hub → Agent : Ed25519 emergency / console-session tokens (5-checks verify)

Vertrouwensmodel

  • Agent vertrouwt hub — voor het verifiëren van Ed25519-handtekeningen op emergency tokens.
  • Hub vertrouwt agent NIET — elk ingest-payload wordt gevalideerd, batch size gecapped, rate limit afgedwongen.
  • Hub vertrouwt browser-sessie alleen via HMAC-getekende cookies (HttpOnly, Secure, SameSite=Lax, 8u TTL).
  • Multi-tenant isolatie — Postgres Row-Level Security policies voorkomen dat tenant A data van tenant B kan zien, ook bij een SQL-fout in de hub code.

Cryptografie

DoelAlgoritme
Sessiecookie HMACSHA-256
Wachtwoordenbcrypt cost 10
Emergency tokensEd25519
Agent payload signingEd25519 (per-agent keypair, TOFU pin)
TOTP (2FA login)RFC 6238 / SHA-1
TLSLet’s Encrypt (TLS 1.3)
Webhook signingHMAC-SHA256
Agent token storageSHA-256 hash, never plaintext
Console session integritySHA-256 over append-only audit log

Agent integriteit

Sinds mei 2026 vereist de hub Ed25519-handtekeningen op elke ingest-payload zodra de agent’s pubkey gepind is. Token-diefstal alleen is dus onvoldoende — zie Agent payload signing.

De hub draait een IntegrityCheckWorker die elk 10 min naar zes categorieën afwijkingen zoekt (clock_drift, flat_metrics, version_downgrade, unsigned_payload, signature_invalid, cadence_anomaly). Open items vereisen admin-review; resolved items blijven bewaard als audit trail. Zie Agent integrity monitoring.

Multi-laags secrets

Drie soorten secrets, elk apart roteerbaar:

SecretOpslagRotatie endpoint
Agent bearer token/etc/monsys/agent.toml (host)POST /api/v1/agents/:id/rotate-token
Agent signing key/var/lib/monsys/agent-signing.keyPOST /api/v1/agents/:id/rotate-signing-key
Hub Ed25519 privHUB_EMERGENCY_PRIVATE_KEY env (hub)manueel via key-rotate script

Zie Token rotation voor de procedure.

Wat Monsys NIET beschermt

  • Een gecompromitteerde hub-API kan alle agents instructies geven. Bescherm het hub-OS (firewall, OS patching, MFA op SSH).
  • Een gecompromitteerde agent host kan zijn eigen telemetrie liegen. Detectie: vergelijking tussen meerdere hosts, process DNA.
  • Insider threats — een legitieme owner kan emergency actions afvuren. Mitigatie: audit log, optionele 2-of-N approval voor niveau 3 acties (in playbooks).