🛡️ Trust & Security

Your APKs and iOS apps never leave an isolated sandbox

Droidwatch is built so a banking CISO or a DPO can sign off without exception forms. Here is exactly how we isolate analysis, protect data, and prove it.

🧪 Isolated analysis sandbox

Every analysis runs in a worker with a restrictive seccomp profile (~120-syscall allowlist), cap_drop ALL and hard CPU/memory limits (RLIMIT_CPU, RLIMIT_AS). An optional gVisor runtime (runsc) adds userspace syscall interposition. No access to private networks, the host, or other tenants.

🚫 Static pipeline never executes your app

The static analyzer only reads and decompiles the binary — it is never run. Dynamic analysis (Android only) executes the APK exclusively inside an ephemeral emulator/sandbox, never on the host, and is gated to authenticated users.

🔐 Encryption at rest

Reports can be encrypted with AES-256-GCM (DWE1 envelope). The audit log lives in PostgreSQL behind an append-only immutable trigger — rows cannot be altered or deleted in place.

🇪🇺 GDPR & DPA

A Data Processing Addendum (Art. 28) is published, with per-plan retention, disclosed sub-processors, and SCC-based international transfers. Account export and deletion are self-serve.

🏠 Self-host on request

Run the exact same single image on your own Docker or Kubernetes (Kustomize manifests + optional KEDA autoscaling). Your APKs and reports never leave your perimeter; billing/Stripe webhooks are no-ops on self-host.

🪪 Only anonymised IOCs are ever shared

Submissions are private by default. If you opt in to the public threat feed, only hashes, domains and IPs are shared — never the binary, never uploader metadata.

Security controls

The platform-level controls behind every analysis.

Authentication
JWT with multi-kid secret rotation, single-use refresh tokens with server-side revocation, optional TOTP 2FA with backup codes.
Transport & headers
Strict CSP, X-Frame-Options: DENY, X-Content-Type-Options, Referrer-Policy and HSTS (when HTTPS is enabled).
Abuse protection
Per-IP rate limiting on auth and read endpoints, SSRF guard on webhook URLs (RFC1918 / link-local / IPv6 private blocked), ZIP-bomb and ZIP-slip detection on upload.
Worker isolation
seccomp allowlist + cap_drop ALL + resource limits; optional gVisor (runsc) RuntimeClass on Kubernetes.
Data at rest
Optional AES-256-GCM report encryption; append-only audit log with a PL/pgSQL immutable trigger; configurable retention purge.
Observability
Structured JSON logging with request IDs, Sentry error monitoring, OpenTelemetry tracing, backup script + documented disaster-recovery plan.
SOC 2 Type IIroadmap
Underlying controls already in place (MFA, immutable audit log, structured logging, encryption at rest, backups + DR). Banking customers can request the current trust pack.
GDPR / DPAlive
DPA published, self-serve data export & deletion, per-plan retention, sub-processors disclosed.

Responsible disclosure

Found a vulnerability? We want to hear from you.

📬 Report a security issue

Email [email protected] with details and reproduction steps. We acknowledge reports promptly and will coordinate a fix and disclosure timeline with you. Please do not test against other tenants' data.

Need the full trust pack?

Banking and enterprise customers can request our current security questionnaire responses, architecture notes and DR plan.