Page 357 - 《软件学报》2026年第6期
P. 357

2676                                                       软件学报  2026  年第  37  卷第  6  期



                                                                       阶段1: 数据投毒攻击
                             数据收集     数据清洗     数据分析                                           协同过滤
                                                                                              矩阵分解
                    开发人员             数据预处理
                                                           原始数据                               深度学习
                             随机攻击     均值攻击     潮流攻击
                                                                                               攻击前
                                    生成对抗攻击                                               服     攻击后
                     攻击者                                                                 务
                                    投毒攻击方法                 投毒数据              中毒数据        质    单一攻击
                                                                                         量
                  阶段2.1: 检测防御                                                                 混合攻击
                                                                                         感
                                                                                         知
                            有监督检测    无监督检测 半监督检测                                         云    防御强度
                                                                                         API  防御规模
                   检测防御者            检测防御方法               检测攻击数据           检测防御后数据        推
                                                                                         荐
                                                                                         系    随机防御
                  阶段2.2: 持续防御
                                                                                         统    均值防御
                           启发式防御   随机防御 均值防御 潮流防御
                                                                                              潮流防御
                            深度防御 变分自编码防御 生成对抗防御                                               持续防御
                                      扩散防御
                   持续防御者          ...  正向扩散    ...                                            防御有效性
                                  ...          ...         可信数据           持续防御后数据             防御解释性
                                      反向扩散
                               x 0  x t−1   x t  x T
                                    持续防御方法                             阶段2: 投毒攻击防御     阶段3: 攻击防御效果评估
                                             图 2 基于可信数据增强的持续防御框架

                    (1) 数据投毒攻击. 使用攻击方法如随机攻击、均值攻击、潮流攻击和生成对抗攻击生成恶意用户, 并将这些
                 恶意用户数据注入原始数据集中, 构造被污染的中毒数据.
                    (2) 投毒攻击防御. 采用两种防御策略进行防御. 1) 检测视角的检测防御, 采用有监督、无监督或半监督的检
                 测算法对中毒数据集中的恶意用户进行检测和剔除. 考虑到现有检测算法在实际应用中存在漏检和误检的现象,
                 提出在检测防御的基础上进行持续防御. 2) 以攻学防视角的持续防御. 引入可信用户的概念, 并设计可信用户生成
                 算法, 如基于启发式、基于深度学习模型和基于扩散模型的可信用户生成算法, 生成可信用户数据消解恶意数据
                 对模型的影响.
                    (3) 攻击防御效果评估. 分别将原始数据、中毒数据、检测防御后数据和持续防御后数据作为服务质量感知
                 云  API 推荐系统输入, 从不同推荐系统下的攻击与防御分析、攻击前后分析、单一与混合攻击、防御强度与防御
                 规模影响和防御方法影响等多个维度评估投毒攻击防御方法的有效性和解释性.
                  2.1   数据投毒攻击
                    攻击者通过雇佣用户随意提交虚假的              QoS  数据来攻击推荐系统. 然而, 此类攻击数据易被检测算法识别并过
                 滤掉, 故提升恶意用户的隐蔽性对于投毒攻击尤为重要. 目前, 攻击者在构建恶意用户数据时, 在真实用户与云
                 API 交互数据的基础上, 采用均值攻击、潮流攻击等多种投毒攻击方法生成恶意用户数据. 随后, 将生成的恶意用
                 户数据注入原始数据集中, 完成对云           API 生态原始数据的投毒. 一般地, 数据投毒攻击过程在形式上可表示为:

                                                    R(U)⊕R(V) ⇒ R(U,V)                                (1)
                 其中,  ⊕ 表示数据注入操作,      U  和  V  分别表示真实用户和恶意用户集合.        R(U) 和  R(V) 分别表示真实用户和恶意用
                 户与云   API 的交互数据集.    R(U,V) 表示中毒后的用户-云      API 服务质量数据集.
                  2.2   可信数据增强的持续防御
                  2.2.1    可信用户定义
                    一旦服务质量感知云        API 推荐系统使用被污染的数据训练推荐模型, 攻击者便能够破坏推荐结果, 甚至能够
   352   353   354   355   356   357   358   359   360   361   362