Skip to main content
PProfileMatch

Cybersecurity Fundamentals: CIA Triad and Threat Modelling

CybersecurityLesson 1 of 45 min read

What you'll learn

  • Explain confidentiality, integrity and availability with concrete examples
  • Describe a system as assets, actors and entry points
  • Produce a one-page threat model and rank threats by likelihood and impact
  • Pick the cheapest control that meaningfully reduces each ranked threat

On this page

  1. Three words that cover most security goals
  2. Assets, actors and entry points
  3. A worked threat model on one page
  4. Defence in depth and least privilege
  5. Common mistakes
  6. How this shows up in real projects and interviews

A volunteer coordinator at a neighbourhood food bank builds a small web app so helpers can sign up for weekend shifts. It stores names, phone numbers, which volunteers have a police-check on file, and the delivery addresses of households who receive parcels. Nobody on the team is a security specialist. Where do you start? Not with firewalls or tools. You start with a question: what are we protecting, and from whom?

Three words that cover most security goals

Almost every security requirement can be sorted under one of three properties, usually called the CIA triad. It has nothing to do with the intelligence agency. It is a checklist for noticing what kind of damage a failure causes.

PropertyPlain meaningFood bank example of a failureTypical control
ConfidentialityOnly the right people can read itA household's delivery address appears on a public pageAccess checks, encryption, least privilege
IntegrityData is changed only in authorised waysSomeone edits a shift so 40 parcels go to the wrong streetInput validation, audit trail, signed backups
AvailabilityThe service works when people need itThe sign-up page is down on Friday night before a big driveRedundancy, rate limits, tested restores

The properties pull against each other. Locking everything down hard protects confidentiality but can hurt availability if volunteers cannot log in. Making data instantly available to everyone helps availability and wrecks confidentiality. Security work is mostly choosing a sensible balance for the specific data you hold, not maximising all three.

Assets, actors and entry points

A threat model starts by writing down four things in plain language. Assets are what you would be upset to lose or expose. Actors are the people and systems that touch the assets, including the ones you do not trust. Entry points are the places where data crosses a boundary: a form, an API endpoint, an uploaded file, an admin login, an email address that password resets are sent to. Trust boundaries are the lines where the level of trust changes, such as browser to server or server to database.

Most mistakes come from forgetting an entry point. Teams remember the login form and forget the CSV import that an admin uses, the spreadsheet where someone exports the volunteer list every Monday, or the shared inbox that receives password resets.

A worked threat model on one page

Here is what the food bank team might write after a 45-minute whiteboard session. Likelihood and impact are scored 1 to 3 by judgement, not measurement. The point is to force a conversation and an order of work, not to compute a precise number.

foodbank-threat-model.txt
ASSETS
  A1  Household delivery addresses (sensitive)
  A2  Volunteer phone numbers and police-check status
  A3  Shift sign-up availability (must be up on delivery days)

ENTRY POINTS
  E1  Public sign-up form          E3  Admin login
  E2  Volunteer login              E4  Weekly CSV export to coordinator's laptop

THREATS                                      L  I  Score
  T1  Volunteer guesses a URL and reads
      another household's address              3  3   9   (A1 via E2)
  T2  Reused password from another breach
      lets someone into the admin account      2  3   6   (A1, A2 via E3)
  T3  Exported CSV left on a lost laptop       2  3   6   (A1, A2 via E4)
  T4  Sign-up form flooded with fake entries   2  2   4   (A3 via E1)
  T5  Server disk fills up, site is down       1  2   2   (A3)

PLAN (cheapest effective control first)
  T1  Check ownership/role on the server for every address lookup
  T2  Turn on multi-factor sign-in for admins; block known-bad passwords
  T3  Stop exporting addresses; export only first names and shift times
  T4  Simple rate limit plus a hidden-field check on the form
  T5  Disk usage alert at 80 percent

Once the scores are on paper, ordering them is mechanical, and you can let a few lines of code do it so the list stays sorted as it grows. Multiply likelihood by impact, break ties by impact, and print the queue.

rank_threats.py
threats = [
    ("T1", "Volunteer guesses a URL and reads another household's address", 3, 3),
    ("T2", "Reused password lets someone into the admin account", 2, 3),
    ("T3", "Exported CSV left on a lost laptop", 2, 3),
    ("T4", "Sign-up form flooded with fake entries", 2, 2),
    ("T5", "Server disk fills up and the site goes down", 1, 2),
]

