putting rugged into your devops toolchain

95
PUTTING RUGGED INTO YOUR DEVOPS TOOLCHAIN JAMES WICKETT, @WICKETT

Upload: james-wickett

Post on 16-Jan-2015

1.670 views

Category:

Technology


0 download

DESCRIPTION

Presentation given at DevOps Days Mountain View, on June 29th, 2012. #devopsdays

TRANSCRIPT

Page 1: Putting Rugged Into your DevOps Toolchain

PUTTING RUGGED INTOYOUR DEVOPS TOOLCHAIN

JAMES WICKETT, @WICKETT

Page 2: Putting Rugged Into your DevOps Toolchain

I WANT YOU TO BE SUCCESSFUL AND MAKE A DIFFERENCE

Page 3: Putting Rugged Into your DevOps Toolchain

James Wickett

CISSP, GWAPT, CCSK, GSEC, GCFW

@wickett@RuggedDevOps

@gauntlt

Page 4: Putting Rugged Into your DevOps Toolchain

HTTP://BIT.LY/RUGGED-DEVOPS

Page 5: Putting Rugged Into your DevOps Toolchain

A BRIEF HISTORY OFINFORMATION SECURITY

Page 6: Putting Rugged Into your DevOps Toolchain

WE USED TO BE COOL

Page 7: Putting Rugged Into your DevOps Toolchain

WE HADCINEMA

Page 8: Putting Rugged Into your DevOps Toolchain

WE HAD HEROES

Page 9: Putting Rugged Into your DevOps Toolchain

WE MADE FREEPHONE CALLS

Page 10: Putting Rugged Into your DevOps Toolchain

WE WERE COOL

Page 11: Putting Rugged Into your DevOps Toolchain

WE MADE IT INTO THEORGANIZATIONSWE HAD PREVIOUSLY FOUGHT

Page 12: Putting Rugged Into your DevOps Toolchain

WE HELD CONFERENCESIN FANCY HOTELSWHERE WE CLAIMED WE HAD NO BUSINESS SUPPORT

Page 13: Putting Rugged Into your DevOps Toolchain

WE HAVE BUSINESS CARDS WITH TITLES LIKE CISO ON THEM

Page 14: Putting Rugged Into your DevOps Toolchain

ONCE IN THE ORGINFOSEC MADEBIG CLAIMS

Page 15: Putting Rugged Into your DevOps Toolchain

WE COULDN’T STOP THEVIRUSES AND WORMS

Page 16: Putting Rugged Into your DevOps Toolchain

ENTER RISKASSESSMENT

Page 17: Putting Rugged Into your DevOps Toolchain

INSTEAD OF ENGINEERING INFOSEC BECAME ACTUARIES

Page 18: Putting Rugged Into your DevOps Toolchain

WE BECAME EXPERTSIN BUYING INSURANCE POLICIES

Page 19: Putting Rugged Into your DevOps Toolchain

