01 Dive In and Threat Model Flashcards

1
Q

Why do we threat model?

A

Threat modeling is about using models to find security problems. Using a model means abstracting away a lot of details to provide a look at a bigger picture, rather than the code itself.

You model because it enables you to find issues in things you haven’t built yet, and because it enables you to catch a problem before it starts. Lastly, you threat model as a way to anticipate the threats that could affect you.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are the four key questions to threat model?

A

Four key questions are:
1. What are you building?
2. What can go wrong?
3. What should you do about the things that can go wrong?
4. Did you do a decent job of analysis?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the four activities of threat modeling?

A
  1. Building a diagram
  2. Finding threats
  3. Addressing them
  4. Checking your work
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Which is the most important diagram in threat modeling?

A

Data flow diagram

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

How can you improve a diagram?

A

A simple way to improve the diagram is to add boundaries. Adding boundaries shows who controls what.

These boundaries are called trust boundaries. You should draw boundaries wherever different people control different things.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are some examples of trust boundaries?

A
  1. Account (UIDs on unix system, or SIDS on windows)
  2. Network interfaces
  3. Different physical computers
  4. Virtual machines
  5. Organizational boundaries
  6. Almost anywhere you can argue for different privileges
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is an attack surface?

A

An attack surface is a trust boundary and a direction from which an attacker could launch an attack.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is the purpose of labeling your diagram?

A

As the diagram gets larger and more complex, it becomes easy to miss a part of it, or to become confused by labels on the data flows. Therefore, it can be very helpful to number each process, data flow, and data store in the diagram.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What does STRIDE stand for?

A

STRIDE stands for:
Spoofing
Tampering
Repudiation
Information Disclosure
Denial of Service
Elevation of Privilege

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is Spoofing?

A

Spoofing is pretending to be something or someone you’re not.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is Tampering?

A

Tampering is modifying something you’re not supposed to modify. It can include packets on the wire/wireless, bits on disk, or the bits in memory.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is Repudiation?

A

Repudiation means claiming you didn’t so something (regardless of whether you did or not).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is Information Disclosure?

A

Information Disclosure is about exposing information to people who are not authorized to see it.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is Denial of Service?

A

Denial of Service are attacks designed to prevent a system from providing service, including by crashing it, making it unusably slow, or filling all its storage.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is Elevation of Privilege?

A

Elevation of Privilege is when a program or user is technically able to do things that they’re not supposed to do.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are a few tips to keep in mind that helps in identifying threats?

A
  1. Start with external entities.
  2. Never ignore a threat because it’s not what you’re looking for right now.
  3. Focus on feasible threats.
17
Q

What are the four actions you can take against each threat?

A
  1. Mitigate it
  2. Eliminate it
  3. Transfer it
  4. Accept it
18
Q

What is mitigating threats?

A

Mitigating threats is about doing things to make it harder to take advantage of a threat.

19
Q

What is eliminating threats?

A

Eliminating threats is almost always achieved by eliminating features.

20
Q

What is transferring threats?

A

Transferring threats is about letting someone or something else handle the risk.

21
Q

What is accepting the risk?

A

Accepting the risk is the final approach to addressing threats.

22
Q

What are the mitigation strategy and technique for addressing “spoofing of a person”?

A

Mitigation strategy:
* Identification and authentication (usernames and something you know/have/are)

Mitigation technique:
* Username, real names, or other identifiers (Password, tokens, biometrics)
* Enrollment/maintenance expiry

23
Q

What are the mitigation strategy and technique for addressing “spoofing a file on disk”?

A

Mitigation strategy:
* Leverage the OS

Mitigation technique:
* Full paths, Checking ACLs, Ensuring that pipes are created properly

Mitigation strategy:
* Cryptographic authenticators

Mitigation technique:
* Digital signatures or authenticators

24
Q

What are the mitigation strategy and technique for addressing “spoofing a network address”?

A

Mitigation strategy:
* Cryptographic

Mitigation technique:
* DNSSEC, HTTPS/SSL, IPSec

25
Q

What are the mitigation strategy and technique for addressing “spoofing a program in memory”?

A

Mitigation strategy:
* Leverage the OS

Mitigation technique:
* Many modern operating systems have some form of application identifier that the OS will enforce