SlideShare a Scribd company logo
1 of 40
Download to read offline
Michael Wardrop
Senior Security Software Engineer,
Platform Security
Container Security: Theory & Practice @
Why?
There are lots of great presentations about Container Security theory
I hope to inspire more sharing so that we learn from each other and improve
everyone’s security together
Not so may about the challenges of doing it in practice
Who?
Security Practitioners
Developers who are curious about ‘how the sausage is made’
Builders and Operators of container platforms
Context
Know your threat models - My threat models may not be the same as yours
Don’t copy & paste security - Tailor solutions to your context
Although I am presenting,
this is the work of many people from multiple teams over a few years
Containers @
Containers at Netflix
Started organically with engineers
• Improved polyglot development and testing experience
Basic batch processing systems
• cron in the cloud
• Extract, Transform, Load
With momentum came demand
• Container management platform
• Integration with AWS and Netflix ecosystem
est 2015
Titus
Netflix’s Container Management Platform > 3 million containers launched per week
Scheduling
• Service & batch job lifecycle
• Resource management
AWS & Netflix Integrations
High churn
• Most batch workloads < 1hour
• Due to auto scaling most Service
containers < 1 day
multi Region, multi AZ
Chaos Monkey & regional failover
> 1K different images
Titus: High Level Architecture
Titus: High Level Architecture
Newt
Netflix Workflow Toolkit - from Productivity Engineering
• Initialization of Projects (Stash repos, Jenkins jobs,
Spinnaker pipelines, & alerts)
• Code generation
• Consistent development environment in polyglot world
• Isolated, reproducible, and cacheable builds
• Container based testing
• Good place to incorporate best practices and secure
defaults
Docker is an important component
Rapid growth of container use cases
• 1000+ services
• Netflix API, Node.js Backend UI Scripts
• Machine Learning (GPUs) for personalization
• Encoding and Content use cases
• Netflix Studio use cases
• CDN tracking and planning
• Massively parallel CI system
• Data Pipeline routing & Stream Processing as a Service
• Big Data platform use cases
Container Security
Theory
What’s interesting about OCI Containers?
1. Operating System virtualization - rely on the OS Kernel
for security. On Linux, this means:
• Namespaces - different userland views
• Control Groups - resource limits
• Seccomp - Syscall filtering
• Mandatory Access Control - Apparmor, SELinux, etc
• Capabilities - break up the power of root
• Pivot Root - Change the root file system
2. File System Image - Bring your dependencies with you
Implemented as a Tar of Tars with some metadata
Registry
Image Scanning
Patch
Management
Control Plane
Cloud
Networking
and APIs
Developer
Identity
Service
Identity
Development
Production
Secret
Management
Key
Management
Version
Control
Source Code
Container Ecosystem Security
What is different?
Continuous
Integration
Continuous
Delivery
Container Ecosystem Security
What isn’t impacted?
Registry
Image Scanning
Patch
Management
Control Plane
Cloud
Networking
and APIs
Developer
Identity
Service
Identity
Development
Production
Secret
Management
Key
Management
Version
Control
Source Code Continuous
Integration
Continuous
Delivery
Practice
Container Security
Cloud Security
AWS EC2 Metadata proxy
• Started with one per host, changed to one per container
• Block Server Side Request Forgery (SSRF) and XML External Entity (XXE) injection
• Honey Credentials
Identity & Access Management
• IAM Role per container
• Limit IAM permissions for the host & bind credentials to the host
• Restrict which IAM roles can be used by which Applications
Elastic Network Interfaces
• VPC routable IP Address per container
• Assigning Security Groups to containers
Cloud APIs have great power, protect them!
Cloud Security
Separate accounts for Control Plane and
Workers (12 accounts total)
STS service in control plane account
• AuthN, AuthZ, & Audit
Container’s Identity based on Target IAM
account
• Workload can be logically in Target
account despite executing on Titus
New Titus Architecture
Agent Pool
Titus US-East-1
Control Plane Account
Titus US-East-1
Agent Account
Federation
(New)
Internet
Agent
Pool
Titus US-East-1
Account
Federation
(Old)
Agent PoolAgent Pool
Cloud Security
OSS tools from Netflix - some assembly required, talk to us
Control Plane Security
Root controls ONE host, Control Plane controls ALL hosts.
API
• V1 was http
• V2 was https with optional mutual TLS
• V3 mutual TLS only with audit logs
Master to Workers communication
• Originally relied on Security Groups
• no authentication, authorization, or encryption
• Dangerous! 1 misconfiguration away from shadow control plane attacks
• Mutual TLS authN
• AuthZ policies
• Auditing
got root
control?
Control Plane Security
Problem: Invalid Jobs
Uses REST/JSON poorly
{ env: { “PATH” : null } }
Symptoms
• Scheduler crashes, fails over, crashes,
repeat

