Alexios Voulimeneas, Assistant Professor, Cybersecurity research group at TU Delft
Unsafe languages, like C and C++, have long been the preferred choice for systems programming thanks to their unique feature sets and performance characteristics. Over the years, developers all around the world have built up huge code bases in unsafe languages without fully realizing that their loose language specifications and lack of safety checks make even the most carefully written programs rife with undefined behavior and memory errors. Hackers routinely exploit these memory errors to infiltrate systems or to force them to leak confidential information. For this talk, I will focus on OS abstraction-based techniques to build secure and reliable systems. Specifically, I will talk about (i) N-Variant eXecution (NVX), an orthogonal defense that amplifies the effectiveness of traditional exploit mitigations such as software diversity, (ii) compartmentalization that splits programs into trusted and untrusted components and isolates trusted components from the untrusted ones, and (iii) fuzzing, a widely used technique to discover bugs/errors in software.