November 17, 2017
11:00am - 12:00pm
Donald Bren Hall 6011
Control-Flow Integrity (CFI), an upcoming mitigation, guarantees that the runtime control flow follows the statically determined control-flow graph. An attacker may reuse any of the valid transitions at any control-flow transfer. CFI stops program execution before a corrupted code pointer is dereferenced but is oblivious to the memory corruption itself, leaving the adversary some leeway.
Type Sanitization protects software against type confusion vulnerabilities where a base class is downcast into a derived class. A type sanitizer tracks the types of all objects and makes type casts explicit through a runtime check to ensure that valid objects are used in casts. Type sanitization prohibits memory corruption for vulnerabilities that leverage type confusion. Combining type awareness with CFI will protect systems against control-flow hijacking that is initiated through type confusion (the majority of today's attacks). Challenges for combined defenses are performance overhead and compatibility issues.