The only security book to be chosen as a Dr. Dobbs Jolt Award Finalist since Bruce Schneier's Secrets and Lies and Applied Cryptography!
Adam Shostack is responsible for security development lifecycle threat modeling at Microsoft and is one of a handful of threat modeling experts in the world. Now, he is sharing his considerable expertise into this unique book. With pages of specific actionable advice, he details how to build better security into the design of systems, software, or services from the outset. You'll explore various threat modeling approaches, find out how to test your designs against threats, and learn effective ways to address threats that have been validated at Microsoft and other top companies.
Systems security managers, you'll find tools and a framework for structured thinking about what can go wrong. Software developers, you'll appreciate the jargon-free and accessible introduction to this essential skill. Security professionals, you'll learn to discern changing threats and discover the easiest ways to adopt a structured approach to threat modeling.
- Provides a unique how-to for security and software developers who need to design secure products and systems and test their designs
- Explains how to threat model and explores various threat modeling approaches, such as asset-centric, attacker-centric and software-centric
- Provides effective approaches and techniques that have been proven at Microsoft and elsewhere
- Offers actionable how-to advice not tied to any specific software, operating system, or programming language
- Authored by a Microsoft professional who is one of the most prominent threat modeling experts in the world
As more software is delivered on the Internet or operates on Internet-connected devices, the design of secure software is absolutely critical. Make sure you're ready with Threat Modeling: Designing for Security.
Part I Getting Started 1
Chapter 1 Dive In and Threat Model! 3
Chapter 2 Strategies for Threat Modeling 29
Part II Finding Threats 59
Chapter 3 STRIDE 61
Chapter 4 Attack Trees 87
Chapter 5 Attack Libraries 101
Chapter 6 Privacy Tools 111
Part III Managing and Addressing Threats 123
Chapter 7 Processing and Managing Threats 125
Chapter 8 Defensive Tactics and Technologies 145
Chapter 9 Trade-Off s When Addressing Threats 167
Chapter 10 Validating That Threats Are Addressed 189
Chapter 11 Threat Modeling Tools 203
Part IV Threat Modeling in Technologies and Tricky Areas 215
Chapter 12 Requirements Cookbook 217
Chapter 13 Web and Cloud Threats 243
Chapter 14 Accounts and Identity 253
Chapter 15 Human Factors and Usability 293
Chapter 16 Threats to Cryptosystems 333
Part V Taking It to the Next Level 353
Chapter 17 Bringing Threat Modeling to Your Organization 355
Chapter 18 Experimental Approaches 385
Chapter 19 Architecting for Success 407
Appendix A Helpful Tools 421
Appendix B Threat Trees 429
Appendix C Attacker Lists 477
Appendix D Elevation of Privilege: The Cards 501
Appendix E Case Studies 511
|Intro||viii||Typo in Acknowledgments|
Andy Steingrubl's name is spelled incorrectly.
|1||10||Text correction: List out of order|
In order to correspond to the mnemonic STRIDE, the list item Information Disclosure should appear before Denial of Service
|1||12||Text correction: Typo under "Tips for Identifying Threats"|
In the last sentence of the first bullet item on the page, vertebrae should read vertebrate .
|8||154||Text correction: Error under "Operational Assurance of Confidentiality"|
The last sentence, With regard to a network, it may be possible to use SSH or SSL tunneling or IPSec to address network tampering issues.
With regard to a network, it may be possible to use SSH or SSL tunneling or IPSec to address network confidentiality issues.
|154||Errata in Text|
Text currently reads:
for encrypting and the decrypting data
?for encrypting and decrypting data?
In 4th paragraph
|174||Errata in Text|
In Note, text currently reads:
|225||Errata in Text|
In First list Item 2, the text currently reads:
of the remainder within Y
of the remainder within Z
|303||Errata in Text|
In Sidebar, the text currently reads:
|312||Errata in Text|
In first paragraph under ?Missing Information?, the text currently reads:
?Does each node has?
?Does each node have?
|325||Errata in Text|
In First paragraph, the text currently reads:
That?s the viewer closing and the full version launching Malhotra, 2009.)
That?s the viewer closing and the full version launching (Malhotra, 2009).)
|485||Errata in Text|
In first bullet under Previous Accomplishments, the text currently reads:
|Index||590||Errata in Text|
In Note, the text currently reads: