Top Banner
If You Can’t Beat ‘Em Join ‘Em Tips For Running a Successful Bug Bounty Program Grant McCracken Daniel Trauner BSides Austin April 1, 2016
35

If You Can't Beat 'Em, Join 'Em

Jan 15, 2017

Download

Technology

bugcrowd
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: If You Can't Beat 'Em, Join 'Em

If You Can’t Beat ‘Em Join ‘EmTips For Running a Successful Bug Bounty Program

Grant McCrackenDaniel Trauner

BSides AustinApril 1, 2016

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

Grant

● Technical Account Manager @Bugcrowd

○ formerly an ASE

● Before that, Whitehat

● Did some traveling

● Music

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

Dan

● AppSec Engineer (ASE) @Bugcrowd

● Before that, Fortify SCA @HPSR

○ Static analysis -- lots of languages

○ Focus on iOS

● Art History/Collecting!

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

Bug Bounty Programs

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

wut

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

A (Brief) History of Bug Bounty Programs

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

Why?

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

Do you really want to let people attack you?

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

Source: http://hyperboleandahalf.blogspot.com/2010_06_01_archive.html

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

Yes! (They’re doing it anyways…)

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

Source: http://hyperboleandahalf.blogspot.com/2010_06_01_archive.html

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

You vs. and Them

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

Who are these people?

● All over the place!

○ All ages

○ All levels of experience

○ All over the world

○ Users and non-users

● Passionate about security

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

Value

● Lots of eyes

● Only pay for valid results

● Shows a more advanced security

posture

● Better overall reputation!

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

How?

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

How?● Pre-Launch

○ Scope

○ Focus

○ Exclusions

○ Environment

○ Access

● Post-Launch

○ Managing Expectations

○ Communicating Effectively

○ Defining a Vulnerability Rating

Taxonomy (VRT)

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

“Touch the code, pay the bug.”

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

Pre-Launch

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

Scope, scope, scope

● Step 0...○ Basic resources/requirements to run

a program

● The researcher’s universe

○ Leave nothing open to interpretation

○ Understand your attack surface

○ The path of least resistance

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

Focus

● You might care about specific:○ Targets

○ Vuln types

○ Functionalities (e.g. payment

processing)

● How?○ Incentives

○ Create a focused program

Source: https://xkcd.com/1361/

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

Exclusions

● You might not care about:

○ “Low-hanging fruit”

○ Intended functionality

○ Known issues

○ Accepted Risks

○ Issues resulting from pivoting

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

Environment● Different based on:

○ Prod vs. Staging

■ Make sure it can stand up to testing!

1. Scanners

2. Contact forms

3. Pentesting requests

○ Target type

■ IoT? iOS?

○ Special bounty type?

○ Researcher environments

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

What a shared environment looks like...

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

Access

● Easier = better

● How will researchers get there?○ Whitelist? Proxy? Geo-restrictions?

● Public or private?

● SSN/CCs/phone numbers?

● Intuitive credentials management ○ NO SHARED CREDS

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

Remember...

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

Post-Launch

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

Expectations, expectations, expectations...

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

Expectations, expectations, expectations...

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

Communication is Key

● Researchers like:○ Concise, unambiguous responses

■ ESL

○ Quick responses

○ Predictable time to reward

● Stay on top of these issues!

● Public disclosure?

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

Define a Vulnerability Rating Taxonomy

● For you:○ Speed up triage process

○ Track your organization’s posture

○ Arrive at reward amount more quickly

● For them (if published):○ Focus on high-value bugs

○ Avoid reporting wontfix issues

○ Feel a sense of trust (goes with brief)

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

Discuss the VRT at a Roundtable

● Priority will change as your

organization does

● Establish a discussion meeting○ Review interesting bugs

○ Discuss additions to VRT

○ Propose changes to vulnerability

classification/priorities

● This is an ongoing process!

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

Meanwhile, IRL...

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

$UNPREPARED_COMPANY

Recipe for disaster:

1. Don’t provide known issues

2. Don’t consider exclusions

3. Sneaky brief changes

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

Instructure

2013 (Pentest) 2014 (Bug Bounty)

Critical 0 0

High 1 25

Medium 1 8

Low 2 16

Source: https://www.canvaslms.com/security

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

tl;dr

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016

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

Source: https://xkcd.com/1256/

BSides Austin 2016 – If You Can’t Beat ‘Em Join ‘Em © Bugcrowd 2016