#RSAC
SESSION ID:
Karthik Gaekwad
Practical Approaches to Cloud Native Security
ASD-W10
Principal Engineer
Oracle Inc
@iteration1
#RSAC
•I’m Karthik Gaekwad
•NOT a DBA
•https://cloudnative.oracle.com/
•Cloud Native Evangelist at Oracle Cloud
•Past: Developer on the Oracle Managed
Kubernetes Team
Hello
@iteration1
#RSAC
Hello
Been in Industry for 15 years.
In general, I like building stuff with friends.
– Maintainer for Gauntlt- Open source security scanner.
Love Teaching and building community.
– Run Devopsdays Austin, Container Days, Cloud Austin.
– Chair All Day Devops Cloud Native track.
– LinkedIn Learning Author for Learning Kubernetes (and more).
#RSAC
I mustache you a
question…
#RSAC
The Cloud Native Journey
5
Phase I
Developer Focus
Phase II
DevOps Focus
Phase III
Business Focus
(end-to-end)
Container Adoption Application Deployment Intelligent Operations
SpeedEfficiencyAgility
Docker
Kubernetes
Core to Edge
Developer adoption
Dev/Test apps
Simple orchestration
Individual developers
DevOps deployment
Production apps
Advanced orchestration
Teams & lines of business
End-to-end integration
Digital business apps
Serverless, DevSecOps, & ML
Cloud native enterprises
Focus
Applications
Automation
Community
#RSAC
CNCF Survey: August 2018
How Does Your Company Use Containers and Where?
Lots of adoption on
dev/staging
Continued production
increase
#RSAC
CNCF Survey: August 2018
How Does Your Company Use Containers and Where?
Adoption over public and on-prem
#RSAC
Kubernetes Dominates Container Management
Your company/organization manages
containers with:
Winner!
Kubernetes
#RSAC
Good News, Bad News…
But...
ManyProjects…
Good usage
in dev/prod
#RSAC
Top 5 challenges to cloud native adoption…
0 5 10 15 20 25 30 35 40 45
Complexity
Cultural Challenges
Lack of Training
Security
Monitoring
Percentages
#RSAC
Managing, maintaining, upgrading Kubernetes Control
Plane
– API Server, etcd, scheduler etc….
Managing, maintaining, upgrading Kubernetes Data
Plane
– In place upgrades, deploy parallel cluster etc….
Figuring out container networking & storage
– Overlays, persistent storage etc… - it should just work
Managing Teams
– How do I manage & control team access to my clusters?
Security, security, security
Kubernetes & Cloud Native Challenges
11
Source: Oracle Customer Survey 2018
#RSAC
How Are Teams Addressing Complexity, Training Issues?
App Management
Upgrades & Patching
Platform Backup & Recovery
High Availability
Scaling
App Deployment
Power, HVAC
Rack and Stack
Server Provisioning
Software Installation
Customer Managed Fully-Managed
App Management
Upgrades & Patching
Platform Backup & Recovery
High Availability
Scaling
App Deployment
Power, HVAC
Rack and Stack
Server Provisioning
Software Installation
 Faster Time to Deploy
 Lower Risk
 Accelerate Innovation