Solutions
• Input validation, input fuzz testing,
exception handling
Control Plane Security
Problem: Failing Jobs That Repeat
Symptoms
• Scheduler works really hard
• Cloud resources are allocated /
deallocated fast

Solution
• Rate limiting of failing jobs
Image: “org/imagename:lateest”
Command:/bin/besh -c …
Identity for People
Pandora: unified identity service
Meechum: multi factor Single Sign On
Metatron uses Meechum identity to create:
➡X.509 cert
• person to service authN via Mutual TLS
➡SSH cert
• Bastion access
Cryptographic bootstrap of service identity in the cloud
Established before application code, supports:
• Ec2 Instances built on our BaseAMI
• Containers on Titus
• Netflix Functions
All get X.509 certificates for use in Mutual TLS, enabling authentication
Metatron: Identity for Services
Round 1
• Based on metadata signed by AWS
• No freshness guarantee, therefore no
support for instance restarts
• No Lambda support ☹

Round 2
• Based on KMS encryption context
• Freshness guarantee, therefore can
refresh identity at any time
• Lambda support 🥳
Metatron: Identity for Services
Closest open source equivalent is
How? Starts with an Application in Spinnaker,
which signs some metadata, and puts it in User Data given to AWS
Gandalf: Authorization
Gandalf decides who can be let in,
and who shall not pass.
• Web portal for defining policies
• REST
• gRPC
• SSH
• custom
• Policy updates are pushed out to Authorization agent
• All authorization decisions are made locally in ns
SSH Access
For extraordinary circumstances
Vast majority of Instances and Containers go through their lifecycle without SSH access
Initial implementation
• connection from bastion into limited environment on the host
restricted docker exec and docker cp like functionality
Current implementation
• After authorization check, the Bastion calls the Titus control plane
• A specially configured sshd is injected into the container
• The bastion connects directly to the injected sshd
SSH
Secret Protection
No secrets in code!
Encrypted via Gandalf web portal
• Define a policy for which Metatron identities (applications, groups, individuals)
can access
• Copy a Base64 encoded bundle / download a binary file
Files in conventional path are automatically decrypted on instance / container startup
and loaded into tmpfs
Library support for transparently loading and decrypting from configuration files
Secret Protection
The only place secrets should exist in the clear is in ram when they are being used
Blinded( EncryptedBundle(Secret, Policy Id) )
Blinded( Secret )
Mutual TLS
Instance /
Container
Metatron
X.509 cert
Decryption
Server
Metatron
X.509 cert
Host
Problem: kernel vulnerability away from loss of containment
Solutions
• Don’t use a generic kernel, use one tuned for your environment
• get rid of unneeded features, modules, and drivers
• Follow kernel hardening best practices like the Kernel Self Protection Project
Consider:
Firecracker
Runtime
Use User Namespaces
Docker 1.10 - Introduced User Namespaces
• Didn’t work /w shared networking NS

Docker 1.11 - Fixed shared networking NS
• User id mapping is per daemon (not per container)

Titus uses unique user namespace per container, shared User Id mapping
• avoids problems with shared filesystems
Vulnerability Management
Problem:
Stop known vulnerabilities from getting introduced into your ecosystem
Solution:
‘Shift left’
• IDE plugins
• Scanning of pull requests & builds in CI system
Vulnerability Management
Problem:
Discover and eliminate vulnerabilities in your ecosystem
Theory:
Scan your container images
Practice:
Discovering vulnerabilities is relatively easy,
flushing them from your ecosystem is hard
Change Management
People
> 1K Engineers
Applications
> 5K Micro Services
CI
> 600K CI builds per
week
Artifacts
> 2K NPMs
> 17K Debians
> 17K AMIs
> 97K JARs
Artifact Churn
Not deployed for ~ 3 days
~ 18K total
Deleted per day
~ 13K total
Deployments &
Autoscaling
> 3M containers deployed
per week
• Most batch workloads
< 1hour
• Most Service
containers < 1 day
~ 50% VM Instance churn
per day
Change Management
Who needs to change what when?
Change campaigns
• Targeted & actionable communication
• Email, Spinnaker, linters, build warnings
Deprecation cycles
• All micro services should be rebuilt &
redeployed with latest supported artifact
versions every 90 days
• Act as a forcing function to purge old /
vulnerable software
Orange: campaign rules
Pink: primary blockers
Green: affected services
Takeaways
1. Cloud & Platform control planes are of strategic importance
• protect with multiple independent layers of security
2. People and Service identity are the foundation
• AuthN, AuthZ, & Auditing
• Secret Management
Takeaways
3. Need to take an ecosystem approach
• Container security does not happen in isolation
• Engineers should get Security involved early in project / platform lifecycle
• As a security practitioner you take what is there and iterate
4. Users will need help adopting containers responsibly
• Expect problematic containers and workloads
5. Users expect ability to debug and performance tune
• Metrics, Monitoring, and Alerting are key
• SSH as break glass, not as a crutch
Security:
Russell Lewis: OSCON 2016 — How Netflix Gives All Its Engineers SSH Access To Instances Running In Production
Ian Haken: USENIX Enigma 2017 — Secrets at Scale: Automated Bootstrapping of Secrets & Identity in the Cloud
Manish Mehta: CloudNativeCon 2017 — How Netflix Is Solving Authorization Across Their Cloud
Manish Mehta: RWC 2018 — Secrets at Scale
Travis McPeak: Enigma 2018 — Least Privilege: Security Gain without Developer Pain
Netflix Tech Blog —Security
Titus Team:
Netflix OSS: Season 6 Episode 1 - Titus, Slides, Source
QConSF18 - Disenchantment: Netflix Titus, its Feisty Team, and Daemon

