text: 保障机器学习生命周期安全性
  机器学习（ML）已经成为工业领域广泛采用的技术，它不仅可以补充传统的软件工程和开发，甚至在某些方面超越了它们。ML已经被应用于无数的工业场景，例如设计和制造优化、预测性维护或物料采购优化。在物联网（IoT）环境下，ML甚至可以用于改进网络安全。同时，使用ML也引入了新的攻击途径到IoT和工业物联网设备中。由于ML具有高度数据驱动的特性，必须特别注意在实施安全的ML生命周期时，要与组织的安全软件开发生命周期保持一致。本文件的目的是引起人们的注意，机器学习活动需要在一个结构化和安全的流程中进行定义，并且嵌入支持性的组织结构中。由于机器学习具有高度数据驱动的特性，这与标准的安全软件开发和供应链可能有所不同。本文件调查了现有的关于实施安全机器学习生命周期的建议和方法。我们提供了机器学习生命周期模型的分析，并提供了每个生命周期步骤的已知攻击和对策，包括特定的对抗攻击案例。我们还讨论了参与机器学习过程链的相关利益相关者。我们特别关注训练数据和训练模型的保护，无论是从数据完整性还是商业（许可证、知识产权）的角度来看。我们的目标不是提供所有可能攻击的详尽列表，而是提供一个现实的生命周期模型，明确相关利益相关者，并介绍一些选择的攻击和适当的对策。这样决策者就可以将我们的观察应用到他们的组织环境中。软件架构师，产品管理，运营以下术语和定义对于理解本文件至关重要：机器学习可以被定义为对计算机进行编程，使其能够从数据中学习。与过程式开发不同，开发人员不仅仅是定义解决方案的算法方法，而是确定从数据中提取模式以生成泛化模型所需的步骤和参数。换句话说，基于（大量的）训练数据，执行训练过程，从而得到训练模型。这可以是用于无线诊断或工业维护中的图像识别模型，用于金融预测的模型，用于网络中恶意软件检测的模型，用于语音识别或文本转语音合成的模型。这三个核心产物（训练数据，训练过程描述，训练模型）可能会受到意外修改甚至故意攻击。标准软件开发中使用的验证和确认机制（例如静态代码分析或单元测试）不能保证训练数据，训练代码或训练模型的整体质量。在讨论ML生命周期时，我们还需要了解相关的利益相关者，然后才能讨论ML生命周期各个阶段的实际威胁、攻击和对策。下面的两个简要案例研究将在讨论中提及。一家公司生产复杂的机器，由几百个单独的零件组成。已经训练了一个图像识别模型，用于识别每个零件（即使已经与其他零件组合在一起），并在装配过程中向工程师显示有关零件的信息。数十家零件供应商为每个零件提供详细的技术描述和图像，但许多单独的零件仅在公司的生产场地上组装。我们已经可以观察到有几个利益相关者在此进行交互，尽管我们未提及是谁进行了模型的训练以及供应商的原始数据（图像和技术文档）是如何转入ML流程的。一家医院正在使用预先训练的商业模型来分析其网络上的医学图像。然而，医院还希望使用他们自己的数据库来改进这个模型。来自射线诊断部门的数据被发送到一个云平台，其中一家商业提供商已经建立了他们的训练基础设施。模型定期进行重新训练和更新。同样，至少有两个利益相关者参与其中：模型的实际终端用户和提供初始模型的公司。这个案例也未涉及现有模型是如何重新训练以及所需数据是如何传输的。对于任何软件解决方案而言，训练一个ML模型都应该是为了实现明确的业务目标和由此衍生的非功能性需求。只有在这些目标明确定义的情况下，才能收集所需的训练数据并定义正确的训练参数。在收集数据时，两个核心参数是数量和质量。这尤其涉及监控数据的平衡，以避免后期的偏差（例如在医疗数据中）。另一个关注点是数据的产生方式。一种可能是这是在完全由定义训练过程的组织内部进行的。然而，数据也可以来自公共存储库，或者是与第三方或客户签订的合同协议中获得的。在初始数据分析中，收集的数据会根据其结构、数据类型和类别、可能的异常值或可能的直接关联进行检查。然后通常会进行预处理步骤，例如去除任何统计噪声或零值。标识用于后续训练的特征（列名），并将数据分成训练集、验证集和测试集。训练阶段通常从合理选择（配置）适当的训练算法和相关参数（例如隐藏层的数量、批次大小或学习率）开始。在这个上下文中，“适当”的意思是训练方法与定义的业务目标相匹配。然后将训练数据输入到定义的训练流程中，逐步验证和调整训练参数和中间模型。最终的模型将根据独立的测试数据进行评估。这样的模型可以在云服务等环境中提供，以便可以查询它（有时称为推断模型）。然而，技术上如何实现这一点取决于用于训练的框架（例如scikit-learn、keras或pytorch）。诸如ONNX之类的互操作标准试图解决这个问题。MLOps社区也强调我们不能像传统软件工程那样对待机器学习。图3-1汇总了我们对于ML生命周期的观察，并介绍了涉及其中的资产和利益相关者，这将在接下来的章节中讨论。对于本文的目的，我们需要强调整个ML过程是多个利益相关者相互作用的结果。这一观察对于我们讨论涉及ML过程的安全要求以及其技术成果至关重要。在任何给定的机器学习生命周期中，可能会有多个利益相关者参与。某个实体将是实际的训练数据所有者，或者作为聚合者，其拥有类似所有权的权利，这些权利在某些法律协议中进行了转让。训练代码可能由其他实体拥有，但它可能与训练数据一样保密，因为它包含了最终的训练模型架构和选择的参数。最终的“训练”（推断）模型可能归属于前两个实体之一，但也可能已转让给另一个独立的模型所有者。在这一点上，我们已经注意到完全的所有权转让与授权模型不同。用于查询模型的实际推断代码可能再次由另一个独立的参与者拥有。同样，用于推断的查询数据可能属于与所有提及的实体不同的实体。最后，所有这些数据（训练数据、训练代码、训练模型、推理等等）可能在一个不完全由所有者控制的技术环境中处理（即在云服务中）。在过去的几年中，已经确定了多种攻击方式，可能会危及机器学习生命周期的各个阶段和资产。我们的观察与学术机构、工业机构、非盈利机构和政府机构提供的多种分类相一致。需要注意的是，我们不讨论恶意行为者如何使用机器学习。再次强调，我们的目的不是呈现所有可能攻击的完整列表，而是提供一个现实的生命周期模型，明确涉及的利益相关者，选择的攻击方式和相应的对策。训练数据的质量是生成能够进行准确预测或分类的模型的基础。如果攻击者成功地更改现有数据或任意插入数据，我们将其视为一种污染攻击。4.1.1 污染攻击这种攻击背后的意图可能是降低模型的质量，甚至造成拒绝服务。攻击者还可以尝试影响模型生成过程，使得模型只在某些情况下失败，从而对攻击者有利。在这种情况下，我们称之为有针对性的污染攻击，因为攻击者希望只有特定的示例被错误分类。这种污染攻击甚至可以由经过训练的对抗模型来执行，这在恶意软件检测场景中已经得到描述。在我们的医学图像分类场景中，污染训练数据可能导致模型不能正确地对某些图像进行分类。事实上，已经有成功的报告表明，医疗训练数据可能被故意篡改，从而导致错误的患者治疗建议。如果对手了解用于预处理的算法，甚至可以执行更复杂的攻击。例如，如果知道用于训练的图像材料的缩放算法，就可以更改图像，使得在未缩放的图像上看不出与原始图像的不同，但缩放后的图像包含了一些用于训练的对抗性痕迹，导致错误地进行训练或者缩放成完全不同的图像。已经有多篇论文描述了此类图像缩放攻击和对策。4.1.2 对策常规的访问控制和保持完整性的措施可以帮助减轻这种类型的攻击。除了在网络层进行安全通信外，通过可信元素在应用层实现数据的机密性和完整性保护也是可行的。如果我们认为污染数据已经由来源传输，可以使用更先进的异常检测技术直接处理数据的来源，或者通过统计技术在预处理阶段尝试识别虚假数据。除了更常规的尝试仅仅在技术上干扰训练过程之外，更高级的攻击可能会再次试图影响所选择的算法和相关库（例如用于GPU交互）。如果训练过程在云中运行，我们还可以假设云运营商会采取“诚实但好奇”的行为方式。4.2.1 观察预处理观察预处理阶段可能会为攻击者提供有价值的信息。特别是对于后续的对抗性攻击，了解其中使用的特征可能会有所帮助。这还包括对于训练模型未使用的特征的了解。4.2.2 污染攻击攻击者可以选择执行有针对性的污染攻击，或者在训练过程中造成拜占庭式的故障。这里的故障并不一定意味着导致训练过程中断的技术故障，而是攻击者可能更关注影响模型的质量本身。一个明显的原因可能是最终的模型不应该正确地对攻击者后续的活动（例如网络入侵）进行分类，但更微妙的攻击可能只是意图降低整体模型质量以获得竞争优势。4.2.3 配置窃取攻击在训练阶段，攻击者还可以尝试推导出关于使用的配置和学习参数的信息。这还包括试图非法获取有关预处理步骤（例如所选特征）的信息。这样的信息随后可能有助于后续的对抗性攻击，旨在规避模型预测或分类。4.2.4 对策同样，常规的访问控制可以用于防范这些攻击。然而，在共享训练环境中，可能需要使用更精细的软件保护服务来进行应用层的对抗性对策。虽然可以控制对训练过程的关键参数的访问，但我们甚至可以考虑将训练过程的一部分转移到可信执行环境中，例如SGX安全保护区域或其他安全元素。对于使用云运营商的情况，使用但不完全信任云运营商的可能困境已经在数据库、可信计算和安全计算社区中长期讨论。最近提出了一种使用SGX等可信执行环境的共享机器学习的现实工程场景。攻击部署的模型应该从两个角度考虑，即窃取模型或尝试规避模型。4.3.1 窃取模型窃取模型可能是一种相对常规的攻击，需要非法访问文件并复制它们。但更复杂的攻击可能会尝试通过提出查询来复制模型。类似地，攻击者可以试图推断出关于底层训练数据集的知识。后两种方法通常被称为对抗性攻击，因为它们是由训练有专门目的的模型进行的，其目的是复制其他模型。4.3.2 规避模型攻击者还可以尝试生成对抗性模型，用于构建恶意输入并产生错误的模型输出，同时对人类观察者来说看起来没有被修改。实际上，我们知道已有许多用于支持IT安全目的（例如钓鱼检测）的发布模型，立即受到相应的对抗性模型攻击，并成功地规避了最初提出和训练的分类器。4.3.3 非预期的使用模型可以像常规软件一样提供给客户使用。关于如何在开源使用方面授权训练模型以及训练参数，目前有着积极的讨论。技术上可以嵌入模型输出中的数字水印解决方案也似乎已经存在。然而，我们目前并不知道任何真正嵌入在模型中的技术许可证执行。我们的假设是，鉴于当前技术水平，这样的执行实际上只能在运行环境中真正实施。4.3.4 对策除了标准的工程和访问控制措施外，我们承认已经进行了大量工作，通过公开可用的软件库（例如ART、CleverHans）来测试模型对于对抗性攻击的抵抗力。4.4.1 查询拦截或修改尽管不在模型所有者或云运营商的完全控制下，由客户发起的查询以及向客户返回的结果可能包含敏感数据。这可能使得不仅可以拦截即时的业务数据，甚至可以重构用于训练的实际数据的部分内容。在拥有数据记录和对模型的黑盒访问权限的情况下，已经证明这可以用来确定某条记录是否在模型的训练数据集中。4.4.2 对策除了通过网络或应用层加密保护查询内容外，保护免受成员推断攻击似乎是数据保护和效用之间的经典权衡。事实上，当前的机器学习框架已经提供了支持执行此类推断攻击的功能，作为测试模型健壮性的一部分。研究人员目前正在追求的一个途径是采用差分隐私来对抗推断攻击。我们已经确定了机器学习生命周期的各个阶段、相关资产、利益相关者以及可能的攻击和一些可能的（尽管有选择的）对策。我们认为其中一些对策需要相对简单的工程干预，而其他一些对策仍在学术讨论之中。一个关键观察是，据我们所知，似乎没有主要的技术解决方案来支持机器学习过程中产生的模型的许可。更具体地说，虽然利用支持环境的访问控制特性来实现许可似乎是可行的，但开放的研究问题是这种许可能否成为受过训练的模型的固有特征。我们明确地没有讨论如何增加机器学习的可信度，尽管我们提出的安全机器学习生命周期可以被视为一项基本前提。我们提出一套简单的工具来支持对机器学习项目进行初始安全分析。我们之前的讨论强调，在机器学习生命周期的核心，有四个主要资产，即训练数据、训练配置、训练得到的模型以及对模型的最终查询和生成的结果。通常的保密性、完整性和可用性三位一体（CIA）在这些资产方面仍然成立。然而，威胁是不同的。窃取训练或配置数据，甚至是训练得到的模型，在某种程度上对应于我们从传统信息安全中所了解的情况。然而，注入数据（污染）以影响训练得到的模型的完整性，甚至导致这样的被污染模型不能正确分类数据的想法，可能不会立即显现。同样的情况也适用于攻击者试图推断与涉及资产相关的知识。图5-1可用于支持此类讨论，并允许我们提出诸如以下问题：我们承认我们提出的这个非常简单的矩阵非常资产为中心，并且另一种方法可能是仅关注数据流。我们还假设这些攻击中的任何一个都可以由对抗性攻击者模型执行。为了提供简单的助记支持，我们使用SPIE（Stealing，Poisoning，Inference，Evasion）这个首字母缩写来指示ML生命周期的哪个阶段可能主要（虽然不是唯一）受到某种类型的攻击。根据我们对（选定的）攻击和对策的讨论，我们现在提供一个清单，其中包含一些示例问题，可以用于支持对保护机器学习项目进行初步讨论的过程，并且在任何组织中都可以添加更多的问题。标记为“标准”的问题应该在任何软件项目中都要问到，而“高级”问题则需要对机器学习流程有深入的技术了解。在 IIC 创新期刊中表达的观点属于作者个人观点，不一定代表他们各自雇主的观点，也不一定代表工业物联网联盟（Industry IoT Consortium®）的观点。© 2022 工业物联网联盟（Industry IoT Consortium®）的标志是 Object Management Group® 的注册商标。本出版物中提及的其他标志、产品和公司名称归其各自公司所有。版权声明： 本翻译文章为原文《Securing the ML Lifecycle》（版权所有 © 2020，工业互联网联盟。所有复制、分发和使用行为受限于工业互联网联盟信息使用的有限许可、许可证明、免责声明和其他条款，详见http://www.iiconsortium.org/legal/index.htm#use_info。如果您不接受这些条款，请不要使用本文档。）。作者和贡献者对原文内容享有版权。请阅读原文以了解详细信息和权限限制。翻译权归本翻译者所有，非商业用途，仅用于学术研究和交流目的。未经授权，不得用于商业目的或其他侵权行为。本翻译保留所有权利。如有引用或使用，请注明原文出处和作者。本翻译文章中的内容仅供参考，可能存在错误或不准确之处，请读者自行核实原文内容。