Foreword |
|
xiii | |
Acknowledgments |
|
xv | |
|
Part 1 Bug Bounty Overview |
|
|
1 | (10) |
|
1 The Evolution of Bug Bounty Programs |
|
|
3 | (8) |
|
|
3 | (1) |
|
1.2 Conservative Blockers |
|
|
4 | (1) |
|
1.3 Increased Threat Actor Activity |
|
|
4 | (1) |
|
1.4 Security Researcher Scams |
|
|
5 | (1) |
|
1.5 Applications Are a Small Consideration |
|
|
5 | (1) |
|
1.6 Enormous Budgetary Requirements |
|
|
5 | (1) |
|
1.7 Other Security Tooling as a Priority |
|
|
6 | (1) |
|
1.8 Vulnerability Disclosure Programs vs Bug Bounty Programs |
|
|
6 | (1) |
|
1.8.1 Vulnerability Disclosure Programs |
|
|
6 | (1) |
|
1.8.2 Bug Bounty Programs |
|
|
7 | (1) |
|
|
7 | (1) |
|
|
7 | (1) |
|
1.11 Redefining Security Research |
|
|
7 | (1) |
|
|
8 | (3) |
|
1.12.1 Get to Know Security Researchers |
|
|
9 | (1) |
|
1.12.2 Fair and Just Resolution |
|
|
9 | (1) |
|
1.12.3 Managing Disclosure |
|
|
9 | (1) |
|
|
9 | (1) |
|
1.12.5 Specific Community Involvement |
|
|
9 | (2) |
|
Part 2 Evaluating Programs |
|
|
11 | (20) |
|
2 Assessing Current Vulnerability Management Processes |
|
|
13 | (8) |
|
2.1 Who Runs a Bug Bounty Program? |
|
|
13 | (1) |
|
2.2 Determining Security Posture |
|
|
13 | (1) |
|
|
14 | (1) |
|
2.3.1 Software Engineering Teams |
|
|
14 | (1) |
|
2.3.2 Security Departments (Security Operations, Fraud Prevention, Governance/Risk/Compliance, Edge Controls, Vulnerability Management, Endpoint Detection, and Response) |
|
|
14 | (1) |
|
2.3.3 Infrastructure Teams |
|
|
14 | (1) |
|
|
14 | (1) |
|
2.3.5 Communications Team |
|
|
14 | (1) |
|
|
15 | (1) |
|
|
15 | (1) |
|
2.5.1 Which Processes Are in Place for Secure Coding? Do the Software Engineers Understand the Importance of Mitigating the Risks Associated with Vulnerable Code? |
|
|
15 | (1) |
|
2.5.2 How Effective Are Current Communication Processes? Will Vulnerabilities Be Quickly Resolved If Brought to Their Attention? |
|
|
15 | (1) |
|
2.5.3 Is the Breadth of Our Enterprise's Web and Mobile Applications Immense? Which Processes Are Engineers Using for Development in the Software Development Lifecycle? |
|
|
16 | (1) |
|
|
16 | (1) |
|
2.6.1 How Does Security Operations Manage Incidents? Will Employee Assistance Be Provided from the Security Operations Team If a Threat Actor Manages to Exploit an Application Vulnerability? Which Tools Do They Have in Place? |
|
|
16 | (1) |
|
2.6.2 What Does the Fraud Prevention Team Do to Prevent Malicious Activities? How Many Occurrences Do They See of Issues such as Account Takeover, and Could They Potentially Create Application Vulnerabilities? |
|
|
16 | (1) |
|
2.6.3 Are There Any Compliance Practices in Place and, If So, How Do They Affect the Vulnerability Management Process? What Does the Application Security Team Have to Do to Assist in Enterprise Compliance? |
|
|
17 | (1) |
|
2.6.4 What Edge Tooling Is in Place to Prevent Attacks? Are Any of the Enterprise Applications at Risk of Being Exploited due to an IoT (Internet of Things) Device? |
|
|
17 | (1) |
|
2.6.5 How Often Does Our Vulnerability Management Team Push for Updates? How Does the Vulnerability Management Team Ensure Servers in which Enterprise Applications Reside Are Secure? |
|
|
17 | (1) |
|
|
17 | (1) |
|
2.7.1 What Are Infrastructure Teams Doing to Ensure Best Security Practices Are Enabled? How Long Will It Take the Infrastructure Team to Resolve a Serious Issue When a Server-side Web Application Is Exploited, or During a Subdomain Takeover Vulnerability? |
|
|
17 | (1) |
|
2.7.2 Is There Effective Communication between Infrastructure, Vulnerability Management, Security Operations, and Endpoint Detection and Response? |
|
|
18 | (1) |
|
|
18 | (1) |
|
2.8.1 How Well Refined is the Relationship between the Application Security Team and the Legal Department? |
|
|
18 | (1) |
|
2.8.2 What Criteria Are/Will Be Set Out for the Escalation of Issues? |
|
|
18 | (1) |
|
2.8.3 Does the Legal Department Understand the Necessity of Bug Bounty Program Management? |
|
|
18 | (1) |
|
|
18 | (1) |
|
2.9.1 Has the Communications Team Dealt with Security Researchers Before? Is the Importance Understood? |
|
|
18 | (1) |
|
2.9.2 Was the Communications Team Informed of Bug Bounty Program Expectations? |
|
|
19 | (1) |
|
|
19 | (1) |
|
|
19 | (2) |
|
3 Evaluating Program Operations |
|
|
21 | (10) |
|
3.1 One Size Does Not Fit All |
|
|
21 | (1) |
|
3.2 Realistic Program Scenarios |
|
|
21 | (1) |
|
|
22 | (2) |
|
|
24 | (1) |
|
|
24 | (3) |
|
3.5.1 Applied Knowledge #1 |
|
|
24 | (1) |
|
|
25 | (1) |
|
3.5.2 Applied Knowledge #2 |
|
|
25 | (1) |
|
|
25 | (1) |
|
3.5.3 Applied Knowledge #3 |
|
|
26 | (1) |
|
|
26 | (1) |
|
3.6 Crowdsourced Platforms |
|
|
27 | (1) |
|
3.7 Platform Pricing and Services |
|
|
28 | (1) |
|
|
28 | (1) |
|
3.9 Opting Out of Managed Services |
|
|
29 | (1) |
|
3.10 On-demand Penetration Tests |
|
|
29 | (2) |
|
|
31 | (80) |
|
4 Defining Program Scope and Bounties |
|
|
33 | (16) |
|
|
33 | (1) |
|
|
33 | (1) |
|
|
34 | (1) |
|
|
34 | (1) |
|
4.4 Understanding Wildcards |
|
|
34 | (2) |
|
|
35 | (1) |
|
|
35 | (1) |
|
4.4.3 Specific Domain Path or Specific Subdomain Path |
|
|
35 | (1) |
|
4.5 Determining Asset Allocation |
|
|
36 | (1) |
|
|
37 | (1) |
|
4.7 Understanding Out of Scope |
|
|
37 | (1) |
|
|
38 | (1) |
|
4.8.1 Denial of Service (DOS) or Distributed Denial of Service (DDoS) Attacks |
|
|
38 | (1) |
|
4.8.2 Social Engineering Attacks |
|
|
38 | (1) |
|
4.8.3 Brute Force or Rate Limiting |
|
|
38 | (1) |
|
4.8.4 Account and Email Enumeration |
|
|
38 | (1) |
|
|
39 | (1) |
|
|
39 | (1) |
|
|
39 | (1) |
|
4.9 When Is an Asset Really Out of Scope? |
|
|
39 | (1) |
|
4.10 The House Wins - Or Does It? |
|
|
40 | (2) |
|
4.11 Fair Judgment on Bounties |
|
|
42 | (1) |
|
|
43 | (1) |
|
4.13 Awareness and Reputational Damage |
|
|
43 | (1) |
|
4.14 Putting It All Together |
|
|
44 | (1) |
|
|
44 | (5) |
|
4.15.1 Determining Payments |
|
|
45 | (1) |
|
|
46 | (1) |
|
4.15.3 Nonmonetary Rewards |
|
|
46 | (3) |
|
5 Understanding Safe Harbor and Service Level Agreements |
|
|
49 | (6) |
|
5.1 What Is "Safe Harbor"? |
|
|
49 | (2) |
|
5.1.1 The Reality of Safe Harbor |
|
|
49 | (1) |
|
5.1.2 Fear and Reluctance |
|
|
49 | (1) |
|
5.1.3 Writing Safe Harbor Agreements |
|
|
50 | (1) |
|
5.1.4 Example Safe Harbor Agreement |
|
|
50 | (1) |
|
5.2 Retaliation against a Rogue Researcher (Cybercriminal or Threat/Bad Actor) |
|
|
51 | (1) |
|
5.3 Service Level Agreements (SLAs) |
|
|
52 | (3) |
|
|
53 | (1) |
|
|
53 | (2) |
|
|
55 | (56) |
|
6.1 Understanding Options |
|
|
55 | (1) |
|
|
55 | (29) |
|
6.2.1 Creating the Program |
|
|
55 | (6) |
|
|
61 | (1) |
|
6.2.2.1 The Program Dashboard |
|
|
61 | (2) |
|
6.2.2.2 The Crowd Control Navbar |
|
|
63 | (1) |
|
|
63 | (1) |
|
|
63 | (1) |
|
|
64 | (1) |
|
|
65 | (1) |
|
|
65 | (1) |
|
|
66 | (1) |
|
6.2.3 Advanced Program Configuration and Modification |
|
|
66 | (1) |
|
|
66 | (1) |
|
6.2.3.2 Scope and Rewards |
|
|
67 | (5) |
|
|
72 | (1) |
|
|
73 | (1) |
|
|
74 | (1) |
|
|
75 | (1) |
|
|
76 | (2) |
|
6.2.4.1 The Profile and Account |
|
|
78 | (1) |
|
|
78 | (1) |
|
6.2.4.3 Notification Settings |
|
|
79 | (1) |
|
|
80 | (1) |
|
6.2.5 Enterprise "Profile" Settings |
|
|
81 | (1) |
|
6.2.5.1 Management and Configuration |
|
|
81 | (1) |
|
6.2.5.2 Organization Details |
|
|
81 | (1) |
|
|
81 | (1) |
|
|
81 | (1) |
|
|
81 | (1) |
|
|
82 | (1) |
|
|
83 | (1) |
|
|
84 | (26) |
|
|
85 | (1) |
|
|
85 | (1) |
|
|
86 | (1) |
|
|
86 | (1) |
|
|
87 | (1) |
|
|
88 | (1) |
|
6.3.1.6 Credential Management |
|
|
89 | (1) |
|
|
89 | (1) |
|
|
90 | (1) |
|
|
91 | (1) |
|
|
92 | (1) |
|
|
92 | (1) |
|
|
92 | (1) |
|
|
92 | (1) |
|
|
93 | (1) |
|
|
93 | (1) |
|
|
93 | (2) |
|
6.3.3.3 Submit Report Form |
|
|
95 | (1) |
|
|
96 | (1) |
|
|
97 | (1) |
|
6.3.3.6 Email Notifications |
|
|
97 | (1) |
|
|
98 | (1) |
|
|
98 | (1) |
|
|
98 | (1) |
|
|
99 | (1) |
|
|
100 | (1) |
|
|
101 | (1) |
|
6.3.3.13 Email Forwarding |
|
|
102 | (1) |
|
6.3.3.14 Embedded Submission Form |
|
|
102 | (1) |
|
|
103 | (1) |
|
|
103 | (1) |
|
6.3.3.17 Common Responses |
|
|
104 | (2) |
|
|
106 | (1) |
|
|
107 | (1) |
|
|
107 | (1) |
|
|
107 | (1) |
|
|
108 | (1) |
|
6.3.3.23 Profile Settings |
|
|
108 | (1) |
|
|
108 | (1) |
|
|
109 | (1) |
|
|
109 | (1) |
|
|
110 | (1) |
|
Part 4 Vulnerability Reports and Disclosure |
|
|
111 | (22) |
|
7 Triage and Bug Management |
|
|
113 | (10) |
|
|
113 | (3) |
|
|
113 | (2) |
|
|
115 | (1) |
|
7.1.3 Vulnerability Mishaps |
|
|
115 | (1) |
|
|
115 | (1) |
|
|
116 | (1) |
|
|
116 | (2) |
|
7.2.1 Vulnerability Priority |
|
|
116 | (1) |
|
7.2.2 Vulnerability Examples |
|
|
117 | (1) |
|
7.2.2.1 Reflected XSS on a login portal |
|
|
117 | (1) |
|
|
117 | (1) |
|
|
117 | (1) |
|
7.2.2.2 Open redirect vulnerability |
|
|
117 | (1) |
|
|
117 | (1) |
|
|
118 | (1) |
|
7.2.2.3 Leaked internal Structured Query Language (SQL) server credentials |
|
|
118 | (1) |
|
|
118 | (1) |
|
|
118 | (1) |
|
|
118 | (1) |
|
7.3.1 Vulnerability Rating-test Summary |
|
|
118 | (1) |
|
7.3.1.1 Reflected XSS in a login portal |
|
|
118 | (1) |
|
7.3.1.2 Open redirect vulnerability |
|
|
118 | (1) |
|
7.3.1.3 Leaked internal SQL server credentials |
|
|
118 | (1) |
|
7.3.2 Complexity vs Rating |
|
|
119 | (1) |
|
|
120 | (1) |
|
7.3.4 Ticketing and Internal SLA |
|
|
120 | (1) |
|
|
120 | (3) |
|
8 Vulnerability Disclosure Information |
|
|
123 | (10) |
|
8.1 Understanding Public Disclosure |
|
|
123 | (3) |
|
8.1.1 Making the Decision |
|
|
123 | (1) |
|
|
123 | (1) |
|
|
124 | (1) |
|
|
125 | (1) |
|
|
126 | (1) |
|
|
126 | (4) |
|
|
126 | (1) |
|
8.2.2 Program Manager Responsibilities |
|
|
126 | (1) |
|
|
126 | (2) |
|
8.2.4 Software and Product CVEs |
|
|
128 | (1) |
|
|
128 | (2) |
|
|
130 | (3) |
|
8.3.1 In-house Submissions |
|
|
130 | (1) |
|
8.3.2 Program Managed Submissions and Hands-off Submissions |
|
|
130 | (1) |
|
8.3.2.1 Program Managed Submissions |
|
|
130 | (1) |
|
8.3.2.2 Hands-off Submissions |
|
|
131 | (2) |
|
Part 5 Internal and External Communication |
|
|
133 | (32) |
|
9 Development and Application Security Collaboration |
|
|
135 | (8) |
|
|
135 | (1) |
|
9.1.1 Application Security Engineer |
|
|
135 | (1) |
|
|
135 | (1) |
|
9.2 Facing a Ticking Clock |
|
|
136 | (1) |
|
9.3 Meaningful Vulnerability Reporting |
|
|
136 | (1) |
|
9.4 Communicating Expectations |
|
|
137 | (1) |
|
9.5 Pushback, Escalations, and Exceptions |
|
|
138 | (3) |
|
|
138 | (1) |
|
|
139 | (1) |
|
|
139 | (1) |
|
|
140 | (1) |
|
9.6 Continuous Accountability |
|
|
141 | (2) |
|
|
141 | (1) |
|
|
141 | (2) |
|
10 Hacker and Program Interaction Essentials |
|
|
143 | (1) |
|
10.1 Understanding the Hacker |
|
|
143 | (1) |
|
10.1.1 Money, Ethics, or Both? |
|
|
143 | (2) |
|
10.1.2 Case Study Analysis |
|
|
145 | (1) |
|
10.2 Invalidating False Positives |
|
|
145 | (2) |
|
10.2.1 Intake Process and Breaking the News |
|
|
145 | (2) |
|
10.2.2 Dealing with a Toxic Hacker |
|
|
147 | (1) |
|
10.3 Managed Program Considerations |
|
|
147 | (1) |
|
|
148 | (3) |
|
10.5 Blackmail or Possible Threat Actor |
|
|
151 | (1) |
|
10.6 Public Threats or Disclosure |
|
|
151 | (2) |
|
10.7 Program Warning Messages |
|
|
153 | (1) |
|
10.8 Threat Actor or Security Researcher? |
|
|
153 | (2) |
|
10.9 Messaging Researchers |
|
|
155 | (9) |
|
10.9.1 Security Researcher Interviews |
|
|
155 | (4) |
|
10.9.2 Bug Bounty Program Manager Interviews |
|
|
159 | (5) |
|
|
164 | (1) |
|
Part 6 Assessments and Expansions |
|
|
165 | (24) |
|
|
167 | (14) |
|
11.1 Introduction to Internal Assessments |
|
|
167 | (1) |
|
11.2 Proactive Vs Reactive Testing |
|
|
167 | (1) |
|
|
168 | (5) |
|
|
168 | (1) |
|
|
168 | (3) |
|
|
171 | (1) |
|
|
172 | (1) |
|
|
173 | (1) |
|
|
173 | (7) |
|
|
173 | (2) |
|
|
175 | (1) |
|
|
175 | (2) |
|
|
177 | (2) |
|
|
179 | (1) |
|
11.5 Passive/Active Summary |
|
|
180 | (1) |
|
11.6 Additional Considerations: Professional Testing and Third-Party Risk |
|
|
180 | (1) |
|
|
181 | (4) |
|
12.1 Communicating with the Team |
|
|
181 | (1) |
|
|
182 | (1) |
|
12.3 When to Expand Scope |
|
|
182 | (1) |
|
12.4 Alternatives to Scope Expansion |
|
|
183 | (1) |
|
|
183 | (2) |
|
|
185 | (4) |
|
13.1 Understanding the Public Program |
|
|
185 | (1) |
|
|
185 | (1) |
|
|
186 | (1) |
|
|
186 | (1) |
|
|
186 | (1) |
|
|
187 | (2) |
Index |
|
189 | |