内容 14参考文献 17结论16确保 AI/ML 系统安全:使用 MLSecOps 6人工智能/机器学习开发生命周期中的安全挑战 4作者 18引言 3建议 引言 现代电信系统满足了数十亿人的需求,并提高了他们的生活质量。它们越来越多地利用人工智能/机器学习(AI/ML)来管理网络复杂性、分析大量数据、增强安全和提高效率及性能。AI/ML系统必须在设计、默认设置和部署时具有安全性,通过将安全实践整合到生命周期的所有阶段来保护敏感数据。为了实现这些目标,MLSecOps扩展了MLOps,用于构建、部署、运营和观察基于机器学习的系统。 人工智能/机器学习在电信产品中的应用正在不断增长。它提高了效率并增强了功能,同时引入了新的攻击面。对于爱立信以及我们的客户来说,认识到电信领域人工智能/机器学习中的安全和隐私挑战,并采取措施在机器学习模型早期阶段实施自动化安全措施至关重要。 在本白皮书中,我们讨论了安全威胁和风险,随后通过明确的控制措施进行缓解,最后提出了保护MLOps的建议。 人工智能/机器学习开发生命周期中的安全挑战 MLOps是指自动的、高效的和可靠的机器学习模型和管道的开发、部署和执行,但其组件和流程可能暴露出多个安全问题。这些问题包括数据中毒、开源机器学习库中的漏洞以及针对训练有素的机器学习模型的攻击。虽然一些安全问题在每个开发管道中都普遍存在,但一些问题非常特定于人工智能/机器学习。让我们更深入地了解一下对MLSecOps的需求。 • 人工智能/机器学习供应链安全:供应链包括外部数据源和机器学习模型、软件和硬件组件、存储和管理系统以及通信网络。这些组件可以是开源的或商业的。它们中已知的漏洞是攻击者的易攻击目标,可能暴露敏感数据或操作。 • 模型训练和推理安全:人工智能/机器学习训练涉及大量数据及复杂的数据处理过程。缺乏适当的访问控制、保密性和完整性机制,可能导致未经授权的数据访问、泄露和篡改。 此外,具有数据访问权限的攻击者可能会毒化训练数据以构建针对性的机器学习模型响应。访问中间参数或推理环境能够实现模型毒化和对抗攻击。这可能导致逃避某些响应、降低准确性或提取有价值的数据,例如机器学习模型参数或训练数据集。 数据与机器学习模型来源:数据与机器学习模型来源指的是跟踪数据与机器学习模型在流程中的处理过程。记录应保持安全、完整性受保护并可追溯。数据、机器学习模型、流程参数的访问和版本控制、日志记录和监控都是至关重要的控制措施。 • 监管要求:世界各国政府正在关注这些事实,并为人工智能系统制定标准和法规,尤其是针对关键基础设施。欧盟的人工智能法案,遵循欧盟的可靠人工智能伦理指南,是此类努力之一。它定义了一个有用的框架,将可靠性分解为特定领域,包括安全和隐私保护[1]. 确保在MLOps流程中实现有效的安全和隐私保护具有挑战性。在整个AI/ML生命周期中,从设计到测试、部署以及持续监控,都需要自动化安全的最佳实践。解决方案是机器学习安全运营或MLSecOps。 确保AI/ML系统通过MLSecOps(多级安全运维)进行安全防护。 机器学习模型的日益普及强调了开发、部署和管理它们的需要,从而导致了MLOps概念的日益流行。受到DevOps的启发,MLOps旨在协调人工智能/机器学习开发和运维的实践。通过在整个生命周期中强调自动化和监控,MLOps涵盖了开发、集成、测试、发布、部署和基础设施管理。[2]. 确保安全的需求进一步推动了MLOps向MLSecOps的发展。MLSecOps强调在机器学习开发生命周期中整合安全实践。它将安全视为机器学习开发者、安全实践者和运营团队共同承担的责任。采用这种方法论能够早期识别和缓解安全风险,促进开发出安全可靠的机器学习模型。 理解MLOps的架构是确保安全性的必要条件。虽然存在各种MLOps框架,本文使用一个通用的MLOps架构来表示流程和安全程序。如图1所示,该架构融合了一个自动化的持续集成/持续交付(CI/CD)系统。它支持高效探索ML模型制作和管道准备中的新技术,并简化了构建、测试和部署新ML组件的流程。 图1展示了MLSecOps框架的整合视图,突出了安全控制和说明了工件通过管道的流动。工件——包括数据集、ML代码、模型和部署包——必须得到保护。 安全的发展环境对于MLSecOps至关重要。有必要评估潜在的安全风险,并根据信息安全管理体系(ISMS)实施相应的缓解措施,涉及工具和开发环境[3]. 特别是,应考虑以下与开发工具相关的风险: • 确保使用可信和经过批准的工具进行开发• 补丁管理 - 工具应频繁更新• 根据角色和责任限制对工具的访问 在某些情况下,组织可能无法完全控制生产环境,例如当产品部署到HCP或客户的私有云中时。在这种情况下,安全和义务责任应在公司和环境提供商之间共享。当使用HCP时,应将评估HCP的安全控制措施纳入常规风险评估流程的一部分。 以下是图1中描述的具体流程的说明。 确保MLOps设计 确保MLOps设计需要将安全实践整合到机器学习生命周期中,包括规划、开发、部署和运营。 在安全的MLOps设计期间: • 确定关键MLOps原则、组件和角色。• 深入理解MLOps架构。• 定义工作流程——在整个MLOps过程中执行的任务序列。 通过建立安全基线,为AI/ML开发生命周期提供基础。基线考虑了针对AI/ML系统的威胁,并包括最低安全控制措施、最佳实践和指南。它是保护AI/ML系统和数据的第一步。 一旦基准线建立,安全风险评估(RA)有助于识别和优先考虑AI/ML风险,允许通过MLOps流程采取有效的风险缓解策略。 有用的工具和参考资料有助于风险评估,包括: • STRIDE框架,如“使用STRIDE对AI-ML系统威胁进行建模”中所示,处理漏洞并指定工具[4]. • “Microsoft AI Security Risk Assessment” 提供了全面的分析 [5]. •MITRE的ATLAS提供了有关战术、技术和案例研究的数据[6]. • OWASP ML Security Top Ten [7] 考虑一个场景,其中异常检测模型检测到异常行为并自动解决问题。在软件设计期间识别出数据中毒、模型规避和拒绝服务(DoS)等风险,能够实现必要的安全保障措施。为了保证无缝集成,这些安全组件需要与MLOps过程保持一致。这样,它们将与机器学习工件(如机器学习模型和管道)同时经历开发和测试。 安全的MLOps设计流程还需要对整个MLOps架构进行安全配置,包括特定流程和安全控制。 数据工程 数据工程以原始数据为输入,生成后续流程所需的各个数据集。应该实施针对收集和存储数据的政策与控制措施。 收集的数据可能包含敏感的个人详细信息。处理敏感数据必须具备适当的法律和合同授权。 • 在从不可信的来源获取数据之前,必须由适当的升级线进行审批。• 在将数据整合到MLOps环境中之前,必须由适当的升级线进行验证和授权。 数据中存在不想要的或恶意的信息可能会影响性能或引入恶意行为,对存储数据进行篡改也可能如此。为了避免这种情况并维护隐私,数据必须在静态状态下得到适当的保护。 以下安全措施应予以实施: /* 数据存储应根据数据敏感性采取适当的安全性控制措施。若数据敏感性要求加密封装,应当使用强加密算法。存储的数据应是完整性保护的。使用正式的访问控制流程对数据存取进行监控记录。实施版本控制和形式化的变更控制进程。定期进行恶意软件扫描,应用更新工具来识别潜在的毒化威胁。进行频繁的数据备份和复原测试。对存储寿命和安全的销毁实施数据留档政策。 数据质量决定了模型质量,因此在整个开发生命周期中应确保数据质量。同样,在开发和生产过程中必须实施数据保护措施。在开发过程中,应分析获取的训练数据中的恶意条目。在某些情况下,如异常检测,这可能具有挑战性,因为异常可能是现实世界的事件,也可能是恶意攻击的结果。因此,为了有效分析可疑数据,专家的参与至关重要。 实验 在进行实验时,数据科学家执行机器学习模型工程,选择特征和算法或开发新的算法,训练模型,并调整超参数。输入包括模型权重和数据集,输出包括机器学习代码和机器学习模型。 错误或不安全的代码可能导致可用性、完整性或机密性风险。安全专业人士应考虑以下要求: • 在安全环境中进行设计和研究• 在实施生产前,在开发的早期阶段回顾和批准模型选择• 跟踪整个模型• 记录实验及其相关元数据• 实现实验和模型训练的全程可追溯 在理想条件下训练的机器学习模型在部署到可能具有对抗性的环境中时可能会表现出脆弱性。例如,模型选择标准,如指标和测试集,应模拟不同类型的漂移和预期的对抗条件。应采取以下措施: 确保训练、验证和测试集遵循自然的时间依赖性;通过增强数据集来提高模型鲁棒性,加入可能合理遇到的常见损坏;如果对抗性示例是一个问题,考虑对抗性训练;如果训练使用分布式数据,考虑使用联邦学习来缓解隐私问题。 版本控制和完整性保护应被用于检测机器学习模型中的未授权更改,这有助于检测污染。签名和完整性保护的版本在数据损坏的情况下,允许恢复到已知良好的状态。 在转移机器学习模型时,重要的一点是保护它们免受未经授权的修改。一种标准的方法是在模型上应用加密散列函数。散列值应加密或通过备用通道传输。 训练模型是应受保护的知识产权,根据安全风险评估和模型的相对价值。训练脚本和特征工程代码可能具有更高的知识产权价值,并应得到保护。模型、训练、特征计算可以通过机密计算、加密和混淆来保护。 机器学习模型验证程序应包括全面的安全测试。定期测试可以通过简单的检查检测到受损的机器学习模型,而高级测试则使用更广泛的攻击范围来识别漏洞。此外,还应开发针对渗透测试目的的定制和基于威胁的场景。 机器学习流程开发与测试 自动化训练和推理管道用于持续训练和模型服务。该过程将实验阶段的训练集、机器学习代码和模型作为训练和推理管道的输入和输出。创建机器学习管道应遵循与任何其他软件开发过程类似的软件开发生命周期(SDLC)。 管道安全包括版本控制、完整性和保密性保护。管道保护类似于机器学习模型保护。两者都需要关注保密性、完整性、访问控制和符合既定政策和法规的全生命周期合规性。 机器学习代码和用于机器学习流程中的参数的安全性考虑应明确定义并达成共识。应在管道开发过程中实施安全措施,安全测试实践应与管道测试的应用相一致。 考虑以下管道开发的安全实践: • 软件安全成熟度模型(SAMM)由OWASP提供[8为将安全活动融入软件开发和维护提供了一个框架。 • 代码审查或同行评审,包括由软件工程师进行的审查。 • 静态应用安全测试(SAST)在不执行软件的情况下检查软件安全性通过对源代码或编译后的二进制进行分析。 动态应用程序安全测试(DAST)评估软件在运行时的安全状况。环境和用于测试无源访问的管道。 • 模糊测试提供无效输入(随机生成或特别设计),并且监视代码库中的崩溃、缓冲区溢出或其他意外结果。 • 接口(API)测试涉及多个团队在不同部分进行机器学习(ML)的工作。管道 • 滥用或误用案例测试模拟用户尝试操纵输入以产生异常情况的过程损坏的机器学习模型。 在持续训练过程中,自动化训练流程必须产生与实验阶段创建的模型行为相似的模型,前提是使用相同的输入。同样,推理流程应产生与实验阶段实现的结果相一致的结果。由实验阶段得出的参考模型应得到完整性保护并签署。 持续集成/持续交付和部署,持续培训 在持续集成/持续交付(CI/CD)和持续培训(CT)阶段,模型工件和其他相关资产通常在环境之间传输,并且在传输过程中应受到保护,避免被修改。 当机器学习模型嵌入到解决方案或产品中时,如果解决方案本身的真实性验证了模型的真实性,则可能不需要对模型进行单独的验证。然而,如果机器学习模型独立供应,例如在版本更新期间,则必须验证模型的真实性。以下确保持续集成/持续部署(CI/CD)安全性的通用方面应进行调查: