43
If You Can’t Beat ‘Em Join ‘Em: Practical Tips for Running a Successful Bug Bounty Program Grant McCracken and Daniel Trauner AppSecUSA 2016

If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Embed Size (px)

Citation preview

Page 1: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

If You Can’t Beat ‘Em Join ‘Em:Practical Tips for Running a Successful Bug Bounty Program

Grant McCracken and Daniel TraunerAppSecUSA 2016

Page 2: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Grant

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

• Solutions Architect @Bugcrowd

– Formerly an AppSec Engineer

• Before that, WhiteHat

• Traveling, music, stuff.

Page 3: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Dan

• Senior AppSec Engineer @Bugcrowd

• Before that, Software Security @HP

– Static analysis – lots of languages

– Focused on Apple iOS

• Art history and collecting

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Page 4: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

BUG BOUNTY PROGRAMS

Page 5: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Source (Flickr)

Page 6: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Netscape “Bugs Bounty”

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Page 7: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

An (Abbreviated) History of Bug Bounties Since 1995

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Page 8: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

WHY?

Page 9: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Do you really want to let people attack you?

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Source (Hyperbole and a Half)

Page 10: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Yes! (They’re doing it anyways…)

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Source (Hyperbole and a Half)

Page 11: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

You vs. and Them

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Page 12: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Who are these people?

• All ages

• All levels of experience

• All over the world

• Users and and non-users

• Passionate about security!

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Page 13: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

The Value of Crowdsourced TestingFormal Methodologies The Crowd’s Creativity

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

03

Page 14: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

HOW?

Page 15: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Overview

Pre-Launch

• Scope

• Focus

• Exclusions

• Environment

• Access

Post-Launch

• Managing Expectations

• Communicating Effectively

• Defining a Vulnerability Rating Taxonomy

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Page 16: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

But you never mentioned paying rewards!

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Page 17: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

“Touch the code, pay the bug.”

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

!

Page 18: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

PRE-LAUNCH

Page 19: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

…but first, Step 0

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

• Basic resources and requirements

– A full-time resource

– Escalation policies

– Organization-wide awareness

Find all of the dank

memes for your slides

Page 20: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Scope

• Scope defines the researcher’s universe

– Leave nothing open to interpretation

– Understand your attack surface

– Recognize the path of least resistance

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Source (Flickr)

Page 21: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Focus

• You might care about specific:

– Targets

– Vulnerability Types

– Functionality (e.g. payment processing)

• How?

– Incentives

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Source (xkcd)

Page 22: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Exclusions

• You might not care about:

– (Low-impact) “low hanging fruit”

– Intended functionality

– Known issues

– Accepted risks

– Issues based on pivoting

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Source (Meme Generator)

Page 23: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Environment

• Production vs. staging

• Make sure it can stand up to testing!

– Scanners

– Contact forms

– Pentesting requests

• Special bounty types

• Researcher environments

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Source (Twitter @PokemonGoApp)

Page 24: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

This is what a shared environment looks like…

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Page 25: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Access

• Easier = better

• Provide adequate resources for success

– E.g. sandbox credit cards

• No shared credentials

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Source (Demotivation)

Page 26: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Remember…

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Page 27: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

POST-LAUNCH

Page 28: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Manage Expectations

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Source (Jane Donald)

Page 29: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Manage Expectations

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Source (SoJo 104.9)

Page 30: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Communication is Key

• Researchers like:

– Concise, unambiguous responses

• ESL

– Short response time

– Predictable reward time

• Stay on top of these issues!

• Public disclosure?

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

🔑

Page 31: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Coordinated Disclosure

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Source (Stefano Vettorazzi)

Page 32: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Define a Vulnerability Rating Taxonomy (VRT)

• For program owners:

– Speeds up triage process

– Track your organization’s security posture

– Arrive at a reward amount more quickly

• For researchers:

– Focus on high-value bugs

– Avoid wasting time on non-rewardable bugs

– Alongside brief, helps build trust

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Page 33: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

THINK LIKE A RESEARCHER

Page 34: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

The Regular Methodologies

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Source (OWASP)Source (Amazon)

Page 35: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

The Bughunter’s Methodology• Identify roads less traveled

– Acquisitions (define the rules)– Functionality changes or redesigns– Mobile websites or apps

• Think like a researcher– Wikipedia (acquisitions)– Google dorks, recon-ng, altdns, etc.

• jhaddix/domain (enumall)• ChrisTruncer/EyeWitness

– Researchers’ Blogs– And many more we can’t fit into this

talk!

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Source (Meme Generator)

Page 36: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

A GOOD REPORT

Page 37: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Page 38: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

FINAL TIPS

Page 39: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Consider the business impact!

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Source (Know Your Meme)

Page 40: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Remember what it’s all about.

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Source (BBC)

Page 41: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Case Study: Instructure

2013(Pentest) 2014 (BugBounty) 2015 (BugBounty)

Critical 0 0 0High 1 25 3

Medium 1 8 2Low 2 16 5

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Source (Instructure)

Page 42: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Source (Stack Exchange)

Page 43: If You Can't Beat 'Em, Join 'Em (AppSecUSA)

Thanks!

Grant [email protected]

Daniel [email protected]

AppSecUSA 2016 If You Can't Beat 'Em Join 'Em

Source (xkcd)