Page 139 - 《软件学报》2021年第6期
P. 139

张捷  等:基于污染变量关系图的 Android 应用污点分析工具                                                1713


                            Table 2    Comparison of FlowDroid and FastDroid on DroidBench
                               表 2   FlowDroid 和 FastDroid 在 DroidBench 上的对比
                                                        FlowDroid     FastDroid
                                    正确数(c)                 83            97
                                    漏报数(m)                 30            16
                                    误报数(f)                 15            7
                                  查准率:p=c/(c+f)          84.7%         93.3%
                                  查全率:r=c/(c+m)          73.5%         85.8%
                                 F-measure: 2pr/(p+r)     0.79          0.89
             (2)  运行时间
             表 3 统计了 FlowDroid 和 FastDroid 在 3 个测试集上检测的污染流数量和运行时间.因为 FlowDroid 和
         FastDroid 使用了相同的模块对应用进行反编译和建模,所以统计的运行时间是除去工具反编译和建模的开销
         后花费在污点分析的时间.实验结果表明:FastDroid 在 3 个测试集上花费的平均时间、最大时间和最小时间均
         小于 FlowDroid.特别是在 MalGenome 上,FastDroid 的最大时间为 17.61s,远远小于 FlowDroid 的 396.96s.
                             Table 3    Comparison of runtime of FlowDroid and FastDroid
                                  表 3   FlowDroid 和 FastDroid 的运行时间对比
                         工具               FlowDroid                 FastDroid
                         测试集     DroidBench   Google play  MalG  DroidBench  Google play  MalG
                        应用数量        119      1 517   1 260    119      1 517   1 260
                        污染流数        83       26 644   11 981  97       17 908   15 072
                       平均时间(s)      0.45     67.99   15.80    0.05      6.20    1.59
                       最大时间(s)      1.17     458.83  396.96   0.14     292.34  17.61
                       最小时间(s)      0.01     0.09     0.19   0.003      0.01    0.01
             为了反映运行时间与程序存储大小的关系,我们将工具在 Google play 测试集上的实验结果绘制成散点图.
         图 7 所示的 FlowDroid 运行时间较分散,大部分应用的运行时间在 50s 以下,但不少应用花费超过 200s.相比而
         言,图 8 中 FastDroid 的运行时间绝大多数小于 50s,超过 50s 的应用不超过 10 个.由此可得出,FastDroid 的运行
         时间更稳定.
















               Fig.7   Runtime of FlowDroid on Google play          Fig.8   Runtime of FastDroid on Google play
              图 7   FlowDroid 在 Google play 上的运行时间        图 8  FastDroid 在 Google Play 上的运行时间
         5    相关工作


         5.1   静态污点分析方法
             近年来,研究人员已经提出了若干面向 Android 应用的精确的静态污点分析方法.首先,我们重点介绍与
         FastDroid 最相关的 FlowDroid 工具,其次对其他方法进行简要介绍.
                     [6]
             FlowDroid 是目前十分流行的开源静态污点分析工具,自该工具提出以来,其性能不断得到改进且版本持
   134   135   136   137   138   139   140   141   142   143   144