Benefits
YOU
#RSAC
Which brings us to security…
#RSAC
Where no news, is good news!
#RSAC
Unsecured K8s dashboards
Unsecured Kubernetes
Dashboard with account creds.
Used this to mine
cryptocurrency.
2017: Aviva
2018: Tesla, Weight Watchers
https://redlock.io/blog/cryptojacking-tesla
#RSAC
Kubelet credentials hack
Shopify: Server Side request
Forgery
Get kubelet certs/private key
Root access to any container
in part of infrastructure.
https://hackerone.com/reports/341876
#RSAC
CVE’s Happen…
Even more relevant with increased
production usage of containers…
#RSAC
CVE’s Happen…
Container
Escaping
Privilege
Escalation
#RSAC
#RSAC
#RSAC
#RSAC
#RSAC
#RSAC
How did we get here?
#RSAC
“Kubernetes is too complicated”
#RSAC
“Kubernetes is too complicated”
“We hope it’ll get easier”
#RSAC
What is your strate
#RSAC
Let’s look at:
Attack Surface
–More importantly, how to limit damage
Security related features in K8s
–The more you know, the better you build
Opensource Tooling to help
–Because we all need help
#RSAC
Attack Surface
#RSAC
Attack Surface
Goal: Reduce the attack surface
Analysis for:
–Host(s)
–Container (Images and running)
–Kubernetes Cluster
#RSAC
Attack Surface: Host
These are the machines you’re running Kubernetes on.
Age old principles of Linux still apply:
– Enable SELinux
– AppArmor
– Seccomp
– Hardened Images
Goal: Minimize privilege to applications running on the host
Good news: Already a wealth of information on this subject!
– http://lmgtfy.com/?q=how+to+reduce+attack+surface+linux
#RSAC
Attack Surface: Container Images
GOAL: Know your base image when
building containers
#RSAC
Attack Surface: Container Images
GOAL: Know your base image when building containers
**BTW, this is just a ruby helloworld app
#RSAC
Attack Surface: Container Images
GOAL: Know your base image when building containers
**BTW, this is just a ruby helloworld app
#RSAC
Attack Surface: Container Images
GOAL: Know your base image when building containers
Full disclosure: I’m karthequian; I created this as a ruby 101 container for learning purposes only
#RSAC
Attack Surface: Container Images
GOAL: Know your base image when building containers
When in doubt, stick to an official images!
Or start from a sane base image (example: alpine linux)
#RSAC
Attack Surface: Container Images
GOAL: Smaller the image, the better
Less things for an attacker to exploit.
Quicker to push, quicker to pull.
#RSAC
Attack Surface: Container Images
GOAL: Don’t rely on :latest tag
:latest image yesterday might not be :latest image tomorrow
Instead, you’d want to know what specific version you’re operating
with.
Side benefit: If there is a new vulnerability announced for OS version
x.y.z, you know immediately whether you’re running that version!
#RSAC
Attack Surface: Container Images
GOAL: Check for vulnerabilities periodically
Plenty of ways to do this in registries. We’ll cover more in the
tooling section
#RSAC
Attack Surface: Running Containers
GOAL: Don’t run as root
Containers running as root might be completely unnecessary for
the actual application.
If compromised, attacker can do a lot more things..
Pod security policies can help (we’ll see how later).
#RSAC
Attack Surface: Running Containers
GOAL: Limit host mounts
Be wary of images that require broad access to paths on the host
Limit your host mount to a smaller subset of directories
Reduces blast radius on compromise
#RSAC
Attack Surface:
Kubernetes Cluster
#RSAC
Kubernetes Cluster- TLS
TLS ALL THE THINGS
#RSAC
Kubernetes Cluster- TLS
TLS Checklist:
1. Nodes and
Master
2. User and Master
3. Everything etcd
4. Kubelet to API
Server
#RSAC
Kubernetes Cluster- TLS
#RSAC
Kubernetes Cluster- TLS
TLS Checklist:
1. User and Master
2. Nodes and
Master
3. Everything etcd
4. Kubelet to API
Server
#RSAC
CVE’s
47
GOAL: Have an upgrade strategy
Because…CVE’s are fixed in new minor versions.
Don’t treat K8s as “install once, run all the time”.
Make your K8s install repeatable for different versions.
..Or use a Managed Provider.
– Either automatically patch for you, or tell you what to do.
#RSAC
We’re a little
better off now.
But what else to do?
#RSAC
K8s Features
How can the platform help
me make secure choices?
#RSAC
K8s Features
Kubernetes Secrets
Authentication
Authorization
Audit Logging
Network Policies
Pod security
policies
#RSAC
Kubernetes Secrets
GOAL: Use Kubernetes secrets to store sensitive data instead of
config maps.
Also look at: secrets encryption provider.
– Controls how etcd encrypts API data
– --experimental-encryption-provider-config
https://kubernetes.io/docs/tasks/administer-cluster/encrypt-
data/
#RSAC
Authentication and Authorization
Do you know how you are authenticating with Kubernetes?
Many ways to Authenticate
– Client Certs
– Static token file
– Service Account tokens
– OpenID
– Webhook Mode
– And more (https://kubernetes.io/docs/reference/access-authn-authz/authentication/)
#RSAC
Whatever you do,
DO NOT YOLO!
Goal: Pick a strategy that fits
your use case
#RSAC
You can pick an authz strategy..
If you DO NOT YOLO…
#RSAC
Authentication and Authorization
https://kubernetes.io/docs/reference/acc
ess-authn-authz/authorization/
#RSAC
Authentication and Authorization
Pro tip: Nobody uses ABAC anymore. Don’t be that guy….
RBAC is the defacto standard
– Based on roles and role bindings
– Good set of defaults: https://github.com/uruddarraju/kubernetes-rbac-policies
Can use multiple authorizers together, but can get confusing.
– 1st authorizer to authorize passes authz
#RSAC
Kubernetes Cluster- Audit Logs
Wat?
“Kubernetes auditing provides a security-relevant chronological set of
records documenting the sequence of activities that have affected
system by individual users, administrators or other components of
the system.”
Answers: What/when/who/where information on security events.
Your job: Periodically watch Kubernetes Audit logs
https://kubernetes.io/docs/tasks/debug-application-cluster/audit/
#RSAC
#RSAC
Kubernetes Cluster- Network Policies
Consider adding a network policy to the cluster…
Default Policy: All pods can talk to all other pods.
Consider limiting this with a Network Policy
https://kubernetes.io/docs/concepts/services-networking/network-policies/
#RSAC
Kubernetes Cluster- Pod Security Policies
Consider adding Pod Security policies
PodSecurityPolicy: A Defined set of conditions a pod must run
with.
Think of this as authorization for pods.
#RSAC
Kubernetes Cluster: Pod Security Policies
https://kubernetes.io/docs/concepts/policy/pod-security-policy/#what-is-a-pod-security-policy
Capability for an
admin to
control specific
actions
#RSAC
Open Policy Agent
Policy based control for your whole environment.
Full featured Policy Engine to offload policy decisions from each
application/service.
– Deploy OPA alongside your service
– Add policy data to OPA’s store
– Query OPA on decisions.
Great idea, still early, watch this space…
Standardize policies for all clusters
https://www.openpolicyagent.org/
62
#RSAC
Tooling
Opensource Tooling
#RSAC
Keep tabs on the CNCF Security landscape
https://landscape.cncf.io/landscape=security-complia
#RSAC
CNCF Projects
“The Update Framework”
Is a framework or a
methodology.
Used for secure software
updates.
Based on ideas surrounding
trust and integrity.
Is a project.
Based on TUF.
A solution to secure software
updates and distribution.
Used in Docker Trusted
Registry.
#RSAC
Clair
Open source project for the static analysis of vulnerabilities in
containers.
Find vulnerable images in your repo.
Built into quay.io, but you can add to your own repo.
https://github.com/coreos/clair
#RSAC
#RSAC
Harbor
Newer! CNCF Project
Registry product
Supports vulnerability
scanning, image signing and
identity control
Scope is larger than clair
#RSAC
Harbor
#RSAC
Kube-bench
Checks whether a Kubernetes cluster is deployed according to
security best practices.
Run this after creating your K8s cluster.
https://github.com/aquasecurity/kube-bench
Defined by the CIS Benchmarks Docs:
https://www.cisecurity.org/cis-benchmarks/
Run it against your Kubernetes Master, or Kubernetes node.
#RSAC
Kube-bench example
#RSAC
Kube-hunter
Penetration Testing tool for Kubernetes clusters.
Looks for weaknesses in your cluster.
2 ways to run:
– External to cluster (what an attacker sees)
– Internal to cluster (install as a pod)
Active and Passive mode.
– Active mode changes stuff (probably don’t use in Prod)
Read more: https://kube-hunter.aquasec.com/
ONLY RUN ON YOUR OWN CLUSTER.
72
#RSAC
Kube-hunter
73
#RSAC
Kubesec
Helps you quantify risk for Kubernetes resources.
Run against your K8s applications
(deployments/pods/daemonsets etc)
https://kubesec.io/ from controlplane
Can be used standalone, or as a kubectl plugin
(https://github.com/stefanprodan/kubectl-kubesec)
#RSAC
Kubesec example
#RSAC
Kubeaudit
Opensourced from Shopify.
Auditing your applications in your K8s cluster.
https://github.com/Shopify/kubeaudit
Little more targeted than Kubesec.
#RSAC
#RSAC
Kubeaudit example
#RSAC
Sonobuoy by Heptio
Sonobuoy is a diagnostic tool.
Tells you whether your cluster is built correctly per best
practices.
vendor-agnostic conformance tests to let you test the cluster.
End to End tests test that APIs required for your deployment are
supported by the cluster.
Can take a long time to finish (1-3 hours).
https://scanner.heptio.com/
79
#RSAC
Test Output summary
Stored in a file called e2e.log
80
Put it all together…
81
#RSAC
Apply It!
82
Day 1:
Know what version of Docker and Kubernetes you use.
Understand if your control and data plane nodes are hardened.
Understand how your Docker containers are built.
Find out how you authenticate and authorize for your clusters.
#RSAC
Apply It!
83
Week 1:
Build an Automation Pipeline:
–To build Docker images on code pushes
–Versioning strategy for code
–To build your Kubernetes clusters
#RSAC
Apply It!
84
1st Month
Sanitize your code:
–Know your base images
–Implement versioning for your containers
–Invest in a registry (or tooling) that does vulnerability scanning
Kubernetes:
–Have an upgrade strategy in place
–Analyze secrets/sensitive cluster data
–Turn on audit logging
#RSAC
Apply It!
85
3 Months:
Continuously Monitor
– Tooling like sonobuoy/Kubesec/Kube-audit/kube-hunter//
Plan how to address vulnerabilities/CVE’s
K8s:
– Strategy for Pod Security Policies
– Strategy for Network Policies
– Run scans (like kube-bench) on cluster creation
#RSAC
Apply It!
86
6 Months:
Re-ask day 1 questions.
Review strategies- is it working? What needs
tweaking?
Review tooling- are there new tools that help? Are
existing tools working?
Review CVE’s
#RSAC
Couple more resources to look at:
11 ways not to get hacked:
https://kubernetes.io/blog/2018/07/18/11-ways-not-to-get-
hacked
K8s security (from Image Hygiene to Network Policy):
https://speakerdeck.com/mhausenblas/kubernetes-security-
from-image-hygiene-to-network-policies
#RSAC
KEEP CALM
AND
KUBE ON
@iteration1

Practical Approaches to Cloud Native Security

  • 1.
    #RSAC SESSION ID: Karthik Gaekwad PracticalApproaches to Cloud Native Security ASD-W10 Principal Engineer Oracle Inc @iteration1
  • 2.
    #RSAC •I’m Karthik Gaekwad •NOTa DBA •https://cloudnative.oracle.com/ •Cloud Native Evangelist at Oracle Cloud •Past: Developer on the Oracle Managed Kubernetes Team Hello @iteration1
  • 3.
    #RSAC Hello Been in Industryfor 15 years. In general, I like building stuff with friends. – Maintainer for Gauntlt- Open source security scanner. Love Teaching and building community. – Run Devopsdays Austin, Container Days, Cloud Austin. – Chair All Day Devops Cloud Native track. – LinkedIn Learning Author for Learning Kubernetes (and more).
  • 4.
    #RSAC I mustache youa question…
  • 5.
    #RSAC The Cloud NativeJourney 5 Phase I Developer Focus Phase II DevOps Focus Phase III Business Focus (end-to-end) Container Adoption Application Deployment Intelligent Operations SpeedEfficiencyAgility Docker Kubernetes Core to Edge Developer adoption Dev/Test apps Simple orchestration Individual developers DevOps deployment Production apps Advanced orchestration Teams & lines of business End-to-end integration Digital business apps Serverless, DevSecOps, & ML Cloud native enterprises Focus Applications Automation Community
  • 6.
    #RSAC CNCF Survey: August2018 How Does Your Company Use Containers and Where? Lots of adoption on dev/staging Continued production increase
  • 7.
    #RSAC CNCF Survey: August2018 How Does Your Company Use Containers and Where? Adoption over public and on-prem
  • 8.
    #RSAC Kubernetes Dominates ContainerManagement Your company/organization manages containers with: Winner! Kubernetes
  • 9.
    #RSAC Good News, BadNews… But... ManyProjects… Good usage in dev/prod
  • 10.
    #RSAC Top 5 challengesto cloud native adoption… 0 5 10 15 20 25 30 35 40 45 Complexity Cultural Challenges Lack of Training Security Monitoring Percentages
  • 11.
    #RSAC Managing, maintaining, upgradingKubernetes Control Plane – API Server, etcd, scheduler etc…. Managing, maintaining, upgrading Kubernetes Data Plane – In place upgrades, deploy parallel cluster etc…. Figuring out container networking & storage – Overlays, persistent storage etc… - it should just work Managing Teams – How do I manage & control team access to my clusters? Security, security, security Kubernetes & Cloud Native Challenges 11 Source: Oracle Customer Survey 2018
  • 12.
    #RSAC How Are TeamsAddressing Complexity, Training Issues? App Management Upgrades & Patching Platform Backup & Recovery High Availability Scaling App Deployment Power, HVAC Rack and Stack Server Provisioning Software Installation Customer Managed Fully-Managed App Management Upgrades & Patching Platform Backup & Recovery High Availability Scaling App Deployment Power, HVAC Rack and Stack Server Provisioning Software Installation  Faster Time to Deploy  Lower Risk  Accelerate Innovation Benefits YOU
  • 13.
    #RSAC Which brings usto security…
  • 14.
    #RSAC Where no news,is good news!
  • 15.
    #RSAC Unsecured K8s dashboards UnsecuredKubernetes Dashboard with account creds. Used this to mine cryptocurrency. 2017: Aviva 2018: Tesla, Weight Watchers https://redlock.io/blog/cryptojacking-tesla
  • 16.
    #RSAC Kubelet credentials hack Shopify:Server Side request Forgery Get kubelet certs/private key Root access to any container in part of infrastructure. https://hackerone.com/reports/341876
  • 17.
    #RSAC CVE’s Happen… Even morerelevant with increased production usage of containers…
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
    #RSAC “Kubernetes is toocomplicated” “We hope it’ll get easier”
  • 27.
  • 28.
    #RSAC Let’s look at: AttackSurface –More importantly, how to limit damage Security related features in K8s –The more you know, the better you build Opensource Tooling to help –Because we all need help
  • 29.
  • 30.
    #RSAC Attack Surface Goal: Reducethe attack surface Analysis for: –Host(s) –Container (Images and running) –Kubernetes Cluster
  • 31.
    #RSAC Attack Surface: Host Theseare the machines you’re running Kubernetes on. Age old principles of Linux still apply: – Enable SELinux – AppArmor – Seccomp – Hardened Images Goal: Minimize privilege to applications running on the host Good news: Already a wealth of information on this subject! – http://lmgtfy.com/?q=how+to+reduce+attack+surface+linux
  • 32.
    #RSAC Attack Surface: ContainerImages GOAL: Know your base image when building containers
  • 33.
    #RSAC Attack Surface: ContainerImages GOAL: Know your base image when building containers **BTW, this is just a ruby helloworld app
  • 34.
    #RSAC Attack Surface: ContainerImages GOAL: Know your base image when building containers **BTW, this is just a ruby helloworld app
  • 35.
    #RSAC Attack Surface: ContainerImages GOAL: Know your base image when building containers Full disclosure: I’m karthequian; I created this as a ruby 101 container for learning purposes only
  • 36.
    #RSAC Attack Surface: ContainerImages GOAL: Know your base image when building containers When in doubt, stick to an official images! Or start from a sane base image (example: alpine linux)
  • 37.
    #RSAC Attack Surface: ContainerImages GOAL: Smaller the image, the better Less things for an attacker to exploit. Quicker to push, quicker to pull.
  • 38.
    #RSAC Attack Surface: ContainerImages GOAL: Don’t rely on :latest tag :latest image yesterday might not be :latest image tomorrow Instead, you’d want to know what specific version you’re operating with. Side benefit: If there is a new vulnerability announced for OS version x.y.z, you know immediately whether you’re running that version!
  • 39.
    #RSAC Attack Surface: ContainerImages GOAL: Check for vulnerabilities periodically Plenty of ways to do this in registries. We’ll cover more in the tooling section
  • 40.
    #RSAC Attack Surface: RunningContainers GOAL: Don’t run as root Containers running as root might be completely unnecessary for the actual application. If compromised, attacker can do a lot more things.. Pod security policies can help (we’ll see how later).
  • 41.
    #RSAC Attack Surface: RunningContainers GOAL: Limit host mounts Be wary of images that require broad access to paths on the host Limit your host mount to a smaller subset of directories Reduces blast radius on compromise
  • 42.
  • 43.
  • 44.
    #RSAC Kubernetes Cluster- TLS TLSChecklist: 1. Nodes and Master 2. User and Master 3. Everything etcd 4. Kubelet to API Server
  • 45.
  • 46.
    #RSAC Kubernetes Cluster- TLS TLSChecklist: 1. User and Master 2. Nodes and Master 3. Everything etcd 4. Kubelet to API Server
  • 47.
    #RSAC CVE’s 47 GOAL: Have anupgrade strategy Because…CVE’s are fixed in new minor versions. Don’t treat K8s as “install once, run all the time”. Make your K8s install repeatable for different versions. ..Or use a Managed Provider. – Either automatically patch for you, or tell you what to do.
  • 48.
    #RSAC We’re a little betteroff now. But what else to do?
  • 49.
    #RSAC K8s Features How canthe platform help me make secure choices?
  • 50.
  • 51.
    #RSAC Kubernetes Secrets GOAL: UseKubernetes secrets to store sensitive data instead of config maps. Also look at: secrets encryption provider. – Controls how etcd encrypts API data – --experimental-encryption-provider-config https://kubernetes.io/docs/tasks/administer-cluster/encrypt- data/
  • 52.
    #RSAC Authentication and Authorization Doyou know how you are authenticating with Kubernetes? Many ways to Authenticate – Client Certs – Static token file – Service Account tokens – OpenID – Webhook Mode – And more (https://kubernetes.io/docs/reference/access-authn-authz/authentication/)
  • 53.
    #RSAC Whatever you do, DONOT YOLO! Goal: Pick a strategy that fits your use case
  • 54.
    #RSAC You can pickan authz strategy.. If you DO NOT YOLO…
  • 55.
  • 56.
    #RSAC Authentication and Authorization Protip: Nobody uses ABAC anymore. Don’t be that guy…. RBAC is the defacto standard – Based on roles and role bindings – Good set of defaults: https://github.com/uruddarraju/kubernetes-rbac-policies Can use multiple authorizers together, but can get confusing. – 1st authorizer to authorize passes authz
  • 57.
    #RSAC Kubernetes Cluster- AuditLogs Wat? “Kubernetes auditing provides a security-relevant chronological set of records documenting the sequence of activities that have affected system by individual users, administrators or other components of the system.” Answers: What/when/who/where information on security events. Your job: Periodically watch Kubernetes Audit logs https://kubernetes.io/docs/tasks/debug-application-cluster/audit/
  • 58.
  • 59.
    #RSAC Kubernetes Cluster- NetworkPolicies Consider adding a network policy to the cluster… Default Policy: All pods can talk to all other pods. Consider limiting this with a Network Policy https://kubernetes.io/docs/concepts/services-networking/network-policies/
  • 60.
    #RSAC Kubernetes Cluster- PodSecurity Policies Consider adding Pod Security policies PodSecurityPolicy: A Defined set of conditions a pod must run with. Think of this as authorization for pods.
  • 61.
    #RSAC Kubernetes Cluster: PodSecurity Policies https://kubernetes.io/docs/concepts/policy/pod-security-policy/#what-is-a-pod-security-policy Capability for an admin to control specific actions
  • 62.
    #RSAC Open Policy Agent Policybased control for your whole environment. Full featured Policy Engine to offload policy decisions from each application/service. – Deploy OPA alongside your service – Add policy data to OPA’s store – Query OPA on decisions. Great idea, still early, watch this space… Standardize policies for all clusters https://www.openpolicyagent.org/ 62
  • 63.
  • 64.
    #RSAC Keep tabs onthe CNCF Security landscape https://landscape.cncf.io/landscape=security-complia
  • 65.
    #RSAC CNCF Projects “The UpdateFramework” Is a framework or a methodology. Used for secure software updates. Based on ideas surrounding trust and integrity. Is a project. Based on TUF. A solution to secure software updates and distribution. Used in Docker Trusted Registry.
  • 66.
    #RSAC Clair Open source projectfor the static analysis of vulnerabilities in containers. Find vulnerable images in your repo. Built into quay.io, but you can add to your own repo. https://github.com/coreos/clair
  • 67.
  • 68.
    #RSAC Harbor Newer! CNCF Project Registryproduct Supports vulnerability scanning, image signing and identity control Scope is larger than clair
  • 69.
  • 70.
    #RSAC Kube-bench Checks whether aKubernetes cluster is deployed according to security best practices. Run this after creating your K8s cluster. https://github.com/aquasecurity/kube-bench Defined by the CIS Benchmarks Docs: https://www.cisecurity.org/cis-benchmarks/ Run it against your Kubernetes Master, or Kubernetes node.
  • 71.
  • 72.
    #RSAC Kube-hunter Penetration Testing toolfor Kubernetes clusters. Looks for weaknesses in your cluster. 2 ways to run: – External to cluster (what an attacker sees) – Internal to cluster (install as a pod) Active and Passive mode. – Active mode changes stuff (probably don’t use in Prod) Read more: https://kube-hunter.aquasec.com/ ONLY RUN ON YOUR OWN CLUSTER. 72
  • 73.
  • 74.
    #RSAC Kubesec Helps you quantifyrisk for Kubernetes resources. Run against your K8s applications (deployments/pods/daemonsets etc) https://kubesec.io/ from controlplane Can be used standalone, or as a kubectl plugin (https://github.com/stefanprodan/kubectl-kubesec)
  • 75.
  • 76.
    #RSAC Kubeaudit Opensourced from Shopify. Auditingyour applications in your K8s cluster. https://github.com/Shopify/kubeaudit Little more targeted than Kubesec.
  • 77.
  • 78.
  • 79.
    #RSAC Sonobuoy by Heptio Sonobuoyis a diagnostic tool. Tells you whether your cluster is built correctly per best practices. vendor-agnostic conformance tests to let you test the cluster. End to End tests test that APIs required for your deployment are supported by the cluster. Can take a long time to finish (1-3 hours). https://scanner.heptio.com/ 79
  • 80.
    #RSAC Test Output summary Storedin a file called e2e.log 80
  • 81.
    Put it alltogether… 81
  • 82.
    #RSAC Apply It! 82 Day 1: Knowwhat version of Docker and Kubernetes you use. Understand if your control and data plane nodes are hardened. Understand how your Docker containers are built. Find out how you authenticate and authorize for your clusters.
  • 83.
    #RSAC Apply It! 83 Week 1: Buildan Automation Pipeline: –To build Docker images on code pushes –Versioning strategy for code –To build your Kubernetes clusters
  • 84.
    #RSAC Apply It! 84 1st Month Sanitizeyour code: –Know your base images –Implement versioning for your containers –Invest in a registry (or tooling) that does vulnerability scanning Kubernetes: –Have an upgrade strategy in place –Analyze secrets/sensitive cluster data –Turn on audit logging
  • 85.
    #RSAC Apply It! 85 3 Months: ContinuouslyMonitor – Tooling like sonobuoy/Kubesec/Kube-audit/kube-hunter// Plan how to address vulnerabilities/CVE’s K8s: – Strategy for Pod Security Policies – Strategy for Network Policies – Run scans (like kube-bench) on cluster creation
  • 86.
    #RSAC Apply It! 86 6 Months: Re-askday 1 questions. Review strategies- is it working? What needs tweaking? Review tooling- are there new tools that help? Are existing tools working? Review CVE’s
  • 87.
    #RSAC Couple more resourcesto look at: 11 ways not to get hacked: https://kubernetes.io/blog/2018/07/18/11-ways-not-to-get- hacked K8s security (from Image Hygiene to Network Policy): https://speakerdeck.com/mhausenblas/kubernetes-security- from-image-hygiene-to-network-policies
  • 88.

Editor's Notes

  • #12 However, customers face challenges along the way.  As we have spoken to customers, many have agreed with the challenges presented on this slide.
  • #13 Faster Time to Deploy No need to provision and maintain Operating System and Platforms (Linux, Kubernetes, Docker Registry, Continuous Integration Systems) Lower Risk Oracle is committed to SLAs on Performance and Manageability, in addition to Availability Accelerate Innovation Develop new Container Native apps quickly, and port existing apps faster
  • #18 Photo by rawpixel on Unsplash
  • #19 Photo by rawpixel on Unsplash
  • #26 Photo by Byron Sterk on Unsplash
  • #27 Photo by Byron Sterk on Unsplash
  • #28 Photo by rawpixel on Unsplash
  • #30 Photo by rawpixel on Unsplash
  • #43 Photo by rawpixel on Unsplash
  • #46 Diagram from https://docs.google.com/presentation/d/1Gp-2blk5WExI_QR59EUZdwfO2BWLJqa626mK2ej-huo/edit#slide=id.g1e639c415b_0_56. Thanks @Lucas Käldström
  • #54 Photo by Mikhail Vasilyev on Unsplash
  • #55 Photo by Mikhail Vasilyev on Unsplash
  • #63 https://www.openpolicyagent.org/docs/how-does-opa-work.html#overview
  • #64 Photo by Barn Images on Unsplash
  • #82 Photo by Damon Lam on Unsplash
  • #83 Photo by Damon Lam on Unsplash
  • #84 Photo by Damon Lam on Unsplash
  • #85 Photo by Damon Lam on Unsplash
  • #86 Photo by Damon Lam on Unsplash
  • #87 Photo by Damon Lam on Unsplash