SlideShare a Scribd company logo
1 of 71
@salesforce
April 23, 2013
Putting Your
Robots to Work
Security Automation at Twitter
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
The future
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Philosophical
Guidelines
Guidelines
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Get the right information to the
right people
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Find bugs as quickly as possible
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Don't repeat your mistakes
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Analyze from many angles
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Let people prove you wrong
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Help people help themselves
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Automate dumb work
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Keep it tailored
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Automating Security
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Manual security tasks
Code review
External reports
Pen testing
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Automated security tasks
Code review
External reports
Pen testing
Static analysis tools
Dynamic analysis tools
CSP
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Manual security workflow
Run tool Wait for
it...
Interpret
reports
Fix stuff
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Manual security workflow
Run tool Wait for
it...
Interpret
reports
Fix stuff
Repeat
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Put your robots to work!
Code
committed
Run dynamic
tools
Run static
analysis tools
Gather
reports
Issue
notifications
Automate dumb work
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
After automation
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Jenkins CI
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Security Automation Dashboard (SADB)
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
CSP
Brakeman
ThreatDeckPhantom Gang
Roshambo
Email
developers
Email
security
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
CSP
Brakeman
ThreatDeckPhantom Gang
Roshambo
Email
developers
Email
security
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Open Source
Static analysis for Ruby on Rails
brakemanscanner.org
brakemanscanner.org
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Write
Code
Run
Tests
Commit
Code
Push to
CI
Code
Review
QA Deploy
Code
Brakeman can run anytime
Save
Code
Find bugs as quickly as
possible
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Developer
Mesos +
Brakeman
Code
Repository SADB
Push Code
Pull Code
Send
Report
Send
EmailGet the right information to
the right people
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Historical trends
2007 2008 2009 2010 2011 2012 2013
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Historical trends Twitter starts using Brakeman
2007 2008 2009 2010 2011 2012 2013
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Reports
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Anatomy of a warning
Warning message
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Anatomy of a warning
When warning first reported
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Anatomy of a warning
Code location, link to repo
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Anatomy of a warning
Code snippet
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Anatomy of a warning
Rails-specific information
Help people help
themselves
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Anatomy of a warning
False positive report button
Let people prove you
wrong
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
QuickTime™ and a
H.264 decompressor
are needed to see this picture.
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
CSP
Brakeman
ThreatDeckPhantom Gang
Roshambo
Email
developers
Email
security
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Mixed-content
Sensitive forms posting over HTTP
Old, vulnerable versions of jQuery
Forms without authenticity tokens
What does it look for?
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Don't repeat your mistakes
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Phantom-gang 2.0
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
CSP
Brakeman
ThreatDeckPhantom Gang
Roshambo
Email
developers
Email
security
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Detecting XSS
Analyze from many angles
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
QuickTime™ and a
H.264 decompressor
are needed to see this picture.
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Implementing CSP is not trivial
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
HTTP Strict Transport Security
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
X-Frame-Options
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
X-Xss-Protection
X-Content-Type-Options
X-Xss-Protection
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
SecureHeaders
Automate dumb work
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Header status page
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
CSP
Brakeman
ThreatDeckPhantom Gang
Roshambo
Email
developers
Email
security
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
ThreatDeck
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
CSP
Brakeman
ThreatDeckPhantom Gang
Roshambo
Email
developers
Email
security
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Review all the things
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Ro-Sham-Bo
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Ro-Sham-Bo
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Ro-Sham-Bo
Needs to be reviewed
Automate dumb work
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Our journey thus far
Manual tasks
Low visibility
Late problem discovery
Automated tasks
Trends and reports
Automatic notifications
@salesforce April 2013
@alsmola | @ndm | @presidentbeef
Tools in this presentation

More Related Content

What's hot

Developers like winning - gamifying code reviews
Developers like winning - gamifying code reviewsDevelopers like winning - gamifying code reviews
Developers like winning - gamifying code reviewsTzach Zohar
 
