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
   279   280   281   282   283   284   285   286   287   288   289