机器学习模型安全:概念与开放问题

1. 引言

机器学习(ML)模型正广泛取代传统算法,但部署后易受攻击。攻击者常篡改训练数据,且训练数据常来自第三方,易在供应链中被篡改。部分依赖物理世界传感器输入的 ML 模型,易受物理对象操纵影响。此外,ML 模型除了准确性,还需具备性能、透明度和公平性等非功能属性,且各属性间存在权衡。本文聚焦 ML 模型的安全属性,包括保密性、完整性、可用性和隐私性,以及训练和操作过程的质量、记录保存、人工监督和鲁棒性。

2. 初步概念
2.1 机器学习生命周期

ML 生命周期涵盖一系列迭代阶段,具体如下:
1. 数据管理 :包括数据摄取和探索,将数据整理为多维数据点。随后进行预处理,清理、整理和策划数据,选择特征以减少数据维度。
2. 模型训练 :选择 ML 模型结构,从训练数据中学习内部参数。在监督学习场景中,通过计算误差并调整参数来最小化误差。同时,设置超参数以控制训练过程。
3. 模型测试 :验证模型在未见过的数据上的泛化能力。
4. 模型部署 :将训练和验证好的模型集成到生产环境中,并进行持续监控。
5. 模型维护 :监控模型运行,必要时进行重新校准和训练。

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(数据管理):::process --> B(模型训练):::process
    B --> C(模型测试):::process
    C --> D(模型部署):::process
    D --> E(模型维护):::process
    E --> A
2.2 学习范式

学习范式根据训练数据类型、接收方式、测试数据性质以及学习者的主动性和学习策略进行分类,主要包括:
1. 监督学习 :训练集由输入向量和期望输出组成,目标是学习输入到输出的映射函数,可分为分类和回归问题。
2. 无监督学习 :训练集仅包含无标签输入数据,目标是发现数据的属性和结构,可分为聚类和关联问题。
3. 半监督和强化学习 :半监督学习使用少量标签数据增强大量无标签数据;强化学习依赖奖励系统,通过与环境交互选择动作以获得最大奖励。
4. 联邦学习 :多个节点独立训练本地 ML 模型,同时协作训练全局模型。本地模型的训练集不共享,通过同步梯度下降(SGD)或联邦平均(FedAvg)计算更新。

学习范式 训练数据特点 目标
监督学习 输入向量和期望输出对 学习输入到输出的映射函数
无监督学习 无标签输入数据 发现数据属性和结构
半监督和强化学习 少量标签数据或奖励系统 增强学习效果或获得最大奖励
联邦学习 本地不共享训练集 协作训练全局模型
3. 对抗性机器学习

监督 ML 假设训练数据能准确代表学习现象,但数据改变会导致训练集和测试集分布差异,即数据集偏移,这是模型性能下降的主要原因。自然因素和恶意修改都会导致数据集偏移,而 ML 技术最初并未考虑应对恶意对手的情况,且定期重新训练模型给攻击者提供了更多干扰机会。

4. 威胁建模

对抗性 ML 攻击在多个应用领域均有出现,促使了 ML 特定安全属性的形式化和对抗性机器学习领域的兴起。该领域旨在识别 ML 系统的潜在弱点、设计攻击并评估影响,以及提出对策。常见的威胁模型从攻击者的目标、能力和知识三个维度进行抽象,具体如下:

4.1 威胁模型维度
维度 描述
对抗目标 包括违反保密性、完整性和可用性,以及发起有针对性或无差别攻击,还可分为特定错误攻击和通用错误攻击。
对抗能力 分为因果攻击(操纵训练数据)和探索性攻击(操纵输入样本),数据操纵有插入和更改两种模式。
对抗知识 用向量 θ = (D, X, f, w) 表示,包括对训练数据集、特征集、学习算法和模型参数的访问程度,攻击设置从白盒攻击到黑盒攻击不等。

此外,攻击策略通常可表述为优化问题,以最大化攻击严重性并最小化成本。

4.2 对抗条件下的训练

ML 系统在整个生命周期都可能受到攻击,当前研究主要关注模型训练和测试阶段的攻击。测试时攻击(逃避攻击)旨在通过修改目标实例来逃避训练好的模型,而中毒攻击则在训练阶段插入、编辑或删除训练集中的点,以降低系统性能。

中毒攻击是一种有效的攻击方式,攻击者控制部分训练数据,根据攻击目标可分为通用错误中毒攻击和特定错误攻击。攻击者还可操纵训练集标签,如标签翻转攻击,通过随机或有针对性地改变标签来破坏模型性能。即使少量精心设计的中毒数据也可能显著降低 ML 模型的性能。

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(训练数据):::process --> B(中毒攻击):::process
    B --> C(模型性能下降):::process
    C --> D(后续系统逃避):::process

机器学习模型安全:概念与开放问题

5. 防御策略

