Skip to main content

Control plane

  • Keep 127.0.0.1:8443 bound to loopback.
  • Use a secured administrative tunnel or access layer for remote operators.
  • Change the initial administrator password immediately.
  • Assign the operator role unless administrator privileges are required.
  • Keep session TTL and concurrent-session limits bounded.

Secrets

  • Generate runtime secrets through setup.
  • Keep server/.env, DNS secret files, certificates, and storage untracked.
  • Do not pass passwords as CLI arguments.
  • Rotate SMTP and DNS credentials after the engagement.
  • Back up encryption keys together with encrypted data that must be retained.

Containers and network

  • Preserve separate Docker socket proxies and internal control networks.
  • Treat the admin Docker proxy as privileged even though the host socket is mounted read-only; enabled Docker API methods can still mutate host state.
  • Never publish either Docker proxy port or connect untrusted workloads to docker-control or traefik-control.
  • Do not mount the Docker socket into campaign or browser containers.
  • Keep no-new-privileges and dropped capabilities on control-plane services.
  • Restrict public firewall rules to required campaign ports.
  • Review remote targets and egress requirements before launch.

Content

Treat landing pages, plugins, modules, imported ZIP files, templates, and exports as untrusted until reviewed. Apply engagement-specific code review, malware scanning, evidence encryption, and retention controls.

Release gate

Run:
Store the report with the tested commit and resolve every warning and failure.
Last modified on August 28, 2026