论文部分内容阅读
随着社会网络化程度的提高,恶意软件肆意传播,漏洞攻击不断涌现,安全问题愈演愈烈。如何快速精准地剖析软件漏洞的可利用性已然成为当前软件安全研究的重点。安全业界提出渗透测试技术,利用模拟攻击的方式植入攻击载荷,以期能够发现软件潜在的可利用漏洞。然而,传统攻击载荷的构造方式以手工分析为主,构造过程依赖于不同的系统版本,开发效率低、难度大。针对不同目标系统的植入可能出现运行失败的情况,通用性能差。随着攻击载荷检测技术的发展,手工方式下生成的攻击载荷进行模拟攻击的成功率较低。传统攻击载荷的构造方式存在诸多缺陷,无法应对软件功能越来越复杂、漏洞类型不断更新换代的趋势。因此,本文着眼于对传统攻击载荷构造方式中存在的问题进行改进,提出高效可靠的攻击载荷自动化生成方案,解决了传统攻击载荷开发效率低、可移植性差的缺点。针对具体的目标程序实现攻击载荷自动化定制,提高攻击植入的成功率,并且引入对攻击载荷的混淆变形来躲避现有的检测机制。本文提出的方法不仅降低了软件安全检测中对攻击载荷编写、调试、修改的代价,同时提供了攻击效能和通用性能更高的攻击载荷来进行模拟攻击测试,帮助软件开发者消除安全漏洞隐患,为安全测试人员提供了极大的便利。本文的主要工作包括:对攻击载荷自动化生成流程中的关键问题进行抽象,从地址定位、功能性攻击载荷构造、攻击载荷变形、攻击载荷布局四大方面入手,设计并实现了攻击载荷自动化生成系统。利用程序运行时动态获取关键地址的方式,提高了攻击载荷在不同系统中的通用性;针对攻击者输入的恶意函数调用序列构建分析模型,提取恶意函数调用流程信息,完成对攻击载荷指令序列的生成;利用无效指令插入技术和编码技术,模糊原始攻击载荷的执行功能,消除特征值,躲避攻击载荷的现有检测机制;构建不同的布局模型,针对具体目标程序选择合适的布局方式,提高攻击载荷植入的成功率。最后,为说明系统的可用性,本文选取了具有代表性的测试用例,利用系统生成攻击载荷,并对目标程序进行实际的模拟攻击。实验结果表明,攻击载荷自动化生成系统提高了攻击载荷的开发效率以及通用性能,并且成功躲避了现有检测机制,提高了攻击的成功率,达到了预期的设计目标。