ranked = sorted(threats, key=lambda t: (t[2] * t[3], t[3]), reverse=True)
for tid, text, likelihood, impact in ranked:
    print(f"{tid}  score {likelihood * impact}  (L{likelihood} x I{impact})  {text}")

Output

T1  score 9  (L3 x I3)  Volunteer guesses a URL and reads another household's address
T2  score 6  (L2 x I3)  Reused password lets someone into the admin account
T3  score 6  (L2 x I3)  Exported CSV left on a lost laptop
T4  score 4  (L2 x I2)  Sign-up form flooded with fake entries
T5  score 2  (L1 x I2)  Server disk fills up and the site goes down

Look at what the exercise produced. The highest-scoring threat is not a clever hack. It is an ordinary logic gap that a curious volunteer could stumble on. The fix for T3 is not a product at all; it is deleting data you did not need to export. Good threat modelling regularly finds that the best control is to collect or copy less.

Defence in depth and least privilege

No single control is perfect, so you stack them. If the ownership check in T1 has a bug, a second layer (logging each address lookup, alerting on a volunteer who reads 200 addresses in a minute) turns a silent leak into a noticed one. This layering is called defence in depth. Its companion is least privilege: every person, service and token gets only the access it needs for its job. A volunteer needs their own shifts. They do not need the household list, so the database user the sign-up page uses should not be able to read it either.

Common mistakes

  • Modelling only the login page. Symptom: the first real incident comes through an export, an integration key in a repo, or a forgotten admin route. Fix: list every entry point, including offline ones.
  • Treating all data as equally sensitive. Symptom: encryption and approvals everywhere, so people route around them with personal spreadsheets. Fix: mark one or two assets as sensitive and spend your effort there.
  • Scoring with false precision. Symptom: a long debate about whether a threat is 4.2 or 4.6. Fix: use low/medium/high, and move on once the order is clear.
  • Writing the model once and filing it. Symptom: a new import feature ships and nobody asks what changed. Fix: attach a short threat-model question to every design review.

How this shows up in real projects and interviews

Interviewers for junior roles rarely ask for the CIA triad as a definition. They ask something like "a user can see another user's invoice, which part of the triad is that and how would you fix it?" The answer is confidentiality, with a server-side authorisation check as the fix. In project work, a one-page model like the one above is often all a small team needs. Larger teams use structured methods such as STRIDE (spoofing, tampering, repudiation, information disclosure, denial of service, elevation of privilege) as a prompt list so no category is forgotten. If you are preparing for job interviews more broadly, common interview mistakes to avoid is a useful companion.

Try it yourself

Pick a small system you know, such as a club membership site or a personal expense tracker. Write down three assets, four entry points and five threats, score each threat for likelihood and impact from 1 to 3, and write the cheapest control for your top two.

Show a hint

Include at least one entry point that is not a web page (an export, a backup, an email). If your top threat needs a clever attacker, look again for a plain logic gap such as a missing ownership check.

Key takeaways

  • Confidentiality, integrity and availability are a way to classify damage, and they trade off against each other.
  • A threat model is assets, actors, entry points and trust boundaries written down, then ranked threats and chosen controls.
  • Rank by likelihood and impact roughly; the goal is ordering the work, not a perfect score.
  • The cheapest control is often collecting, copying or retaining less data.
  • Layer controls (defence in depth) and give every account only the access it needs (least privilege).

Test yourself

A trick from this lesson's ride: Read, write, run: C is who may read it, I is who may change it, A is whether it runs when needed. Four more tricks like it wait along the route, each followed by a question.

Ride this lesson

Frequently asked questions

What is the CIA triad in cybersecurity?

It is a model with three goals: confidentiality (only authorised people can read data), integrity (data is only changed in authorised ways) and availability (systems work when needed). Most security incidents can be described as a failure of one or more of these.

What is threat modelling and when should I do it?

Threat modelling is a structured way of asking what you are protecting, what could go wrong and what you will do about it. Do it at design time for each new feature, and again when a feature changes. A small team can do a useful version in under an hour.

What is the difference between a threat, a vulnerability and a risk?

A threat is something that could cause harm, such as someone guessing a URL. A vulnerability is a weakness that lets it happen, such as a missing ownership check. Risk combines how likely the harm is with how bad it would be.