Threat Assessment for Software Development


This course will give you the skills you need to carry out threat assessments throughout your software’s life. 

From design and inception through to reviewing legacy systems, this repeatable and structured approach raises our focus from the lines of code we write to the ecosystems and processes we build.

You’ll learn how to understand your systems and their environment, assess your system using a threat assessment methodology, and prioritize your risks and apply defensive controls.



Course Objectives

  • Capturing and understanding how a system is designed, including identifying any points where (a) data is collected, transmitted, processed, or stored, and/or (b) the system is connected to other dependent systems.
  • Using outcomes of the assessment to strategically prioritize security controls.
  • Learning to use attack trees to group and assess threats.
  • Learning to perform these assessments in your organisation.


Module 1: The value of threat assessments

  • What value your organization can get out of performing threat assessments and modeling
  • Who should be involved and when it should be performed
  • The challenges and benefits of threat assessing greenfield or new systems
  • The challenges and benefits of threat assessing existing or legacy systems

Module 2: Understanding your system and environment

  • How to apply systems thinking principles
  • How to visually capture the system being assessed, and areas of the system where data is accessed, stored, transferred, or shared
  • Understanding and developing security personas

Module 3: Applying a threat model

  • Introduction to Microsoft STRIDE
  • Applying STRIDE: Spoofing
  • Applying STRIDE: Tampering
  • Applying STRIDE: Repudiation
  • Applying STRIDE: Information disclosure
  • Applying STRIDE: Denial of service
  • Applying STRIDE: Escalation of privilege

Module 4: Using attack trees

  • Introduction to attack trees
  • How to build an attack tree
  • Challenges with attack trees

Module 5: Applying prioritization and controls

  • The importance of prioritization
  • Preventative, detective, and responsive/corrective controls
  • Applying defensive controls to software systems

Module 6: Performing your own assessments

  • Getting the most out of your threat assessment
  • Anti-patterns for threat assessment