Page 284 - 《软件学报》2020年第11期
P. 284
李威威 等:基于硬件分支信息的 ROP 攻击检测方法 3599
个 gadget 的 ROP 攻击实例,检测结果如图 7 所示.
pop rdi;ret
pop rax; pop rdx; pop rbx; ret
pop rsi ; ret
pop rdx ; ret
syscall
Fig.7 ROP attack detection result on short gadgets-chain attack
图 7 短 Gadgets-chain 攻击的 ROP 攻击检测结果
实验结果表明,MIBChecker 能够有效地检测出通过较短的 gadgets-chain 进行敏感系统调用的规避攻击.
(三) RIPE 测试集
RIPE 测试集 [24] 是一个专门用于包含评估缓冲区溢出漏洞防御技术安全性的测试集,它总共包含 850 个不
同的攻击实例,其中 10 个为 ROP 攻击实例.这些 ROP 攻击实例基于不同的函数(如 memcpy、strcpy、sscanf 等)
来实现缓冲区溢出.MIBChecker 在这些攻击实例上的检测结果见表 4.
Table 4 ROP attack detection result on RIPE test suite
表 4 针对 RIPE 测试集的 ROP 攻击检测结果
缓冲区溢出函数 检测结果
memcpy 3
strcpy 3
strncpy 3
sprintf 3
strcat 3
strncat 3
sscanf 3
fscanf 3
homebrew 3
这些攻击案例所利用的 ROP 攻击代码通过相同的短 gadgets-chain 来实现,MIBChecker 不关注于缓冲区溢
出的具体函数,直接针对该短 gadgets-chain 进行检测(由于版本兼容问题,原 gadgets-chain 无法成功进行攻击,
本文在不改变 gadgets-chain 长度的前提下,对原 gadgets-chain 进行了简单改造).改造后的 gadgets-chain 构成与
检测结果如图 8 所示.
pop eax; add eax,12;ret
pop ebx; pop ecx; pop edx; ret
int 0x80
Fig.8 Gadgets-chain construction and detection result on RIPE test suite
图 8 RIPE 测试集中的 gadgets-chain 构成与检测结果
实验结果表明,MIBChecker 能够有效地检测出 RIPE 测试集中的短 gadgets-chian 攻击.
(四) 与其他防御方法的对比
本文将这些短 gadgets-chain 攻击在仅开启常规 ROP 检测功能的 MIBChecker 中进行了测试,并针对其他防
御方法如 kBouncer 和 ROPecker 进行了评估,其对比结果见表 5.
Table 5 Comparison of detection result on different defense approaches
表 5 不同防御方法检测结果对比
攻击实例 kBouncer/ROPecker MIBChecker(仅常规 ROP 检测) MIBChecker
历史刷新攻击 2 2 3
规避攻击 2 2 3
RIPE ROP 攻击 2 2 3