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 是目前十分流行的开源静态污点分析工具,自该工具提出以来,其性能不断得到改进且版本持