5 - RUNTIME COUNTERMEASURES

0.0(0)
studied byStudied by 0 people
0.0(0)
full-widthCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/30

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

31 Terms

1
New cards

What are runtime countermeasures?

Defensive mechanisms active during program execution that prevent, detect, or limit code injection attacks in C/C++ programs.

2
New cards

Why are C/C++ programs vulnerable?

Because they lack built-in memory safety, allowing attackers to exploit implementation errors like buffer overflows and dangling pointers.

3
New cards

What are the main goals of runtime countermeasures?

To prevent attackers from injecting or executing malicious code by enforcing memory safety, control-flow integrity, or execution constraints.

4
New cards

What are the four main types of countermeasure actions?

Detection (D), Prevention (P), Mitigation (M), and Containment (C).

5
New cards

What does Detection (D) mean?

Identifies exploitation attempts and reacts at runtime without preventing vulnerabilities.

6
New cards

What does Prevention (P) mean?

Eliminates vulnerabilities before execution, making exploitation impossible.

7
New cards

What does Mitigation (M) mean?

Makes exploitation more difficult but doesn’t detect or stop attacks outright.

8
New cards

What does Containment (C) mean?

Limits the damage after a successful attack.

9
New cards

What are the main categories of runtime countermeasures?

Safe languages, bounds checkers, probabilistic countermeasures, separators/replicators, VMM-based defenses, execution monitors, hardened libraries, and taint tracking.

10
New cards

What are safe languages?

Modified versions of C that enforce memory safety and prevent vulnerabilities like buffer overflows or dangling pointers.

11
New cards

What are bounds checkers?

Mechanisms that ensure pointers and arrays do not access memory outside their allocated bounds.

12
New cards

What are probabilistic countermeasures?

Defenses using randomness (e.g., stack canaries, ASLR, instruction randomization) to make attacks unreliable.

13
New cards

What are separators and replicators?

Countermeasures that separate or duplicate critical control data to prevent overwriting or verify integrity.

14
New cards

What are VMM-based countermeasures?

Defenses leveraging virtual memory mechanisms like non-executable memory or guard pages.

15
New cards

What are execution monitors?

Systems that observe runtime events (like system calls) to detect or prevent malicious behavior.

16
New cards

What are hardened libraries?

Modified standard libraries that perform extra validation checks on parameters to prevent unsafe behavior.

17
New cards

What is runtime taint tracking?

Technique marking external input as “tainted” and detecting unsafe use of that data in control flow or memory operations.

18
New cards

What is a stack-based buffer overflow?

An overflow on the call stack that overwrites control data such as return addresses, redirecting program execution.

19
New cards

What is a heap-based buffer overflow?

An overflow in dynamically allocated memory that overwrites heap metadata or function pointers.

20
New cards

What is a dangling pointer?

A pointer referencing memory that has already been freed, which can be exploited to corrupt new data in that location.

21
New cards

What is a format string vulnerability?

Occurs when user input is unsafely used as a format string (e.g., printf(user_input)), allowing stack reads/writes.

22
New cards

What is a return-to-libc or ROP attack?

An advanced exploitation technique that reuses existing code fragments instead of injecting new code.

23
New cards

What is Address Space Layout Randomization (ASLR)?

A probabilistic defense that randomizes memory addresses to make code injection less predictable.

24
New cards

What is a stack canary?

A random value placed before a return address on the stack; if modified, it signals a buffer overflow attack.

25
New cards

What is instruction set randomization (ISR)?

Encrypts program instructions with a secret key so injected code cannot execute correctly.

26
New cards

What is non-executable (NX) memory?

Prevents code execution in data regions like the stack or heap to block injected payloads.

27
New cards

What are guard pages?

Memory pages placed after buffers to trigger a crash if out-of-bounds writes occur.

28
New cards

What is policy enforcement?

Execution monitoring technique that limits programs to predefined safe actions (principle of least privilege).

29
New cards

What is anomaly detection?

Execution monitoring approach that detects deviations from normal program behavior.

30
New cards

What is fault isolation?

Technique ensuring one program or module’s failure cannot corrupt others, typically using memory separation.

31
New cards

What are the trade-offs among countermeasures?

They differ in effectiveness, runtime cost, compatibility, implementation effort, and susceptibility to false positives.