← Back to home

Security, vulnerability disclosure & German legal-tech

How we secure the platform, where our controls sit against EU NIS2 Article 21 and GDPR Article 32, how to responsibly report a security issue, and the dated German legal-tech dossier (BSI C5 / ISO 27001 / IT-Grundschutz / NIS2 / AI Act).

TL;DR

  • All customer data lives on Scaleway fr-par (Paris, France). No US-owned processor in the critical path.
  • Corporate parent is Eurobase OÜ (Estonian commercial-register code 17557586). No US corporate parent means no CLOUD Act or FISA §702 reach.
  • Encryption in transit is TLS 1.3; at rest is AES-256; secrets vault is AES-256-GCM per-tenant; signing is HMAC-SHA256 with domain separation.
  • Data-breach and cyber-incident SLAs align with GDPR Article 33 and NIS2 Article 23 — 24 h early warning, 72 h notification, 1-month final report.
  • Written ISMS-lite governs the platform — public, versioned.
  • Report a security issue: security@eurobase.app — response within 3 business days.

NIS2 & regulatory posture

Eurobase OÜ is currently below the size threshold for direct NIS2 applicability (fewer than 50 employees AND less than €10 M annual turnover). Cloud computing service providers of our size are, per Article 2(1), not directly obligated entities under NIS2. We adopt the controls anyway because our customers do rely on us at that standard.

When Eurobase crosses the threshold, we will register with the Estonian national CSIRT (RIA / CERT-EE) and issue an updated ISMS reflecting our new status as an important entity.

GDPR compliance is not conditional on the size threshold. GDPR Articles 32 (security of processing) and 33 (breach notification) apply from day one, and are governed by our published Privacy Policy, FAQ, and DPA.

German legal-tech / Steuerberater / regulated-industry customers: see the German legal-tech dossier for BSI C5 / ISO 27001 / IT-Grundschutz / NIS2 / AI Act positioning.

NIS2 Article 21 control matrix

The ten risk-management measures required by Article 21(2). Status reflects the platform as of the ISMS effective date — 22 July 2026.

§RequirementStatusNotes
(2)(a)Risk analysis + information system security policiesShippedWritten ISMS-lite; risk register reviewed annually.
(2)(b)Incident handlingShippedConsole-side data-breach register with 24h / 72h SLA workflow; internal on-call rota + runbooks.
(2)(c)Business continuity + crisis managementShippedRTO measured + RPO policy-bounded, published below in Backup & recovery; daily scheduled Postgres backups (7-day retention) plus customer-triggered on-demand snapshots; monthly regression test (script + CronJob scaffolded, on operator demand today, automated once the ops image lands).
(2)(d)Supply-chain securityShippedPublic sub-processor register with region + CLOUD-Act flags; 30-day advance notice on additions.
(2)(e)Security in acquisition, development, maintenance + vulnerability handlingShippedDependabot, static analysis, mandatory PR review, staged rollouts; CVD policy below.
(2)(f)Policies to assess effectiveness of the risk-management measuresPartialAnnual ISMS review + post-incident review formalised; independent audit deferred to ISO 27001 track.
(2)(g)Basic cyber hygiene practices + cybersecurity trainingShippedApplies at hiring; formalised in HR-security section of the ISMS.
(2)(h)Cryptography and encryption policiesShippedTLS 1.3 in transit; AES-256 at rest; AES-256-GCM vault; HMAC-SHA256 signing with domain separation.
(2)(i)HR security, access control, asset managementShippedSix-role Postgres split; per-tenant role isolation; PATs with expiry; superadmin flag not self-servable.
(2)(j)Multi-factor authentication, secured comms, secured internal systemsRoadmapPlatform TOTP + WebAuthn planned for Team tier (Q4 2026). Tenant end-user MFA via OAuth today.

Encryption