对抗性 ML 研究有设计攻击和增强防御能力两个分支。近期,人们致力于设计提高 ML 系统对抗训练时攻击鲁棒性的技术。以下是一些常见的防御策略:

5.1 基于检测的方案

这类方案旨在识别中毒数据与正常数据的偏差,然后对可疑点进行清理或排除。
- 数据清理
- 拒绝负面影响防御 :评估每个可疑数据对模型性能的影响,丢弃有显著负面影响的数据点。但该技术可能导致过拟合,尤其是在训练数据集较小时,会使清理后的模型在测试数据上的性能变差。
- 其他清理机制 :如基于异常检测的预过滤、使用 k - 最近邻(kNN)模型识别和重新标记可疑训练点、通过解决优化问题过滤异常值等。这些方法大多需要进行大量的超参数调整,且部分技术在估计异常点百分比不准确时,性能会显著下降。
- 鲁棒估计 :源于稳健统计学,旨在提高 ML 模型的泛化能力。一些研究提出了在存在大量任意额外样本的情况下,仍能稳健估计数据集参数的标准,如均值和协方差估计等。

防御类型 具体方法 优点 缺点
数据清理 拒绝负面影响防御 对特定中毒攻击有效 高运行时开销,易过拟合
数据清理 基于异常检测预过滤等 可减轻攻击影响 需要大量超参数调整,估计不准确时性能下降
鲁棒估计 提出稳健估计标准 提高模型泛化能力 -
5.2 模型增强机制

这类防御策略不旨在移除受攻击的点,而是在训练阶段直接采取措施,防止中毒攻击生效。
- 对抗性中毒 :研究表明,强数据增强(如 mixup 和 cutout)可以使模型对触发因素和数据扰动不敏感。通过预处理修改模型输入,可掩盖攻击者准备的触发后门的特定输入。这是对抗训练在防御训练时攻击的应用,目前相关研究仍处于起步阶段,无法保证正式定义的收敛和鲁棒性属性。
- 模型组合 :利用集成学习通过划分训练集来减少中毒样本的影响。多数研究集中在 Bootstrap 聚合(bagging)框架,认为其除了提高准确性外,还能增强对抗环境下的鲁棒性。此外,一些研究探索了结合集成和可证明鲁棒性的方法来开发对抗数据中毒的防御策略,但在衡量模型鲁棒性的指标上尚未达成共识。

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    A(模型增强机制):::process --> B(对抗性中毒):::process
    A --> C(模型组合):::process
    B --> D(模型脱敏):::process
    C --> E(减少中毒影响):::process
6. 联邦学习

在联邦学习(FL)场景中,多个本地模型在各自的训练集上独立训练,其参数用于更新全局模型。本地训练集可能独立采样或不独立,且统计分布可能相同或不同。

6.1 威胁模型和防御

FL 中,本地节点对本地训练数据有独占访问权,这保证了保密性,但不能保证模型完整性。之前讨论的训练数据威胁(如标签翻转和噪声添加)同样适用于 FL,此外,FL 还面临一些特定威胁:
- 通信威胁 :节点发送给中心枢纽的模型更新可能被窃取或篡改。
- 参与者行为威胁 :如搭便车者利用诚实参与者的工作,恶意节点插入噪声参数损害全局模型质量。
- 拜占庭攻击 :上传恶意梯度,试图破坏全局模型的完整性,虽易于通过统计检测,但危害较大。
- 中毒攻击 :攻击者设计恶意更新以最大化对全局模型的损害或引入后门。

目前,针对 FL 的安全控制仍处于早期阶段。缓解方法包括监控本地节点和中心枢纽的行为,以及审核本地节点的数据质量。但由于本地数据不可访问,评估训练数据质量存在挑战。

威胁类型 描述 检测难度 影响
通信威胁 模型更新被窃取或篡改 较难 破坏模型完整性
参与者行为威胁 搭便车或插入噪声参数 较难 损害全局模型质量
拜占庭攻击 上传恶意梯度 较易 破坏全局模型完整性
中毒攻击 设计恶意更新或引入后门 较难 损害全局模型或引入后门
7. 结论

ML 模型系统与传统算法系统一样,需要安全设计。目前,缺乏系统的方法来识别 ML 模型在整个 ML 管道中的威胁,迫切需要为安全从业者提供定制的威胁建模方法。同时,ML 特定威胁需要与受影响的非功能属性进行仔细映射,ML 属性也需要与安全最佳实践和安全控制相映射。然而,目前尚无专门为 ML 模型设计的全面安全控制框架。未来研究应探索如何利用现有标准中的控制措施来减轻对 ML 模型的威胁,以及如何选择仅适用于 ML 场景的控制措施。此外,还应研究如何通过联合使用多种技术为 ML 模型的训练和操作创建无信任环境,以及评估 FL 在隐私保护方面的效果与其他加密安全多方计算技术的比较。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