Top Banner
A Security Control Language for Securing Continuous Deployments Brian Eddy, Norman Wilde
15

A Security Control Language for Securing Continuous ... · A Security Control Language for Securing Continuous Deployments Brian Eddy, Norman Wilde. The Problem DevOps Agile deployment

May 20, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: A Security Control Language for Securing Continuous ... · A Security Control Language for Securing Continuous Deployments Brian Eddy, Norman Wilde. The Problem DevOps Agile deployment

A Security Control Language for Securing Continuous

DeploymentsBrian Eddy, Norman Wilde

Page 2: A Security Control Language for Securing Continuous ... · A Security Control Language for Securing Continuous Deployments Brian Eddy, Norman Wilde. The Problem DevOps Agile deployment

The ProblemDevOps

Agile deployment of new features to production, up to hundreds of times

per day

DevOps

Continuous Deployment

Infrastructure-as-code

Page 3: A Security Control Language for Securing Continuous ... · A Security Control Language for Securing Continuous Deployments Brian Eddy, Norman Wilde. The Problem DevOps Agile deployment

The Problem

Continuous Deployment

A "pipeline" automates provision of

environments for build, test, QA, staging, and

production

DevOps

Continuous Deployment

Infrastructure-as-code

Page 4: A Security Control Language for Securing Continuous ... · A Security Control Language for Securing Continuous Deployments Brian Eddy, Norman Wilde. The Problem DevOps Agile deployment

The ProblemInfrastructure-as-code

Scripts and templates define how each

environment is created.

Test, QA, staging and production are kept near-

identical to reduce manual deployment

errors

DevOps

Continuous Deployment

Infrastructure-as-code

Page 5: A Security Control Language for Securing Continuous ... · A Security Control Language for Securing Continuous Deployments Brian Eddy, Norman Wilde. The Problem DevOps Agile deployment

But What About Security*

The Good• Baselined scripts and

templates can be inspected and tested

• Short-lived immutable virtual machines can be a difficult target for an attacker

The Bad• Those scripts and

templates are very complex and hard to verify

• The pipeline tools add attack surface that must be protected

* Security for DevOps Deployment Processes: Defenses, Risks, Research Directions. To Appear: IJSEA.

This Project Focuses

Here!

Page 6: A Security Control Language for Securing Continuous ... · A Security Control Language for Securing Continuous Deployments Brian Eddy, Norman Wilde. The Problem DevOps Agile deployment

Pre-DevOps Attack SurfaceOps manually builds each environment

Build Server

Application Virtual

Machines

Test, QA Staging Production EndUser

Page 7: A Security Control Language for Securing Continuous ... · A Security Control Language for Securing Continuous Deployments Brian Eddy, Norman Wilde. The Problem DevOps Agile deployment

New Attack Surface Deployment Service and Deployment Agent create each environmentBuild Server

EndUser

Deployment Service(e.g. Chef Server)

Deployment Agent(e.g. Chef Client)

Application Virtual

Machines

Test, QA Staging Production

Page 8: A Security Control Language for Securing Continuous ... · A Security Control Language for Securing Continuous Deployments Brian Eddy, Norman Wilde. The Problem DevOps Agile deployment

We Get Hacked!Attacker penetrates a production machine

Build ServerDeployment Service

(e.g. Chef Server)

Application Virtual

Machines

Test, QA Staging Production

Page 9: A Security Control Language for Securing Continuous ... · A Security Control Language for Securing Continuous Deployments Brian Eddy, Norman Wilde. The Problem DevOps Agile deployment

We Get Hacked! Production has path to Deployment Service, which is then compromisedBuild Server

Deployment Service(e.g. Chef Server)

Application Virtual

Machines

Test, QA Staging Production

Page 10: A Security Control Language for Securing Continuous ... · A Security Control Language for Securing Continuous Deployments Brian Eddy, Norman Wilde. The Problem DevOps Agile deployment

We Get Hacked! Deployment Service compromises staging, AFTER the QA tests have been run!Build Server

Deployment Service(e.g. Chef Server)

Application Virtual

Machines

Test, QA Staging Production

Page 11: A Security Control Language for Securing Continuous ... · A Security Control Language for Securing Continuous Deployments Brian Eddy, Norman Wilde. The Problem DevOps Agile deployment

We Get Hacked! On next push to production, entire system may be compromisedBuild Server

Deployment Service(e.g. Chef Server)

Application Virtual

Machines

Test, QA Staging Production

Page 12: A Security Control Language for Securing Continuous ... · A Security Control Language for Securing Continuous Deployments Brian Eddy, Norman Wilde. The Problem DevOps Agile deployment

Solution: A Distributed Security Control Language

Build Server

EndUser

Deployment Service(e.g. Chef Server) Monitor

Application Virtual

Machines

Test, QA Staging Production

Page 13: A Security Control Language for Securing Continuous ... · A Security Control Language for Securing Continuous Deployments Brian Eddy, Norman Wilde. The Problem DevOps Agile deployment

Solution: Infrastructure byContract Assertions

Assert: There is no path from production to the deployment service

Build Server

EndUser

Deployment Service(e.g. Chef Server) Monitor

Application Virtual

Machines

Test, QA Staging Production

Page 14: A Security Control Language for Securing Continuous ... · A Security Control Language for Securing Continuous Deployments Brian Eddy, Norman Wilde. The Problem DevOps Agile deployment

Summary of Research Approach

1. Consult with Affiliates to define a context: Small scale model application and pipeline

2. Define a small number of realistic assertions for this context

3. Write assertions in the security control language

4. Develop code for agents and monitor

5. Perform and document proof-of-concept case study for this context

Page 15: A Security Control Language for Securing Continuous ... · A Security Control Language for Securing Continuous Deployments Brian Eddy, Norman Wilde. The Problem DevOps Agile deployment

Long Term Benefit: Verifiable Infrastructure

1. Improved security through:1. Verified deployment pipeline2. Verified application configuration

2. Avoid costly and preventable security failures

For further information:

Brian Eddy, [email protected]