ironing out Docker
at ironPeak services
ironpeak.be
1. $ whoami
1 - whoami ironpeak.be
Niels Hofmans
role Independent Cybersecurity Consultant
work Code Security, App Security, Hardening, F5 BIG-IP
interest Go, Docker, Cloud, Media
contact hello@ironpeak.be
github github.com/HazCod
2. $ tree
2 - tree ironpeak.be
user host image Runtime
3. $ client
3 - client ironpeak.be
The Client (you!)
- Hidden attack surface
- Several attack vectors
- Phishing
- Hardware
- Software
- Open-Source
- Social Networks
- Reused/shared Passwords
3. $ client
3 - client ironpeak.be
The Client (you!)
- Awareness
- Phishing
- Common Sense
- E-mail headers, content, DMARC
- Hardware
- Disk encryption
- Lock-down BIOS/SMC
- Trustless with 2FA
- Lock your session
3. $ client
3 - client ironpeak.be
The Client (you!)
- Software
- OS Hardening
- Non-privileged User
- Firewall
- Patching
- Verify & Tag Open-Source
- Additional
- Information leakage: e.g. LinkedIn, Github
- Password manager with 2FA
4. $ host
4 - host ironpeak.be
Host hardening
- CIS Benchmarks
- Firewall
Daemon hardening
- CIS Benchmarks, docker-bench-security, kube-bench
- User Namespace Remapping
- Live Restore
- No experimental features
- Swarm autolock
- Kernel hardening: github.com/google/gvisor
- Enable SELinux/AppArmor + seccomp
4. $ host
4 - host ironpeak.be
Daemon Access
- UNIX Socket over SSH
- HTTP+TLS auth
Host Auditing
- Off-site log server over TLS/SSH
- Log forging / Denial of Service
- Audit tracing

e.g. sysdig.org + falco.org, github.com/netdata/netdata
Private Registry
- client: DOCKER_CONTENT_TRUST=1
- daemon: content_trust: enforced
5. $ image
5 - image ironpeak.be
- DIY & Commercial
- Base images: alpine (!), minideb, centos
github.com/GoogleContainerTools/distroless
- docker-slim
- Image Signing
- Leakage
- .dockerignore
- docker secrets/vault
- Remove defaults
- Network: bridge
- Storage: AUFS
5. $ image
5 - image ironpeak.be
Dockerfile
- Linters; hadolint, …
- Pin package versions
- Least Privilege
- users $user & root without shells
- strict permissions
- remove unnecessary tooling
- security-opt=no-new-privileges
- read-only (+ tmpfs)
- COPY --chown=x:x instead of ADD
- Scan for package vulnerabilities
5. $ image.findWally()
5 - image ironpeak.be
5. $ image.findWally()
5 - image ironpeak.be
USER?
5. $ image.getFixed()
5 - image ironpeak.be
6. $ runtime: container
6 - runtime ironpeak.be
Container Runtime Properties
- Read-Only filesystem
- mounts: noexec, nodev, nosuid, mode, size, uid/gid
- cgroup limits
- restart: on-failure:5
- cap_drop: ALL
- security_opt:
- no_new_privileges
- SELinux/AppArmor + seccomp
- Environment vs. Secrets
6. $ runtime: app
6 - runtime ironpeak.be
Application Security
- OWASP ASVS: Level 1 - Level 3
- web: github.com/OWASP/ASVS
- mobile: github.com/OWASP/owasp-masvs
- Static Application Security Testing (SAST)
- linters
- OSS + commercial
- Dynamic Application Security Testing (DAST)
- OpenVAS, OWASP ZAP, …
- Training & Awareness!
7. $ exit
7 - exit ironpeak.be
https://ironpeak.be/slides/190319-ironing-out-docker.pdf

More Related Content

PPT
Personal Portfolio
PDF
SSH how to 2011
PDF
DSpace Manual for BALID Trainee
PDF
First fare 2011 website 101 for frc teams
ODP
Introduction to Pelican
TXT
ODP
Embedded Systems
PPT
Astricon 2013: "Asterisk and Database"
Personal Portfolio
SSH how to 2011
DSpace Manual for BALID Trainee
First fare 2011 website 101 for frc teams
Introduction to Pelican
Embedded Systems
Astricon 2013: "Asterisk and Database"

