What is the definition of a MATE attacker?
MATE refers to a class of the attackers whose access extends to the environment on which software is being executed, thus they can tamper with the program’s logic, interfere with their execution, extract and manipulate their sensitive data.
What are pre and post distribution elements of an integrity protection system?
pre distribution:
- compute invariants
post distribution
how does software based integrity protection realize the elements of an integrity protection system?
how does hardware based integrity protection realize the elements of an integrity protection system?
What are pros and cons of software based integrity protection?
pros:
cons:
- hard to implement and deploy
- hard to quantify security
- secure until broken
What are pros and cons of hardware based integrity protection?
pros:
cons:
Describe Chang and Atallah’s Self-Checksumming Scheme
Idea: Augment the program with functions that compute hashes over code regions to compare to expected values
Hardening 1: Construct a network of checkers and responders so that checkers check each other and responders repair tampered regions (or provide some kind of reaction)
Hardening 2: Hide hash numbers so they won’t give away the location of checkers, blend the response mechanism with the program logic
What are cyclic checkers and how are they set up?
Describe an attack on Chang and Atallah’s Self-Checksumming scheme + possible countermeasures
Describe the “generic attack against self-hashing algorithms”
Describe a countermeasure against the “generic attack against self-hashing algorithms”
Self-modifying code: If the fetch and read memories are disjoint, the unmodified code will be executed! -> “Self modification guards”
Describe another generic attack on self-checksumming protections
Guards follow a predictable routine:
Use a combination of backward and forward taint analysis to detect SC guards:
What are pros and cons of self-checksumming techniques?
pros:
- potentially 100% coverage
cons:
What is the idea behind State inspection?
Check the integrity of computation instead of code (-> self-checksumming)
What are some parts of program state that have been used for state inspection?
How does Stlns4CS work?
How does protection against changeware by stack trace verification work?
- only allow legitimate stack traces
How does protection based on hardware performance counters work?
phase1
phase2
What is the idea of oblivious hashing?
Verify integrity of computation by hashing execution traces (instruction sequence + memory references)
What is a major limitation of oblivious hashing?
It only works for input independent computations
What are data dependent instructions (DDI)?
Instructions where at least one operand depends on input data
What are control flow dependent instructions (CFDI)?
Instructions where the condition leading to a branch the instruction resides in depends on input data
What are data independent instructions (DII)?
Instructions that are control flow dependent (CFDI) but not data dependent (DDI)
What is the idea behind short range oblivious hashing (SROH)?
Extend OH to protect data independent instructions (DII):
Some blocks in a CFG are executed if and only if a sequence of mutually adjacent blocks have been executed before - and these form a path.
-> protect data independent instructions in those paths
Intuition: if some block was executed, which predecessor block(s) must have been executed as well?