164
DevOps for the

DevOps for the Discouraged

Embed Size (px)

Citation preview

Page 1: DevOps for the Discouraged

DevOps for the

Page 2: DevOps for the Discouraged

James [email protected]

Austin, TX

Work at Signal Sciences

Rugged Dev Podcast

Gauntlt Core Team

LASCON Founder and Organizer

DevOps Days Austin and Global Organizer

Page 3: DevOps for the Discouraged

We’re making AppSec effective and practical

signalsciences.com

Page 4: DevOps for the Discouraged

in honor of SkyMall

Page 5: DevOps for the Discouraged

If you find yourself in

Austin, stop by!

Austin OWASP (last Tuesday of the month)

LASCON Oct 22-23

Page 6: DevOps for the Discouraged

ConclusionsIt is easy to get discouraged in our industry, but there is hope!

Agile, DevOps and Continuous Delivery practices have an impact for AppSec / InfoSec

InfoSec is behind but has a unique opportunity to add value

Page 7: DevOps for the Discouraged

Conclusions continued

Integrating into the build pipeline and operational tooling wins

Unit and Integration tests are not enough, we need testing that focuses on attack tooling

Page 8: DevOps for the Discouraged

you == “person you once knew at

a previous company”

Page 9: DevOps for the Discouraged

Do you feel unable to cause positive change in

your organization?

Page 10: DevOps for the Discouraged

Is security ever left out of important engineering

decisions?

Page 11: DevOps for the Discouraged

Have you ever reported a serious internal vulnerability only to see it open 6 months or more later?

Page 12: DevOps for the Discouraged

Why we are here

Page 13: DevOps for the Discouraged

Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony,Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony, Sony

Page 14: DevOps for the Discouraged

Humans optimize for the probable

Page 15: DevOps for the Discouraged

We optimize for the probable

Page 16: DevOps for the Discouraged

Unit Testing

Page 17: DevOps for the Discouraged

Integration Testing

Page 18: DevOps for the Discouraged

Happy Path Engineering

Page 19: DevOps for the Discouraged

We optimize for the possible

Page 20: DevOps for the Discouraged

Over Engineering

Page 21: DevOps for the Discouraged

Stress and load testing

Page 22: DevOps for the Discouraged

We optimize for the perceived probable

Page 23: DevOps for the Discouraged

How do we perceive what is probable?

Page 24: DevOps for the Discouraged

Epistemological Problem of Software Development

Page 25: DevOps for the Discouraged

We attempt to solve it by gathering data or

rhetoric

Page 26: DevOps for the Discouraged

3 approaches to solve the Epistemological Problem of Software Development

Page 27: DevOps for the Discouraged

Arc 1: Agile

Page 28: DevOps for the Discouraged

Agile side-steps the problem

Page 29: DevOps for the Discouraged

Agile says we don’t know what we are building

Page 30: DevOps for the Discouraged

Solution: release features to customers rapidly

Page 31: DevOps for the Discouraged

Just Ship It!

Page 32: DevOps for the Discouraged

Behavior Driven Dev

Page 33: DevOps for the Discouraged

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 34: DevOps for the Discouraged

Amplify the

feedback loop

Page 35: DevOps for the Discouraged

TLDR;

Rapid Iterations Win

Page 36: DevOps for the Discouraged

Agile is our guiding

light

Page 37: DevOps for the Discouraged
Page 38: DevOps for the Discouraged

We don't sell software like we used to

Page 39: DevOps for the Discouraged

Software as a Service

Page 40: DevOps for the Discouraged

The last 15 years have brought a complete

change in our delivery cadence, distribution, and

revenue models

Page 41: DevOps for the Discouraged

DevOps is the application of Agile

methodology to system administration

- The Practice of Cloud System Administration Book

Page 42: DevOps for the Discouraged

Arc 2: DevOps

Page 43: DevOps for the Discouraged
Page 44: DevOps for the Discouraged

Agile Infrastructure

@littleidea @patrickdebois at Velocity 2009

