Binary code analysis and transformation
In security research, we are often confronted with the problem of securing third party code that is available only in binary form. This necessitates the development of analysis and instrumentation techniques that work on binaries. There are other significant reasons for working with binary rather than source code: the ability to support programs written in multiple source languages, and independence from compiler optimizations. (With binary code, "what you see is what you execute.")
Our research is concerned with developing robust and efficient instrumentation techniques for binaries. Our earlier work was concerned with binary transformations for defending against memory corruption attacks [34, 33]. More recently, we have been exploring the development of efficient taint analysis of binaries, and achieved a 3+ factor improvement in performance as compared to previous techniques [31]. Our continuing research is concerned with the development of robust and efficient disassembly techniques, static analysis and optimization of binaries, etc. Based on these techniques, we are developing binary instrumentation techniques for sandboxing, fault and attack containment, integrity protection, and intrusion detection.
Related Publications
- [1] Accurate Disassembly of Complex Binaries Without Use of Compiler Metadata
ACM Architectural Support for Programming Languages and Operating Systems (ASPLOS) February, 2024.
, and - [2] SAFER: Efficient and Error-Tolerant Binary Instrumentation
USENIX Security Symposium (USENIX Security) August, 2023.
, , and - [3] Practical Fine-Grained Binary Code Randomization
Annual Computer Security Applications Conference (ACSAC) December, 2020. (Talk on YouTube).
, and - [4] On the Impact of Exception Handling Compatibility on Binary Instrumentation
Workshop on Forming an Ecosystem Around Software Transformation (FEAST) November, 2020.
, and - [5] A Study of Binary Instrumentation Techniques
Research Proficiency Report (Stony Brook University) August, 2019.- [6] Protecting COTS Binaries from Disclosure-guided Code Reuse Attacks
Annual Computer Security Applications Conference (ACSAC) December, 2017.
, and - [7] Function Interface Analysis: A Principled Approach for Function Recognition in COTS Binaries
Dependable Systems and Networks (DSN) June, 2017. (Supercedes SECLAB16-05, May 2016).
and - [8] Memory corruption mitigation via hardening and testing
PhD Dissertation (Stony Brook University) May, 2017.- [9] NORAX: Enabling Execute-Only Memory for COTS Binaries on AArch64
IEEE Symposium on Security and Privacy (IEEE S&P) May, 2017.
, , , , , , and - [10] Function Recovery for COTS Binaries
PhD Dissertation (Stony Brook University) May, 2017.- [11] Extracting Instruction Semantics Via Symbolic Execution of Code Generators
ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE) November, 2016.
and - [12] Lifting Assembly to Intermediate Representation: A Novel Approach Leveraging Compilers
ACM Architectural Support for Programming Languages and Operating Systems (ASPLOS) April, 2016.
and - [13] Squeezing the Dynamic Loader For Fun And Profit
Technical Report (TR) December, 2015.
and - [14] Code and Control Flow Integrity for COTS binaries: An Effective Defense Against Real-World ROP Attacks
Annual Computer Security Applications Conference (ACSAC) December, 2015.
and - [15] A Principled Approach for ROP Defense
Annual Computer Security Applications Conference (ACSAC) December, 2015.
, and - [16] Static Binary Instrumentation with Applications to COTS Software Security
PhD Dissertation (Stony Brook University) August, 2015.- [17] Automatic Synthesis of Instruction Set Semantics
PhD Dissertation (Stony Brook University) July, 2015.- [18] Automatic Generation of Assembly to IR Translators Using Compilers
Workshop on Architectural and Microarchitectural Support for Binary Translation (AMAS-BT) February, 2015.
and - [19] Checking Correctness of Code Generator Architecture Specifications
ACM/IEEE International Symposium on Code Generation and Optimization (CGO) February, 2015.
, and - [20] Towards More Usable Information Flow Policies for Contemporary Operating Systems
ACM Symposium on Access Control Models and Technologies (SACMAT) June, 2014.Honorable mention for Best paper .
, and - [21] Comprehensive Integrity Protection for Desktop Linux (Demo)
ACM Symposium on Access Control Models and Technologies (SACMAT) June, 2014.
and - [22] Eternal War in Memory
IEEE Security and Privacy Magazine (S&P Magazine) May, 2014.
, , and - [23] A Platform for Secure Static Binary Instrumentation
Virtual Execution Environments (VEE) March, 2014.
, , and - [24] A Portable User-Level Approach for System-wide Integrity Protection
Annual Computer Security Applications Conference (ACSAC) December, 2013.
and - [25] Control Flow Integrity for COTS Binaries
USENIX Security Symposium (USENIX Security) August, 2013.Best paper award! .
and - [26] SoK: Eternal War in Memory
IEEE Symposium on Security and Privacy (IEEE S&P) May, 2013.
, , and - [27] Protecting Function Pointers in Binary
ACM Symposium on Information, Computer and Communications Security (ASIACCS) May, 2013.
, , , , and - [28] Practical Control Flow Integrity and Randomization for Binary Executables
IEEE Symposium on Security and Privacy (IEEE S&P) May, 2013.
, , , , , , and - [29] A Practical Technique for Containment of Untrusted Plug-ins
Technical Report (TR) August, 2008.
, , and - [30] On the Limits of Information Flow Techniques for Malware Analysis and Containment
Detection of Intrusions, Malware and Vulnerability Analysis (DIMVA) July, 2008. (Supercedes SECLAB07-03, November 2007).
, and - [31] Efficient Fine-Grained Binary Instrumentation with Applications to Taint-Tracking
ACM/IEEE International Symposium on Code Generation and Optimization (CGO) April, 2008.
, and - [32] Static Binary Analysis And Transformation For Sandboxing Untrusted Plugins
Master's Thesis (Stony Brook University) August, 2007.- [33] SELF: a Transparent Security Extension for ELF Binaries
New Security Paradigms Workshop (NSPW) August, 2003.
, and - [34] Address Obfuscation: An Efficient Approach to Combat a Broad Range of Memory Error Exploits
USENIX Security Symposium (USENIX Security) August, 2003.
, and - [35] Empowering mobile code using expressive security policies
New Security Paradigms Workshop (NSPW) September, 2002.
, and