一. 介绍
11月26日,由英国国家网络安全中心(NCSC)、美国网络安全与基础设施安全局(CISA)联合美国国家安全局、美国联邦调查局以及澳大利亚、加拿大、新西兰、德国、法国、日本等10余个国家的网络和/或信息安全部门发布了“安全的人工智能系统开发指南”(Guidelines for secure AI system development [1])。亚马逊、微软、IBM、google等10余家机构参与了指南的制定。该指南旨在为使用人工智能(AI)的任何系统的提供商提供指导原则,帮助提供商构建能够按预期工作、在需要时可用、在不泄露敏感数据的前提下工作的人工智能系统。本文对其主要内容进行解读,以供普通读者阅读了解。人工智能专家或人工智能系统开发人员可根据需要,参阅原文[1]以获取更详细、全面的信息。此外,指南的末尾注记中列出的资料可作为延伸阅读材料,感兴趣的读者可以自行参阅。
二. 必要性
人工智能(AI)系统具有为社会带来诸多好处的潜力,而要充分发挥出这些潜力,必须以安全的方式开发、部署和运行人工智能系统。网络安全是人工智能系统的功能安全(safety)、韧性、隐私性、公平性、有效性和可靠性的必要前提。然而,除了常规的网络安全威胁以外,人工智能系统还容易受到一些其特有的脆弱性的影响。例如,攻击者利用对抗性机器学习(注:指南中的人工智能特指机器学习),可以在机器学习系统中导致异常行为,如影响模型的分类或回归性能、促使执行未经授权的操作、允许攻击者提取敏感的模型信息等。攻击者可以采取的方法很多,包括提示注入攻击、数据投毒攻击等。因此,必须进行安全设计、安全开发、安全部署、安全运行和维护,才能实现人工智能系统全生命周期的安全应用。
该指南遵循“默认安全”(security by default)方法,遵循“设计安全”(security by design)的原则。指南将如下目标定为优先事项:
- 为客户的安全负责;
- 秉持严格的透明性和问责制;
- 建立组织结构和领导力,以使设计安全成为业务首选。
指南按设计、开发、部署、运维等环节提供建议。事实上,除一些特定于人工智能的建议外,很多的建议对于其他的信息系统也是具有参考价值的。
三. 安全设计
安全设计指南包含适用于人工智能系统生命周期设计阶段的指南。包括对风险的理解,对威胁建模,以及在系统和模型设计中要考虑的具体主题和权衡方案。
3.1
提高对威胁和风险的认知
系统所有者和领导层应了解AI的威胁及其应对措施,而数据科学家和开发人员需对相关安全威胁和故障模式有足够的了解,并帮助风险承担者做出明智的决策。应就人工智能系统面临的独特安全风险为用户提供指导。
3.2
对系统的威胁建模
作为风险管理流程的一部分,应采用整体流程来评估系统面临的威胁,包括了解假如某个AI组件遭到破坏或表现出异常,会对系统、用户、组织和更广泛的社会造成哪些潜在危害。
3.3
设计系统要同时兼顾功能、性能和安全
首先确认任务确实适合用人工智能来解决,然后评估特定于人工智能的设计,并同时考虑威胁模型和相关的对策。
无论是内部开发还是选用外来组件,都应关注供应链安全。
3.4
选择AI模型时,应兼顾安全收益和相关权衡
人工智能模型的选择将涉及一系列需求的平衡。这包括模型结构、配置、训练数据、训练算法和超级参数的选择。决策必须基于对威胁模型的理解,并且随着人工智能安全研究的进展和对威胁的理解的发展而定期重新评估。
四. 安全开发
安全开发指南包含适用于人工智能系统生命周期开发阶段的指南,包括供应链安全、文档与资产管理和技术债务管理等。
4.1
保护供应链
在系统的生命周期中评估和监控人工智能供应链的安全性,并要求供应商遵守你自己的组织内适用于其他软件的相同安全标准。
如果系统不是自产的,需要从外部获得,应从经验证可靠的商业机构、开源渠道和第三方开发人员那里获得,并维护安全可靠、记录完善的硬件和软件组件,以确保系统的安全性。
4.2
识别、跟踪和保护资产
应理解人工智能相关资产对组织的价值,包括模型、数据(包括用户反馈)、提示、软件、文档、日志和评估等。要清楚这些资产所在位置,并且清楚已经评估和接受了哪些风险。要有适当的流程和控制措施来管理人工智能系统可以访问的数据。
4.3
记录数据、模型和提示
记录任何模型、数据集和元提示或系统提示的创建、操作和生命周期管理。制作全面的文件有助于提升透明度和责任追究。
4.4
管理技术债务
与任何软件系统一样,应在人工智能系统的整个生命周期中识别、跟踪和管理“技术债务”(技术债务是指为实现短期目标,以牺牲长期利益为代价,做出非最佳实践的工程决策,即把问题留待今后处理)。在人工智能环境中这样做可能比标准软件更具挑战性,而且由于快速的开发周期和缺乏完善的协议和接口,人工智能系统的技术债务可能很高。
五. 安全部署
安全部署指南包含适用于AI系统生命周期部署阶段的指南,包括保护基础设施和模型免受攻击、威胁或损失,制定开发事件管理流程以及负责任的发布系统和服务。
5.1
保护基础设施
对于系统生命周期的每个阶段使用的基础设施,都应遵循良好的基础设施安全原则。在研发和部署过程中,对API、模型和数据,以及它们的培训和处理流程应采用适当的访问控制措施。这包括适当隔离保存敏感代码或数据的环境。这些措施也有助于减轻旨在窃取模型或损害其性能的常规网络安全攻击的危害。
5.2
持续保护模型
攻击者可能通过直接访问模型(通过获取模型权重)或间接访问模型(通过应用程序或服务查询模型)的方式来重建模型的功能或训练数据。攻击者还可能在训练期间或之后篡改模型、数据或提示,使输出不可信。为保护模型和数据免受直接的和间接的访问,可以实施标准网络安全最佳实践以及在查询界面上进行控制,以检测和防止访问、修改、泄露机密信息。
5.3
制定安全事件管理流程
没有绝对的安全,所以安全事件是不可避免的。应制定事件响应、补救计划和事后提升计划。这些计划还应随着系统和更广泛的研究的发展定期评估。应将重要的数字资产进行离线备份,定期进行应急处理培训演练。
5.4
负责任地发布AI
在发布模型、应用程序或系统前,应进行适当且有效的安全评估。并应向用户清楚地说明已知的缺陷或潜在的故障模式。
5.5
确保用户更容易做正确的事情
对于每个新的设置或配置选项都要结合其带来的业务收益以及引入的任何安全风险进行评估。理想情况下,应将最安全的设置作为唯一选项。如果确实有必要设置配置选项时,应将默认选项设置为对常见威胁具有广泛的安全性,也即在默认情况下是安全的。
六. 安全运维
安全运维指南包含适用于人工智能系统生命周期中运行和维护阶段的指南。它提供了部署系统后的操作指南,包括日志记录与监控、更新管理和信息共享等。
6.1
监控系统的行为
应监测模型和系统的输出和性能,以便可以观察影响安全的行为的突然变化和逐渐变化。这样可以识别潜在的入侵和危害,并找出其原因,或者识别出自然的数据漂移。
6.2
监控系统输入
根据隐私和数据保护要求,应监控并记录系统输入(如推理请求、查询或提示等),以便在发生泄露或滥用时能够履行合规义务、审计、调查以及补救。例如,通过输入可以检测出分布泛化(out-of-distribution)和对抗性输入(如图像的裁剪和大小调整)等情况。
6.3
遵循设计安全的方法进行更新
通常情况下,每个产品都应包含自动更新,并使用安全的模块化更新程序来分发。更新过程(包括测试和评估机制)应反映出数据、模型或提示的改变所导致的系统行为变化的情况。应支持用户对模型变更的评估和响应(例如,提供预览访问和不同版本的API)。
6.4
收集和分享经验教训
应参与信息共享社区,在全球工业界、学术界和政府生态系统中开展合作,适当分享最佳实践。保持开放的沟通渠道,以获取组织内外关于系统安全的反馈,包括允许安全研究人员研究和报告漏洞。
参考文献
[1] https://www.cisa.gov/news-events/news/dhs-cisa-and-uk-ncsc-release-joint-guidelines-secure-ai-system-development
内容编辑:创新研究院 李德全
责任编辑:创新研究院 董炳佑
本公众号原创文章仅代表作者观点,不代表绿盟科技立场。所有原创内容版权均属绿盟科技研究通讯。未经授权,严禁任何媒体以及微信公众号复制、转载、摘编或以其他方式使用,转载须注明来自绿盟科技研究通讯并附上本文链接。