Dedication |
|
v | |
Foreword |
|
xiii | |
|
Preface |
|
xix | |
Acknowledgments |
|
xxiii | |
About the Authors |
|
xxv | |
|
|
1 | (18) |
|
1.1 The Importance and Relevance of Software Security |
|
|
3 | (3) |
|
1.2 Software Security and the Software Development Lifecycle |
|
|
6 | (4) |
|
1.3 Quality Versus Secure Code |
|
|
10 | (1) |
|
1.4 The Three Most Important SDL Security Goals |
|
|
11 | (2) |
|
1.5 Threat Modeling and Attack Surface Validation |
|
|
13 | (2) |
|
1.6 Chapter Summary---What to Expect from This Book |
|
|
15 | (4) |
|
|
16 | (3) |
|
Chapter 2 The Secure Development Lifecycle |
|
|
19 | (42) |
|
2.1 Overcoming Challenges in Making Software Secure |
|
|
20 | (1) |
|
2.2 Software Security Maturity Models |
|
|
21 | (2) |
|
2.3 ISO/IEC 27034---Information Technology---Security Techniques---Application Security |
|
|
23 | (2) |
|
2.4 Other Resources for SDL Best Practices |
|
|
25 | (6) |
|
|
25 | (1) |
|
2.4.2 U.S. Department of Homeland Security Software Assurance Program |
|
|
26 | (1) |
|
2.4.3 National Institute of Standards and Technology |
|
|
27 | (1) |
|
2.4.4 MITRE Corporation Common Computer Vulnerabilities and Exposures |
|
|
28 | (2) |
|
2.4.5 SANS Institute Top Cyber Security Risks |
|
|
30 | (1) |
|
2.4.6 U.S. Department of Defense Cyber Security and Information Systems Information Analysis Center (CSIAC) |
|
|
30 | (1) |
|
2.4.7 CERT, Bugtraq, and SecurityFocus |
|
|
31 | (1) |
|
2.5 Critical Tools and Talent |
|
|
31 | (9) |
|
|
32 | (2) |
|
|
34 | (6) |
|
2.6 Principles of Least Privilege |
|
|
40 | (1) |
|
|
41 | (1) |
|
2.8 The Importance of Metrics |
|
|
42 | (3) |
|
2.9 Mapping the Security Development Lifecycle to the Software Development Lifecycle |
|
|
45 | (5) |
|
2.10 Software Development Methodologies |
|
|
50 | (6) |
|
2.10.1 Waterfall Development |
|
|
51 | (2) |
|
|
53 | (3) |
|
|
56 | (5) |
|
|
57 | (4) |
|
Chapter 3 Security Assessment (A1): SDL Activities and Best Practices |
|
|
61 | (20) |
|
3.1 Software Security Team Is Looped in Early |
|
|
63 | (1) |
|
3.2 Software Security Hosts a Discovery Meeting |
|
|
64 | (2) |
|
3.3 Software Security Team Creates an SDL Project Plan |
|
|
66 | (1) |
|
3.4 Privacy Impact Assessment (PIA) Plan Initiated |
|
|
66 | (7) |
|
3.5 Security Assessment (A1) Key Success Factors and Metrics |
|
|
73 | (6) |
|
3.5.1 Key Success Factors |
|
|
73 | (3) |
|
|
76 | (2) |
|
|
78 | (1) |
|
|
79 | (2) |
|
|
79 | (2) |
|
Chapter 4 Architecture (A2): SDL Activities and Best Practices |
|
|
81 | (52) |
|
4.1 A2 Policy Compliance Analysis |
|
|
83 | (1) |
|
4.2 SDL Policy Assessment and Scoping |
|
|
84 | (1) |
|
4.3 Threat Modeling/Architecture Security Analysis |
|
|
84 | (40) |
|
|
84 | (4) |
|
|
88 | (7) |
|
4.3.3 Architectural Threat Analysis and Ranking of Threats |
|
|
95 | (22) |
|
|
117 | (7) |
|
4.4 Open-Source Selection |
|
|
124 | (1) |
|
4.5 Privacy Information Gathering and Analysis |
|
|
124 | (1) |
|
4.6 Key Success Factors and Metrics |
|
|
125 | (3) |
|
4.6.1 Key Success Factors |
|
|
125 | (1) |
|
|
126 | (1) |
|
|
127 | (1) |
|
|
128 | (5) |
|
|
129 | (4) |
|
Chapter 5 Design and Development (A3): SDL Activities and Best Practices |
|
|
133 | (28) |
|
5.1 A3 Policy Compliance Analysis |
|
|
135 | (1) |
|
5.2 Security Test Plan Composition |
|
|
135 | (11) |
|
5.3 Threat Model Updating |
|
|
146 | (1) |
|
5.4 Design Security Analysis and Review |
|
|
146 | (4) |
|
5.5 Privacy Implementation Assessment |
|
|
150 | (4) |
|
5.6 Key Success Factors and Metrics |
|
|
154 | (4) |
|
5.6.1 Key Success Factors |
|
|
154 | (2) |
|
|
156 | (1) |
|
|
157 | (1) |
|
|
158 | (3) |
|
|
158 | (3) |
|
Chapter 6 Design and Development (A4): SDL Activities and Best Practices |
|
|
161 | (38) |
|
6.1 A4 Policy Compliance Analysis |
|
|
163 | (1) |
|
6.2 Security Test Case Execution |
|
|
164 | (4) |
|
6.3 Code Review in the SDLC/SDL Process |
|
|
168 | (6) |
|
6.4 Security Analysis Tools |
|
|
174 | (18) |
|
|
177 | (5) |
|
|
182 | (3) |
|
|
185 | (3) |
|
|
188 | (4) |
|
|
192 | (1) |
|
|
193 | (1) |
|
|
194 | (1) |
|
|
195 | (4) |
|
|
195 | (4) |
|
Chapter 7 Ship (A5): SDL Activities and Best Practices |
|
|
199 | (26) |
|
7.1 A5 Policy Compliance Analysis |
|
|
201 | (1) |
|
|
202 | (3) |
|
|
205 | (3) |
|
7.4 Open-Source Licensing Review |
|
|
208 | (4) |
|
7.5 Final Security Review |
|
|
212 | (4) |
|
|
216 | (1) |
|
|
217 | (2) |
|
|
219 | (2) |
|
|
221 | (1) |
|
|
221 | (4) |
|
|
223 | (2) |
|
Chapter 8 Post-Release Support (PRSA1--5) |
|
|
225 | (30) |
|
8.1 Right-Sizing Your Software Security Group |
|
|
227 | (5) |
|
8.1.1 The Right Organizational Location |
|
|
227 | (2) |
|
|
229 | (1) |
|
|
229 | (3) |
|
8.2 PRSA1: External Vulnerability Disclosure Response |
|
|
232 | (8) |
|
8.2.1 Post-Release PSIRT Response |
|
|
233 | (5) |
|
8.2.2 Post-Release Privacy Response |
|
|
238 | (1) |
|
8.2.3 Optimizing Post-Release Third-Party Response |
|
|
239 | (1) |
|
8.3 PRSA2: Third-Party Reviews |
|
|
240 | (2) |
|
8.4 PRSA3: Post-Release Certifications |
|
|
242 | (1) |
|
8.5 PRSA4: Internal Review for New Product Combinations or Cloud Deployments |
|
|
243 | (1) |
|
8.6 PRSA5: Security Architectural Reviews and Tool-Based Assessments of Current, Legacy, and M&A Products and Solutions |
|
|
243 | (5) |
|
|
243 | (4) |
|
8.6.2 Mergers and Acquisitions (M&As) |
|
|
247 | (1) |
|
|
248 | (3) |
|
|
251 | (1) |
|
|
252 | (1) |
|
|
252 | (3) |
|
|
253 | (2) |
|
Chapter 9 Applying the SDL Framework to the Real World |
|
|
255 | (70) |
|
|
256 | (5) |
|
9.1 Build Software Securely |
|
|
261 | (14) |
|
9.1.1 Produce Secure Code |
|
|
264 | (5) |
|
|
269 | (2) |
|
|
271 | (4) |
|
9.2 Determining the Right Activities for Each Project |
|
|
275 | (17) |
|
9.2.1 The Seven Determining Questions |
|
|
275 | (17) |
|
9.3 Architecture and Design |
|
|
292 | (10) |
|
|
302 | (10) |
|
|
303 | (1) |
|
|
304 | (5) |
|
9.4.3 Attack and Penetration Testing |
|
|
309 | (2) |
|
9.4.4 Independent Testing |
|
|
311 | (1) |
|
|
312 | (5) |
|
9.6 Key Success Factors and Metrics |
|
|
317 | (3) |
|
9.6.1 Secure Coding Training Program |
|
|
317 | (1) |
|
9.6.2 Secure Coding Frameworks (APIs) |
|
|
318 | (1) |
|
|
318 | (1) |
|
9.6.4 Independent Code Review and Testing (by Experts or Third Parties) |
|
|
318 | (1) |
|
|
319 | (1) |
|
9.6.6 Risk Assessment Methodology |
|
|
319 | (1) |
|
9.6.7 Integration of SDL with SDLC |
|
|
319 | (1) |
|
9.6.8 Development of Architecture Talent |
|
|
319 | (1) |
|
|
320 | (1) |
|
|
321 | (4) |
|
|
323 | (2) |
|
Chapter 10 Pulling It All Together: Using the SDL to Prevent Real-World Threats |
|
|
325 | (26) |
|
10.1 Strategic, Tactical, and User-Specific Software Attacks |
|
|
326 | (13) |
|
|
328 | (10) |
|
|
338 | (1) |
|
10.1.3 User-Specific Attacks |
|
|
339 | (1) |
|
10.2 Overcoming Organizational and Business Challenges with a Properly Designed, Managed, and Focused SDL |
|
|
339 | (1) |
|
10.3 Software Security Organizational Realities and Leverage |
|
|
340 | (2) |
|
10.4 Overcoming SDL Audit and Regulatory Challenges with Proper Governance Management |
|
|
342 | (1) |
|
10.5 Future Predications for Software Security |
|
|
343 | (2) |
|
|
343 | (2) |
|
|
345 | (1) |
|
|
345 | (6) |
|
|
347 | (4) |
Appendix |
|
351 | (8) |
Index |
|
359 | |