法国CNIL关于《AI系统开发的数据保护指南》又出新番了 法国CNIL于6月10日又在《AI系统开发的数据保护指南》中更新了五章,于9月1日前征求公众意见,都快追成连续剧了。
本期更新主要介绍AI系统安全开发指南,从安全目标、风险因素到开发安全措施。
已经发布的指南传送门:
上篇:介绍系列指南的结构与第一部分简介。
中篇:介绍数据处理目的、参与者的法律地位、合法性基础。
下篇:介绍DPIA、Privacy by Design和数据治理。
更新篇一:使用合法性基础,尤其是在开源AI和网络爬取中的运用。
更新篇二:大模型的告知义务,包括模型记忆、数据抓取等情形。
更新篇三:大模型的数据主体权利实现,回应了网页抓取与模型记忆时数据主体权利实现的高难度实践问题。
更新篇四:数据标注的核心问题,包括数据质量原则、数据主体权利实现、标注带来的伦理风险。
发布于2024年6月10日
人工智能系统的安全性常常被其设计者置于次要位置。然而,确保数据保护无论是在系统开发阶段还是部署阶段都是一种义务。本文详细列出了CNIL推荐的安全风险治理措施。
本文公开征询意见,直至2024年9月1日。
根据GDPR第32条,数据保护处理的安全性是一项法定义务。该条款明确指出,在实施数据处理时,必须综合考虑以下因素:现有的知识水平、实施安全措施的成本、数据处理的性质、范围、背景和目的,以及可能对个人权利和自由造成影响的风险的种类和严重程度。因此,必须采取与这些风险相适应的措施来保障数据处理的安全性。
在实践中,对于人工智能系统的开发,需要结合传统的安全性分析,特别是环境安全(包括基础设施、授权、备份或物理安全)和软件开发及维护的安全(包括开发最佳实践的实施,或漏洞和更新的管理),以及针对人工智能系统和大型训练数据库的特定风险分析。
本文详细说明了:
管理人工智能系统开发安全性的系统性方法;
在开发人工智能系统时主要的安全目标;
需要考虑的风险因素,其中一些是人工智能特有的;
为使残余风险水平可接受而推荐的措施。
系统性方法
GDPR规定的安全义务基于根据相关风险采取适当措施的实施。为此,应进行风险分析,以选择相关的安全措施。
在开发人工智能系统的情况下,这种分析可能导致包括有关风险来源(例如二次使用的数据库提供者)、目标载体(例如软件库)或对人们的影响(例如歧视)的特定事项。
由于许多人工智能系统开发方法的发展可能非常新,建议对未经深入安全评估的组件(如数据库、库和基础设施)的使用给予特别注意。当使用可能对个人权利和自由构成重大风险的用途时,这种警惕性必须增加,例如使用敏感数据或追求高风险目的。人工智能法的附件II和III提供了有关确定相关用途是否高风险的有用信息。
为此,建议进行数据保护影响评估(DPIA)。在某些情况下,如在“必要时进行影响评估”的文章中所述,这种分析可能是强制性的。DPIA是一个工具,可以横向列出风险和适应它们的措施,从而列出现有措施和应采取的措施。
与人工智能开发相关的安全目标
在开发人工智能系统时应考虑的安全目标包括:
数据的保密性:在数据访问受限的情况下,以及当它们公开可访问时(因为添加的注释可能包含个人数据),数据库的安全性不足可能导致数据保密性损失。在处理训练模型的数据时也可能发生违规行为(与这些数据本身无关)。事实上,存在数据记忆、重建或成员资格推断的风险,这可能导致训练数据的披露。这些保密性损失可能对有关个人产生严重后果,特别是对他们的声誉,或导致网络钓鱼。在人工智能领域,考虑到数据保密性的风险至关重要,因为数据通常数量庞大,可能包含个人、高度个人或对个人敏感的数据。
系统的性能和完整性:与系统性能相关的风险仅在部署阶段显现,但大多数措施应在开发阶段采取。事实上,数据的完整性风险、数据、工具或使用的协议的可靠性不足、开发、测试或组织程序中的漏洞可能导致对用户严重后果——即在部署阶段运营人工智能系统的机构——以及最终用户——即系统产生的输出应用于他们的人。此外,集成了持续学习功能的系统必须加强对性能随时间的维持及其对人们的影响的警惕。
信息系统的一般安全性:人工智能系统的功能通常在很大程度上依赖于所使用的模型,但今天最有可能的风险涉及系统的其他组件(如备份、接口和通信)。因此,攻击者可能更容易利用软件漏洞来访问训练数据,而不是通过成员资格推断攻击发动攻击。涉及信息系统的风险和措施在CNIL的个人数据安全指南中描述。
人工智能系统安全性的风险因素
在评估人工智能系统的风险水平时,应考虑以下因素:
数据的性质:安全措施应根据安全漏洞可能对人们造成的后果的严重性进行调整。【示例】一个人的邮政编码是需要保护的数据,但其披露的后果比披露其银行详细信息要小。
对使用的数据、模型和工具的控制:人工智能是一个经常使用开放资源或分散协议如联邦学习的领域,但来源的可靠性并不总是经过验证的。使用这些未经验证的工具增加了安全漏洞的可能性。【示例】来自协作平台的人工智能模型可能包含损坏的文件或后门,并在系统中引入安全漏洞,或导致意外行为。这些风险在TrailOfBits公司对YOLOv7模型安全性的研究中得到了强调。
访问系统的方式(如受限访问、作为服务或SaaS、公开源代码的模型分发、Web公开)和系统的输出内容(如有关系统运行的指标或信任分数):访问方式增加了攻击面,并可能促进其实施。有关系统运行的信息便于进行成员资格推断攻击或属性攻击。这些方式和信息因此增加了漏洞的可能性。【示例】在个人数据上训练的语言模型可能已经记住了训练数据,并允许推断有关个人的信息。公开源代码的模型将增加此类攻击的可能性。然后,在分发之前应考虑这种风险。
译者注:
系统的输出内容指的是人工智能系统在处理完输入数据后产生的结果。这些输出可以是决策、预测、分类、描述或其他形式的信息。在人工智能领域,系统的输出内容尤为重要,因为它们可能直接影响到用户或相关利益相关者的决策和行动。
"有关系统运行的指标"通常指的是评估系统性能的一系列量化数据,如准确率、召回率、精确度、F1分数等。这些指标帮助开发者和用户了解系统在特定任务上的表现。
"信任分数"(Confidence Score)是系统对其输出结果的确定性的一种度量。例如,在图像识别任务中,如果系统识别出一个物体,它可能会给出一个介于0到1之间的信任分数,表示它对这个识别结果有多自信。信任分数越高,表示系统对该预测结果越有信心。
了解系统的输出内容及其信任分数对于评估系统的可靠性和有效性至关重要。用户可以根据这些信息判断是否应该信任系统的建议,以及在何种程度上依赖这些建议。同时,这也有助于开发者识别和改进系统的不足之处。
人工智能系统的预期使用环境:漏洞的严重性取决于系统在整个业务流程中的关键程度,包括系统可用性和其输出在决策过程中的角色,以及用户对技术的掌握程度。当人工智能系统与信息系统的其他组件交互时,其输出的质量可能对安全至关重要。因此,有效地将人工智能系统集成到信息系统中,并由用户掌握,可以减少安全漏洞的可能性。
【示例】与用于虚拟服装试穿的增强现实系统相比,医疗诊断支持系统将需要实施更多措施来提高其稳健性和医护人员的适用性。
开发人工智能系统的安全措施
为确保人工智能系统的安全性,可以考虑以下措施。它们涉及训练数据、开发、系统运营以及横向措施。
译者注:“横向措施”(transversales mesures)指的是那些适用于整个系统开发过程的措施,而不是特定于系统的某一部分或某个阶段。
如前所述,这里列出的措施仅供参考,并不一定必须对所有人工智能系统开发实施:数据控制者负责确定为限制其已识别的风险所必需的措施,考虑到其特定的操作背景和环境。
关于训练数据的措施
人工智能系统的质量主要取决于用于训练的数据。因此,关于其安全性的推荐措施至关重要。特别推荐以下措施:
检查训练数据源及其注释的可靠性:此检查可以在收集时进行,或者如果是第三方收集,则在获取时进行,并应在整个人工智能系统的生命周期中继续进行,特别是当数据持续收集或数据完整性存在风险时。
检查训练数据及其注释的质量:确保收集过程严格,并在数据的整个生命周期中评估数据质量,有助于降低数据质量下降的风险,特别是当可能发生数据漂移时,如在持续学习或依赖性能可能下降的传感器的情况下。
在其生命周期中检查训练数据及其注释的完整性:应定期进行此检查,以检测常见的漏洞,如数据污染尝试。这些检查可以通过迭代学习控制技术实施,特别是通过主动学习。
日志记录和管理数据集的版本:跟踪和记录对数据集的更改有助于检测对数据库的未经授权的入侵或修改,从而防止恶意披露或数据污染。
使用虚构或合成数据:当不需要真实数据时,如在安全测试、集成或某些审计中,使用虚构数据可以减少对个人的风险。
加密备份和通信:使用最新技术的加密协议有助于限制由于入侵造成的严重后果。
控制对数据的访问:限制对数据的访问并为访问数据提供认证程序,根据访问类型提供不同的授权级别,可以防止某些恶意入侵。
匿名化或假名化数据:根据处理的数据类型和模型的使用环境,考虑删除某些数据、添加随机扰动或概括数据的措施。
隔离敏感数据集:当训练数据包含大量敏感数据时,建议通过其存储的逻辑隔离。
通过组织措施预防对数据的控制丢失:确保数据导出和共享的框架,并保留数据收件人的跟踪记录。
与系统开发有关的措施
从设计前的考虑到将模型集成到系统中,有几个安全措施需要考虑:
在系统设计选择中考虑数据保护:在设计阶段应考虑数据保护,以确保数据处理的安全性和合规性。
遵守该领域的安全最佳实践:使用经过验证的库、工具(如开发环境、版本管理或数据访问API)、预训练模型和配置文件将限制攻击或故障的风险。特别注意这些文件中可能存在的后门。建议检查它们的可靠性并遵守更新。最后,推荐几种开发最佳实践,如:
译者注:
这些措施的共同目标是提高系统的安全性,减少潜在的安全漏洞,确保人工智能系统的稳定和可靠运行。
使用安全的格式保存配置文件和模型,例如SafeTensors(而不是容易受到代码注入攻击的格式,如YAML或pickle);
禁止使用可能执行未检测到的恶意代码的过于宽松的函数;
清理和审查计算机代码;
注意工具发出的警告;
编译系统代码(而不是使用跟踪或脚本),以防止部署后系统行为被改变。
1.使用安全的格式保存配置文件和模型:推荐使用像SafeTensors这样的安全格式来存储配置文件和模型参数,以避免使用易受攻击的格式,如YAML或pickle。这些格式可能容易受到代码注入攻击,攻击者可以通过它们注入恶意代码。
2.禁止使用过于宽松的函数:避免使用那些可能会执行未检测到的恶意代码的函数。一些编程语言或库可能提供宽松的函数,这些函数在没有适当安全检查的情况下执行代码,增加了安全风险。
3.清理和审查计算机代码:定期对代码进行清理和审查,以识别和修复潜在的安全漏洞或不良编码实践。
4.注意工具发出的警告:开发过程中使用的各种工具可能会发出安全警告或建议。重视这些警告并采取相应的行动是预防安全问题的关键。
5.编译系统代码:建议编译系统代码,而不是依赖于解释器或脚本。编译代码可以减少系统部署后被篡改的风险,因为编译后的代码比源代码更难以修改。
使用可控、可复制且易于部署的开发环境:许多工具,如容器或虚拟机,通过自动化配置来控制开发环境。此外,如果有疑问,应使用安全的测试环境,通常称为沙盒。
实施持续开发和集成程序:这一强制性程序,基于特定环境和全面强大的单元测试,并且对生产代码的修改受到认证限制,将限制将漏洞插入系统的风险。
构建文档集合:针对开发人员和系统用户的此文档,可能包括:
系统设计,包括使用的数据和模型以及导致其选择和验证的分析,以及这些分析的结果;
系统在其整个生命周期中的运行情况、性能、偏差分析和获得的性能,使用条件和限制,如性能可能不足的情况;
使用系统所需的硬件设备,预期的延迟或SaaS系统的最大功率容量;
实施的保护措施,特别是访问管理、秘密管理以及加密措施。
进行安全审计:这些分析可以由内部或第三方(如供应商或社区开发人员)进行,基于公认的参考标准(见下面的有用资源部分),并实施最常见的攻击尝试,如“红队”攻击。
CNIL还发布了一份GDPR开发团队的指南,列出了更普遍适用的一系列最佳实践。
与系统运营有关的措施
虽然系统运营的风险涉及部署阶段,但在开发阶段考虑其中一些措施更为合适。这些措施包括:
告知用户系统在实验室和预期使用环境中的限制:这意味着需要清楚地告知用户在哪些条件下系统的性能是有保证的,或者在哪些条件下系统是被推荐的。同时,也需要指出可能会限制系统性能或导致系统不适用的条件,无论是关于使用方式还是操作环境的具体限制。这样的透明度有助于用户正确理解系统的适用范围和潜在风险;
提供信息以帮助用户解释结果:这些信息应特别允许识别可能的错误(如信任分数,或有关系统内部逻辑和流程的信息,如检测的热图,同时考虑到这些信息被攻击者利用的风险)。专用的界面或通信渠道也可以收集用户反馈,以识别和纠正部署阶段观察到的系统缺陷。这些信息也可以通过提供系统输出的特定日志记录来收集,特别是当它集成到信息系统中时;
译者注:
系统应该提供足够的信息来帮助用户识别和理解可能发生的错误。这些信息包括:
同时,提供这些信息时还需要考虑到信息安全的风险,特别是这些信息可能被恶意攻击者利用的情况。例如,如果攻击者了解到系统在某些特定情况下的决策逻辑或信任分数计算方式,他们可能会尝试利用这些信息来欺骗系统或发起攻击。
因此,系统设计者在提供这些信息时需要平衡透明度和安全性,确保用户能够理解并信任系统的输出,同时防止潜在的安全风险。
1.信任分数(Confidence Score):系统对其输出结果的确定性或信任度的度量。例如,在图像识别中,系统可能会给出一个分数,表示它对识别结果的信心水平。
2.系统内部逻辑和流程的信息:关于系统如何处理数据和生成输出的详细信息。这可能包括算法的逻辑、决策树、流程图或模型架构等。
3.检测的热图:在某些应用中,如图像识别或对象检测,系统可能会提供热图,显示算法对图像中特定区域的关注度或置信度。
确保能够停止系统:对于涉及自动化决策(GDPR第22条)并影响个体的用途,此措施是强制性的;
控制人工智能的输出:人工智能系统的输出,特别是生成性系统的输出,可能是有问题的,可能包含个人数据或具有误导性。诸如输出过滤器、基于人类反馈的强化学习或生成内容的数字水印(或水印)等措施,其有效性已在图像上得到证明,可以降低它们的产出可能性。
横向措施
这些措施涉及系统的整体开发:
实施并遵循安全行动计划:记录并实施必要的安全措施,以降低系统开发过程中的风险。
组建多学科发展团队:利用多样化的专业知识和意见将有助于识别整个数据生命周期中的安全漏洞。建议:
包括具有互补技能的员工(如数据分析和工程、界面和用户体验、质量控制、计算机基础设施管理或与业务需求相关)在开发过程中;
确保数据分析师和开发人员接受有关管理训练数据和开发模型的安全最佳实践培训,以及最常见的漏洞;
管理授权、追踪访问、分析痕迹:即使数据来自开放来源,附加的注释可能构成需要保护的信息。根据其授权配置文件限制对数据库和模型的访问,并保留特权用户列表,记录对数据库的访问、修改、添加和删除,并分析这些痕迹(自动实时或定期)可以减少入侵的可能性和严重性。
有用资源
以下资源将有助于整体保护人工智能系统,特别是考虑到人工智能的特定风险:
EBIOS-RM Methodological Guide by ANSSI
Security Recommendations for a Generative AI System by ANSSI
Resources on DPIA Implementation by CNIL
Guide on Personal Data Security by CNIL
"AI Systems Security" File by Linc
"Artificial Intelligence Cybersecurity Challenges" Report by ENISA
AI Security Guidelines by BSI
"AI Security and Privacy" Guide by OWASP
"Guidelines for Secure AI System Development" by the National Cyber Security Centre (UK)
Adversarial Threat Landscape for Artificial Intelligence Systems (ATLAS) by MITRE
Privacy Library Of Threats 4 Artificial Intelligence (Plot4AI)
"Data-Centric System Threat Modeling" and "Adversarial Machine Learning" Guides by NIST
"Rapid Risk Assessment" Guide by Mozilla
从开发到运营:全面掌握人工智能系统安全的关键策略 | 法国CNIL关于AI系统开发安全指南
作者:朱玲凤来源:那一片数据星辰

法国CNIL关于《AI系统开发的数据保护指南》又出新番了 法国CNIL于6月10日又在《AI系统开发的数据保护指南》中更新了五章,于9月1日前征求公众意见,都快追成连续剧了。