- Doctorate of Philosophy, Computer Science, University of Maryland at College Park
- Bachelor of Science, Computer Engineering, Michigan State University
Areas of Expertise:
- Programming Languages
- Static Analysis
- Formal Methods
- Foundations of Computer Security and Privacy
My research lies at the intersection of the theory and application of program analyses. Program analyses are tools that examine programs and determine (prove) facts about them. For example, a program analysis might prove that a program can never crash due to a type error. In general, however, program analyses can be arbitrarily complex and infer subtle program invariants relating to myriad applications (such as computer security).
Because program analyses must always approximate program behavior (otherwise they could solve the halting problem), there is an inherent tradeoff between analysis precision and analysis performance. Currently, program analyses are often applied only in limited contexts, as gaining acceptable performance requires too many compromises in terms of analysis precision. My current work focuses on three concurrent threads: tackling fundamental issues relating to scaling static analysis (specifically, scaling analyses to run on supercomputers rather than a single machine as all current analyses do); engineering those analyses (to allow analysis reuse); and applying those analyses to computer security (e.g., to check properties such as information flow and to support complex reverse engineering tasks).
- Symbolic Path Tracing to Find Android Permission-Use Triggers. NDSS Workshop on Binary Analysis Research (BAR 2019).
- User Comfort with Android Background Resource Accesses in Different Contexts Symposium on Usable Privacy and Security (SOUPS 2018).
- User Interactions and Permission Use on Android (CHI 2017).