http://itrevolution.com/the-history-of-devops/

Page 45: DevOps for the Discouraged

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

Page 46: DevOps for the Discouraged

First DevOps Days, Ghent 2009

@patrickdebois

Page 47: DevOps for the Discouraged

The opposite of DevOps is despair - Gene Kim

Page 48: DevOps for the Discouraged

DevOps is the operationalism of the world

- Theo Schlossnagle

Page 49: DevOps for the Discouraged

DevOps is a community movement

Page 50: DevOps for the Discouraged

http://dev2ops.org/blog/2010/2/22/what-is-devops.html

Page 51: DevOps for the Discouraged
Page 52: DevOps for the Discouraged

DevOps realized that Ops doesn't know what

Devs know and vice versa

Page 53: DevOps for the Discouraged

DevOps is an epistemological

breakthrough joining disparate people around

a common problem

Page 54: DevOps for the Discouraged

DevOps is an inclusive movement that

codifies a culture - Adam Jacobs

Page 55: DevOps for the Discouraged

Dev : Ops 10 : 1

Traditional Dev to Ops Ratio

Page 56: DevOps for the Discouraged

“That the word #devops gets reduced to technology is a manifestation of how badly we need a cultural shift”

- @patrickdebois

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

Page 57: DevOps for the Discouraged

Culture is the most important aspect to DevOps succeeding in the enterprise

Page 58: DevOps for the Discouraged

What we value

determines our culture

Page 59: DevOps for the Discouraged
Page 60: DevOps for the Discouraged

Mutual Understanding Shared Language

Openness Visualization

Tooling

Page 61: DevOps for the Discouraged

DevOps is the inevitable result of needing to do

efficient operations in a [distributed computing and

cloud] environment. - Tom Limoncelli

Page 62: DevOps for the Discouraged

DevOps is not a technological problem. DevOps is a business

problem. - Damon Edwards

Page 63: DevOps for the Discouraged

http://puppetlabs.com/sites/default/files/2014-state-of-devops-report.pdf

Page 64: DevOps for the Discouraged

the first scientific study of the relationship between organizational performance, IT performance and

DevOps practices

Page 65: DevOps for the Discouraged

DevOps practices improve IT performance

Page 66: DevOps for the Discouraged

Culture Automation

Measurement Sharing

@botchagalupe @damonedwards

Page 67: DevOps for the Discouraged

Culture InfluencersDecrease time from development to release

Blameless post-mortems

Reward failure and have a high emphasis on testing

Unite different disciplines (like dev + ops) to solve problems

http://www.slideshare.net/wickett/the-devops-way-of-delivering-results-in-the-enterprise

Page 68: DevOps for the Discouraged

Antipattern: Rebrand your ops team to

devops team

Page 69: DevOps for the Discouraged

Automation

Page 70: DevOps for the Discouraged

Seek automation to increase repeatability

Page 71: DevOps for the Discouraged

Chef, Puppet, Ansible, CfEngine Rundeck, Mcollective

Jenkins, Travis, Kitchen Cucumber, Gauntlt, ServerSpec

Vagrant, Docker

A Sample of the Automation toolspace

Page 72: DevOps for the Discouraged

Antipattern: Manual config of

production environment

Page 73: DevOps for the Discouraged

Beware of the

DevOps Software Solution

Page 74: DevOps for the Discouraged

Measurement

Page 75: DevOps for the Discouraged
Page 76: DevOps for the Discouraged

Business Metrics Event Correlation

Usage based monitoring

Page 77: DevOps for the Discouraged

Sharing

Page 78: DevOps for the Discouraged

Dashboards for all Deploy Bot

Page 79: DevOps for the Discouraged
Page 80: DevOps for the Discouraged

Arc 3: Continuous

Delivery

Page 81: DevOps for the Discouraged

Continuous Delivery is not merely how often

you deliver but how little you can deliver at a time

Page 82: DevOps for the Discouraged
Page 83: DevOps for the Discouraged

Batch size of 1

