PREP
Created an account with:
(GitHub)
Snyk
Aqua
WoTT
Got a GitHub repo with sample code
Connected CircleCI to the repo
@vpetersson
wott.io
Slide 8
Slide 8 text
PREP CIRCLE CI
@vpetersson
wott.io
Slide 9
Slide 9 text
ENVIRONMENT
Python app
...with dependencies
...running in Docker
...on a Linux host
...which we deploy daily(ish)
@vpetersson
wott.io
Slide 10
Slide 10 text
APPLICATION LAYER
@vpetersson
wott.io
Slide 11
Slide 11 text
OVERVIEW
@vpetersson
wott.io
Your code
Your dependencies
[ ]
Slide 12
Slide 12 text
WHY DOES IT MATTER?
Your app servers are likely publicly exposed
Your app(s) likely uses a large set of libraries/dependencies
Supply chain security
"event-stream" npm package example
@vpetersson
wott.io
Slide 13
Slide 13 text
WHEN TO RUN?
During development
During the Pull Request (or similar)
During build on CI
This is what we'll do
@vpetersson
wott.io
DEMO
Let's use Snyk for our scanner
Let's use CircleCI as our CI/CD runner
Let's break out the test to a separate
container for isolation
@vpetersson
wott.io
Slide 17
Slide 17 text
CONTAINER LAYER
@vpetersson
wott.io
Slide 18
Slide 18 text
OVERVIEW
@vpetersson
wott.io
Your container
Your runtime
[ ]
Slide 19
Slide 19 text
WHY DOES IT MATTER?
Can provide a false sense of security
There are a lot of vulnerable docker images out there
@vpetersson
wott.io
Slide 20
Slide 20 text
WHEN TO RUN?
On CI
This is what we will do
In the Container Registry
@vpetersson
wott.io
Slide 21
Slide 21 text
TOOLS
Aqua MicroScanner (to be replaced by Trivy)
Anchore
Sysdig Secure and Falco
hadolint - Lint/Audit Dockerfiles
Docker Bench for Security - Audit Docker host security
CoreOS/RedHat Quay
Snyk Container
@vpetersson
wott.io
Slide 22
Slide 22 text
DEMO
Let's use Aqua's MicroScanner for our scanner
Again, let's extend our CircleCI to do this too
@vpetersson
wott.io
Slide 23
Slide 23 text
OPERATING SYSTEM LAYER
@vpetersson
wott.io
Slide 24
Slide 24 text
"This is out of scope,
said no attacker ever."
@vpetersson
wott.io
Slide 25
Slide 25 text
OVERVIEW
Pet vs Cattle
Understand your vs your cloud vendors responsibilities
@vpetersson
wott.io
Slide 26
Slide 26 text
WHY DOES IT MATTER?
root on host == game over
Remember Heartbleed, Spectre and Meltdown?
Think about network'd services on any server
(Zero Trust Networking)
@vpetersson
wott.io
Slide 27
Slide 27 text
WHEN TO RUN?
Continuously on all hosts
@vpetersson
wott.io
Slide 28
Slide 28 text
TOOLS
WoTT
Red Hat Satellite
Aqua Security for Cloud VMs
Ubuntu Landscape
DevSec.io - Server Hardening
@vpetersson
wott.io
Slide 29
Slide 29 text
DEMO
Let's use WoTT to audit the host
Regular VM on GCE
@vpetersson
wott.io
Slide 30
Slide 30 text
SUMMARY
@vpetersson
wott.io
Slide 31
Slide 31 text
Understand your threat model
You need to secure all layers in the DevSecOps Iceberg
Different layers have different attack vectors
@vpetersson
wott.io
Slide 32
Slide 32 text
REFERENCES
Example GitHub repo
DevSecOps Iceberg blog post
@vpetersson
wott.io