More Related Content

What's hot

Threat detection on AWS: An introduction to Amazon GuardDuty - FND216 - AWS r...
Threat detection on AWS: An introduction to Amazon GuardDuty - FND216 - AWS r...Threat detection on AWS: An introduction to Amazon GuardDuty - FND216 - AWS r...
Threat detection on AWS: An introduction to Amazon GuardDuty - FND216 - AWS r...Amazon Web Services
 
Running Microservices on AWS Elastic Beanstalk
Running Microservices on AWS Elastic BeanstalkRunning Microservices on AWS Elastic Beanstalk
Running Microservices on AWS Elastic BeanstalkAmazon Web Services
 
Understanding container security
Understanding container securityUnderstanding container security
Understanding container securityJohn Kinsella
 
Amazon GuardDuty: Intelligent Threat Detection and Continuous Monitoring to P...
Amazon GuardDuty: Intelligent Threat Detection and Continuous Monitoring to P...Amazon GuardDuty: Intelligent Threat Detection and Continuous Monitoring to P...
Amazon GuardDuty: Intelligent Threat Detection and Continuous Monitoring to P...Amazon Web Services
 
Identity and Access Management: The First Step in AWS Security
Identity and Access Management: The First Step in AWS SecurityIdentity and Access Management: The First Step in AWS Security
Identity and Access Management: The First Step in AWS SecurityAmazon Web Services
 
Overcoming the old ways of working with DevSecOps - Culture, Data, Graph, and...
Overcoming the old ways of working with DevSecOps - Culture, Data, Graph, and...Overcoming the old ways of working with DevSecOps - Culture, Data, Graph, and...
Overcoming the old ways of working with DevSecOps - Culture, Data, Graph, and...Erkang Zheng
 
API Security Best Practices & Guidelines
API Security Best Practices & GuidelinesAPI Security Best Practices & Guidelines
API Security Best Practices & GuidelinesPrabath Siriwardena
 
Build CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation SlidesBuild CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation SlidesAmazon Web Services
 
Identity and Access Management: The First Step in AWS Security
Identity and Access Management: The First Step in AWS SecurityIdentity and Access Management: The First Step in AWS Security
Identity and Access Management: The First Step in AWS SecurityAmazon Web Services
 
VPC Design and New Capabilities for Amazon VPC
VPC Design and New Capabilities for Amazon VPCVPC Design and New Capabilities for Amazon VPC
VPC Design and New Capabilities for Amazon VPCAmazon Web Services
 
SAST vs. DAST: What’s the Best Method For Application Security Testing?
SAST vs. DAST: What’s the Best Method For Application Security Testing?SAST vs. DAST: What’s the Best Method For Application Security Testing?
SAST vs. DAST: What’s the Best Method For Application Security Testing?Cigital
 

What's hot (20)

Cloud security
Cloud security Cloud security
Cloud security
 
DEVSECOPS.pptx
DEVSECOPS.pptxDEVSECOPS.pptx
DEVSECOPS.pptx
 
Amazon API Gateway
Amazon API GatewayAmazon API Gateway
Amazon API Gateway
 
Threat detection on AWS: An introduction to Amazon GuardDuty - FND216 - AWS r...
Threat detection on AWS: An introduction to Amazon GuardDuty - FND216 - AWS r...Threat detection on AWS: An introduction to Amazon GuardDuty - FND216 - AWS r...
Threat detection on AWS: An introduction to Amazon GuardDuty - FND216 - AWS r...
 
Running Microservices on AWS Elastic Beanstalk
Running Microservices on AWS Elastic BeanstalkRunning Microservices on AWS Elastic Beanstalk
Running Microservices on AWS Elastic Beanstalk
 
Introduction to Amazon EKS
Introduction to Amazon EKSIntroduction to Amazon EKS
Introduction to Amazon EKS
 
