Tip: Choose Save as PDF in the print dialog to download. Use A4 paper size.
Shade in the A or B circle for each question.
Draw a line connecting each item on the left to its match on the right.
| Left column | Right column | |
|---|---|---|
| 1Eliminate: remove the vulnerable feature | Acursor.execute("SELECT * FROM users WHERE id = ?", (uid,)) | |
| 2Accept: log the risk and monitor it | BRemoves the threat completely, for example deleting an unused upload page that attackers could exploit | |
| 3Reduce a high-rated SQL injection threat by lowering its likelihood | CBuy cyber insurance cover for breach costs | |
| 4Transfer the financial impact of a data breach to another party | DThe priority is backwards. High risks must be treated first, while low risks are the ones most likely to be accepted. | |
| 5Risk register: Low risks fixed first, High risks accepted | EKeeps the threat as it is because its risk rating is low and the cost of treating it is higher than the harm it could cause | |
| 6Threat: stolen password. Response: Accept (no control) | FA stolen password is a likely, high-impact threat, so accepting it is the wrong choice. It needs a control such as MFA to reduce it. |
Complete each line of code by filling in the missing parts.
Shade in the letter of the line that contains an error.
Risk treatment — Matching each threat to a response chosen by its risk rating: eliminate it, reduce it, transfer it (e.g. insure) or accept it. High risks are treated first.threat ← "Unused debug page can be exploited"
treatment ← "Eliminate"threat ← "Costly data breach"
buyCyberInsurance()
treatment ← "Transfer"IF rating = "Low" THEN
treatment ← "Accept"
END IFSORT threats BY riskScore DESCENDING
FOR EACH t IN threats
applyControl(t)riskScore ← likelihood * impact
IF riskScore >= 15 THEN reduce(threat)