flowchart LR A[Diagramming] --> B[Identify Threats] B --> C[Counter Measures] C --> D[Evaluate] D --> A
2024-05-23
flowchart LR A[Diagramming] --> B[Identify Threats] B --> C[Counter Measures] C --> D[Evaluate] D --> A
Attacker | High level Attack Scenario | Business Impact |
---|---|---|
Script Kiddie | Blocks traffic to server | Loss of reputation Support requests |
State Actor | Upgrades device with modified source code | Customer data loss Fines Revocation of operating licenses Loss of reputation |
Create 3 doomsday scenarios as a group
Deeper dive into a component or feature. Can go several levels down.
Create a context diagram for your system
Component | Description | Points |
---|---|---|
Exposed | Located or crossing a non-trusted boundary area | +3 |
Compliance | Subject to regulatory compliance | +2 |
Third Party | Hosted/Operated by a third part | +2 |
Hostile | Should be considered as a high source of hostility | +2 |
HA | Subject to High Availability requirements | +1 |
Static | As is/not changing | -2 |
Trusted | Operates in a trusted environment | -1 |
TB1 | TB2 | TB3 | |||
---|---|---|---|---|---|
HA | +1 | Compliance | +2 | HA | +1 |
Compliance | +2 | Third Party | +2 | Trusted | -1 |
Exposed | +3 | Hostile | +2 | ||
Trusted | -1 | ||||
Total: | 6 | Total: | 5 | Total: | 0 |
Create a ranking for each trust boundary in your diagram
Impersonating someone, or something else
Modifying data or code
Claiming not to have performed an action
Revealing information to unauthorized parties
Deny or degrade service to legitimate users
Gaining capabilities without proper authorization
S | T | R | I | D | E | |
---|---|---|---|---|---|---|
External Entity | Y | Y | ||||
Process | Y | Y | Y | Y | Y | Y |
Data Store | Y | ? | Y | Y | ||
Data Flow | Y | Y | Y |
User | <-> | Web Server | ||||
---|---|---|---|---|---|---|
TB1 | Mitigations | Vulnerabilities | Mitigations | Vulnerabilities | Mitigations | Vulnerabilities |
S | Username/Password | No 2FA | TLS w/cert | |||
T | TLS | No input validation | ||||
R | No Audit Trail | Missing user action logging | ||||
I | TLS | No input validation No Stored Procedures | ||||
D | Single ISP | Load balanced | ||||
E | Access Control |
Identify threats for each trust boundary in your diagram
STRIDE Value | Client/Server | Scope | Severity |
---|---|---|---|
Spoofing | Client | Attacker present a UI visually identical to one the user uses to make trust decisions in common scenarios | Important |
Attacker presents a UI visually identical to one the user is accustomed to trust in specific scenarios | Moderate | ||
Server | Computer connecting to server is able to masquerade as a different user or computer of choice using a protocol designed to provide strong authentication. | Important | |
Tampering | Client | Permanent modification of any user data or data used to make trust decisions in a common scenario that persists after restarting the OS/application | Important |
Score | Attack Vector | Prevalence | Detectability | Impact |
---|---|---|---|---|
3 | Easy | Widespread | Easy | Severe |
2 | Average | Common | Average | Moderate |
1 | Difficult | Uncommon | Difficult | Minor |
\[ score = \frac{Vector + Prevalence + Detectability}{3} * Impact \]
Threat | Attack Vector | Prevalence | Detectability | Impact | Score | Risk |
---|---|---|---|---|---|---|
T1 | 3 | 3 | 2 | 3 | 8.0 | High |
T2 | 1 | 2 | 2 | 1 | 1.67 | Low |
T3 | 2 | 3 | 3 | 2 | 5.33 | Medium |
\[ Low: x \leq 3 Medium: 3 < x \leq 6 High: 6 < x \]
Assess the risk of each threat found