SurfaceAlgorithmNotes
Data in transit — all HTTPTLS 1.3 (1.2 fallback)HSTS 1-year max-age.
Data at rest — PostgresAES-256Scaleway managed disk encryption.
Data at rest — Object storageAES-256 (SSE-S3)Scaleway managed.
Vault secretsAES-256-GCM, per-tenant keyApplication-layer envelope; key rotated per major release.
JWT session tokensHMAC-SHA256Kubernetes Secret; never logged.
Webhook signingHMAC-SHA256Per-webhook secret; timestamp in signed payload for replay protection.
Unsubscribe tokensHMAC-SHA256Domain-separated from JWT via SHA-256 derivation.
Password storagebcrypt cost 12Platform + tenant end-user passwords alike.

Incident-response SLAs

Aligned with GDPR Article 33 and NIS2 Article 23. Timing is measured from the moment Eurobase becomes aware of the incident.

  • 6 hInternal early warning. Incident opened; on-call founder acknowledges.
  • 24 hCustomer early warning. Notice that a significant incident has occurred, where customer-facing impact is suspected.
  • 72 hFormal incident notification. Notice to affected customers with initial assessment and known-facts summary. Regulatory notification when GDPR Article 33 thresholds are met — to the Estonian Data Protection Inspectorate (Andmekaitse Inspektsioon).
  • 30 dFinal report. Root cause, corrective actions, lessons learned. Anonymised post-mortem published on /blog if impact was material.

Backup & recovery

Team-tier dedicated Postgres instances carry daily scheduled backups (7-day retention) plus customer-triggered on-demand snapshots, with 1 self-service restore per calendar month included (from either source, either counts against the same cap). Free and Pro tiers share a managed instance without customer-selectable restore; Eurobase restores the shared instance to its own recovery targets in a disaster scenario.

The RTO below is measured, not aspirational — it comes from a runbook and script an operator can run against a throwaway Scaleway RDB instance in ~30 minutes (docs/runbooks/backup-pitr-test.md). The RPO is a policy bound set by the daily-backup schedule, not a measurement — an on-demand snapshot tightens it to a customer-chosen window on that specific recovery.

  • RTOMeasured restore time at ~5 MB dataset: 16s (fixed provisioning + plumbing overhead — the baseline that dominates at small data volumes). Restore time increases with database size; for workloads above ~100 MB we provide a bespoke measurement on request. Test executed 2026-09-06 via the customer-facing backup create → backup restore path.
  • RPOUp to 24 hours between scheduled backups. Team-tier customers can take on-demand snapshots at any point to reduce this to a window of their own choosing — a snapshot immediately before a risky migration means the RPO on that recovery is seconds. Tighter guarantees than "the last scheduled backup" require customer action; this is a deliberate trade-off against the cost of continuous shipping to a warm standby.

An automated monthly regression job (Kubernetes CronJob) is scaffolded to re-measure the RTO on the 1st of every month and alert on drift; today it runs on operator demand until the ops image build lands. The runbook covers scenarios T1–T8 including cross-project isolation and backup-ciphertext-in-EU verification.

Coordinated Vulnerability Disclosure

If you believe you have found a security vulnerability in the Eurobase platform, please report it to security@eurobase.app.

What to include: a description of the issue, the affected surface (URL, API endpoint, CLI command, etc.), reproduction steps, and any suggested mitigation. Attach proof-of-concept material as needed.

Our commitments:

  • Acknowledgement of receipt within 3 business days.
  • Initial assessment within 10 business days.
  • Fix or documented mitigation within 90 days of confirmation for high/critical; 180 days for medium.
  • Public disclosure coordinated with the reporter.
  • Public credit for the reporter, on request.
  • No legal action against good-faith researchers who follow this policy.

Please do not:

  • Access, modify, or delete data belonging to other customers.
  • Conduct denial-of-service testing without prior written consent.
  • Publicly disclose the vulnerability before an agreed coordination window.
  • Use social engineering against Eurobase staff or contractors.

Machine-readable pointer at /.well-known/security.txt (RFC 9116).

ISMS-lite

The full written Information Security Management System is public and versioned in the Eurobase source repository:

📄docs/legal/v2/isms.md

Reviewed annually and after every significant incident. Version 2.0, effective 22 July 2026, approved by the sole board member of Eurobase OÜ.

German legal-tech

Legal Team tier backing docs

Related documents