Writing a threat model table

Tip: Choose Save as PDF in the print dialog to download. Use A4 paper size.

Writing a threat model table

Name:
Date:
Class:

Quick Questions

Shade in the A or B circle for each question.

1. Which describes one row of a threat model table?
A One asset, one threat, its vulnerability, risk rating and control
B A list of every threat in the whole system in one cell
2. A school app stores student data. What goes in the Asset column?
A Phishing email
B Student records database
3. A threat model table has 3 different threats to the school app. How many rows should it have?
A 1 row covering all threats
B 3 rows, one per threat
4. Which is a software vulnerability for the Vulnerability column of the school app?
A Login form does not validate input, allowing SQL injection
B A teacher is tricked by a fake email
5. Which row shows a user vulnerability?
A Threat: phishing | Vulnerability: staff re-use weak passwords
B Threat: phishing | Vulnerability: unvalidated SQL input

Match the Pairs

Draw a line connecting each item on the left to its match on the right.

Left columnRight column
1Asset | Threat | Vulnerability | Risk | Control AThe five column headings of a threat model table, which has one row for each threat
2Student records | Data theft | SQL injection | High | Input validation BTeacher accounts | Account takeover | Weak password | High | MFA
3A user vulnerability gets its own row: the asset is the teacher accounts, and the control is MFA CThe control column is empty. Every row needs a chosen control, such as input validation, to show how the risk will be reduced.
4A supply chain vulnerability gets its own row: the asset is the app, and the control is checking the trusted source DThree threats are crammed into one row. A threat model table needs one row per threat, so each threat should be split out with its own vulnerability, risk and control.
5Student records | Data theft, Account takeover, Malware | Weak password | High | MFA EOne row of a threat model table for a school app that has a software vulnerability
6Student records | Data theft | SQL injection | High | FSchool app | Malicious update | Unsafe library | Medium | Code signing

Definitions

threat model table

Fill in the Blanks

Complete each line of code by filling in the missing parts.

1.
asset, threat, vulnerability, risk, _______
2.
asset: Student records ______: SQL injection vulnerability: no input validation
3.
asset: Teacher accounts threat: Phishing email _____________: staff re-use passwords
4.
asset: Student records likelihood: likely, impact: severe risk: ____
5.
threat: Typosquatted package vulnerability: unchecked library control: verify ____________

Spot the Error

Shade in the letter of the line that contains an error.

Question 1
A Asset: Student data
B Threat: SQL injection
C Vuln: SQL injection
D Risk: High
E Control: Validate input
Question 2
A Asset: Teacher login
B Threat: Teacher login
C Vuln: staff click links
D Risk: High
E Control: Staff training
Question 3
A Asset: School app code
B Threat: Malicious package
C Vuln: unchecked dependencies
D Risk: Update the library
E Control: Use trusted sources
Question 4
A Asset: Hacker
B Threat: Data theft
C Vuln: unpatched software
D Risk: High
E Control: Install updates
Question 5
A Asset: Student data
B Threat: Ransomware and DoS
C Vuln: no offline backups
D Risk: High
E Control: Keep backups

Answer Key

Writing a threat model table
Section A: Quick Questions
Q1
A — One asset, one threat, its vulnerability, risk rating and control
Q2
B — Student records database
Q3
B — 3 rows, one per threat
Q4
A — Login form does not validate input, allowing SQL injection
Q5
A — Threat: phishing | Vulnerability: staff re-use weak passwords
Section B: Match the Pairs
Q1
Asset | Threat | Vulnerability | Risk | Control → The five column headings of a threat model table, which has one row for each threat
Q2
Student records | Data theft | SQL injection | High | Input validation → One row of a threat model table for a school app that has a software vulnerability
Q3
A user vulnerability gets its own row: the asset is the teacher accounts, and the control is MFA → Teacher accounts | Account takeover | Weak password | High | MFA
Q4
A supply chain vulnerability gets its own row: the asset is the app, and the control is checking the trusted source → School app | Malicious update | Unsafe library | Medium | Code signing
Q5
Student records | Data theft, Account takeover, Malware | Weak password | High | MFA → Three threats are crammed into one row. A threat model table needs one row per threat, so each threat should be split out with its own vulnerability, risk and control.
Q6
Student records | Data theft | SQL injection | High | → The control column is empty. Every row needs a chosen control, such as input validation, to show how the risk will be reduced.
Section C: Definitions
Q1
threat model table — A table with one row per threat. Columns record the asset, threat, vulnerability, risk rating and chosen control, e.g. a school app storing student data.
Section D: Fill in the Blanks
Q1
asset, threat, vulnerability, risk, control
Q2
asset: Student records threat: SQL injection vulnerability: no input validation
Q3
asset: Teacher accounts threat: Phishing email vulnerability: staff re-use passwords
Q4
asset: Student records likelihood: likely, impact: severe risk: high
Q5
threat: Typosquatted package vulnerability: unchecked library control: verify code signing
Section E: Spot the Error
Q1
C — SQL injection is the threat, so it belongs in the Threat column. The vulnerability is the weakness that lets it happen, such as unvalidated input.
Q2
B — The teacher login is the asset, not the threat. The Threat column should name what could cause harm, such as a phishing email.
Q3
D — The Risk column holds a rating such as Low, Medium or High. Updating the library is an action, so it is a control and belongs in the Control column.
Q4
A — A hacker is a threat actor, not an asset. An asset is something worth protecting, such as student data.
Q5
B — A threat model table has one row per threat. Ransomware and DoS are different threats, so each needs its own row with its own risk and control.