一句话:提出 FirmUp,通过建立二进制过程间的偏对应,在去符号固件中准确、可扩展地检测 CVE 漏洞。
论文研究如何在去符号(stripped)固件镜像中高效、准确地发现 CVE。由于固件采用多种架构和定制工具链,过程识别与漏洞检测极具挑战。作者提出 FirmUp:除过程两两相似性外,还利用周围可执行文件中过程之间的关系,在待查二进制与固件内多个二进制之间建立过程的部分对应,从而实现静态、精确且可扩展的漏洞定位。实现工具在 4 种主流架构、约 4000 万个过程上评估,发现 373 个影响公开固件的漏洞,其中 147 个存在于设备最新固件版本;相比已有方法,平均检测率提升 45%。
We present a static, precise, and scalable technique for finding CVEs (Common Vulnerabilities and Exposures) in stripped firmware images. Our technique is able to efficiently find vulnerabilities in real-world firmware with high accuracy. Given a vulnerable procedure in an executable binary and a firmware image containing multiple stripped binaries, our goal is to detect possible occurrences of the vulnerable procedure in the firmware image. Due to the variety of architectures and unique tool chains used by vendors, as well as the highly customized nature of firmware, identifying procedures in stripped firmware is extremely challenging. Vulnerability detection requires not only pairwise similarity between procedures but also information about the relationships between procedures in the surrounding executable. This observation serves as the foundation for a novel technique that establishes a partial correspondence between procedures in the two binaries. We implemented our technique in a tool called FirmUp and performed an extensive evaluation over 40 million procedures, over 4 different prevalent architectures, crawled from public vendor firmware images. We discovered 373 vulnerabilities affecting publicly available firmware, 147 of them in the latest available firmware version for the device. A thorough comparison of FirmUp to previous methods shows that it accurately and effectively finds vulnerabilities in firmware, while outperforming the detection rate of the state of the art by 45% on average.
DOI 原文 ·
@inproceedings{paperbot4239,
title = {FirmUp},
author = {Yaniv David and Nimrod Partush and Eran Yahav},
booktitle = {ASPLOS},
year = {2018},
doi = {10.1145/3173162.3177157}
}