Crossing the Streams: Rethinking Stream Processing with KStreams and KSQL
Crossing the Streams: Rethinking Stream Processing with KStreams and KSQL Crossing the Streams: Rethinking Stream Processing with KStreams and KSQL
Crossing the Streams: Rethinking Stream Processing with KStreams and KSQL confluent
 
在 Laravel 裡玩切版
在 Laravel 裡玩切版在 Laravel 裡玩切版
在 Laravel 裡玩切版Shengyou Fan
 
Python For Technical SEO | Women In Tech SEO Festival March 2020 | Ruth Everett
Python For Technical SEO | Women In Tech SEO Festival March 2020 | Ruth Everett Python For Technical SEO | Women In Tech SEO Festival March 2020 | Ruth Everett
Python For Technical SEO | Women In Tech SEO Festival March 2020 | Ruth Everett Ruth Everett
 
TechSEO Boost 2017: Making the Web Fast
TechSEO Boost 2017: Making the Web FastTechSEO Boost 2017: Making the Web Fast
TechSEO Boost 2017: Making the Web FastCatalyst
 
Mobile app development: Going hybrid
Mobile app development: Going hybridMobile app development: Going hybrid
Mobile app development: Going hybridMartin Naumann
 
TechSEO Boost 2017: The State of Technical SEO
TechSEO Boost 2017: The State of Technical SEOTechSEO Boost 2017: The State of Technical SEO
TechSEO Boost 2017: The State of Technical SEOCatalyst
 
Reactive programming
Reactive programmingReactive programming
Reactive programmingryanstout
 
Container Days NYC Keynote
Container Days NYC KeynoteContainer Days NYC Keynote
Container Days NYC KeynoteBoyd Hemphill
 
5 Reasons You DON'T need API Management
5 Reasons You DON'T need API Management5 Reasons You DON'T need API Management
5 Reasons You DON'T need API Managementjhelmig
 
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based WebsitesTechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based WebsitesCatalyst
 
PWAs, are we there yet?!
PWAs, are we there yet?!PWAs, are we there yet?!
PWAs, are we there yet?!Simona Cotin
 

What's hot (14)

Rhys Wynne
Rhys WynneRhys Wynne
Rhys Wynne
 
Developers like winning - gamifying code reviews
Developers like winning - gamifying code reviewsDevelopers like winning - gamifying code reviews
Developers like winning - gamifying code reviews
 
Crossing the Streams: Rethinking Stream Processing with KStreams and KSQL
Crossing the Streams: Rethinking Stream Processing with KStreams and KSQL Crossing the Streams: Rethinking Stream Processing with KStreams and KSQL
Crossing the Streams: Rethinking Stream Processing with KStreams and KSQL
 
在 Laravel 裡玩切版
在 Laravel 裡玩切版在 Laravel 裡玩切版
在 Laravel 裡玩切版
 
Git store
Git storeGit store
Git store
 
Python For Technical SEO | Women In Tech SEO Festival March 2020 | Ruth Everett
Python For Technical SEO | Women In Tech SEO Festival March 2020 | Ruth Everett Python For Technical SEO | Women In Tech SEO Festival March 2020 | Ruth Everett
Python For Technical SEO | Women In Tech SEO Festival March 2020 | Ruth Everett
 
TechSEO Boost 2017: Making the Web Fast
TechSEO Boost 2017: Making the Web FastTechSEO Boost 2017: Making the Web Fast
TechSEO Boost 2017: Making the Web Fast
 
Mobile app development: Going hybrid
Mobile app development: Going hybridMobile app development: Going hybrid
Mobile app development: Going hybrid
 
TechSEO Boost 2017: The State of Technical SEO
TechSEO Boost 2017: The State of Technical SEOTechSEO Boost 2017: The State of Technical SEO
TechSEO Boost 2017: The State of Technical SEO
 
Reactive programming
Reactive programmingReactive programming
Reactive programming
 