What's hot (9)

ODP
Linux basics (part 1)
PPT
Mining Ruby Gem vulnerabilities for Fun and No Profit.
PDF
Integrate Hue with your Hadoop cluster - Yahoo! Hadoop Meetup
PPT
Raspberry zero usb in linux
KEY
Web server local for smarties
PPTX
Fun with exploits old and new
PDF
Przemysław Iwanek - ABC AWS, budowanie infrastruktury przy pomocy Terraform
PPTX
How to discover 1352 Wordpress plugin 0days in one hour (not really)
PPTX
Netmiko login
Linux basics (part 1)
Mining Ruby Gem vulnerabilities for Fun and No Profit.
Integrate Hue with your Hadoop cluster - Yahoo! Hadoop Meetup
Raspberry zero usb in linux
Web server local for smarties
Fun with exploits old and new
Przemysław Iwanek - ABC AWS, budowanie infrastruktury przy pomocy Terraform
How to discover 1352 Wordpress plugin 0days in one hour (not really)
Netmiko login
Ad

Similar to ironing out Docker (20)

PDF
Docker security
ODP
Continuous Security
PDF
Thotcon - All aboard the Fail Whale
PDF
Docker Security Deep Dive by Ying Li and David Lawrence
PDF
Tokyo OpenStack Summit 2015: Unraveling Docker Security
PDF
Unraveling Docker Security: Lessons From a Production Cloud
PDF
Hide and seek - interesting uses of forensics and covert channels.
PPTX
Accumulo Summit 2015: Attempting to answer unanswerable questions: Key manage...
PDF
Simplest-Ownage-Human-Observed… - Routers
PDF
Filip palian mateuszkocielski. simplest ownage human observed… routers
PDF
Using Puppet to Create a Dynamic Network - PuppetConf 2013
PDF
Using filesystem capabilities with rsync
PPTX
Exploring the Future of Helm
PPTX
Helm @ Orchestructure
PPT
Unix Security
PDF
Webinar: Automate IBM Connections Installations and more
PDF
Foxtrot C2: A Journey of Payload Delivery
PDF
Art of Web Backdoor - Pichaya Morimoto
PDF
Building and Customizing CoreOS
PPTX
CEHv10 M0 Introduction.pptx
Docker security
Continuous Security
Thotcon - All aboard the Fail Whale
Docker Security Deep Dive by Ying Li and David Lawrence
Tokyo OpenStack Summit 2015: Unraveling Docker Security
Unraveling Docker Security: Lessons From a Production Cloud
Hide and seek - interesting uses of forensics and covert channels.
Accumulo Summit 2015: Attempting to answer unanswerable questions: Key manage...
Simplest-Ownage-Human-Observed… - Routers
Filip palian mateuszkocielski. simplest ownage human observed… routers
Using Puppet to Create a Dynamic Network - PuppetConf 2013
Using filesystem capabilities with rsync
Exploring the Future of Helm
Helm @ Orchestructure
Unix Security
Webinar: Automate IBM Connections Installations and more
Foxtrot C2: A Journey of Payload Delivery
Art of Web Backdoor - Pichaya Morimoto
Building and Customizing CoreOS
CEHv10 M0 Introduction.pptx
Ad

Recently uploaded (20)

PDF
Getting Started with Data Integration: FME Form 101
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Getting started with AI Agents and Multi-Agent Systems
PDF
Five Habits of High-Impact Board Members
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
Developing a website for English-speaking practice to English as a foreign la...
PPTX
Benefits of Physical activity for teenagers.pptx
PDF
WOOl fibre morphology and structure.pdf for textiles
PPTX
Modernising the Digital Integration Hub
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
August Patch Tuesday
PDF
DP Operators-handbook-extract for the Mautical Institute
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PPT
What is a Computer? Input Devices /output devices
PDF
A review of recent deep learning applications in wood surface defect identifi...
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
Getting Started with Data Integration: FME Form 101
Assigned Numbers - 2025 - Bluetooth® Document
Getting started with AI Agents and Multi-Agent Systems
Five Habits of High-Impact Board Members
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
Developing a website for English-speaking practice to English as a foreign la...
Benefits of Physical activity for teenagers.pptx
WOOl fibre morphology and structure.pdf for textiles
Modernising the Digital Integration Hub
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
August Patch Tuesday
DP Operators-handbook-extract for the Mautical Institute
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
NewMind AI Weekly Chronicles – August ’25 Week III
What is a Computer? Input Devices /output devices
A review of recent deep learning applications in wood surface defect identifi...
Chapter 5: Probability Theory and Statistics
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Taming the Chaos: How to Turn Unstructured Data into Decisions

