SPAIN: Security Patch Analysis for Binaries towards Understanding the Pain and Pills
Authors:
- Zhengzi XuZXZhengzi Xu
- Bihuan ChenBCBihuan Chen
- Mahinthan ChandramohanMCMahinthan Chandramohan
- Yang LiuYLYang Liu
- Fu SongFSFu Song
Top Cited Papers
- 1 May 2017
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 462-472
Abstract
Software vulnerability is one of the major threats to software security. Once discovered, vulnerabilities are often fixed by applying security patches. In that sense, security patches carry valuable information about vulnerabilities, which could be used to discover, understand and fix (similar) vulnerabilities. However, most existing patch analysis approaches work at the source code level, while binary-level patch analysis often heavily relies on a lot of human efforts and expertise. Even worse, some vulnerabilities may be secretly patched without applying CVE numbers, or only the patched binary programs are available while the patches are not publicly released. These practices greatly hinder patch analysis and vulnerability analysis. In this paper, we propose a scalable binary-level patch analysis framework, named SPAIN, which can automatically identify security patches and summarize patch patterns and their corresponding vulnerability patterns. Specifically, given the original and patched versions of a binary program, we locate the patched functions and identify the changed traces (i.e., a sequence of basic blocks) that may contain security or non-security patches. Then we identify security patches through a semantic analysis of these traces and summarize the patterns through a taint analysis on the patched functions. The summarized patterns can be used to search similar patches or vulnerabilities in binary programs. Our experimental results on several real-world projects have shown that: i) SPAIN identified security patches with high accuracy and high scalability, ii) SPAIN summarized 5 patch patterns and their corresponding vulnerability patterns for 5 vulnerability types, and iii) SPAIN discovered security patches that were not documented, and discovered 3 zero-day vulnerabilities.Keywords
This publication has 27 references indexed in Scilit:
- A deeper look into bug fixes2016
- Improving Accuracy of Static Integer Overflow Detection in Binary2015
- DirectFix: Looking for Simple Program Repairs2015
- Firmalice - Automatic Detection of Authentication Bypass Vulnerabilities in Binary Firmware2015
- Statically detecting use after free on binary codeJournal of Computer Virology and Hacking Techniques, 2014
- PVDF: an automatic patch-based vulnerability description and fuzzing method2014
- Generalized vulnerability extrapolation using abstract syntax trees2012
- LoongChecker: Practical Summary-Based Semi-simulation to Detect Vulnerability in Binary Code2011
- Discovering and representing systematic code changes2009
- Automatic Patch-Based Exploit Generation is Possible: Techniques and Implications2008 IEEE Symposium on Security and Privacy (SP 2008), 2008