Understanding container security
Understanding container securityUnderstanding container security
Understanding container security
 
Amazon GuardDuty: Intelligent Threat Detection and Continuous Monitoring to P...
Amazon GuardDuty: Intelligent Threat Detection and Continuous Monitoring to P...Amazon GuardDuty: Intelligent Threat Detection and Continuous Monitoring to P...
Amazon GuardDuty: Intelligent Threat Detection and Continuous Monitoring to P...
 
DevSecOps What Why and How
DevSecOps What Why and HowDevSecOps What Why and How
DevSecOps What Why and How
 
Identity and Access Management: The First Step in AWS Security
Identity and Access Management: The First Step in AWS SecurityIdentity and Access Management: The First Step in AWS Security
Identity and Access Management: The First Step in AWS Security
 
Overcoming the old ways of working with DevSecOps - Culture, Data, Graph, and...
Overcoming the old ways of working with DevSecOps - Culture, Data, Graph, and...Overcoming the old ways of working with DevSecOps - Culture, Data, Graph, and...
Overcoming the old ways of working with DevSecOps - Culture, Data, Graph, and...
 
API Security Best Practices & Guidelines
API Security Best Practices & GuidelinesAPI Security Best Practices & Guidelines
API Security Best Practices & Guidelines
 
Deep dive into AWS IAM
Deep dive into AWS IAMDeep dive into AWS IAM
Deep dive into AWS IAM
 
How Secure Are Your APIs?
How Secure Are Your APIs?How Secure Are Your APIs?
How Secure Are Your APIs?
 
Build CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation SlidesBuild CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation Slides
 
Introduction to DevOps on AWS
Introduction to DevOps on AWSIntroduction to DevOps on AWS
Introduction to DevOps on AWS
 
Aws VPC
Aws VPCAws VPC
Aws VPC
 
Identity and Access Management: The First Step in AWS Security
Identity and Access Management: The First Step in AWS SecurityIdentity and Access Management: The First Step in AWS Security
Identity and Access Management: The First Step in AWS Security
 
VPC Design and New Capabilities for Amazon VPC
VPC Design and New Capabilities for Amazon VPCVPC Design and New Capabilities for Amazon VPC
VPC Design and New Capabilities for Amazon VPC
 
SAST vs. DAST: What’s the Best Method For Application Security Testing?
SAST vs. DAST: What’s the Best Method For Application Security Testing?SAST vs. DAST: What’s the Best Method For Application Security Testing?
SAST vs. DAST: What’s the Best Method For Application Security Testing?
 

Similar to DCSF19 Container Security: Theory & Practice at Netflix

AWS re:Invent 2016: Netflix: Container Scheduling, Execution, and Integration...
AWS re:Invent 2016: Netflix: Container Scheduling, Execution, and Integration...AWS re:Invent 2016: Netflix: Container Scheduling, Execution, and Integration...
AWS re:Invent 2016: Netflix: Container Scheduling, Execution, and Integration...Amazon Web Services
 
AWS re:Invent 2016: Securing Container-Based Applications (CON402)
AWS re:Invent 2016: Securing Container-Based Applications (CON402)AWS re:Invent 2016: Securing Container-Based Applications (CON402)
AWS re:Invent 2016: Securing Container-Based Applications (CON402)Amazon Web Services
 
AWS re:Invent 2016: Securing Container-Based Applications (CON402)
AWS re:Invent 2016: Securing Container-Based Applications (CON402)AWS re:Invent 2016: Securing Container-Based Applications (CON402)
AWS re:Invent 2016: Securing Container-Based Applications (CON402)Amazon Web Services
 
Re:invent 2016 Container Scheduling, Execution and AWS Integration
Re:invent 2016 Container Scheduling, Execution and AWS IntegrationRe:invent 2016 Container Scheduling, Execution and AWS Integration
Re:invent 2016 Container Scheduling, Execution and AWS Integrationaspyker
 
Monitoring microservices: Docker, Mesos and Kubernetes visibility at scale
Monitoring microservices: Docker, Mesos and Kubernetes visibility at scaleMonitoring microservices: Docker, Mesos and Kubernetes visibility at scale
Monitoring microservices: Docker, Mesos and Kubernetes visibility at scaleAlessandro Gallotta
 
stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...
stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...
stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...NETWAYS
 
Docker Containers Security
Docker Containers SecurityDocker Containers Security
Docker Containers SecurityStephane Woillez
 
5 Ways to Secure Your Containers for Docker and Beyond
5 Ways to Secure Your Containers for Docker and Beyond5 Ways to Secure Your Containers for Docker and Beyond
5 Ways to Secure Your Containers for Docker and BeyondBlack Duck by Synopsys
 
Patterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesPatterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesJosef Adersberger
 
Patterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesPatterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesQAware GmbH
 
