Contact us: info@tenendo.com
Secure secrets management in Docker containers. Part 1
Secrets in memory
[!NOTE] It is possible to erase secrets from the memory entirely, akin to how SSH does it, but doing so it out-of-scope for this training.
- hard to avoid exposure
- the least-privilege principle is very important to apply
host -> container lateral movement case
- sometimes the attacker has access to the host running the container
- monitoring containers may discourage the attacker to run
docker exec - it is somewhat beneficial to keep secrets in non-swappable memory
Secrets in build arguments, history and docker layers
- temporary files (
docker image inspect myimg | jq '.[0].RootFS.Layers'and viewing the diff) - logging sensitive data
- secrets in
Dockerfile
Secrets in dockerd: argument demo
Automated scanners (dockle/trivy/secretscanner)
[!Note] Most of those can be easily integrated into a CI/CD pipeline.
- regex rules for file contents or paths
- regex rules for libraries coupled with CVE
- “smarter” secret detection
Scanners: dockle demo
refer to: casts/dockle.cast
Scanners: secretscanner demo
Scanners: trivy demo
scans libraries, but wors at scanning secrets
Other external secret management solutions (e.g. Hashicorp Vault/docker secrets)
- benefits of RBAC
- alerts and monitoring
- application integration
- “JIT” secret use