Memory Copy Function Identification Technique with Control Flow and Data Flow Analysis

被引:0
|
作者
Yin X. [1 ]
Lu B. [1 ]
Cai R. [1 ]
Zhu X. [1 ]
Yang Q. [1 ]
Liu S. [1 ]
机构
[1] State Key Laboratory of Mathematical Engineering and Advanced Computing, Information Engineering University, Zhengzhou
关键词
data flow analysis; function identification; intermediate representation; Key words static analysis; memory copy function;
D O I
10.7544/issn1000-1239.202110990
中图分类号
学科分类号
摘要
Memory error vulnerability is still one of the most widely used and harmful vulnerabilities in current cyber-attacks, whose timely discovery and repair in binary programs bear great value in preventing cyber-attacks. Memory error vulnerabilities are often associated with the misuse of memory copy functions. However, the current identification techniques of memory copy functions mainly rely on the matching of symbol tables and code feature pattern, which have high false positive and false negative rates and poor applicability, and there are still many problems to be solved. To address the above problems, we propose a memory copy function identification technology CPYFinder, based on the control flow of memory copy functions. CPYFinder lifts the binary code into the VEX IR (Intermediate Representation) code to construct and analyze the data flow, and identifies binary code according to the pattern of the memory copy function on the data flow. This method can identify the memory copy functions in stripped binary executables of various instruction set architectures (i.e. x86, ARM, MIPS and PowerPC) in a short runtime. Experimental results show that CPYFinder has better performance in identifying memory copy functions in C libraries and user-defined implementations. Compared with the state-of-the-art works BootStomp and SaTC, CPYFinder gets a better balance between precision and recall, and has equal time consumption compared with SaTC and its runtime only amounts to 19% of BootStomp. In addition, CPYFinder also has better performance in vulnerability function identification. © 2023 Science Press. All rights reserved.
引用
收藏
页码:326 / 340
页数:14
相关论文
共 37 条
  • [11] Cha S K, Avgerinos T, Rebert A, Et al., Unleashing mayhem on binary code[C], Proc of the 33rd IEEE Symp on Security and Privacy (SP), pp. 380-394, (2012)
  • [12] Mouzarani M, Sadeghiyan B, Zolfaghari M., A smart fuzzing method for detecting heap-based buffer overflow in executable codes[C], Proc of the 21st IEEE Pacific Rim Int Symp on Dependable Computing (PRDC), pp. 42-49, (2015)
  • [13] Kai Cheng, Li Qiang, Wang Lei, Et al., DTaint: Detecting the taint-style vulnerability in embedded device firmware[C], Proc of the 48th Annual IEEE/IFIP Int Conf on Dependable Systems and Networks (DSN), pp. 430-441, (2018)
  • [14] Chen Libo, Wang Yanhao, Cai Quanpu, Et al., Sharing more and checking less: Leveraging common input keywords to detect bugs in embedded systems[C], Proc of the 30th USENIX Security Symp (USENIX Security 21), pp. 303-319, (2021)
  • [15] A buffer overflow in the httpd daemon on TP-Link TL-WR841N V10
  • [16] Fast library identification and recognition technology
  • [17] The Official Radare2 Book[M/OL], (2018)
  • [18] Options that control optimization
  • [19] Jian Liu, Purui Su, Min Yang, Et al., Software and cyber security—A survey[J], Journal of Software, 29, 1, (2018)
  • [20] Qian Chen, Kai Cheng, Yaowen Zheng, Et al., Function-level data dependence graph and its application in static vulnerability analysis[J], Journal of Software, 31, 11, pp. 3421-3435, (2020)