Lec 9: Software Security 2: Implementation Vulnerabilities 2: Heap, Integer, Format Strings Flashcards
What is the malicious code assumption of Return-oriented Programming?
Suppose you have a stack overflow but can only redirect control flow to existing code. What can you (the attacker) do?
You can still jump to any legitimate instruction
Suppose you have a stack overflow but can only redirect control flow to existing code? What if you jump into the middle of some code and that code ends witha RET instruction? Where does control flow go now? Who controls that value?
What is return-oriented programming?
What vulnerability in a RET instruction is used in ROP?
What does ROP do?
What is an example of an ROP attack?
Are heap overflows are reliable exploit?
How do simple heap overflows work?
What is PointerGuard?
A defense against heap overflows and return-to-libc attacks that allow adversary to currpy code pointers but prevent them from controling the contents
How does PointerGuard work?
In PointerGuard, when are pointers encrpyed and decrypted?
How do generic heap overflows work?
What is a typical heap overflow problem?
When can you do a heap overflow attack?
What has been done to prevent heap overflows from happening on Windows?
What causes integer vulnerabilities?
What is an example of an integer vulnerability?
C/C++ Integer review (type representation)
How many bits in a char, short, int, long long, and what are the ranges os signed vs unsigned?
What type of integer errors can occur?
What is an integer truncation error?