Page 282 - 《软件学报》2020年第11期
P. 282
李威威 等:基于硬件分支信息的 ROP 攻击检测方法 3597
4 评 估
本节将针对 MIBChecker 的安全性及性能进行评估.
4.1 安全性评估
本文构建的攻击测试集主要包括两个测试子集.
1) 常规 ROP 攻击测试子集:该测试子集主要用于评估 MIBChecker 在常规 ROP 攻击上的安全性,包括两
种方式获取的攻击实例.
a) 直接获取的已有攻击实例:本文从 exploit-db 攻击库中复现了针对现实漏洞程序的 7 个 ROP 攻
击实例.
b) 利用自动化攻击工具生成的攻击实例:本文基于 gadgets-chain 自动化生成工具 ropper 针对现实
漏洞程序重新生成了 14 个攻击实例.
2) 短 gadgets-chain 攻击测试子集:该测试子集用于评估 MIBChecker 在短 gadgets-chain 攻击上的安全性,
包括如下两种攻击实例.
a) 基于人为构造的漏洞程序实现的攻击实例:本文基于人为构造的漏洞程序人工实现了两种 ROP
攻击变种——历史刷新攻击与规避攻击实例各 1 个.
b) 现有标准测试集中的短 gadgets-chain 攻击实例:本文复用了 RIPE 缓冲区溢出测试集 [24] 中的 10
个 ROP 攻击实例.
4.1.1 常规 ROP 攻击
本文复现了 exploit-db 库中的 7 个现实 ROP 攻击实例,并基于 gadgets-chain 自动化生成工具 ropper 对这
些现实中的漏洞程序重新生成了新的 ROP 攻击实例(每个漏洞程序生成了 2 个新的案例).测试结果见表 3.
Table 3 Detection result of MIBChecker on real-world ROP attack cases
表 3 MIBChecker 在现实 ROP 攻击实例上的检测结果
程序 EDB-ID 现实攻击实例检测结果 Ropper 生成攻击实例检测结果
SIPP 3.3 45 288 3 3
PMS 0.42 44 426 3 3
Crashmail 1.6 44 331 3 3
Bochs 2.6-5 43 979 3 3
MAWK 1.3.3-17 42 357 3 3
Flat Assembler 1.7.21 42 265 3 3
JAD 1.5.8e 42 255 3 3
无论是原始攻击实例还是基于 ropper 工具生成的攻击实例,它们使用的 gadget 都较短,而且 gadgets-chain
长度都大于 10.针对这些攻击实例,MIBChecker 能够检测出每个 gadgets-chain 从“length 1”到“length 11”整个
gadgets-chain 的跳转过程,并在 length 到达 11 时检测出 ROP 攻击,完整复现了这两个 ROP 攻击实例的整个攻
击路径.以 jad overflow 为例,实验结果如图 5 所示.
(a) 原始攻击 (b) 基于 ropper 构建的攻击
Fig.5 ROP attack detection result on jad
图 5 针对 jad 的 ROP 攻击检测结果