Page 84: DevOps for the Discouraged

Old Way

Changes break stuff, so limit them and batch

them all together

Page 85: DevOps for the Discouraged

New Way

Delivery of one change at a time reduces outages, increases performance,

and limits technical debt

Page 86: DevOps for the Discouraged

You must deploy your stuff

Page 87: DevOps for the Discouraged

Never Pass Defects to the Next Step

The Practice of Cloud System Administration

Page 88: DevOps for the Discouraged

Increase the Flow of Work

The Practice of Cloud System Administration

Page 89: DevOps for the Discouraged

Let the bots troll the users for the lolz.

Page 90: DevOps for the Discouraged

Allocate time to enhance the build, test and deploy

system

The Practice of Cloud System Administration

Page 91: DevOps for the Discouraged

Reduce code latency and increase code velocity

Page 92: DevOps for the Discouraged

The Next Arc: SecurityRugged

Page 93: DevOps for the Discouraged

“… those stupid developers”

- Security person

Page 94: DevOps for the Discouraged

“Security prefers a system powered off and unplugged”

- Developer

Page 95: DevOps for the Discouraged

Cultural unrest with security in an organization

Page 96: DevOps for the Discouraged

Compliance Driven Culture: PCI, SOX, …

Page 97: DevOps for the Discouraged

