154
Application Security Epistemology in a Continuous Delivery World - @wickett

Application Security Epistemology in a Continuous Delivery World

Embed Size (px)

Citation preview

Page 1: Application Security Epistemology in a Continuous Delivery World

Application Security

Epistemology in a

Continuous Delivery

World- @wickett

Page 2: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

James Wickett

SR. ENGINEER, SIGNAL SCIENCES

AUSTIN, TX

HANDS-ON GAUNTLT BOOK

DEVOPS DAYS GLOBAL ORGANIZER

LASCON ORGANIZER

Page 3: Application Security Epistemology in a Continuous Delivery World

Application Security Telemetry and Monitoring

Plus Defense!

Application Security for the rest of us

An approach that integrates with devops organizations doesn't inhibit going fast

Page 4: Application Security Epistemology in a Continuous Delivery World

signalsciences.com

Page 5: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Software development is a constant experiment in knowing

Application Security abdicated runtime responsibility and development responsibility through incoherent philosophical approaches and fostering silo-thinking

Security now is where Ops was 7 years ago.

Ops found a path to change through devops, security can too

There are three ways we can add value: at development, at deploy, at runtime

Summary

Page 6: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Bad-Behavior Driven Development

Weaponizing your CD Pipeline

Application Security Telemetry and Monitoring

Continuous Hardening and Audit

Have a S-BOM! (Software Bill of Materials)

Practices

Page 7: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

A study in how we

know anything in

Application Security

Page 8: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Spoiler Alert: We don’t !

Page 9: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

once upon a time…

Page 10: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Epistemological

Problem of Software

Development

Page 11: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

We optimize for the

probable

Page 12: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Unit Testing

Page 13: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Integration Testing

Page 14: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Happy Path Engineering

Page 15: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

We also optimize

for the possible

Page 16: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Over Engineering

Page 17: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

The scaling algo

that never got used…

Page 18: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

There is too much to

choose from in the

realm of possible

Page 19: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Actually, we optimize for

the perceived probable

Page 20: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

How do we know

what to create?

Page 21: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

This is the problem

Page 22: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Epistemological

Problem of Software

Development

Page 23: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

We gather data and

rhetoric to support

our theories

Page 24: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

There are 3 major

arcs in the history of

Software Development

Page 25: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

First Arc: Agile

Page 26: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Agile avoids the problem

Page 27: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Agile reminds that

we dont know what

we are building

Page 28: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Page 29: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Behavior Driven

Development

Page 30: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

BDD = Agile + feedback

Page 31: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Behavior Driven Development is a second-generation, outside–in, pull-

based, multiple-stakeholder, multiple-scale, high-automation, agile

methodology. It describes a cycle of interactions with well-defined

outputs, resulting in the delivery of working, tested software that matters.

Dan North , 2009

Page 32: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Amplify Feedback

Loop

Page 33: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Agile emphasizes

feedback to developers

from their overlords and

sometimes even customers

Page 34: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

TLDR;

Rapid Iterations Win

Page 35: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Agile is our guiding

Light

Page 36: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

The world has

changed since Agile

Page 37: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

We don’t sell

CD’s anymore

Page 38: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Software as a Service

Page 39: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

The last fifteen years have

brought a complete change in

our delivery cadence,

distribution mechanisms and

revenue models

Page 40: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Second Arc: DevOps

Page 41: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

DEVOPS IS THE APPLICATION OF AGILE METHODOLOGY TO SYSTEM

ADMINISTRATION - THE PRACTICE OF CLOUD SYSTEM ADMINISTRATION BOOK

Page 42: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

DEVOPS

Page 43: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Agile Infrastructure

Page 44: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

http://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr

Page 45: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Less WIP

Less technical debt

Page 46: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Customers actually using

the feature while the

developer is working on it

Page 47: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Great side effect:

Produces Happy Developers

Page 48: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Page 49: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Page 50: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Devops realized that ops

doesn’t know what devs

know and vice versa

Page 51: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Dev : Ops 10 : 1

Page 52: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

DevOps is an Epistemological

breakthrough joining people

around a common problem

Page 53: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Culture is the most

important aspect to devops

succeeding in the enterprise

- Patrick DeBois

Page 54: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Culture is shaped in