Container Days NYC Keynote
Container Days NYC KeynoteContainer Days NYC Keynote
Container Days NYC Keynote
 
5 Reasons You DON'T need API Management
5 Reasons You DON'T need API Management5 Reasons You DON'T need API Management
5 Reasons You DON'T need API Management
 
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based WebsitesTechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
 
PWAs, are we there yet?!
PWAs, are we there yet?!PWAs, are we there yet?!
PWAs, are we there yet?!
 

Similar to Putting to your Robots to Work V1.1

Efficient AF: Automating SEO Reporting With Google Data Studio - Sam Marsden,...
Efficient AF: Automating SEO Reporting With Google Data Studio - Sam Marsden,...Efficient AF: Automating SEO Reporting With Google Data Studio - Sam Marsden,...
Efficient AF: Automating SEO Reporting With Google Data Studio - Sam Marsden,...DeepCrawl
 
SMX Advanced 2015 - Semantic Entities
SMX Advanced 2015 - Semantic EntitiesSMX Advanced 2015 - Semantic Entities
SMX Advanced 2015 - Semantic EntitiesMike Arnesen
 
Eight ways to optimise your website
Eight ways to optimise your websiteEight ways to optimise your website
Eight ways to optimise your websiteNed Wells
 
Smxl milan 2019 - Apps script for SEO
Smxl milan 2019 - Apps script for SEOSmxl milan 2019 - Apps script for SEO
Smxl milan 2019 - Apps script for SEODavid Sottimano
 
Atomic Design Presentation for Polaris Industries
Atomic Design Presentation for Polaris IndustriesAtomic Design Presentation for Polaris Industries
Atomic Design Presentation for Polaris IndustriesAlfonso Moreno
 
Black Hat ASO - Presentation eMetrics
Black Hat ASO - Presentation eMetricsBlack Hat ASO - Presentation eMetrics
Black Hat ASO - Presentation eMetricsMoritz Daan
 
Automating SEO Reporting With Google Data Studio - Digitalzone 2018
Automating SEO Reporting With Google Data Studio - Digitalzone 2018Automating SEO Reporting With Google Data Studio - Digitalzone 2018
Automating SEO Reporting With Google Data Studio - Digitalzone 2018Sam Marsden
 
The Structured Data Toolbox for SEOs #SMXEast
The Structured Data Toolbox for SEOs #SMXEast The Structured Data Toolbox for SEOs #SMXEast
The Structured Data Toolbox for SEOs #SMXEast Aleyda Solís
 
The Evolution of SEO: How to Become a Modern-Day SEO Master
The Evolution of SEO: How to Become a Modern-Day SEO MasterThe Evolution of SEO: How to Become a Modern-Day SEO Master
The Evolution of SEO: How to Become a Modern-Day SEO MasterConductor
 
What did 2012 Bing Us?
What did 2012 Bing Us?What did 2012 Bing Us?
What did 2012 Bing Us?David Iwanow
 
Data visualization storytelling and reporting #BrightonSEO - Aaron Friedman
Data visualization storytelling and reporting #BrightonSEO - Aaron FriedmanData visualization storytelling and reporting #BrightonSEO - Aaron Friedman
Data visualization storytelling and reporting #BrightonSEO - Aaron FriedmanAaron Friedman
 
Setting AMP for Success at #BrightonSEO
Setting AMP for Success at #BrightonSEOSetting AMP for Success at #BrightonSEO
Setting AMP for Success at #BrightonSEOAleyda Solís
 
2018 YTILI Berlin Gillian Muessig - Of Wizards and Executors
2018 YTILI Berlin Gillian Muessig - Of Wizards and Executors2018 YTILI Berlin Gillian Muessig - Of Wizards and Executors
2018 YTILI Berlin Gillian Muessig - Of Wizards and ExecutorsGillian Muessig
 

Similar to Putting to your Robots to Work V1.1 (15)

Owasp austin
Owasp austinOwasp austin
Owasp austin
 
