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 条
  • [1] 2021 CWE top 25 most dangerous software weaknesses
  • [2] CWE-787: Out-of-bounds write
  • [3] CWE-125: Out-of-bounds read
  • [4] CWE-119: Improper restriction of operations within the bounds of a memory buffer
  • [5] Yawen Wang, Xinhong Yao, Yunzhan Gong, Et al., A method of buffer overflow detection based on static code analysis[J], Journal of Computer Research and Development, 49, 4, (2012)
  • [6] Zhen Li, Deqing Zou, Zeli Wang, Et al., Survey on static software vulnerability detection for source code[J], Chinese Journal of Network and Information Security, 5, 1, (2019)
  • [7] Heelan S, Gianni A., Augmenting vulnerability analysis of binary code[C], Proc of the 28th Annual Computer Security Applications Conf, pp. 199-208, (2012)
  • [8] Redini N, Machiry A, Das D, Et al., BootStomp: On the security of bootloaders in mobile devices[C], Proc of the 26th USENIX Security Symp (USENIX Security 17), pp. 781-798, (2017)
  • [9] Redini N, Machiry A, Wang Ruoyu, Et al., Karonte: Detecting insecure multi-binary interactions in embedded firmware[C], Proc of the 41st IEEE Symp on Security and Privacy (SP), pp. 1544-1561, (2020)
  • [10] Chipounov V, Kuznetsov V, Candea G., S2E: A platform for in-vivo multi-path analysis of software systems[J], ACM SIGPLAN Notices, 46, 3, pp. 265-278, (2011)