part by values

Page 55: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Page 56: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Mutual Understanding

Shared Language

Shared Views

Collaborative Tooling

Page 57: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

DEVOPS IS THE INEVITABLE RESULT OF NEEDING TO DO EFFICIENT OPERATIONS IN A [DISTRIBUTED

COMPUTING AND CLOUD] ENVIRONMENT. - TOM LIMONCELLI

Page 58: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

https://puppetlabs.com/sites/default/files/2015-state-of-devops-report.pdf

Page 59: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

TLDR;

High-performing IT

organizations experience 60X

fewer failures and recover from

failure 168X faster than their

lower-performing peers. They

also deploy 30X more frequently

with 200X shorter lead times.

Page 60: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Culture Automation

Measurement Sharing

- @damonedwards, @botchagalupe

Page 61: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Devops gone wrong

Page 62: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

“THAT THE WORD #DEVOPS GETS REDUCED TO TECHNOLOGY IS A MANIFESTATION OF HOW BADLY WE NEED A CULTURAL SHIFT”

- @PATRICKDEBOIShttp://www.slideshare.net/cm6051/london-devops-31-5-years-of-devops

Page 63: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Third Arc: Continuous

Delivery

Page 64: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Continuous Delivery is not

merely how often you

deliver but how little

you can deliver at a time

Page 65: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Delivery Pipelines are rad!

Page 66: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Batch Size of 1

Page 67: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Separation of Duties

Considered Harmful

Page 68: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Give power to the

Developers to deploy

Page 69: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Reduce Code Latency

Increase Code Velocity

Page 70: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

3 Arcs: Agile DevOps

Continuous Delivery

Page 71: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

The next Arc: Security Rugged

Page 72: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

“…Those stupid developers”

- Security person

Page 73: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

“Security prefers a system

powered off and unplugged”

- Developer

Page 74: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Cultural Unrest

with security in

most organizations

Page 75: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Compliance Driven Culture

Page 76: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

“[RISK ASSESSMENT] INTRODUCES A DANGEROUS FALLACY: THAT STRUCTURED

INADEQUACY IS ALMOST AS GOOD AS ADEQUACY AND THAT UNDERFUNDED

SECURITY EFFORTS PLUS RISK MANAGEMENT ARE ABOUT AS GOOD AS PROPERLY FUNDED SECURITY WORK”

Page 77: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Security is where ops

was 7 years ago…

Page 78: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Dev : Ops : Sec 100 : 10 : 1

Page 79: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Understaffing means

no one thinks security

helps the business win

Page 80: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

DevOps changed that

for Ops, security can

change too

Page 81: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Netflix demonstrated

that people care about resiliency

Page 82: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Innately, we all care

Page 83: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Rugged Software Movement

Page 84: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

#ruggeddevops

Page 85: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

https://vimeo.com/54250716

Page 86: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

http://www.youtube.com/watch?v=jQblKuMuS0Y

Page 87: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Security’s way forward is to

help developers and help

operations

Page 88: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Start there

Page 89: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Let’s review Security’s

approach thus far

Page 90: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

BadIdea #1

Applications can’t be

defended—Web App

Firewalls Suck!

lets do developer training

Page 91: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Page 92: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Page 93: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Awareness campaign

OWASP Top Ten

Page 94: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

We abandoned knowing

anything useful about

the Runtime

Page 95: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Instead Add Defense

based on behaviors

Page 96: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

BadIdea #2

Developers can’t figure it out.

lets scan for vulnerabilities

instead

Page 97: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

“here is a 400 page PDF of

our findings to prove your

developers don't get it!”

- The Pen tester

Page 98: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Even with the emphasis

on appsec training, in

practice we made it a

dark art

Page 99: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Integrated rugged

testing should sit

inside the pipeline

Page 100: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

BadIdea #3

With the new alignment

to vulnerability scanning,

there is a tendency to Fix

the Low-Hanging Fruit

Page 101: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Page 102: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

we still don't know

who is attacking us

Page 103: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

We still don't

actually know what

they are attacking

Page 104: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Real Threats go Unknown

so Developers fix what the

automated tooling detected

at a certain point in time

Page 105: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Add Application

Security Telemetry

Page 106: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

badidea #4

Put in tooling that no