QConSF18 - Disenchantment: Netflix Titus, its Feisty Team, and Daemons
QConSF18 - Disenchantment: Netflix Titus, its Feisty Team, and DaemonsQConSF18 - Disenchantment: Netflix Titus, its Feisty Team, and Daemons
QConSF18 - Disenchantment: Netflix Titus, its Feisty Team, and Daemonsaspyker
 
Lions, Tigers and Deers: What building zoos can teach us about securing micro...
Lions, Tigers and Deers: What building zoos can teach us about securing micro...Lions, Tigers and Deers: What building zoos can teach us about securing micro...
Lions, Tigers and Deers: What building zoos can teach us about securing micro...Sysdig
 
Hacking Tizen : The OS of Everything - Nullcon Goa 2015
Hacking Tizen : The OS of Everything - Nullcon Goa 2015Hacking Tizen : The OS of Everything - Nullcon Goa 2015
Hacking Tizen : The OS of Everything - Nullcon Goa 2015Ajin Abraham
 
10 tips for Cloud Native Security
10 tips for Cloud Native Security10 tips for Cloud Native Security
10 tips for Cloud Native SecurityKarthik Gaekwad
 
John adams talk cloudy
John adams   talk cloudyJohn adams   talk cloudy
John adams talk cloudyJohn Adams
 
Immutable Infrastructure Security
Immutable Infrastructure SecurityImmutable Infrastructure Security
Immutable Infrastructure SecurityRicky Sanders
 
From Containerized Application to Secure and Scaling With Kubernetes
From Containerized Application to Secure and Scaling With KubernetesFrom Containerized Application to Secure and Scaling With Kubernetes
From Containerized Application to Secure and Scaling With KubernetesShikha Srivastava
 

Similar to DCSF19 Container Security: Theory & Practice at Netflix (20)

AWS re:Invent 2016: Netflix: Container Scheduling, Execution, and Integration...
AWS re:Invent 2016: Netflix: Container Scheduling, Execution, and Integration...AWS re:Invent 2016: Netflix: Container Scheduling, Execution, and Integration...
AWS re:Invent 2016: Netflix: Container Scheduling, Execution, and Integration...
 
Containers 101
Containers 101Containers 101
Containers 101
 
AWS re:Invent 2016: Securing Container-Based Applications (CON402)
AWS re:Invent 2016: Securing Container-Based Applications (CON402)AWS re:Invent 2016: Securing Container-Based Applications (CON402)
AWS re:Invent 2016: Securing Container-Based Applications (CON402)
 
AWS re:Invent 2016: Securing Container-Based Applications (CON402)
AWS re:Invent 2016: Securing Container-Based Applications (CON402)AWS re:Invent 2016: Securing Container-Based Applications (CON402)
AWS re:Invent 2016: Securing Container-Based Applications (CON402)
 
Re:invent 2016 Container Scheduling, Execution and AWS Integration
Re:invent 2016 Container Scheduling, Execution and AWS IntegrationRe:invent 2016 Container Scheduling, Execution and AWS Integration
Re:invent 2016 Container Scheduling, Execution and AWS Integration
 
Monitoring microservices: Docker, Mesos and Kubernetes visibility at scale
Monitoring microservices: Docker, Mesos and Kubernetes visibility at scaleMonitoring microservices: Docker, Mesos and Kubernetes visibility at scale
Monitoring microservices: Docker, Mesos and Kubernetes visibility at scale
 
stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...
stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...
stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...
 
Docker Containers Security
Docker Containers SecurityDocker Containers Security
Docker Containers Security
 
5 Ways to Secure Your Containers for Docker and Beyond
5 Ways to Secure Your Containers for Docker and Beyond5 Ways to Secure Your Containers for Docker and Beyond
5 Ways to Secure Your Containers for Docker and Beyond
 
Containers and Security for DevOps
Containers and Security for DevOpsContainers and Security for DevOps
Containers and Security for DevOps
 
Patterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesPatterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to Kubernetes
 
Patterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesPatterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to Kubernetes
 
QConSF18 - Disenchantment: Netflix Titus, its Feisty Team, and Daemons
QConSF18 - Disenchantment: Netflix Titus, its Feisty Team, and DaemonsQConSF18 - Disenchantment: Netflix Titus, its Feisty Team, and Daemons
QConSF18 - Disenchantment: Netflix Titus, its Feisty Team, and Daemons
 
Lions, Tigers and Deers: What building zoos can teach us about securing micro...
Lions, Tigers and Deers: What building zoos can teach us about securing micro...Lions, Tigers and Deers: What building zoos can teach us about securing micro...
Lions, Tigers and Deers: What building zoos can teach us about securing micro...
 
Hacking Tizen : The OS of Everything - Nullcon Goa 2015
Hacking Tizen : The OS of Everything - Nullcon Goa 2015Hacking Tizen : The OS of Everything - Nullcon Goa 2015
Hacking Tizen : The OS of Everything - Nullcon Goa 2015
 