Efficient AF: Automating SEO Reporting With Google Data Studio - Sam Marsden,...
Efficient AF: Automating SEO Reporting With Google Data Studio - Sam Marsden,...Efficient AF: Automating SEO Reporting With Google Data Studio - Sam Marsden,...
Efficient AF: Automating SEO Reporting With Google Data Studio - Sam Marsden,...
 
SMX Advanced 2015 - Semantic Entities
SMX Advanced 2015 - Semantic EntitiesSMX Advanced 2015 - Semantic Entities
SMX Advanced 2015 - Semantic Entities
 
Eight ways to optimise your website
Eight ways to optimise your websiteEight ways to optimise your website
Eight ways to optimise your website
 
Finding your big idea
Finding your big ideaFinding your big idea
Finding your big idea
 
Smxl milan 2019 - Apps script for SEO
Smxl milan 2019 - Apps script for SEOSmxl milan 2019 - Apps script for SEO
Smxl milan 2019 - Apps script for SEO
 
Atomic Design Presentation for Polaris Industries
Atomic Design Presentation for Polaris IndustriesAtomic Design Presentation for Polaris Industries
Atomic Design Presentation for Polaris Industries
 
Black Hat ASO - Presentation eMetrics
Black Hat ASO - Presentation eMetricsBlack Hat ASO - Presentation eMetrics
Black Hat ASO - Presentation eMetrics
 
Automating SEO Reporting With Google Data Studio - Digitalzone 2018
Automating SEO Reporting With Google Data Studio - Digitalzone 2018Automating SEO Reporting With Google Data Studio - Digitalzone 2018
Automating SEO Reporting With Google Data Studio - Digitalzone 2018
 
The Structured Data Toolbox for SEOs #SMXEast
The Structured Data Toolbox for SEOs #SMXEast The Structured Data Toolbox for SEOs #SMXEast
The Structured Data Toolbox for SEOs #SMXEast
 
The Evolution of SEO: How to Become a Modern-Day SEO Master
The Evolution of SEO: How to Become a Modern-Day SEO MasterThe Evolution of SEO: How to Become a Modern-Day SEO Master
The Evolution of SEO: How to Become a Modern-Day SEO Master
 
What did 2012 Bing Us?
What did 2012 Bing Us?What did 2012 Bing Us?
What did 2012 Bing Us?
 
Data visualization storytelling and reporting #BrightonSEO - Aaron Friedman
Data visualization storytelling and reporting #BrightonSEO - Aaron FriedmanData visualization storytelling and reporting #BrightonSEO - Aaron Friedman
Data visualization storytelling and reporting #BrightonSEO - Aaron Friedman
 
Setting AMP for Success at #BrightonSEO
Setting AMP for Success at #BrightonSEOSetting AMP for Success at #BrightonSEO
Setting AMP for Success at #BrightonSEO
 
2018 YTILI Berlin Gillian Muessig - Of Wizards and Executors
2018 YTILI Berlin Gillian Muessig - Of Wizards and Executors2018 YTILI Berlin Gillian Muessig - Of Wizards and Executors
2018 YTILI Berlin Gillian Muessig - Of Wizards and Executors
 

More from Neil Matatall

Twubhubbook - it's like appsec, but for startups
Twubhubbook - it's like appsec, but for startupsTwubhubbook - it's like appsec, but for startups
Twubhubbook - it's like appsec, but for startupsNeil Matatall
 
2013: OC Rails Jan - SecureHeaders library and content security policy
2013: OC Rails Jan - SecureHeaders library and content security policy2013: OC Rails Jan - SecureHeaders library and content security policy
2013: OC Rails Jan - SecureHeaders library and content security policyNeil Matatall
 
2009: Securing Applications With Web Application Firewalls and Vulnerability ...
2009: Securing Applications With Web Application Firewalls and Vulnerability ...2009: Securing Applications With Web Application Firewalls and Vulnerability ...
2009: Securing Applications With Web Application Firewalls and Vulnerability ...Neil Matatall
 