“[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 98: DevOps for the Discouraged

Ratio Problem Devs : Ops : Security

100 : 10 : 1

Page 99: DevOps for the Discouraged
Page 100: DevOps for the Discouraged

Security Tools are run out-of-band

Page 101: DevOps for the Discouraged

Security tools are confusing

Page 102: DevOps for the Discouraged
Page 103: DevOps for the Discouraged

and when they are done they give you this lovely gem

Page 104: DevOps for the Discouraged

The tide is changing

Page 105: DevOps for the Discouraged

Resiliency Engineering

Page 106: DevOps for the Discouraged

Netflix famously released chaos

monkey

Page 107: DevOps for the Discouraged

Rugged

Page 108: DevOps for the Discouraged
Page 109: DevOps for the Discouraged
Page 110: DevOps for the Discouraged

The Rugged Manifesto (excerpts)

Page 111: DevOps for the Discouraged

I am rugged and, more importantly, my code is rugged.

I recognize that software has become a foundation of our modern world.

I recognize the awesome responsibility that comes with this

foundational role.

Page 112: DevOps for the Discouraged

I am rugged because my code can face these challenges and

persist in spite of them.

Page 113: DevOps for the Discouraged

http://www.slideshare.net/wickett/putting-rugged-into-your-devops-toolchain

Page 114: DevOps for the Discouraged

ruggeddev.org

Page 115: DevOps for the Discouraged

Rugged Journey

Quality

Transparency

Value Creation

Culture infusion

Page 116: DevOps for the Discouraged

http://videos.2012.appsecusa.org/video/54250716

Page 117: DevOps for the Discouraged

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

Page 118: DevOps for the Discouraged

https://speakerdeck.com/garethr/security-monitoring-penetration-testing-meets-monitoring

Page 119: DevOps for the Discouraged

https://speakerdeck.com/mkonda/appsecusa-2013-insecure-expectationshttp://vimeo.com/75930344

Page 120: DevOps for the Discouraged

Security Tooling to Delivery Pipeline

Page 121: DevOps for the Discouraged

…to influence Culture, Automation, Measurement

and Sharing

Page 122: DevOps for the Discouraged

Security Testing

Static Code Analysis

Dynamic Testing

Virus Scanning

Code Signing Checks

Business logic/flow testing

Page 123: DevOps for the Discouraged

Wouldn’t it be great if we could automate our

security tests

Page 124: DevOps for the Discouraged

http://static.hothdwallpaper.net/51b8e4ee5a5ae19808.jpg

Page 125: DevOps for the Discouraged

You could say things like…

Page 126: DevOps for the Discouraged

The login page on my application should not be

vulnerable to SQL injection

Page 127: DevOps for the Discouraged

The search page should not be vulnerable to XSS

Page 128: DevOps for the Discouraged

Our app should not have a backdoor in it

Page 129: DevOps for the Discouraged

Enter Gauntlt

Page 130: DevOps for the Discouraged

gauntlt.org

Page 131: DevOps for the Discouraged

Integration tests meet Dynamic App Security

Testing

Page 132: DevOps for the Discouraged

Gauntlt PhilosophyGauntlt comes with pre-canned steps that hook security testing and attack tooling

Gauntlt functions as part of the CI/CD pipeline

Gauntlt is a good citizen of exit status and stdout/stderr

Gauntlt does not install tools

MIT Open Source License

Page 133: DevOps for the Discouraged

Security + Cucumber = Gauntlt

Page 134: DevOps for the Discouraged

Attack Logic

GIVENWHENTHEN

Page 135: DevOps for the Discouraged
Page 136: DevOps for the Discouraged

Who uses Gauntlt?

CabForward

Page 137: DevOps for the Discouraged

arachni nmap

sqlmap sslyze dirb

garmr generic

Page 138: DevOps for the Discouraged

sqli xss

fuzzing forceful browsing

info leaks heartbleed

Page 139: DevOps for the Discouraged

TLDR;

Gauntlt automates attack tooling

Page 140: DevOps for the Discouraged

TLDR;

Gauntlt facilitates collaboration

Page 141: DevOps for the Discouraged

more on gauntlt

• Google Group > https://groups.google.com/d/forum/gauntlt

• Wiki > https://github.com/gauntlt/gauntlt/wiki• Twitter > @gauntlt• IRC > #gauntlt on freenode• Issue tracking > http://github.com/gauntlt/gauntlt

Page 142: DevOps for the Discouraged

Try this at home

Page 143: DevOps for the Discouraged

Fully functioning attacking pipeline

Page 144: DevOps for the Discouraged

Fork this repo

Page 145: DevOps for the Discouraged

https://github.com/secure-pipeline/rails-travis-example

Page 146: DevOps for the Discouraged

labs in ./velocity

Page 147: DevOps for the Discouraged

./velocity/lab_2/.travis.yml

Page 148: DevOps for the Discouraged

./Gemfile

Page 149: DevOps for the Discouraged

./velocity/lab_2/.travis.yml

Page 150: DevOps for the Discouraged

./Rakefile

Page 151: DevOps for the Discouraged

./test/attacks/xss.attack

Page 152: DevOps for the Discouraged

./test/attacks/xss.attack

Page 153: DevOps for the Discouraged

./test/attacks/backdoors.attack

Page 154: DevOps for the Discouraged

./test/attacks/sql_injection.attack

Page 155: DevOps for the Discouraged

Gauntlt Next steps

Gauntlt currently doesn't install attack tooling, we are working on a gauntlt docker container to change that

Integrate into Kali distro

Page 156: DevOps for the Discouraged

but wait, there is more…

Page 157: DevOps for the Discouraged

github.com/secure-pipeline/jenkins-example

Page 158: DevOps for the Discouraged
Page 159: DevOps for the Discouraged
Page 160: DevOps for the Discouraged
Page 161: DevOps for the Discouraged
Page 162: DevOps for the Discouraged

+----------------------------------+--------+-----------------------------------------+ | Alert | Risk | URL | +----------------------------------+--------+-----------------------------------------+ | Cross Site Scripting (Reflected) | High | http://localhost:3000/forgot_password | +----------------------------------+--------+-----------------------------------------+

Page 163: DevOps for the Discouraged

ConclusionsIt is easy to get discouraged in our industry, but there is hope!

Agile, DevOps and Continuous Delivery practices have an impact for AppSec / InfoSec

InfoSec is behind but has a unique opportunity to add value

Page 164: DevOps for the Discouraged

Conclusions continued

Integrating into the build pipeline and operational tooling wins

Unit and Integration tests are not enough, we need testing that focuses on attack tooling