Skip to main content

Threat Modeling: Designing for Security

Threat Modeling: Designing for Security

Adam Shostack

ISBN: 978-1-118-81005-7

Feb 2014

624 pages



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.

Related Resources

Introduction xxi

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

Glossary 533

Bibliography 543

Index 567

ChapterPageDetailsDatePrint Run
IntroviiiTypo in Acknowledgments
Andy Steingrubl's name is spelled incorrectly.

110Text correction: List out of order
In order to correspond to the mnemonic STRIDE, the list item Information Disclosure should appear before Denial of Service

112Text correction: Typo under "Tips for Identifying Threats"
In the last sentence of the first bullet item on the page, vertebrae should read vertebrate .

8154Text 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.
should read:
With regard to a network, it may be possible to use SSH or SSL tunneling or IPSec to address network confidentiality issues.

154Errata in Text
Text currently reads:
for encrypting and the decrypting data
Should read:
?for encrypting and decrypting data?
In 4th paragraph

174Errata in Text
In Note, text currently reads:
Phil Zimmerman
Should read:
Phil Zimmermann

225Errata in Text
In First list Item 2, the text currently reads:
of the remainder within Y
Should read:
of the remainder within Z

303Errata in Text
In Sidebar, the text currently reads:
Should read:

312Errata in Text
In first paragraph under ?Missing Information?, the text currently reads:
?Does each node has?
Should read:
?Does each node have?

325Errata in Text
In First paragraph, the text currently reads:
That?s the viewer closing and the full version launching Malhotra, 2009.)
Should read:
That?s the viewer closing and the full version launching (Malhotra, 2009).)

485Errata in Text
In first bullet under Previous Accomplishments, the text currently reads:
?SYNC flood?
Should read:
?SYN flood?

Index590Errata in Text
In Note, the text currently reads:
Phil Zimmerman
Should read:
Phil Zimmermann