计算机工程与应用››2024,第60卷››问题(9): 299-308.内政部:10.3778/j.issn.1002-8331.2212-0026

网络、通信与安全 • 上一篇   下一篇

Xgadget(小工具):基于动静结合的二进制小工具搜索

吕建强,付才,何帅,江帅,李明,韩兰胜  

  1. 1华中科技大学 网络空间安全学院,武汉 430074
    2分布式系统安全湖北省重点实验室,武汉 430074
  • 日本:2024-05-01 发布日期:2024-04-29

Xgadget:基于动态和静态技术相结合的二进制Gadget搜索方法

刘建强、福彩、何帅、蒋帅、李明、韩兰生  

  1. 1.华中科技大学网络科学与工程学院,武汉430074
    2.分布式系统安全湖北省重点实验室,中国武汉430074
  • 在线:2024-05-01 出版:2024-04-29

摘要:代码复用技术一直以来都是软件安全研究领域的热点,ROP(面向返回的编程)、JOP(面向跳跃的编程)DOP(面向数据的编程)技术是典型代表。小工具搜索是代码复用的基础,针对现有静态搜索算法存在支持的小工具类型不多,不能同时搜索动态链接库等问题,提出了基于动静结合的二进制小工具搜索方法,基于此开发了搜索工具Xgadget利用动态映像级插桩,对所有函数进行反汇编;设计了代币级和指令级有穷自动机,实现了基于自动机的静态搜索算法;在五款应用程序中对其进行了测试与评估。实验结果表明,算法支持ROP、JOP、DOP等多种小工具类型的搜索,能够同时对目标程序动态链接库进行搜索,搜索数量是ROP小工具12.5倍,单位指令搜索时间较之降低32.1%。算法为不同需求的代码复用提供更为广泛的支持,且输出结果是二进制小工具后续复用更直接,有利于代码复用自动化利用。

关键词: 代码复用, 小工具搜索, 动静结合, DFA公司算法, 二进制, DOP公司方法, 动态链接库

摘要:代码重用技术一直是软件安全研究的热门领域。ROP(返回定向编程)、JOP(跳跃定向编程)和DOP(数据定向编程)是典型的技术,Gadget搜索是代码重用的基础。现有的静态Gadget搜索算法支持几种Gadget,无法同时搜索依赖的动态链接库。为了解决这些问题,本文提出了一种基于动态和静态相结合的二进制小工具搜索方法Xgadget。Xgadget首先使用动态图像级排序对图像中的所有函数进行反汇编,然后设计了标记级和指令级DFA,并实现了基于DFA的静态搜索算法。在本文中,Xgadget在五个应用程序中进行了评估。实验结果表明,Xgadget支持ROP、JOP、DOP等多种Gadget类型,可以同时对目标程序所依赖的动态链接库进行Gadget搜索。搜索的Gadget数量是ROPgadget的12.5倍,每条指令的搜索时间减少了32.1%。Xgadget为具有不同需求的代码重用提供了更广泛的支持,输出是二进制Gadget,它更直接地用于后续重用,并且易于用于代码重用自动化。

关键词: 代码重用, 小工具搜索, 动静结合, 确定性有限自动机(DFA), 二元的, 面向数据的编程(DOP), 动态链接库