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)
   318   319   320   321   322   323   324   325   326   327   328