简介
2023年11月27日,由英国国家网络安全中心(NCSC)、美国网络安全与基础设施安全局(CISA)联合美国国家安全局、美国联邦调查局以及澳大利亚、加拿大、新西兰、德国、法国、日本等10余个国家的网络和/或信息安全部门发布了“安全的AI系统开发指南”(Guidelines for secure AI system development )。该指南旨在为使用人工智能(AI)的任何系统的提供者提供指导原则,帮助提供者构建安全的AI系统。本文主要是对其翻译,供参考。
关于此文档
本文件由英国国家网络安全中心(NCSC)、美国网络安全和基础设施安全局(CISA) 以及以下国际合作伙伴发布:
- 国家安全局(国家安全局)
- 美国联邦调查局(FBI)
- 澳大利亚信号理事会的澳大利亚网络安全中心(ACSC)
- 加拿大网络安全中心(CCCS)
- 新西兰国家网络安全中心(NCSC-NZ)
- 智利政府CSIRT
- 捷克共和国国家网络和信息安全局(NUKIB)
- 爱沙尼亚信息系统管理局(RIA)
- 爱沙尼亚国家网络安全中心(NCSC-EE)
- 法国网络安全局(ANSSI)
- 德国联邦信息安全办公室(BSI)
- 以色列国家网络理事会(INCD)
- 意大利国家网络安全局(ACN)
- 日本国家网络安全事件准备和战略中心(NISC)
- 日本科学、技术和创新政策秘书处, 内阁办公室
- 尼日利亚国家信息技术发展局(NITDA)
- 挪威国家网络安全中心(NCSC-NO)
- 波兰数字事务部
- 波兰的NASK国家研究所(NASK)
- 韩国国家情报局(NIS)
- 新加坡网络安全局(CSA)
致谢
以下组织为这些准则的制定作出了贡献:
- Alan Turing Institute
- Amazon
- Anthropic
- Databricks
- Georgetown University’s Center for Security and Emerging Technology
- Google DeepMind
- Hugging Face
- IBM
- Imbue
- Inflection
- Microsoft
- OpenAI
- Palantir
- RAND
- Scale AI
- Software Engineering Institute at Carnegie Mellon University
- Stanford Center for AI Safety
- Stanford Program on Geopolitics, Technology and Governance
免责声明
本文中的信息由NCSC和创作组织“按现状 ”提供,除法律要求外,他们不对使用本文件所造成的任何类型的任何损失、 伤害或损害负责。本文件中的信息并不构成或暗示由NCSC和创作机构对任何第三方组织、产品或服务的认可或推荐。对网站和第三方资料的链接和参考仅供参考,并不代表对此类资源对其他资源的认可或推荐。
摘要
该文档为任何使用人工智能(AI)系统的提供者提供了指导方针,无论这些系统是从零开始创建的,还是基于其他提供者的工具和服务构建的。实施这些指导方针将帮助提供者建立AI系统,在需要时可用,并且不向未经授权的各方泄露敏感的数据。
本文档主要面向使用由某组织主导的模型或使用外部应用程序编程接口(api)的AI系统提供者。我们敦促所有利益相关者(包括数据科学家、开发人员、管理者、决策者和风险所有者)阅读这些指导方针, 以帮助他们对其AI系统的设计、开发、部署和运营做出明智的决定。
关于指南
AI系统有潜力给社会带来诸多益处。然而,要充分实现人工智能的机会,就必须以一种安全和负责任的方式来开发、部署和运营。
AI系统受到新的安全漏洞的影响,需要与标准的网络安全威胁一起考虑。当开发速度很高时——就像人工智能一样 ——安全往往是次要考虑因素。安全性必须是一个核心需求,不仅是在开发阶段,而且是在系统的整个生命周期中。
因此,这份指南在AI系统开发生命周期中被分为四个关键领域:安全设计、安全开发、安全部署和安全运营和维护。对于每个部分,我们建议考虑和减轻措施,以帮助降低组织AI系统开发过程的总体风险。
1.安全设计
本节包含适用于AI系统开发生命周期的设计阶段的指南,包括理解风险和威胁建模, 以及在系统和模型设计中需要考虑的特定主题和权衡。
2.安全开发
本节包含适用于AI系统开发生命周期的开发阶段的指南,包括供应链安全、文档编制、资产和技术债务管理。
3.安全部署
本节包含适用于AI系统开发生命周期的部署阶段的指南,包括保护基础设施和模型免受损害、威胁或丢失,开发事件管理流程,以及负责任的发布。
4.安全运营和维护
本节包含适用于AI系统开发生命周期的安全运营和维护阶段的指南。它提供了关于系统部署后指导建议,包括日志记录和监控、更新管理和信息共享。
该指南遵循“默认安全”的方法,并与NCSC的安全开发和部署指南、NIST的安全软件开发框架以及由CISA、NCSC和国安全设计原则对齐。它们重视:
- 对客户的安全结果承担责任
- 拥抱彻底的透明度和问责制
- 构建组织结构和领导力,使安全设计成为业务的首要任务
引言
AI系统有潜力为社会带来诸多益处。然而,要想充分实现人工智能的机会,就必须以安全和负责任的方式来开发、部署和运营。网络安全是确保AI系统的安全、弹性、隐私、公平、有效性和可靠性的必要前提。
然而,AI系统面临着新型安全漏洞,这些漏洞需要与标准网络安全威胁一起考虑。当开发速度很快时——就像AI领域所示—安全往往是次要考虑因素。安全性必须是核心需求,不仅是在开发阶段,而且在系统的整个生命周期中。
这些指南应与已建立的网络安全、风险管理和事件响应最佳实践综合考虑。特别是,我们敦促提供者遵循由美国网络安全和基础设施安全局(CISA)、英国国家网络安全中心(NCSC)和我们所有国际合作伙伴制定的“安全设计 ”原则。这些原则主要考虑:
- 对客户的安全结果承担责任
- 拥抱彻底的透明度和问责制
- 构建组织结构和领导力,使安全设计成为业务的首要任务
遵循“安全设计 ”原则需要在系统整个生命周期中投入大量资源。这意味着开发者必须投资于优先考虑功能、机制和工具的实现, 以在系统设计的每一层和开发生命周期的所有阶段中保护客户。这样做可以防止日后成本昂贵的重新设计, 同时能在短期内保护客户及其数据。
为什么AI安全不同?
在本文档中,我们使用“AI ”来专门指基于机器学习(ML)应用.所有类型的ML都在讨论范围内。我们将ML应用定义为:
- 包含软件组件(模型),使计算机能够识别数据中的模式,并赋予上下文场景,而无需人类显示编程规则
- 基于统计推理生成预测、建议或决策
除了现有的网络安全威胁外,AI系统还面临新型漏洞的影响。术语“对抗性机器学习 ”(AML),用来描述在ML组件(包括硬件、软件、工作流程和供应链)中的基本漏洞的利用。AML使攻击者能够导致ML系统产生意外行为,其中可能包括:
- 影响模型的分类或回归性能
- 允许用户执行未经授权的操作
- 提取敏感的模型信息
实现这些效果的方法有很多,例如在大语言模型(LLM)领域中的提示注入攻击,或故意破坏训练数据或用户反馈(称为“数据投毒 ”)。
适用人群
本文档主要面向AI系统的提供者,无论是基于某个组织主导的模型,还是使用外部应用程序编程接口(api)。 然而,我们敦促所有的利益相关者(包括数据科学家、开发人员、管理者、决策者和风险所有者)阅读这份指南, 以帮助他们对机器学习AI系统的设计、部署和运营做出明智的决定。
也就是说,并非所有的指南都直接适用于所有组织。针对AI系统的攻击手段和复杂程度将因针对的对手而已,因此应结合组织的用例和威胁概况考虑。
谁负责开发安全的AI?
在现代AI供应链中,通常会有很多参与者。一个简单的方法假设有两个实体:
- 一个是“提供者”,负责数据管理、算法开发、设计、部署和维护
- 一个是“用户”,提供输入和接收输出
虽然在许多应用中使用这种提供者-用户方法,但它正变得越来越少见,因为提供者可能会将第三方提供的软件、数据、 模型和/或远程服务整合到自己的系统中。这些复杂的供应链使得终端用户更难理解安全AI的责任所在。
用户(无论是“最终用户 ”,还是将外部AI整合的提供者)通常缺乏足够的可见性和/或专业知识来充分理解 、评估或解决与他们使用的系统相关的风险。因此,根据“安全设计 ”的原则,AI组件的提供者应该对供应链下游用户的安全结果负责。
提供者应尽可能在其模型、管道和/或系统中实现安全控制和缓解措施,并在使用设置时,实现默认的安全选项。如果风险无法缓解,提供者应负责:
- 通知供应链下游的用户:他们和(若适用)他们自己的用户在面临的风险
- 建议他们如何安全使用该组件
如果系统妥协可能导致有形或广泛的物理或声誉损害、业务运营的重大损失、敏感或机密信息的泄露和/或法律 影响,AI网络安全风险应被视为关键。
安全的AI系统开发指南
这些指南在AI系统开发生命周期中被分为四个关键领域:安全设计、安全开发、安全部署和安全运营和维护。 对于每个领域,我们建议考虑和减轻措施,这将有助于减少组织AI系统开发过程中的总体风险。
本文档中列出的指导方针与软件开发的生命周期实践保持一致
1.安全设计
本节包含适用于AI系统开发生命周期的设计阶段的指南。它包括对风险和威胁建模的理解, 以及在系统和模型设计中需要考虑的特定主题和权衡。
a.【提高员工对威胁和风险的认识】
系统所有者和高级领导应了解保护AI安全的威胁及其缓解措施。您的数据科学家和开发人员应保持对相关安全威胁和故障模式的认识,并帮助风险所有者做出明智的决策。您应为用户提供关于AI系统面临的独特安全风险的指导(例如,作为标准信息安全培训的一部分),并对开发人员进行安全编码技术和AI安全实践的培训。
b.【对系统的威胁进行建模】
作为风险管理过程的一部分,您应通过全面的过程来评估系统的威胁,其中包括了解如果AI组件受到损害或表现出意外行为时,对系统、用户、组织和更广泛的社会的潜在影响 .这一过程包括评估AI特定威胁的影响并记录决策过程。
您认识到,系统中使用的数据灵敏度和类型可能会影响其作为攻击者目标的价值。您的评估应该考虑到,随着AI系统日益被视为高价值目标而增长,以及AI本身使新的自动化攻击向量成为可能。
c.【设计您的系统的安全性、功能和性能】
您确信手头的任务最适合使用AI解决。确定这一点后,您将评估AI特定设计选择的适当性。您应考虑您的威胁模型和相关的安全缓解措施,以及功能、用户体验、部署环境、性能、保证、监督、道德和法律要求等其他考虑因素。例如:
- 当选择是否在内部开发还是使用外部组件时,您应考虑供应链安全,例如:您选择训练新模型,使用现有模型(有或没有微调)或通过外部API访问模型是否符合您的需求。
- 您与外部模型供应商合作,应包括对该供应商自身安全态势的尽职调查评估
- 如果使用外部库,您应完成尽职调查评估(例如,确保库具有防止系统加载不受信任的模型而不会立即暴露于任意代码执行的控制)
- 在导入第三方模型或序列化的权重,您应实施扫描和隔离/沙箱处理,这些应被视为不可信的第三方代码,并可能启用远程代码执行。
- 如果使用外部API,您应使用适当的控制,以防止数据被发送到组织控制之外,例如要求用户登录并在发送潜在的敏感信息前确认。
- 您需要对数据和输入进行适当的检查和消毒;这包括将用户反馈或持续学习数据纳入您的模型时,认识到训练数据定义了系统行为。
您将AI系统开发集成到现有的安全开发和运营最佳实践中;AI系统的所有元素都在适当的环境中使用编码实践和语言编写,以减少或消除已知的漏洞类别。
如果AI组件需要触发操作,例如修改文件或将输出定向到外部系统中,您应使用适当的限制来限制可能的操作(包括必要时外部AI和非AI保护措施)。
围绕用户互动的决策应由AI特定风险所指导,例如:
- 您的系统提供给用户可用的输出,而不向潜在攻击者泄露不必要的细节
- 如果有必要,您的系统在模型输出周围提供有效的防护
- 如果向外部客户或合作者提供API,您应用适当的控制措施,以减轻通过API对AI系统的攻击
- 在默认情况下,您可以将最安全的设置集成到系统中
- 您应用最小权限原则来限制对系统功能的访问。
- 您应向用户解释风险较高的功能,并要求用户自己选择是否使用它们;您传达禁止使用的案例,并在可能的情况下,告知用户替代解决方案
d.【在选择AI模型时,要考虑安全优势和权衡因素】
您选择AI模型时需要平衡一系列要求。这包括模型架构、配置、训练数据、训练算法和超参数的选择。 您的决策是由您的威胁模型决定的,并随着AI安全研究的进展和对威胁理解的演变而定期重新评估。
在选择AI模型时,您的考虑可能包括但不限于:
- 您使用的模型的复杂性,即所选择的架构和参数数量;模型选择的架构和参数数量将影响它需要多少训练数据,以及在使用时对输入数据变化的鲁棒性。
- 模型适用于您的用例和/或适应您特定需求的可行性(例如,通过微调)
- 对模型的输出能够对齐、解释和解释(例如,用于调试、审计或法规遵从性);使用更简单、更透明的模型而不是难以解释的大型和复杂模型可能更有益处
- 训练数据集的特征,包括大小、完整性、质量、敏感性、时效性、相关性和多样性
- 使用模型加固(如对抗性训练)、正则化和/或隐私增强技术的价值
- 组件(包括模型或基础模型,培训数据和相关工具)的来源和供应链
有关这些因素中有多少会影响安全结果的更多信息,请参阅NCSC的“机器学习的安全原则 ”,特别是安全设计(模型架构)。
2.安全开发
本节包含适用于AI系统开发生命周期的开发阶段的指南,包括供应链安全、文档编制、资产和技术债务管理。
a.【确保供应链安全】
您在系统整个生命周期中评估和监控AI供应链的安全,并要求供应商遵守您自己的组织对其他软件应用的同等标准。如果供应商不能遵守您组织的标准,您应按照您现有的风险管理政策采取行动。
对于非内部开发的组件,您可以从经过验证的商业、开源和其他第三方开发者处获取并维护安全且记录完善的硬件和软件组件(例如,模型、数据、软件库、模块、中间件、框架和外部api),以确保系统中的安全性。
如果不满足安全标准,您准备好将关键任务系统切换到替代解决方案。您使用诸如NCSC的供应链指导和软件供应链级别(SLSA)等框架来跟踪供应链和软件开发生命周期的认证。
b.【识别、跟踪和保护您的资产】
您了解AI相关资产对您组织的价值,包括模型、数据(包括用户反馈)、提示、软件、文档、 日志和评估(包
括关于潜在不安全功能和失败模式的信息),认识到它们代表的重大投资,以及攻击者是否能利用它们。您将日志视为敏感数据,并实施控制,以保护其机密性、完整性和可用性。
您知道您的资产在哪里,并已接受与之相关的任何风险。您有流程和工具来跟踪、身份验证、版本控制和保护资产,并且在发生破坏时可以恢复到已知的良好状态。
您已建立适当的流程和控制措施来管理AI系统可以访问的数据,并根据其敏感性(以及生成它的输入的敏感性 ) 来管理其生成的内容。
c.【记录您的数据、模型和提示】
您可以记录任何模型、数据集和元或系统提示的创建、操作和生命周期管理。您的文档包括与安全相关的信息,如培 训数据的来源(包括微调数据和人或其他反馈)、预期范围和限制、防护、加密散列或签名、保留时间、建议的审查频率和潜在的失败模式。帮助实现这一点的有用结构包括模型卡、数据卡和软件材料清单(SBOMs)。全面文件的编制支持透明度和问责制.
d.【管理你的技术债务】
与任何软件系统一样,您可以在AI系统的整个生命周期中识别、跟踪和管理您的“技术债务 ”(技术债务是指为了实现短期结果而做出低于最佳实践的工程决策,以牺牲长期利益为代价) 。就像金融债务一样,技术债务本身并不是坏的,但应该开发的最初阶段开始管理。您认识到,与标准软件相比,AI场景下做到这一点可能更具有挑战性,并且由于快速的开发周期和缺乏成熟的协议和接口,您的技术债务水平可能会很高。您确保您的生命周期计划(包括AI系统的退役过程)评估、认可并减轻对未来类似系统的风险。
3.安全部署
本节包含适用于AI系统开发生命周期的部署阶段的指南,包括保护基础设施和模型免受损害、威胁或损失,开发事件管理流程,以及负责任的发布。
a.【确保基础设施安全】
您应用良好的基础设施安全原则到系统生命周期的每个部分所使用的基础设施。无论是在研发还是部署阶段,您应对api、模型和数据以及其训练和处理实施适当的访问控制。这包括对保存敏感代码或数据的环境进行适当隔离。这也将有助于减轻旨在窃取模型或损害其性能的标准网络安全攻击。
b.【持续保护您的模型】
攻击者可能通过直接访问(通过获取模型权重)或间接 访问(通过查询应用程序或服务中的模型)重建模型的功能或其训练数据 。攻击者还可能在训练期间或训练之后篡改模型、数据或提示,使输出不可信。
您可以通过以下方法保护模型和数据免受直接访问和间接访问:
- 实施标准网络安全最佳实践
- 在查询界面或接口上实施控制措施,以检测和阻止访问、修改和泄露机密信息的尝试
为确保使用系统能够验证模型,您在模型训练完成后立即计算并共享模型文件(例如,模型权重)和数据集(包括检查点 ) 的加密散列和/或签名。与密码学一样, 良好的密钥管理是至关重要.
您的保密风险缓解的方法将在很大程度上取决于用例和威胁模型。例如。涉及非常敏感数据的应用,可能需要难以应用或成本昂贵的理论保障。如果适当,可以使用隐私增强技术(如差分隐私或同态加密)来探索或保障与消费者、用户和攻击者访问模型和输出相关的风险水平。
c.【制定AI应急事件管理程序】
安全事件影响AI系统不可避免性,这应反映在您的事件响应、升级和补救计划中。您的计划反映了不同的场景,并随着系统和更广泛的研究进展而定期重新评估。您将关键的公司数字资源存储在离线备份中。响应人员接受了评估和处理AI相关事件的培训。您向客户和用户免费提供高质量的审计日志和其他安全功能或信息,以支持他们的事件响应流程。
d.【负责任地发布AI】
你只有在对模型、应用程序或系统进行了适当有效的安全评估,如基准测试和红队测试(以及指南外的其他测试,如安全性或公平性)后,才发布它,并对用户清楚说明已知的限制或潜在的失败模式。在本文档末尾的进一步阅读部分提供了关于开源安全测试库的详细信息。
e.【让用户轻松做正确的事】
您认识到,每个新的设置或配置选项都应与它带来的业务利益以及引入的任何安全风险进行评估。理想情况下,最安全的设置将作为唯一的选项集成到系统中。当需要进行配置时,默认选项应广泛安全地抵御常见威胁(即默认情况下安全)。您应用控制措施以防止系统被恶意利用。
您可以为用户提供有关模型或系统的适当使用的指导,其中包括强调限制和潜在的失败模式。您可以向用户明确说明他们负责哪些安全方面,并透明告知他们,他们的数据可能被使用、访问或存储(例如,如果它用于模型重新培训,或由员工或合作伙伴审查)。
4.安全运维
本节包含适用于AI系统开发生命周期的安全运营和维护阶段的指南。它提供了关于系统部署后特别相关的行动指南,包括日志记录和监控、更新管理和信息共享。
a.【监控您的系统的行为】
您可以测量模型和系统的输出和性能, 以便您可以观察到影响安全的突然和渐进的行为变化。您可以解释并识别潜 在的入侵和损害, 以及自然的数据漂移。
b.【监控系统的输入】
根据隐私和数据保护要求,您可以监视和记录系统的输入(如推理请求、查询或提示),以满足合规义务、审计、调查和补救。这可能包括明确检测分布外和/或对抗性的输入,包括那些旨在利用数据准备步骤(如为图像进行裁剪和调整大小)的输入。
c.【遵循一种安全的设计方法来进行更新】
您在每个产品中默认包含自动更新,并使用安全的、模块化的更新过程来分发它们。您的更新过程(包括测试和评估机 制)反映了这样一个事实,即对数据、模型或提示的更改可能导致系统行为的更改(例如,您将主要更新当作新版本) 。您支持用户评估和响应模型更改(例如,通过提供预览访问和版本化的api)。
d.【收集和分享经验教训】
您可以参与信息共享社区,在全球生态系统中的产业界、学术界和政府合作分享最佳实践。您可以在组织内部和外部提供有关系统安全的反馈,包括同意安全研究人员进行研究和报告漏洞。当需要时,您可以将问题升级到更广泛的社区,例如发布响应漏洞披露的公告,包括详细和完整的公共漏洞枚举。您迅速、适当地采取行动来缓解和纠正问题。
原文地址:https://www.ncsc.gov.uk/collection/guidelines-secure-ai-system-development