Availability

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

Availability

Name:
Date:
Class:

Quick Questions

Shade in the A or B circle for each question.

1. Which statement best describes availability?
A Authorised users can reach data and systems when they need them
B Only the data owner can ever view the data
2. A school's online portal is flooded with fake traffic and students cannot log in. Which part of the CIA triad is mainly affected?
A Availability
B Confidentiality
3. Which event reduces availability?
A A user picks a long, strong password
B A server's hard drive fails and the system goes offline
4. A hacker secretly reads customer emails but nothing goes offline. Is availability the main property affected?
A No, confidentiality is the main property affected
B Yes, availability is the main property affected
5. Which attack is designed mainly to reduce availability?
A A phishing email that steals a password
B A DDoS attack on a website

Match the Pairs

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

Left columnRight column
1Availability AAuthorised users can reach data and systems when they need them
2Availability = uptime / total time BData that is stored but cannot be reached is still unavailable. A failed server or disk stops authorised users getting to it.
3A DDoS attack reduces availability by flooding a server with requests so real users cannot get in CThe share of time a system is working and reachable by authorised users
4Hardware failure reduces availability, so a backup server can take over and keep the service running Dif main_server == 'down': use(backup_server)
5Availability means keeping data secret from unauthorised users Erequests_per_second = 500000 # server overloaded, site unavailable
6A hardware failure does not affect availability because the data is still stored FThis describes confidentiality, not availability. Availability is about authorised users being able to reach data and systems when needed.

Definitions

Availability

Fill in the Blanks

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

1.
uptime = 98 total = 100 availability = uptime / total * ___
2.
requests = 50000 capacity = 1000 if requests _ capacity: print("Overload")
3.
__ primaryFailed: switchToBackup()
4.
totalHours = 24 uptimeHours = 22 downtimeHours = totalHours _ uptimeHours
5.
if serverDown __ overloaded: alertAdmin()

Spot the Error

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

Question 1
A uptime = 99.9
B downtime = 100 + uptime
C print(downtime)
Question 2
A servers = ['A', 'B']
B for s in servers
C print(s, 'is online')
Question 3
A def is_available(up, total):
B ratio = up / total
C return ratio + 100
Question 4
A main_down == True
B if main_down:
C print('Switch to backup')
Question 5
A limit = 100
B if requests < limit:
C block(ip)
D else:
E allow(ip)

Answer Key

Availability
Section A: Quick Questions
Q1
A — Authorised users can reach data and systems when they need them
Q2
A — Availability
Q3
B — A server's hard drive fails and the system goes offline
Q4
A — No, confidentiality is the main property affected
Q5
B — A DDoS attack on a website
Section B: Match the Pairs
Q1
Availability → Authorised users can reach data and systems when they need them
Q2
Availability = uptime / total time → The share of time a system is working and reachable by authorised users
Q3
A DDoS attack reduces availability by flooding a server with requests so real users cannot get in → requests_per_second = 500000 # server overloaded, site unavailable
Q4
Hardware failure reduces availability, so a backup server can take over and keep the service running → if main_server == 'down': use(backup_server)
Q5
Availability means keeping data secret from unauthorised users → This describes confidentiality, not availability. Availability is about authorised users being able to reach data and systems when needed.
Q6
A hardware failure does not affect availability because the data is still stored → Data that is stored but cannot be reached is still unavailable. A failed server or disk stops authorised users getting to it.
Section C: Definitions
Q1
Availability — Authorised users can reach data and systems when they need them. Attacks like DDoS and hardware failure reduce it.
Section D: Fill in the Blanks
Q1
uptime = 98 total = 100 availability = uptime / total * 100
Q2
requests = 50000 capacity = 1000 if requests > capacity: print("Overload")
Q3
if primaryFailed: switchToBackup()
Q4
totalHours = 24 uptimeHours = 22 downtimeHours = totalHours - uptimeHours
Q5
if serverDown or overloaded: alertAdmin()
Section E: Spot the Error
Q1
B — Downtime is the share of time the system was NOT available, so subtract uptime from 100: downtime = 100 - uptime. Adding gives a nonsense value over 100.
Q2
B — A for loop header must end with a colon. It should be: for s in servers:
Q3
C — To turn the ratio of uptime into an availability percentage you multiply by 100, not add. It should be: return ratio * 100
Q4
A — A single = assigns a value. == compares, and main_down does not exist yet, so this causes an error. It should be: main_down = True
Q5
B — Rate limiting should block an IP sending MORE requests than the limit, as in a DDoS. With < normal users are blocked and the attacker gets through. It should be: if requests > limit: