Current Research Topics
The very first step towards having secure software systems is to find and fix (or sanitize) the vulnerabilities in them. Under this research agenda, we aim to develop new techniques to automatically scan software systems to find latent vulnerabilities in them. We focus on developing techniques to discover vulnerabilities more effectively, more efficiently, or both. The research outcomes include Agamotto [USENIX Security '20] and PeriScope [NDSS '19], which improve the efficiency and effectiveness of OS kernel vulnerability scanning. Our survey paper [IEEE S&P '19] also represents our efforts in this direction, which extensively studies code sanitization techniques for C/C++ programs.
Software systems may process sensitive (e.g., personal and copyrighted) data, which are often best protected when they run in an attestable, trusted execution environment, well-isolated from a variety of potential attackers. Under this research agenda, we design and implement systems that use hardware (e.g., ARM TrustZone) and software (e.g., compiler) techniques to realize trustworthy computing. GuardiaNN [Middleware '22] is a representative outcome of this topic.
It is practically impossible to build perfectly secure software systems, even with all the pre-release testing (or sanitization) or even verification efforts. Therefore, we need a defense mechanism that can protect software systems at run time in order to minimize the consequence of exploitation of vulnerabilities. This research topic is concerned with developing new, effective software (and often hardware-assisted) mechanisms that can mitigate the consequences of exploits at run time. DMon [DIMVA '20] and dMVX [EuroSec '21] are systems that use software techniques to defend against memory corruption exploits.
Reverse engineering is a human-labor-intensive task. Many automated solutions have been proposed, and many rely on heuristics. Heuristics lend themselves as a useful approximation of decision procedures of skilled reverse engineers; still, they are less than ideal. We are investigating this research topic in a currently ongoing project, aiming to develop innovative ways to use state-of-the-art machine learning techniques to solve various reverse engineering problems. The outcomes in this research direction include XBA [ISSTA '22].