ironing out Docker

  • 1. ironing out Docker at ironPeak services ironpeak.be
  • 2. 1. $ whoami 1 - whoami ironpeak.be Niels Hofmans role Independent Cybersecurity Consultant work Code Security, App Security, Hardening, F5 BIG-IP interest Go, Docker, Cloud, Media contact hello@ironpeak.be github github.com/HazCod
  • 3. 2. $ tree 2 - tree ironpeak.be user host image Runtime
  • 4. 3. $ client 3 - client ironpeak.be The Client (you!) - Hidden attack surface - Several attack vectors - Phishing - Hardware - Software - Open-Source - Social Networks - Reused/shared Passwords
  • 5. 3. $ client 3 - client ironpeak.be The Client (you!) - Awareness - Phishing - Common Sense - E-mail headers, content, DMARC - Hardware - Disk encryption - Lock-down BIOS/SMC - Trustless with 2FA - Lock your session
  • 6. 3. $ client 3 - client ironpeak.be The Client (you!) - Software - OS Hardening - Non-privileged User - Firewall - Patching - Verify & Tag Open-Source - Additional - Information leakage: e.g. LinkedIn, Github - Password manager with 2FA
  • 7. 4. $ host 4 - host ironpeak.be Host hardening - CIS Benchmarks - Firewall Daemon hardening - CIS Benchmarks, docker-bench-security, kube-bench - User Namespace Remapping - Live Restore - No experimental features - Swarm autolock - Kernel hardening: github.com/google/gvisor - Enable SELinux/AppArmor + seccomp
  • 8. 4. $ host 4 - host ironpeak.be Daemon Access - UNIX Socket over SSH - HTTP+TLS auth Host Auditing - Off-site log server over TLS/SSH - Log forging / Denial of Service - Audit tracing
 e.g. sysdig.org + falco.org, github.com/netdata/netdata Private Registry - client: DOCKER_CONTENT_TRUST=1 - daemon: content_trust: enforced
  • 9. 5. $ image 5 - image ironpeak.be - DIY & Commercial - Base images: alpine (!), minideb, centos github.com/GoogleContainerTools/distroless - docker-slim - Image Signing - Leakage - .dockerignore - docker secrets/vault - Remove defaults - Network: bridge - Storage: AUFS
  • 10. 5. $ image 5 - image ironpeak.be Dockerfile - Linters; hadolint, … - Pin package versions - Least Privilege - users $user & root without shells - strict permissions - remove unnecessary tooling - security-opt=no-new-privileges - read-only (+ tmpfs) - COPY --chown=x:x instead of ADD - Scan for package vulnerabilities
  • 11. 5. $ image.findWally() 5 - image ironpeak.be
  • 12. 5. $ image.findWally() 5 - image ironpeak.be USER?
  • 13. 5. $ image.getFixed() 5 - image ironpeak.be
  • 14. 6. $ runtime: container 6 - runtime ironpeak.be Container Runtime Properties - Read-Only filesystem - mounts: noexec, nodev, nosuid, mode, size, uid/gid - cgroup limits - restart: on-failure:5 - cap_drop: ALL - security_opt: - no_new_privileges - SELinux/AppArmor + seccomp - Environment vs. Secrets
  • 15. 6. $ runtime: app 6 - runtime ironpeak.be Application Security - OWASP ASVS: Level 1 - Level 3 - web: github.com/OWASP/ASVS - mobile: github.com/OWASP/owasp-masvs - Static Application Security Testing (SAST) - linters - OSS + commercial - Dynamic Application Security Testing (DAST) - OpenVAS, OWASP ZAP, … - Training & Awareness!
  • 16. 7. $ exit 7 - exit ironpeak.be https://ironpeak.be/slides/190319-ironing-out-docker.pdf