one outside of security

can understand

Page 107: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

usually in the name

of compliance

Page 108: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

“Get a Web App Firewall

dude!” - PCI-DSS Req 6.6

Page 109: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Page 110: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Choose your own

adventure…

Page 111: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

smallest possible

solution you can

consider a WAF…

Page 112: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Our CDN added

ModSecurity Ruleset

Huzzah!

Page 113: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

An appliance that

blocks all the things

Page 114: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

And now you wonder

why no one eats lunch

with you anymore

Page 115: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

“every aspect of managing WAFs is an ongoing process. This is the antithesis

of set it and forget it technology. That is the real point of this research. To maximize value from your WAF you need to go in with everyone’s eyes open to the effort required to get and keep

the WAF running productively.” - a whitepaper from a WAF vendor

Page 116: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Page 117: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Ok, Security has to change…

How do we add value

already?

Page 118: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Two ways!

Page 119: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Add value to Devs

Add value to ops

Page 120: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Pray that someone notices

Page 121: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Page 122: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Pro-Tip #1

Bad-Behavior Driven Development

(automate those security tools!)

Page 123: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Start with Adding just one

test for XSS on a few pages

in your app

Page 124: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Page 125: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

gauntlt is Bad-Behavior

Driven Development

Page 126: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

GAUNTLTOpen source, MIT License

Gauntlt comes with pre-canned steps that hook security testing tools

Gauntlt does not install tools

Gauntlt wants to be part of the CI/CD pipeline

Be a good citizen of exit status and stdout/stderr

Page 127: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Page 128: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Page 129: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Page 130: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Be Mean to Your Code

Page 131: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Gauntlt Uses Cucumber

and its awesome

Page 132: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Page 133: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Page 134: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

here’s an XSS attack

Example

Page 135: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

@slow @finalFeature: Look for cross site scripting (xss) using arachni against a URL

Scenario: Using arachni, look for cross site scripting and verify no issues are found Given "arachni" is installed And the following profile: | name | value | | url | http://localhost:8008 | When I launch an "arachni" attack with: """ arachni --modules=xss --depth=1 --link-count=10 --auto-redundant=2 <url> """ Then the output should contain "0 issues were detected."

Page 136: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

http://theagileadmin.com/2015/06/09/pragmatic-security-and-rugged-devops/

Page 137: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

github.com/gauntlt/gauntlt-demo

Page 138: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

leanpub.com/hands-on-gauntlt

Hands-on Gauntlt Book

Page 139: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Pro-tip #2

Put security testing in

your continuous

integration system

Page 140: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Page 141: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Page 142: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

https://speakerdeck.com/garethr/battle-tested-code-without-the-battle

Page 143: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Pro-Tip #3

Add Application Security

telemetry to devs and ops

Page 144: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Convert App Security

Logs into metrics in the

systems dev and ops use

StatsD

Page 145: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

RunTime Correlation

between biz, ops, dev, sec

Page 146: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

SQLi Attempts + HTTP 500’s

or

login spikes + transaction

decrease

Page 147: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Runtime

Instrumentation for

Application Security

Page 148: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Pro-Tip #4

Get hugs from the

auditors and add

Hardening and Audit using

config management

Page 149: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Open Source

Hardening Framework

chef/puppet/ansible

http://hardening.io/

Page 150: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Run Nightly Audits of

your Hardening using

Config Management

(Chef audit mode)

https://www.chef.io/blog/2015/04/09/chef-audit-mode-cis-benchmarks/

Page 151: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

OS and Config

Management

Page 152: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

reverse the trend

Add Value to Devs

Add Value to Ops

Page 153: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Software development is a constant experiment in knowing

Application Security abdicated runtime responsibility and development responsibility through incoherent philosophical approaches and fostering silo-thinking

Security now is where Ops was 7 years ago.

Ops found a path to change through devops, security can too

There are three ways we can add value: at development, at deploy, at runtime

Summary

Page 154: Application Security Epistemology in a Continuous Delivery World

@wickett #ruggeddevops

Bad-Behavior Driven Development

Weaponizing your CD Pipeline

Application Security Telemetry and Monitoring

Continuous Hardening and Audit

Have a S-BOM! (Software Bill of Materials)

Practices