The worksheetDownload the PDF
Answers

F11.1 Why cyber security

Cyber security · GCSE · OCR J277 1.4.1, AQA 8525 3.6.1, Edexcel 1CP2 5.3.1 · about 15 min

BugBotLab

What this lesson is about

Confidentiality, integrity and availability, who attacks and why, and ranking risk.

Questions 5 marks in all

  1. [1 mark]What does confidentiality mean in security?

    1. AOnly the right people can read the data
    2. BThe data is always available
    3. CThe data is never changed
    4. DThe data is backed up
    Answer: A. Confidentiality is about keeping data secret from those who should not see it.
  2. [1 mark]Flooding a website until it crashes attacks which goal?

    1. AAvailability
    2. BConfidentiality
    3. CIntegrity
    4. DAuthenticity
    Answer: A. Availability is whether the system works when needed.
  3. [1 mark]What is often the weakest link in security?

    1. APeople
    2. BFirewalls
    3. CEncryption
    4. DCables
    Answer: A. Many breaches begin by tricking a person.
  4. [1 mark]Why might an insider be a threat?

    1. AThey already have access they can misuse
    2. BThey cannot log in
    3. CThey have no motive
    4. DThey work from home
    Answer: A. An unhappy employee can misuse access they were given.
  5. [1 mark]A risk has likelihood 4 and impact 5. What is its risk score, if score is likelihood times impact?

    Answer: 20. 4 × 5.

The task: rank the risks

Give each risk in risks a score of likelihood times impact. Print each as <name>: <score>, sorted from the highest score to the lowest. Then print biggest risk: <name> for the one at the top.

# the two lines every program starts with: the commands, then the robot
from bugbot import *
connect()

# name, likelihood (1 to 5), impact (1 to 5)
risks = [("weak passwords", 4, 5), ("stolen laptop", 2, 4), ("phishing email", 5, 4), ("power cut", 3, 2), ("out-of-date software", 4, 3)]

The hint students can ask for: Give each risk a score of likelihood times impact, then sort the list by that score, highest first. The biggest risk is whatever ends up at the front.

A solution

from bugbot import *
connect()
risks = [("weak passwords", 4, 5), ("stolen laptop", 2, 4), ("phishing email", 5, 4), ("power cut", 3, 2), ("out-of-date software", 4, 3)]
risks.sort(key=lambda r: r[1] * r[2], reverse=True)
for name, likelihood, impact in risks:
    print(f"{name}: {likelihood * impact}")
print("biggest risk:", risks[0][0])

Any program that meets the task's checks is marked correct in the simulator; this is one way, not the only way.