CVSSA: Cross-Architecture Vulnerability Search in Firmware Based on Support Vector Machine and Attributed Control Flow Graph
Title | CVSSA: Cross-Architecture Vulnerability Search in Firmware Based on Support Vector Machine and Attributed Control Flow Graph |
Publication Type | Conference Paper |
Year of Publication | 2017 |
Authors | Lin, H., Zhao, D., Ran, L., Han, M., Tian, J., Xiang, J., Ma, X., Zhong, Y. |
Conference Name | 2017 International Conference on Dependable Systems and Their Applications (DSA) |
Keywords | ACFG, attributed control flow graph, basic-block level features, binary firmware, bipartite matching, composability, Computational modeling, Computer architecture, cross-architecture, cross-architecture vulnerability search methods, CVSSA, feature extraction, firmware, firmware security, flow graphs, function level features, Metrics, Microprogramming, pubcrawl, real-world firmware images, resilience, Resiliency, security of data, Software, support vector machine, Support vector machines, suspicious functions, SVM, third-party code bases, Training, vulnerability function |
Abstract | Nowadays, an increasing number of IoT vendors have complied and deployed third-party code bases across different architectures. Therefore, to avoid the firmware from being affected by the same known vulnerabilities, searching known vulnerabilities in binary firmware across different architectures is more crucial than ever. However, most of existing vulnerability search methods are limited to the same architecture, there are only a few researches on cross-architecture cases, of which the accuracy is not high. In this paper, to promote the accuracy of existing cross-architecture vulnerability search methods, we propose a new approach based on Support Vector Machine (SVM) and Attributed Control Flow Graph (ACFG) to search known vulnerability in firmware across different architectures at function level. We employ a known vulnerability function to recognize suspicious functions in other binary firmware. First, considering from the internal and external characteristics of the functions, we extract the function level features and basic-block level features of the functions to be inspected. Second, we employ SVM to recognize a little part of suspicious functions based on function level features. After the preliminary screening, we compute the graph similarity between the vulnerability function and suspicious functions based on their ACFGs. We have implemented our approach CVSSA, and employed the training samples to train the model with previous knowledge to improve the accuracy. We also search several vulnerabilities in the real-world firmware images, the experimental results show that CVSSA can be applied to the realistic scenarios. |
URL | https://ieeexplore.ieee.org/document/8269599/ |
DOI | 10.1109/DSA.2017.15 |
Citation Key | lin_cvssa:_2017 |
- function level features
- vulnerability function
- Training
- third-party code bases
- SVM
- suspicious functions
- Support vector machines
- support vector machine
- Software
- security of data
- Resiliency
- resilience
- real-world firmware images
- pubcrawl
- Microprogramming
- Metrics
- ACFG
- flow graphs
- firmware security
- firmware
- feature extraction
- CVSSA
- cross-architecture vulnerability search methods
- cross-architecture
- computer architecture
- Computational modeling
- composability
- bipartite matching
- binary firmware
- basic-block level features
- attributed control flow graph