2008: Web Application Security Tutorial
2008: Web Application Security Tutorial2008: Web Application Security Tutorial
2008: Web Application Security TutorialNeil Matatall
 
Educause Annual 2007
Educause Annual 2007Educause Annual 2007
Educause Annual 2007Neil Matatall
 

More from Neil Matatall (6)

Twubhubbook - it's like appsec, but for startups
Twubhubbook - it's like appsec, but for startupsTwubhubbook - it's like appsec, but for startups
Twubhubbook - it's like appsec, but for startups
 
2013: OC Rails Jan - SecureHeaders library and content security policy
2013: OC Rails Jan - SecureHeaders library and content security policy2013: OC Rails Jan - SecureHeaders library and content security policy
2013: OC Rails Jan - SecureHeaders library and content security policy
 
2012: Passw3rd
2012: Passw3rd2012: Passw3rd
2012: Passw3rd
 
2009: Securing Applications With Web Application Firewalls and Vulnerability ...
2009: Securing Applications With Web Application Firewalls and Vulnerability ...2009: Securing Applications With Web Application Firewalls and Vulnerability ...
2009: Securing Applications With Web Application Firewalls and Vulnerability ...
 
2008: Web Application Security Tutorial
2008: Web Application Security Tutorial2008: Web Application Security Tutorial
2008: Web Application Security Tutorial
 
Educause Annual 2007
Educause Annual 2007Educause Annual 2007
Educause Annual 2007
 

