Threat Modeling
Laurie Williams �laurie_williams@ncsu.edu
1
OWASP Threat Dragon Apache 2.0
Announcements
Where we are in this class
Mechanisms
(Vulnerabilities)
Devious Thinking
Prevention
What is a threat? A threat model?
The simplest threat model: Four Questions�
© Getty Image
Discuss with your neighborStory
As a physician, I want to edit my patient records so that I can manage their care as can other health care providers.
More systematic software security threat modeling
Who
Why
How?
The Process
Diagram
Identify Threats
Address
Threats
Validate
Diagram
Data Flow Diagram (DFD): Symbols
External Entity / Interactor
Process
Data store
Data flow
Trust boundary
DFD Elements: Examples
External Entity | People, other systems |
Process | DLLS, Components, Services, Web Services |
Data Flow | Function call, Network traffic, Remote procedure call |
Data Store | Database, file, registry, shared memory, queue |
Trust Boundary | Process boundary, file system, system boundary |
Data Flow Diagram – Detailed
https://www.owasp.org/index.php/Application_Threat_Modeling
Diagrams Should Not Resemble
The Process: Identify Threats
Diagram
Identify Threats
Address
Threats
Validate
Identify Threats
(Microsoft) STRIDE
Threat Property we want | |
Spoofing | Authentication |
Tampering | Integrity |
Repudiation | Nonrepudiation |
Information Disclosure | Confidentiality |
Denial of Service | Availability |
Elevation of Privilege | Authorization |
Threat: Spoofing
Threat | Spoofing |
Property | Authentication |
Definition | Impersonating something or someone else |
Example | Pretending to be any of billg, microsoft.com, or ntdll.dll |
Threat: Tampering
Threat | Tampering |
Property | Integrity |
Definition | Modifying data or code |
Example | Modifying a DLL on disk or DVD, or a packet as it traverses the LAN |
Threat: Repudiation
Threat | Repudiation |
Property | Non-Repudiation |
Definition | Claiming to have not performed�an action |
Example | “I didn’t send that email,” “I didn’t modify that file,” “I certainly didn’t visit that Web site, dear!” |
Threat: Information Disclosure
Threat | Information Disclosure |
Property | Confidentiality |
Definition | Exposing information to someone not authorized to see it |
Example | Allowing someone to read the Windows source code; publishing a list of customers to a Web site |
Threat: Denial of Service
Threat | Denial of Service |
Property | Availability |
Definition | Deny or degrade service to users |
Example | Crashing Windows or a Web site, sending a packet and absorbing seconds of CPU time, or routing packets into a black hole |
Threat: Elevation of Privilege
Threat | Elevation of Privilege (EoP) |
Property | Authorization |
Definition | Gain capabilities without proper authorization |
Example | Allowing a remote Internet user to run commands is the classic example, but going from a “Limited User” to “Admin” is also EoP |
Different Threats Affect Each Element Type�
Process
Data Store
S T R I D E
ELEMENT
?
Data Flow
External Entity
What STRIDE Threats Exist?
https://www.owasp.org/index.php/Application_Threat_Modeling
STRIDE: Review
Threat Property we want | |
Spoofing | Authentication |
Tampering | Integrity |
Repudiation | Nonrepudiation |
Information Disclosure | Confidentiality |
Denial of Service | Availability |
Elevation of Privilege | Authorization |
The Process: Address Threats
Diagram
Identify Threats
Address
Threats
Validate
Addressing Threats is the Point of Threat Modeling
Address Threats: META
For each threat,
What have similar software packages done and how has that worked out for them?
Redesign
Another part of the system or entity
STRIDE: Standard Mitigations
Threat | Property | |
Spoofing | Authentication | To authenticate principals:
To authenticate code or data:
|
STRIDE: Standard Mitigations
Threat | Property | |
Tampering | Integrity |
|
STRIDE: Standard Mitigations
Threat | Property | |
Repudiation | Nonrepudiation |
|
STRIDE: Standard Mitigations
Threat | Property | |
Information Disclosure | Confidentiality |
|
STRIDE: Standard Mitigations
Threat | Property | |
Denial of Service | Availability |
|
STRIDE: Standard Mitigations
Threat | Property | |
Elevation of Privilege | Authorization |
|
The Process: Validate
Diagram
Identify Threats
Address
Threats
Validate
Validate DFDs
Validate Threats
Validate “Addressing Threats”
Validate Information Captured
OWASP Threat Dragon
Granularity
Way too big in terms of granularity for a web application as big as OpenEMR. Break up into major modules of functionality.
OWASP Threat Dragon
The simplest threat model: Four Questions�
© Getty Image
Summary
47