40
Securing your Deployment Pipeline Strategy & Tech Talk - April 19, 2016 Maximilian Schöfmann | @schoefmann Container Solutions Switzerland

Securing Your Deployment Pipeline With Docker

Embed Size (px)

Citation preview

Page 1: Securing Your Deployment Pipeline With Docker

Securing your Deployment Pipeline Strategy & Tech Talk - April 19, 2016

Maximilian Schöfmann | @schoefmann

Container Solutions Switzerland

Page 2: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

B.C. (Before Continuous Integration)

Page 3: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

B.C. (Before Continuous Integration)

homoabap-cobolusintegratingsoftwaremodules,ca.200000B.C

Page 4: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

A.D. - but Pre-DevOps (CI only)

Page 5: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

DevOps (present time)

Page 6: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

DevOps + Continuous Delivery + PaaS

Page 7: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

… and Security

Page 8: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

Avg: 103 days to fix a vulnerability

http://darkmatters.norsecorp.com/2015/06/09/security-vulnerabilities-take-average-of-103-days-to-remediate/

Page 9: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

CD improves reaction time!

Page 10: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

So we need to:

Page 11: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

…with better tooling!

Page 12: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

Stages of a delivery pipeline

Commit Integration Acceptance Release

Page 13: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

Stages of a delivery pipeline

Commit Integration Acceptance Release

unit tests

Page 14: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

Stages of a delivery pipeline

Commit Integration Acceptance Release

unit tests service tests

Page 15: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

Stages of a delivery pipeline

Commit Integration Acceptance Release

unit tests service tests UI tests

Page 16: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

Stages of a delivery pipeline

Commit Integration Acceptance Release

unit tests service tests UI tests (exploratory tests)

Page 17: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

Test pyramid

Unit Tests

Service Tests

UI tests

fast

er fe

edba

ck

conf

iden

ce

coverage

Page 18: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

“AppSec Pipeline”

Commit Integration Acceptance Release

unit tests service tests UI tests (exploratory tests)

Page 19: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

“AppSec Pipeline”

Commit Integration Acceptance Release

unit tests service tests UI tests (exploratory tests)

static codeanalysis

Page 20: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

“AppSec Pipeline”

Commit Integration Acceptance Release

unit tests service tests UI tests (exploratory tests)

static codeanalysis

vulnerability scanning

Page 21: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

“AppSec Pipeline”

Commit Integration Acceptance Release

unit tests service tests UI tests (exploratory tests)

static codeanalysis

vulnerability scanning

end-to-end security tests

Page 22: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

“AppSec Pipeline”

Commit Integration Acceptance Release

unit tests service tests UI tests (exploratory tests)

static codeanalysis

vulnerability scanning

end-to-end security tests

(penetration tests)

Page 23: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

AppSec pyramid?

static code analysis

vulnerability scanning

E2E security tests

fast

er fe

edba

ck

conf

iden

ce

coverage

Page 24: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

Challenge: False Positives

• maintain exception/fine tuning config for scanner

• run with sensitive heuristics nightly, then update config

• or branch to manual stage to check false positives

Page 25: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

Static analysis

• SonarQube (multiple languages)

• Brakeman (Ruby/Rails)

• OWASP WAP (PHP)

• FindBugs (Java)

• FlawFinder (C/C++)

• … (many commercial, e.g. CHECKMARX)

Page 26: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

Vulnerability scanners (many commercial)

• OWASP Zed Attack Proxy (ZAP)

• Burp suite

• Acunetix

• Nessus, OpenVAS

• Nikto

• w3af

• … (lots and lots more)

Page 27: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

End to end security tests

• Standard tools like Selenium work well

• BDD-Security if you fancy text or want to integrate PO friendly E2E tests with vulnerability scans

continuumsecurity.net/bdd-intro.html

Page 28: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

more…

owasp.org/index.php/Appendix_A:_Testing_Tools

Page 29: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

But…

• Too many!

• Too different!

• Too complex!

• Stuff to install (lots!)

• Stuff to configure…

Page 30: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

But…

• Too many!

• Too different!

• Too complex!

• Stuff to install (lots!)

• Stuff to configure…

Page 31: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

And what about…

Page 32: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

If we just had a way to package those tools uniformly…

Page 33: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

If we just had a way to package those tools uniformly…

Page 34: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

Demo: Static analysis

Page 35: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

If we just had an easy way to connect scanners to apps…

Page 36: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

If we just had an easy way to connect scanners to apps…

Page 37: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

Demo: Vulnerability scanners

Page 38: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

If there was just a way to scale those tests…

Page 39: Securing Your Deployment Pipeline With Docker

www.container-solutions.com | [email protected]

If there was just a way to scale those tests…

Page 40: Securing Your Deployment Pipeline With Docker

[email protected] | @schoefmann

container-solutions.com