Threat Modeling

Book description

Threat modeling is one of the most essential--and most misunderstood--parts of the development lifecycle. Whether you're a security practitioner or a member of a development team, this book will help you gain a better understanding of how you can apply core threat modeling concepts to your practice to protect your systems against threats.

Contrary to popular belief, threat modeling doesn't require advanced security knowledge to initiate or a Herculean effort to sustain. But it is critical for spotting and addressing potential concerns in a cost-effective way before the code's written--and before it's too late to find a solution. Authors Izar Tarandach and Matthew Coles walk you through various ways to approach and execute threat modeling in your organization.

  • Explore fundamental properties and mechanisms for securing data and system functionality
  • Understand the relationship between security, privacy, and safety
  • Identify key characteristics for assessing system security
  • Get an in-depth review of popular and specialized techniques for modeling and analyzing your systems
  • View the future of threat modeling and Agile development methodologies, including DevOps automation
  • Find answers to frequently asked questions, including how to avoid common threat modeling pitfalls

Publisher resources

View/Submit Errata

Table of contents

  1. Foreword
  2. Preface
    1. Why We Wrote This Book
    2. Who This Book Is For
    3. What Is (and Isn’t!) in This Book
    4. These Techniques Apply Across Various Systems
    5. Your Contribution Matters
    6. Conventions Used in This Book
    7. O’Reilly Online Learning
    8. How to Contact Us
    9. Acknowledgments
  3. Introduction
    1. The Basics of Threat Modeling
      1. What Is Threat Modeling?
      2. Why You Need Threat Modeling
      3. Obstacles
      4. Threat Modeling in the System Development Life Cycle
    2. Essential Security Principles
      1. Basic Concepts and Terminology
      2. Calculating Severity or Risk
      3. Core Properties
      4. Fundamental Controls
      5. Basic Design Patterns for Secure Systems
    3. Summary
  4. 1. Modeling Systems
    1. Why We Create System Models
    2. System Modeling Types
      1. Data Flow Diagrams
      2. Sequence Diagrams
      3. Process Flow Diagrams
      4. Attack Trees
      5. Fishbone Diagrams
    3. How to Build System Models
    4. What Does a Good System Model Look Like?
    5. Summary
  5. 2. A Generalized Approach to Threat Modeling
    1. Basic Steps
    2. What You Are Looking for in a System Model
      1. The Usual Suspects
      2. What You Should Not Expect to Discover
    3. Threat Intelligence Gathering
    4. Summary
  6. 3. Threat Modeling Methodologies
    1. Before We Go Too Deep…
    2. Looking Through Filters, Angles, and Prisms
    3. To the Methodologies, at Last!
      1. STRIDE
      2. STRIDE per Element
      3. STRIDE per Interaction
      4. Process for Attack Simulation and Threat Analysis
      5. Threat Assessment and Remediation Analysis
      6. Trike
    4. Specialized Methodologies
      1. LINDDUN
      2. Madness? This Is SPARTA!
    5. Shall We Play a Game?
      1. Game: Elevation of Privilege
      2. Game: Elevation of Privilege and Privacy
      3. Game: OWASP Cornucopia
      4. Game: Security and Privacy Threat Discovery Cards
      5. Game: LINDDUN GO
    6. Summary
  7. 4. Automated Threat Modeling
    1. Why Automate Threat Modeling?
    2. Threat Modeling from Code
      1. How It Works
    3. Threat Modeling with Code
      1. How It Works
      2. pytm
      3. Threagile
    4. An Overview of Other Threat Modeling Tools
      1. IriusRisk
      2. SD Elements
      3. ThreatModeler
      4. OWASP Threat Dragon
      5. Microsoft Threat Modeling Tool
      6. CAIRIS
      7. Mozilla SeaSponge
      8. Tutamen Threat Model Automator
    5. Threat Modeling with ML and AI
    6. Summary
  8. 5. Continuous Threat Modeling
    1. Why Continuous Threat Modeling?
    2. The Continuous Threat Modeling Methodology
    3. Evolutionary: Getting Better All the Time
    4. The Autodesk Continuous Threat Modeling Methodology
      1. Baselining
      2. Baseline Analysis
      3. When Do You Know You Did Enough?
      4. Threat Model Every Story
      5. Findings from the Field
    5. Summary
  9. 6. Own Your Role as a Threat Modeling Champion
    1. How Do I Get Leadership On-Board with Threat Modeling?
    2. How Do I Overcome Resistance from the Rest of the Product Team?
    3. How Do We Overcome the Sense of (or Actual) Failure at Threat Modeling?
    4. How Should I Choose a Threat Modeling Methodology from Many Similar Approaches?
    5. How Should I Deliver “the Bad News”?
    6. What Actions Should I Take for Accepted Findings?
    7. Did I Miss Something?
    8. Summary and Closing
    9. Further Reading
  10. A. A Worked Example
    1. High-Level Process Steps
    2. Approaching Your First System Model
    3. Leading a Threat Modeling Exercise
    4. A Sample Exercise: Creating a System Model
      1. Identifying Components, Flows, and Assets
      2. Identifying System Weaknesses and Vulnerabilities
      3. Identifying Threats
      4. Determining Exploitability
      5. Wrapping Things Up
  11. B. The Threat Modeling Manifesto
    1. Method and Purpose
    2. The Threat Modeling Manifesto
      1. What Is Threat Modeling?
      2. Why Threat Model?
      3. Who Should Threat Model?
      4. How Should I Use the Threat Modeling Manifesto?
      5. Values
      6. Principles
      7. About
  12. Index

Product information

  • Title: Threat Modeling
  • Author(s): Izar Tarandach, Matthew J. Coles
  • Release date: November 2020
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9781492056553