Putting to your Robots to Work V1.1

71
@salesforce April 23, 2013 Putting Your Robots to Work Security Automation at Twitter

description

Updated version of the presentation given at AppSec USA 2012.

Transcript of Putting to your Robots to Work V1.1

Page 1: Putting to your Robots to Work V1.1

@salesforceApril 23, 2013

Putting Your Robots to WorkSecurity Automation at Twitter

Page 2: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

The future

Page 3: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Page 4: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Page 5: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Page 6: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Page 7: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Page 8: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Page 9: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Page 10: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Page 11: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Philosophical Guidelines

Page 12: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Get the right information to the right people

Page 13: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Find bugs as quickly as possible

Page 14: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Don't repeat your mistakes

Page 15: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Analyze from many angles

Page 16: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Let people prove you wrong

Page 17: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Help people help themselves

Page 18: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Automate dumb work

Page 19: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Keep it tailored

Page 20: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Automating Security

Page 21: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Manual security tasks

Code review

External reports

Pen testing

Page 22: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Automated security tasks

Code review

External reports

Pen testing

Static analysis tools

Dynamic analysis tools

CSP

Page 23: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Manual security workflow

Run tool Wait for it...

Interpretreports

Fix stuff

Page 24: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Manual security workflow

Run tool Wait for it...

Interpretreports

Fix stuff

Repeat

Page 25: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Put your robots to work!

Code committed

Run dynamictools

Run static analysis tools

Gatherreports

Issuenotifications

Automate dumb work

Page 26: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

After automation

Page 27: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Jenkins CI

Page 28: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Security Automation Dashboard (SADB)

Page 29: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

CSP

Brakeman

ThreatDeckPhantom Gang

Roshambo

Emaildevelopers

Emailsecurity

Page 30: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

CSP

Brakeman

ThreatDeckPhantom Gang

Roshambo

Emaildevelopers

Emailsecurity

Page 31: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Open SourceStatic analysis for Ruby on Rails

brakemanscanner.org

Page 32: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

WriteCode

RunTests

CommitCode

Push to CI

CodeReview

QA DeployCode

Brakeman can run anytime

SaveCode

Find bugs as quickly as possible

Page 33: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Developer

Mesos +Brakeman

CodeRepository SADB

Push Code

Pull Code

Send Report

Send EmailGet the right information to

the right people

Page 34: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Historical trends

2007 2008 2009 2010 2011 2012 2013

Page 35: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Historical trendsTwitter starts using Brakeman

2007 2008 2009 2010 2011 2012 2013

Page 36: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Reports

Page 37: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Anatomy of a warning

Warning message

Page 38: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Anatomy of a warning

When warning first reported

Page 39: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Anatomy of a warning

Code location, link to repo

Page 40: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Anatomy of a warning

Code snippet

Page 41: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Anatomy of a warning

Rails-specific information

Help people help themselves

Page 42: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Anatomy of a warningFalse positive report button

Let people prove you wrong

Page 43: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

QuickTime™ and aH.264 decompressor

are needed to see this picture.

Page 44: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Page 45: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

CSP

Brakeman

ThreatDeckPhantom Gang

Roshambo

Emaildevelopers

Emailsecurity

Page 46: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Mixed-content Sensitive forms posting over HTTPOld, vulnerable versions of jQueryForms without authenticity tokens

What does it look for?

Page 47: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Don't repeat your mistakes

Page 48: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Page 49: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Phantom-gang 2.0

Page 50: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

CSP

Brakeman

ThreatDeckPhantom Gang

Roshambo

Emaildevelopers

Emailsecurity

Page 51: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Page 52: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Detecting XSS

Analyze from many angles

Page 53: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Page 54: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

QuickTime™ and aH.264 decompressor

are needed to see this picture.

Page 55: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Page 56: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Implementing CSP is not trivial

Page 57: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

HTTP Strict Transport Security

Page 58: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

X-Frame-Options

Page 59: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

X-Xss-Protection

X-Content-Type-OptionsX-Xss-Protection

Page 60: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Page 61: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

SecureHeaders

Automate dumb work

Page 62: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Header status page

Page 63: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

CSP

Brakeman

ThreatDeckPhantom Gang

Roshambo

Emaildevelopers

Emailsecurity

Page 64: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

ThreatDeck

Page 65: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

CSP

Brakeman

ThreatDeckPhantom Gang

Roshambo

Emaildevelopers

Emailsecurity

Page 66: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Review all the things

Page 67: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Ro-Sham-Bo

Page 68: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Ro-Sham-Bo

Page 69: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Ro-Sham-Bo

Needs to be reviewed

Automate dumb work

Page 70: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Our journey thus far

Manual tasksLow visibility

Late problem discovery

Automated tasksTrends and reports

Automatic notifications

Page 71: Putting to your Robots to Work V1.1

@salesforce April 2013@alsmola | @ndm | @presidentbeef

Tools in this presentation