Recently uploaded

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Recently uploaded (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 

Putting to your Robots to Work V1.1

Editor's Notes

  1. My name is Alex Smolen, this is Neil Matatall and this is Justin Collins. We're on Twitter's Product Security team and today we're going to talk to you about security automation at Twitter.
  2. We want to talk about the future, and the direction that we're taking as a team to solve tomorrow's application security challenges. We're going to show some cool tech we've been working on, and talk about what we do, what we don't do, and why.
  3. But before we do that, I want to walk through a little bit of Twitter's seven year history.
  4. Twitter isn't a particularly old company, but it is a company that's changed a lot. This is our first logo from 2006.
  5. Twitter grew up very quickly and publicly, and had a lot of infrastructure challenges. [Fail Whale?] (Current public number is 400 million monthly uniques to twitter.com)
  6. One of those challenges was security. Of the several high profile account compromises at Twitter, this is perhaps the most notorious, where an attacker was able to compromise the president's Twitter account through an exposed administrative interface. This one got some very serious recognition.
  7. From our pals at the FTC, who formally ordered an effective information security program at Twitter for the next 20 years.
  8. We all joined the team after the FTC order. Our first challenge was dealing with a large and rapidly changing code base that was under constant attack. A simple XSS attack could lead to an XSS worm, which was a big problem from the FTC's perspective, and from ours.
  9. With the help of whitehats, we tracked down and fixed a lot of these bugs.
  10. Whereas working security at Twitter used to involve a lot of emergencies, we've reached a point where deployed vulnerabilities are much rarer, and it's given us an opportunity to think about what we should be doing. As part of a growing engineering team and a proliferating code base, we've started to think more strategically about how to be more efficient. So during our last hack week, our team built the 1.0 or our security automation framework.
  11. Before we started coding, we've wanted to be able to describe a sort of worldview that we have, as a team, around security tools and automation, and use that drive what we built. As this audience a probably know, there's a lot of tools, methodologies, and activities related to application security. Our philosophy, and the tools we've built or integrated to support it, can really be distilled to a few principles.
  12. The first is that we believe writing secure code is not just a technical challenge, but also a social one, and tools should be built based on supporting and enhancing existing social processes. Unless it's one person writing, analyzing, and shipping code, then communicating about vulnerabilities is just as a important as finding them. And effective communication is really hard. We're not talking about emailing a huge report of maybe bugs to a project manager. We're talking about delivering all of the necessary information to diagnose and fix a vulnerability in a simple and user-centered view.
  13. The next principle is about finding and fixing things as quickly as possible. It's not a new idea, but as a guiding principle it leads you to be ruthless about bottlenecks, latencies, and root causes.
  14. For a while, we were dealing with the same types of bug over and over and over. Once, while on call, I had a group of people decide to get themselves on the whitehat page by finding XSS in all of the sites of companies we had acquired. Let's just say I didn't get a lot of sleep that weekend. We've now introduced much more comprehensive security reviews for acquired companies. In our experience, the best predictor of the next bug is the last bug. So that's where we focus our effort.
  15. There's a lot of ways to find security problems, and you get diminishing returns from each. We have tools that live on our servers, tools that live outside our server, tools that live in our users browsers, all meant to catch different types of issues.
  16. Security automation results aren't entirely accurate. We want the fantastic engineers we work with to trust us, and so we want to make sure that they have a voice in the process.
  17. Most people want to do the right thing. We want to make it easy for them.
  18. We shouldn't be doing anything that doesn't require creativity or judgment.
  19. While we've had some success with third party analysis and management tools, we've found that it's typically better to build our own. We know what we need to look for, and we know how our organization works. By doing only the things that are applicable to our technology, culture, and workflow, we waste less time overall.
  20. So we try to follow these philosophies when we approach using and implementing tools. Automating security does not just mean using automated tools for specific tasks.
  21. We have these manual tasks we need to perform as part of our security program. We need to review code as it is developed. We need to do penetration testing by poking around on our websites. And then we rely on whitehats to find problems and hopefully report them to us, rather than letting the world know. Many of our security tasks can be partially replaced with automated tools.
  22. For example, we can use static analysis to check for common coding problems, dynamic analysis for obvious problems on websites, and maybe CSP to get XSS reports to us sooner
  23. But the workflow is still manual! Someone from the security team runs the tools, waits for results, then needs to determine the validity of reports, and then work to get fixes in place. Like Alex said, we need to replace the dumb work with automation.
  24. And we have to do it over and over for new code and new projects. Even using tools, we are still operating in a manual workflow.
  25. We need to put our robots to work! Replace the manual workflow with one that runs the tools for you, then only requires your attention when a problem is found. For static analysis, we want tools to be run automatically when code is committed. For dynamic tools, we want them to always be crawling our sites and looking for problems. The reports from these tools should go to a central location, which only alerts us when potential problems are found.
  26. Once we have an automated workflow, we are happier and more relaxed. Fewer repetitive tasks means we can focus more attention on jobs that require creativity and deeper investigation.
  27. Our original approach to solving the automation problem centered around Jenkins CI, an open source continuous integration server. This worked okay at first for running static analysis tools, but we needed a solution that would work with dynamic tools and we found the notification system did not fit our workflow.
  28. So we have been working on our automation solution called SADB, a central service to handle all of our automated tools and reports. This serves as not only a dashboard for the security team, but also handles notifying and informing developers. [old notes below] Originally was static analysis dashboard (S A D B) Incorporated more results, loved calling it "SADB" so the name stuck Rails. Most people use brakeman with jenkins. This has a few issues. One such issue that was a blocker to us was the scenario where a line change would trigger a new and fixed warning alert every time Some alert on delta to help reduce the noise but that potentially hides vulnerabilities. Came out of the need to manage all of the various data points we have around code security. Similar to threadfix. Also, gave us a high level overview that Jenkins could give us. Relied heavily on jenkins scraped images Posting the posting results to sadb Also received data from scans during deploys Completely informational Failed to have any meaning to developers Wasn't meant to be user facing. Really just to help the team manage issues. We wanted to manage phantom-gang findings as well so we started posting results to sadb and used ActiveAdmin to give us a simple GUI to create Jira issues and a more digestible format for all of our findings. While developers would see the tickets as a result of sadb management, we had made no progress in making it useful for someone outside our team. Then came #hackweek. We thought about it from the developers standpoint. Came up with a few stories. Built a wicked awesome mesos-based continuous integration-like system.
  29. SADB is our central database of reports, and can handle input from a variety of sources, which we will describe a little later. This includes static analysis reports from Brakeman, dynamic analysis reports from Phantom Gang, CSP reports directly from browsers, and our internal code review tracking. SADB can then send out notifications as needed to developers and the security team. Because this is a custom tool, we can more easily adapt it to take input from anywhere, and make sure the logic matches what we need for our workflow.
  30. Brakeman is an open source, static analysis security tool for Ruby on Rails applications. "Zero configuration" Detects the usual suspects: SQLi, XSS, command injection, open redirects. Also Rails-specific issues: mass assignment, model validation, default routes, CVEs. And more.
  31. Brakeman can be run anytime! After deploys (but why? too late.) As part of QA or part of code reviews Integrate into CI (Jenkins or custom) As a commit hook? As part of tests - rake brakeman:run What about as code is saved - with file system monitoring
  32. Developer pushes code to central repo A mesos job pulls latest code, scans each commit Each scan is reported to SADB Notifications sent on new/fixed warnings
  33. Because SADB collects reports per commit, we are able to track detailed history and trends for each application.
  34. The large drops in warnings date from when Brakeman started getting used more heavily at Twitter.
  35. SADB allows developers or security people to drill down into reports
  36. The warning details are designed first for developers following an email link, then for the security team
  37. Because we scan each commit, we are able to pinpoint just how long a warning has been around.
  38. We provide a link directly to the file and line number.
  39. The warning also includes a snippet of the code that raised the warning, as it is interpreted by Brakeman. <neil>: you mention it's the code "as brakeman sees it" but I think that needs some more explanation. It's awesome that it resolves the variable name to it's assignments (and has even more logic to condense this - 1 + 1 + 1 -> 3)
  40. We included inline documentation about the potential vulnerability as it relates to Rails.
  41. Each warning has a button that allows developers to directly tell the security team that the warning is bogus.
  42. I'm thinking video here will show off the SADB/Brakeman flow
  43. We want to integrate this into our deployment more tightly so that people can't ship code without fixing warnings. We're also working on static analysis tools to cover JS and Scala, especially for our internal web frameworks. <maybe?>SADB could trigger decider changes to disable a given feature.
  44. The birth of phantom-gang is a tool that compliments our static analysis and manual efforts by scanning live web pages. We'll talk about a few issues we're seeing over and over again.
  45. These are often issues that might go undetected unless an attentive person reports such information, but are very easy to detect on a live web page. In order to hunt these down with some tenacity, we need to created a tool to look for them. Mixed content can cause a variety of issues, the main one being that you lose the guarantee that the content is coming from the who you expect it to come from. Hackers can inject content, sniff cookies, etc. CSP reports can help with mixed content, but only if a user with a CSP enabled browser visits the page.
  46. In addition to traditional dynamic scanning (xss, sqli), we wanted to employ a tool tailored to the problems we are seeing rather than what the industry is focusing on. Dynamic analysis tool for finding common issues that can be detected easily in a browser environment. This is an "always on" tool that is constantly crawling our properties. For common classes of mistakes, we create phantom-gang rules that eventually might turn into a regression framework.
  47. Phantom-gang is a collection of node processes that spin up Phantom-JS instances (hence the name). PhantomJS is a headless webkit browser that is driven by javascript. This allows to simulate what the user would experience with full javascript support. Given a browser environment, it's really easy to test for the problems previously listed. Phantom-gang sends reports of what it finds to SADB. The management of said issues is not automatic like brakeman warnings, I'll get into that more in a bit. From SADB, we can create a Jira (our issue tracking software) ticket for the owners to fix.
  48. - Servicify - allow people to request a scan for a given site/page - might be springboard of JS analysis, it's useful because we have resolved JS dependencies and we have a full javascript which is handled by asset packaging . - Could incorporate etsy-style testing - Open sourcing
  49. Content security policy defines what can "run" on a page and any deviation creates an alert. And Twitter was an early adopter. We saw that this could not only potentially protect our users, but give a large number of data points as to what the user is experiencing. We have used CSP to help detect XSS and mixed-content by leveraging the reports sent to us by the users' browsers. This compliments the static and dynamic analysis provided by brakeman and phantom-gang in a unique way as we are receiving information from the user. We send the CSP reports to a central scribe host (describe: massively scalable endpoint to collect and aggregate large amounts of data) which writes to hadoop file system which we can run "big data" reports against using pig/scalding. We send this information to SADB where we can search and sort more easily.
  50. Mixed content Static gone dynamic Inline script when there isn’t supposed to be
  51. Take your CSP reports and turn them into something actionable but tune down the noise. Initially we were getting all kinds of false positives from chrome-extensions, compromised systems, etc. Feeding into hadoop and Splunk See a lot of img-src violations with “http”? You likely have a mixed content warning See a lot of script-src violations? You could be under attack. Users on other browsers don't get protection
  52. A report from one of our wonderful whitehat reporters gave us a drop of happiness when he said that a successful xss attempt had been thwarted by CSP. TRANSITION: we took stock of what headers were implemented on our properties, and we were not satisfied. They were applied inconsistently and a by a variety of one-off methods.
  53. script tag on* events javascript: hrefs Even mention inline style
  54. Mention github blog post There are a few, mostly well known, ways to solve this - data attributes, blocks of code parsed as json mention the application of the header
  55. While this doesn't exactly fit in with the theme of a central place to see information, the application of a consistent CSP header lead to the creation of a library to apply the rest of the headers. HSTS ensures that a given page will only be loaded over SSL, which is handled by the browser. HSTS is unique from most headers as those concerned with performance and security on the same side: you save a round trip/redirect. HSTS basically tells a website to only serve a page over SSL once the header is set (usually for a long period of time). This helps mitigate SSLStrip and Firesheep attacks. This not only protects our users, but gives us justification to enforce SSL on previously non-SSL'd things. b/c we created a library to get them to use the headers
  56. Twitter has had clickjacking problems in the past. While xfo does not solve all clickjacking issues, it does solve a very common case and is generally a very quick win that is easy to integrate.
  57. Yeah, there are some IE specific headers too. I assume they are useful.
  58. Given that the browsers give us some baked in security and they take a relatively small amount of effort to implement, why aren't they more common? It’s a non-intrusive, easily configured way of enxuring that all requests get the necessary headers applied. We created a gem for Rails applications, and we intend to apply the same logic to our other frameworks as well.
  59. Talk about benefits: centrally configured/audited - pair with Decider abstract away differences in browser implementations, mimic unreleased features (firefox forwarding, default-src propegation, chrome-extension, etc)
  60. A couple more small things we built. First, there's Threatdeck.
  61. One of our teammates had built out a set of TweetDeck columns with terms like "Twitter XSS", "Twitter SSL", and "script alert". In this past, people had tweeted about vulnerabilities using these terms, which is not exactly responsible disclosure, but using these columns, he would find out about it quickly. We liked the idea so much we built out "ThreatDeck" which anyone in the company can monitor, and has a cool radar animated gif and ASCII art.
  62. Finally, there's Roshambo, and this one's kind of funny.
  63. In the past, people were constantly shipping code, and we simply didn't have the visibility we needed to review the important stuff. So we started using a mechanism to alert us if changes happen to critical code paths, which automatically adds us to a code review. The problem then became that we had a bunch of code reviews lined up, but sometimes they wouldn't get reviewed. Someone would have to manually collect them and review them... but who?
  64. Our team staged a roshambo tournament every week, and the loser would have to collect and review all of the leftover code changes. And while this was great for team morale, we realized we could use automation to automatically collect the unreviewed changes and report them to SADB. We still have a roshambo tournament to determine who reviews them.