Kubernetes Security
Kubernetes SecurityKubernetes Security
Kubernetes Security
 
10 tips for Cloud Native Security
10 tips for Cloud Native Security10 tips for Cloud Native Security
10 tips for Cloud Native Security
 
John adams talk cloudy
John adams   talk cloudyJohn adams   talk cloudy
John adams talk cloudy
 
Immutable Infrastructure Security
Immutable Infrastructure SecurityImmutable Infrastructure Security
Immutable Infrastructure Security
 
From Containerized Application to Secure and Scaling With Kubernetes
From Containerized Application to Secure and Scaling With KubernetesFrom Containerized Application to Secure and Scaling With Kubernetes
From Containerized Application to Secure and Scaling With Kubernetes
 

More from Docker, Inc.

Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Docker, Inc.
 
How to Improve Your Image Builds Using Advance Docker Build
How to Improve Your Image Builds Using Advance Docker BuildHow to Improve Your Image Builds Using Advance Docker Build
How to Improve Your Image Builds Using Advance Docker BuildDocker, Inc.
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSDocker, Inc.
 
Securing Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINXSecuring Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINXDocker, Inc.
 
How To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and ComposeHow To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and ComposeDocker, Inc.
 
Distributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at SalesforceDistributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at SalesforceDocker, Inc.
 
The First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker HubThe First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker HubDocker, Inc.
 
Monitoring in a Microservices World
Monitoring in a Microservices WorldMonitoring in a Microservices World
Monitoring in a Microservices WorldDocker, Inc.
 
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...Docker, Inc.
 
Predicting Space Weather with Docker
Predicting Space Weather with DockerPredicting Space Weather with Docker
Predicting Space Weather with DockerDocker, Inc.
 
Become a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio CodeBecome a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio CodeDocker, Inc.
 
How to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container RegistryHow to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container RegistryDocker, Inc.
 
Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!Docker, Inc.
 
Kubernetes at Datadog Scale
Kubernetes at Datadog ScaleKubernetes at Datadog Scale
Kubernetes at Datadog ScaleDocker, Inc.
 
Labels, Labels, Labels
Labels, Labels, Labels Labels, Labels, Labels
Labels, Labels, Labels Docker, Inc.
 
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment ModelUsing Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment ModelDocker, Inc.
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSDocker, Inc.
 
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...Docker, Inc.
 
Developing with Docker for the Arm Architecture
Developing with Docker for the Arm ArchitectureDeveloping with Docker for the Arm Architecture
Developing with Docker for the Arm ArchitectureDocker, Inc.
 

More from Docker, Inc. (20)

Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience
 
How to Improve Your Image Builds Using Advance Docker Build
How to Improve Your Image Builds Using Advance Docker BuildHow to Improve Your Image Builds Using Advance Docker Build
How to Improve Your Image Builds Using Advance Docker Build
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
 
Securing Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINXSecuring Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINX
 
How To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and ComposeHow To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and Compose
 
Hands-on Helm
Hands-on Helm Hands-on Helm
Hands-on Helm
 
Distributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at SalesforceDistributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at Salesforce
 
The First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker HubThe First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker Hub
 
Monitoring in a Microservices World
Monitoring in a Microservices WorldMonitoring in a Microservices World
Monitoring in a Microservices World
 
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
 
Predicting Space Weather with Docker
Predicting Space Weather with DockerPredicting Space Weather with Docker
Predicting Space Weather with Docker
 
Become a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio CodeBecome a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio Code
 
How to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container RegistryHow to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container Registry
 
Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!
 
Kubernetes at Datadog Scale
Kubernetes at Datadog ScaleKubernetes at Datadog Scale
Kubernetes at Datadog Scale
 
Labels, Labels, Labels
Labels, Labels, Labels Labels, Labels, Labels
Labels, Labels, Labels
 
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment ModelUsing Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
 
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
 
Developing with Docker for the Arm Architecture
Developing with Docker for the Arm ArchitectureDeveloping with Docker for the Arm Architecture
Developing with Docker for the Arm Architecture
 

Recently uploaded

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 