“[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” - MICHAL ZALEWSKI

Page 20: Putting Rugged Into your DevOps Toolchain

WE MADE A SIGNIFICANT

ERROR

Page 21: Putting Rugged Into your DevOps Toolchain

WE THOUGHT THIS WAS TRUE:EVERY SECURITY EVENTRESULTS IN A FINANCIAL LOSS

Page 22: Putting Rugged Into your DevOps Toolchain

TJX H@CK3D!

Page 23: Putting Rugged Into your DevOps Toolchain

THE STOCK PRICE DIDN’T DROP

Page 24: Putting Rugged Into your DevOps Toolchain

OUR ASSUMPTION WAS INCOMPLETE

Page 25: Putting Rugged Into your DevOps Toolchain

INFOSEC ALSO MADE A SECOND BIG MISTAKE

Page 26: Putting Rugged Into your DevOps Toolchain

IT STAYED IN INFORMATION TECHNOLOGY

Page 27: Putting Rugged Into your DevOps Toolchain

IT WAS A COST CENTER AND NOT IN A POSITION TO ADD VALUE

Page 28: Putting Rugged Into your DevOps Toolchain

SOMETHING ELSE HAPPENED GLOBALLY

Page 29: Putting Rugged Into your DevOps Toolchain

DEVS BECAME COOL

Page 30: Putting Rugged Into your DevOps Toolchain

CODE BECAME SOCIAL

Page 31: Putting Rugged Into your DevOps Toolchain

“I DON’T WANT YOU TO SEND ME AN INSTALLATION DVD”

Page 32: Putting Rugged Into your DevOps Toolchain

WE SELL TIME NOW

Page 33: Putting Rugged Into your DevOps Toolchain

WE SELL SOCIAL AND FRIENDSHIPS

Page 34: Putting Rugged Into your DevOps Toolchain
Page 35: Putting Rugged Into your DevOps Toolchain

“IS THIS SECURE?”-YOUR CUSTOMER

Page 36: Putting Rugged Into your DevOps Toolchain

“ITS CERTIFIED”- YOU

Page 37: Putting Rugged Into your DevOps Toolchain

WHY CAN’T YOU GIVE A BETTER ANSWER?

Page 38: Putting Rugged Into your DevOps Toolchain

THE INEQUITABLE DISTRIBUTION OF LABOR IN SECURITY MIMICS THAT IN DEV/OPS

Page 39: Putting Rugged Into your DevOps Toolchain

source: Gene Kim, “When IT says No @SXSW 2012”

Page 40: Putting Rugged Into your DevOps Toolchain

Security sees...

• They give advice that goes unheeded

• Business decisions made w/o regard of risk

• Irrelevancy in the organization

• Constant bearer of bad news

• Feels ignored by their peers (you know, those devops guys)

• Inequitable distribution of labor

Page 41: Putting Rugged Into your DevOps Toolchain

2% OF AN ENGINEERING DEV TEAM ARE WORKING ON SECURITY

- BSIMM 2012 data, http://bsimm.com/

Page 42: Putting Rugged Into your DevOps Toolchain

HOW DO WE FIX THESE PROBLEMS?

Page 43: Putting Rugged Into your DevOps Toolchain

-LEARNING FROM (PREFERABLY OTHER PEOPLE’S) MISTAKES

-DEVELOPING TOOLS TO CORRECT PROBLEMS

- PLANNING TO HAVE EVERYTHING COMPROMISED

Page 44: Putting Rugged Into your DevOps Toolchain

UNDERSTANDING

TOOLINGARCHITECTURE

Page 45: Putting Rugged Into your DevOps Toolchain
Page 46: Putting Rugged Into your DevOps Toolchain

OPEN WEB APPLICATION SECURITY PROJECT

Page 47: Putting Rugged Into your DevOps Toolchain
Page 48: Putting Rugged Into your DevOps Toolchain
Page 49: Putting Rugged Into your DevOps Toolchain

Current Software

Page 50: Putting Rugged Into your DevOps Toolchain

Rugged Software

Page 51: Putting Rugged Into your DevOps Toolchain

Current Software

Page 52: Putting Rugged Into your DevOps Toolchain

Rugged Software

Page 53: Putting Rugged Into your DevOps Toolchain

Current Software

Page 54: Putting Rugged Into your DevOps Toolchain

Rugged Software

Page 55: Putting Rugged Into your DevOps Toolchain

ADVERSITY REQUIRES RUGGED SOLUTIONS

Page 56: Putting Rugged Into your DevOps Toolchain

ADVERSITY IS REAL ORPERCEIVED NEGATIVEACTIONS AND EVENTS THAT PROHIBIT NORMALFUNCTION AND OPERATION.

Page 57: Putting Rugged Into your DevOps Toolchain

RUGGEDIZATION THEORY

Building solutions to handle adversity will cause unintended, positive benefits that will provide value that would have been unrealized otherwise.

Page 58: Putting Rugged Into your DevOps Toolchain

NO PAIN, NO GAIN

Page 59: Putting Rugged Into your DevOps Toolchain

"Secondly, our network got a lot stronger as a result of the LulzSec

attacks." -Surviving Lulz: Behind the Scenes of LulzSec @SXSW 2012

by CloudFlare team

Page 60: Putting Rugged Into your DevOps Toolchain
Page 61: Putting Rugged Into your DevOps Toolchain

REPEATABLE – NO MANUAL STEPSRELIABLE - NO DOS HEREREVIEWABLE – AKA AUDITRAPID – FAST TO BUILD, DEPLOY, RESTORERESILIENT – AUTOMATED RECONFIGURATION REDUCED - LIMITED ATTACK SURFACE

Page 62: Putting Rugged Into your DevOps Toolchain

RUGGED BY DESIGN,DEVOPS BY CULTURE

Page 63: Putting Rugged Into your DevOps Toolchain

RUGGED DEVOPS

Page 64: Putting Rugged Into your DevOps Toolchain
Page 65: Putting Rugged Into your DevOps Toolchain
Page 66: Putting Rugged Into your DevOps Toolchain
Page 67: Putting Rugged Into your DevOps Toolchain

Put your code through the gauntlt

Page 68: Putting Rugged Into your DevOps Toolchain

GAUNTLET, N. AN ATTACK FROM ALL SIDES

Page 69: Putting Rugged Into your DevOps Toolchain

Your web app

w3af

fuzzers

nmap

nessus

sqlmapmetasploit

You

dirbustercustom attacks

Page 70: Putting Rugged Into your DevOps Toolchain

gauntlt is built for doing security testing in a DevOps world

Page 71: Putting Rugged Into your DevOps Toolchain

GAUNTLT IS

Page 72: Putting Rugged Into your DevOps Toolchain

AN ALWAYS-ATTACKING ENVIRONMENT FOR DEVELOPERS

Page 73: Putting Rugged Into your DevOps Toolchain

WITH ATTACKS WRITTEN IN EASY-TO-READ LANGUAGE

Page 74: Putting Rugged Into your DevOps Toolchain

ACCESSIBLE TO EVERYONE INVOLVED IN DEV, OPS, TESTING, SECURITY, ...

Page 75: Putting Rugged Into your DevOps Toolchain
Page 76: Putting Rugged Into your DevOps Toolchain

MEET THE GAUNTLT TEAM

Page 77: Putting Rugged Into your DevOps Toolchain

MANI TADAYON

"SOFTWARE - WAR = SOFTE"

@BWSR_SR

Page 78: Putting Rugged Into your DevOps Toolchain

ROY RAPOPORT“I PICKED UP THE TEE SHIRTS”

@ROYRAPOPORT

Page 79: Putting Rugged Into your DevOps Toolchain

BILL BURNS@X509V3

“SMITHERS, RELEASE THE MONKEYS!”

Page 80: Putting Rugged Into your DevOps Toolchain

JOSHUA CORMAN@JOSHCORMAN@RUGGEDSOFTWARE

“HONEY BADGER DOES CARE” 

Page 81: Putting Rugged Into your DevOps Toolchain

JASON CHAN

@CHANJBS

Page 82: Putting Rugged Into your DevOps Toolchain

NOT PICTURED:MATT TESAUROTAREK MOUSSA

Page 83: Putting Rugged Into your DevOps Toolchain

WHY GAUNTLT?

SECURITY DOMAIN KNOWLEDGE IS GENERALLY A MYSTERY TO DEV TEAMS

Page 84: Putting Rugged Into your DevOps Toolchain

GAUNTLT ALLOWS DEV AND OPS AND SECURITY TO

COMMUNICATE

Page 85: Putting Rugged Into your DevOps Toolchain

GAUNTLT JOINSTHE PHILOSOPHY OFRUGGED SOFTWARE& CONTINUOUS INTEGRATION

Page 87: Putting Rugged Into your DevOps Toolchain

LETS LOOK INSIDE A COUPLE OF THESE FILES

Page 88: Putting Rugged Into your DevOps Toolchain

@gauntlet @run

Feature: Run nmap against a target and pass the value of the hostname from the profile.xml.

Background: Given nmap is installed

Scenario: Verify server is available on standard web ports Given the hostname in the profile.xml When I run nmap against the hostname in the profile on ports 80,443 Then the output should contain: """ 80/tcp open http 443/tcp open https """

feature for nmap:nmap.feature

Page 89: Putting Rugged Into your DevOps Toolchain

Given /^nmap is installed$/ do steps %{ When I run `which nmap` Then the output should contain: """ nmap """ } end

When /^I run nmap against the hostname in the profile on ports (\d+),(\d+)$/ do |arg2, arg3| steps %{ When I run `nmap \"#{@hostname}\" -p80,443` }end

step definition for nmap:nmap.rb

Page 90: Putting Rugged Into your DevOps Toolchain

wickett$ gauntlt

@gauntlet @runFeature: Run nmap against a target and pass the value of the hostname from the profile.xml.

Background: # features/nmap/nmap.feature:5 Given nmap is installed # features/step_definitions/nmap.rb:2

Scenario: Verify server is available on standard web ports # features/nmap/nmap.feature:8 Given the hostname in the profile.xml # features/step_definitions/profile.rb:1 When I run nmap against the hostname in the profile on ports 8080,443 # features/step_definitions/nmap.rb:12 Then the output should contain: # aruba-0.4.11/lib/aruba/cucumber.rb:98 """ 8080/tcp open http 443/tcp open https """...

Failing Scenarios:cucumber features/nmap/nmap.feature:8 # Scenario: Verify server is available on standard web ports

1 scenario (1 failed)4 steps (1 failed, 3 passed)0m0.341s

running gauntlt with failing tests

Page 91: Putting Rugged Into your DevOps Toolchain

wickett$ gauntlt

@gauntlet @runFeature: Run nmap against a target and pass the value of the hostname from the profile.xml.

Background: # features/nmap/nmap.feature:5 Given nmap is installed # features/step_definitions/nmap.rb:2

Scenario: Verify server is available on standard web ports # features/nmap/nmap.feature:8 Given the hostname in the profile.xml # features/step_definitions/profile.rb:1 When I run nmap against the hostname in the profile on ports 80,443 # features/step_definitions/nmap.rb:12 Then the output should contain: # aruba-0.4.11/lib/aruba/cucumber.rb:98 """ 80/tcp open http 443/tcp open https """

1 scenario (1 passed)4 steps (4 passed)0m1.117s

running gauntlt with passing tests

Page 92: Putting Rugged Into your DevOps Toolchain
Page 93: Putting Rugged Into your DevOps Toolchain

RESOURCES

Page 94: Putting Rugged Into your DevOps Toolchain

WANT TO JOIN THE GAUNTLT TEAM?EMAIL [email protected]

Page 95: Putting Rugged Into your DevOps Toolchain

Please get in touch with me:

@wickett@RuggedDevOps@gauntlt