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 攻击检测结果
   277   278   279   280   281   282   283   284   285   286   287