Recently uploaded (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 

DCSF19 Container Security: Theory & Practice at Netflix

  • 1. Michael Wardrop Senior Security Software Engineer, Platform Security Container Security: Theory & Practice @
  • 2. Why? There are lots of great presentations about Container Security theory I hope to inspire more sharing so that we learn from each other and improve everyone’s security together Not so may about the challenges of doing it in practice
  • 3. Who? Security Practitioners Developers who are curious about ‘how the sausage is made’ Builders and Operators of container platforms
  • 4. Context Know your threat models - My threat models may not be the same as yours Don’t copy & paste security - Tailor solutions to your context Although I am presenting, this is the work of many people from multiple teams over a few years
  • 6. Containers at Netflix Started organically with engineers • Improved polyglot development and testing experience Basic batch processing systems • cron in the cloud • Extract, Transform, Load With momentum came demand • Container management platform • Integration with AWS and Netflix ecosystem
  • 8. Titus Netflix’s Container Management Platform > 3 million containers launched per week Scheduling • Service & batch job lifecycle • Resource management AWS & Netflix Integrations High churn • Most batch workloads < 1hour • Due to auto scaling most Service containers < 1 day multi Region, multi AZ Chaos Monkey & regional failover > 1K different images
  • 9. Titus: High Level Architecture
  • 10. Titus: High Level Architecture
  • 11. Newt Netflix Workflow Toolkit - from Productivity Engineering • Initialization of Projects (Stash repos, Jenkins jobs, Spinnaker pipelines, & alerts) • Code generation • Consistent development environment in polyglot world • Isolated, reproducible, and cacheable builds • Container based testing • Good place to incorporate best practices and secure defaults Docker is an important component
  • 12. Rapid growth of container use cases • 1000+ services • Netflix API, Node.js Backend UI Scripts • Machine Learning (GPUs) for personalization • Encoding and Content use cases • Netflix Studio use cases • CDN tracking and planning • Massively parallel CI system • Data Pipeline routing & Stream Processing as a Service • Big Data platform use cases
  • 14. What’s interesting about OCI Containers? 1. Operating System virtualization - rely on the OS Kernel for security. On Linux, this means: • Namespaces - different userland views • Control Groups - resource limits • Seccomp - Syscall filtering • Mandatory Access Control - Apparmor, SELinux, etc • Capabilities - break up the power of root • Pivot Root - Change the root file system 2. File System Image - Bring your dependencies with you Implemented as a Tar of Tars with some metadata
  • 15. Registry Image Scanning Patch Management Control Plane Cloud Networking and APIs Developer Identity Service Identity Development Production Secret Management Key Management Version Control Source Code Container Ecosystem Security What is different? Continuous Integration Continuous Delivery
  • 16. Container Ecosystem Security What isn’t impacted? Registry Image Scanning Patch Management Control Plane Cloud Networking and APIs Developer Identity Service Identity Development Production Secret Management Key Management Version Control Source Code Continuous Integration Continuous Delivery
  • 18. Cloud Security AWS EC2 Metadata proxy • Started with one per host, changed to one per container • Block Server Side Request Forgery (SSRF) and XML External Entity (XXE) injection • Honey Credentials Identity & Access Management • IAM Role per container • Limit IAM permissions for the host & bind credentials to the host • Restrict which IAM roles can be used by which Applications Elastic Network Interfaces • VPC routable IP Address per container • Assigning Security Groups to containers Cloud APIs have great power, protect them!
  • 19. Cloud Security Separate accounts for Control Plane and Workers (12 accounts total) STS service in control plane account • AuthN, AuthZ, & Audit Container’s Identity based on Target IAM account • Workload can be logically in Target account despite executing on Titus New Titus Architecture Agent Pool Titus US-East-1 Control Plane Account Titus US-East-1 Agent Account Federation (New) Internet Agent Pool Titus US-East-1 Account Federation (Old) Agent PoolAgent Pool
  • 20. Cloud Security OSS tools from Netflix - some assembly required, talk to us
  • 21. Control Plane Security Root controls ONE host, Control Plane controls ALL hosts. API • V1 was http • V2 was https with optional mutual TLS • V3 mutual TLS only with audit logs Master to Workers communication • Originally relied on Security Groups • no authentication, authorization, or encryption • Dangerous! 1 misconfiguration away from shadow control plane attacks • Mutual TLS authN • AuthZ policies • Auditing got root control?
  • 22. Control Plane Security Problem: Invalid Jobs Uses REST/JSON poorly { env: { “PATH” : null } } Symptoms • Scheduler crashes, fails over, crashes, repeat
 Solutions • Input validation, input fuzz testing, exception handling
  • 23. Control Plane Security Problem: Failing Jobs That Repeat Symptoms • Scheduler works really hard • Cloud resources are allocated / deallocated fast
 Solution • Rate limiting of failing jobs Image: “org/imagename:lateest” Command:/bin/besh -c …
  • 24. Identity for People Pandora: unified identity service Meechum: multi factor Single Sign On Metatron uses Meechum identity to create: ➡X.509 cert • person to service authN via Mutual TLS ➡SSH cert • Bastion access
  • 25. Cryptographic bootstrap of service identity in the cloud Established before application code, supports: • Ec2 Instances built on our BaseAMI • Containers on Titus • Netflix Functions All get X.509 certificates for use in Mutual TLS, enabling authentication Metatron: Identity for Services
  • 26. Round 1 • Based on metadata signed by AWS • No freshness guarantee, therefore no support for instance restarts • No Lambda support ☹ Round 2 • Based on KMS encryption context • Freshness guarantee, therefore can refresh identity at any time • Lambda support 🥳 Metatron: Identity for Services Closest open source equivalent is How? Starts with an Application in Spinnaker, which signs some metadata, and puts it in User Data given to AWS
  • 27. Gandalf: Authorization Gandalf decides who can be let in, and who shall not pass. • Web portal for defining policies • REST • gRPC • SSH • custom • Policy updates are pushed out to Authorization agent • All authorization decisions are made locally in ns
  • 28. SSH Access For extraordinary circumstances Vast majority of Instances and Containers go through their lifecycle without SSH access Initial implementation • connection from bastion into limited environment on the host restricted docker exec and docker cp like functionality Current implementation • After authorization check, the Bastion calls the Titus control plane • A specially configured sshd is injected into the container • The bastion connects directly to the injected sshd
  • 29. SSH
  • 30. Secret Protection No secrets in code! Encrypted via Gandalf web portal • Define a policy for which Metatron identities (applications, groups, individuals) can access • Copy a Base64 encoded bundle / download a binary file Files in conventional path are automatically decrypted on instance / container startup and loaded into tmpfs Library support for transparently loading and decrypting from configuration files
  • 31. Secret Protection The only place secrets should exist in the clear is in ram when they are being used Blinded( EncryptedBundle(Secret, Policy Id) ) Blinded( Secret ) Mutual TLS Instance / Container Metatron X.509 cert Decryption Server Metatron X.509 cert
  • 32. Host Problem: kernel vulnerability away from loss of containment Solutions • Don’t use a generic kernel, use one tuned for your environment • get rid of unneeded features, modules, and drivers • Follow kernel hardening best practices like the Kernel Self Protection Project Consider: Firecracker
  • 33. Runtime Use User Namespaces Docker 1.10 - Introduced User Namespaces • Didn’t work /w shared networking NS
 Docker 1.11 - Fixed shared networking NS • User id mapping is per daemon (not per container)
 Titus uses unique user namespace per container, shared User Id mapping • avoids problems with shared filesystems
  • 34. Vulnerability Management Problem: Stop known vulnerabilities from getting introduced into your ecosystem Solution: ‘Shift left’ • IDE plugins • Scanning of pull requests & builds in CI system
  • 35. Vulnerability Management Problem: Discover and eliminate vulnerabilities in your ecosystem Theory: Scan your container images Practice: Discovering vulnerabilities is relatively easy, flushing them from your ecosystem is hard
  • 36. Change Management People > 1K Engineers Applications > 5K Micro Services CI > 600K CI builds per week Artifacts > 2K NPMs > 17K Debians > 17K AMIs > 97K JARs Artifact Churn Not deployed for ~ 3 days ~ 18K total Deleted per day ~ 13K total Deployments & Autoscaling > 3M containers deployed per week • Most batch workloads < 1hour • Most Service containers < 1 day ~ 50% VM Instance churn per day
  • 37. Change Management Who needs to change what when? Change campaigns • Targeted & actionable communication • Email, Spinnaker, linters, build warnings Deprecation cycles • All micro services should be rebuilt & redeployed with latest supported artifact versions every 90 days • Act as a forcing function to purge old / vulnerable software Orange: campaign rules Pink: primary blockers Green: affected services
  • 38. Takeaways 1. Cloud & Platform control planes are of strategic importance • protect with multiple independent layers of security 2. People and Service identity are the foundation • AuthN, AuthZ, & Auditing • Secret Management
  • 39. Takeaways 3. Need to take an ecosystem approach • Container security does not happen in isolation • Engineers should get Security involved early in project / platform lifecycle • As a security practitioner you take what is there and iterate 4. Users will need help adopting containers responsibly • Expect problematic containers and workloads 5. Users expect ability to debug and performance tune • Metrics, Monitoring, and Alerting are key • SSH as break glass, not as a crutch
  • 40. Security: Russell Lewis: OSCON 2016 — How Netflix Gives All Its Engineers SSH Access To Instances Running In Production Ian Haken: USENIX Enigma 2017 — Secrets at Scale: Automated Bootstrapping of Secrets & Identity in the Cloud Manish Mehta: CloudNativeCon 2017 — How Netflix Is Solving Authorization Across Their Cloud Manish Mehta: RWC 2018 — Secrets at Scale Travis McPeak: Enigma 2018 — Least Privilege: Security Gain without Developer Pain Netflix Tech Blog —Security Titus Team: Netflix OSS: Season 6 Episode 1 - Titus, Slides, Source QConSF18 - Disenchantment: Netflix Titus, its Feisty Team, and Daemon