Page 323 - 《软件学报》2024年第6期
P. 323
徐建 等: LibPass: 基于包结构和签名的第三方库检测方法 2899
LibPass 在上述数据集上的实验结果如表 10 所示. 从表中可以看出, 相对于未混淆的情形, 启用优化、标识符混淆
和压缩等 3 个混淆功能对于 LibPass 的影响不大, precision 最大仅下降了 2.68%, recall 最大仅下降了 2.79%, 且 3
种混淆情形下性能指标变化不大; 启用扁平化功能对于 LibPass 有较大影响, precision 下降了 17.74%, recall 下降
了 43.05%, 这一结果验证了扁平化是造成 LibPass 检测方法抗混淆能力下降的主要原因.
100 100
90 90
80 80
70 60
数值 (%) 50 数值 (%) 70
60
50
40
40
30 30
20 20
10 10
0 0
precision recall FPR FNR F1-score precision recall FPR FNR F1-score
(a) 没有混淆 (b) 采用 ProGuard
100 100
90 90
80 80
70
数值 (%) 60 数值 (%) 70
60
50
50
40
40
30 30
20 20
10 10
0 0
precision recall FPR FNR F1-score precision recall FPR FNR F1-score
(c) 采用 Allatori (d) 采用 DashO
LibScout LibPecker LibRadar LibD LibID-S LibID-A LibPass
图 6 不同方法的抗混淆能力评价结果
表 10 在开启 ProGuard 不同混淆功能情形下的抗混淆能力 ( %)
数据集 混淆功能 默认配置 precision recall FPR FNR F1-score
5.11
4.57
GTB-3-0 无混淆 - precision
95.43
94.89
95.16
GTB-3-1 优化 √ 93.17 94.71 6.83 5.29 93.93
GTB-3-2 标识符混淆 √ 92.44 93.94 7.56 6.06 93.18
GTB-3-3 压缩 √ 92.31 92.64 7.69 7.36 92.47
GTB-3-4 扁平化 × 77.15 52.38 22.85 47.62 62.40
进一步的, 表 11 描述了 LibPass 和其他 6 种 TPL 检测方法在抗扁平化混淆能力方面的对比结果, 其中括号内
数值为无混淆情形下的检测结果. 从表 11 的结果可以看出, 基于相似性比较的 TPL 检测方法或工具在扁平化混
淆情形下 TPL 检测精度与无混淆情形下相比均有不同程度下降, 其中 LibPecker、LibRadar 和 LibD 下降较为显
著, F1-score 远低于 50%, 而 LibPass 和 LibID 下降幅度相对较小, F1-score 略高于 50%. 虽然 LibPass 在扁平化混
淆情形下得到了最高的检测精度, 但 F1-score 也仅有 62.4%, 尚不能有效应对扁平化混淆.
表 11 不同 TPL 检测方法的抗扁平化混淆能力评价结果 (%)
检测方法 recall F1-score
LibRadar 36.23 (69.98) 29.65 (65.98) 32.61 (67.92)
LibD 19.25 (49.23) 26.97 (62.91) 22.47 (55.24)
LibScout 65.22 (69.35) 15.00 (94.09) 24.39 (79.84)
LibPecker 20.00 (65.26) 4.00 (91.68) 6.67 (76.25)
LibID-S 66.67 (93.91) 44.00 (88.35) 53.01 (91.05)
LibID-A 72.58 (88.16) 45.00 (96.30) 55.56 (92.05)
LibPass 77.15 (94.89) 52.38 (95.43) 62.40 (95.16)