Threat Modeling: Designing for Security
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
Adam Shostack is a principal program manager on Microsoft’s Trustworthy Computing Team. His experience as an operational systems manager and product developer at companies from startups to Microsoft ensures this book is practical and grounded. He helped found the CVE, the Privacy Enhancing Technologies Symposium, and more.
Do you think you've discovered an error in this book? Please check the list of errata below to see if we've already addressed the error. If not, please submit the error via our Errata Form. We will attempt to verify your error; if you're right, we will post a correction below.
|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: