1.TEE+LLM
大模型安全隐患
数据泄露、数据滥用、模型被攻击和知识产权被窃取等一系列隐私和安全风险。
- 数据泄露:在公共云中使用 LLM 时,必须考虑用于推理的数据的敏感性。
- 数据滥用:实施数据清理和验证技术,以确保提示不会无意中泄露敏感信息
- 模型攻击:实施强大的访问控制来限制谁可以访问和使用经过微调的模型
可信执行环境机制
- 安全隔离:通过硬件加密和内存隔离等硬件隔离技术,将敏感数据和关键代码与其他应用及操作系统相隔离。
- 安全验证:在启动过程中进行身份验证和完整性检查,确保只有经过授权的代码和数据可以在其中运行,防止恶意软件或未经授权的访问。
- 安全执行环境:提供包含加密算法、安全协议和密钥管理等防护功能的执行环境,以增强数据在执行过程中的保密性和完整性。
LLM和TEE融合需求
LM 在许多行业的不同场景都有着广泛应用,例如金融行业的风险评估和交易分析,医疗保健领域的医学图像识别、病历纪录和疾病预测,以及法律和合规行业的法律咨询、合同审查和文书处理等。
TEE 是由支持机密计算 (CC) 的硬件提供的安全且隔离的环境,可防止在使用时对应用程序和数据进行未经授权的访问或修改。
- 训练阶段:允许用户使用特定领域或语言的专有数据来培训 LLM,而无需与其他人共享。经过训练的模型和数据保持私密性,只有容器内的用户和 LLM 可以访问。此外,用户可以确认代码和参数没有被其他人更改。
- 推理阶段:TEE 则可保护用户输入和模型结果的隐私。
- 微调阶段:可以使用机密容器针对特定领域的任务在其特定数据集上微调预训练的 LLM,确保只有机密容器内的用户才能访问数据和模型。
仅在成功验证运行环境的完整性(使用 远程证明)后,机密才会在机密容器内传递。由于解密的模型和代码在 TEE 内部运行,因此任何不受信任的实体都无法对其进行未经授权的访问。
TEE和LLM融合的挑战
- 资源限制:TEE 的计算资源和存储空间通常都非常有限,LLM 庞大的模型参数和计算需求可能会超出一般 TEE 的能力范围。
- 性能下降:I/O 数据的加密和安全计算操作会引入额外的计算开销,导致模型训练和推理性能有一定程度下降。
2. Intel平台加速TEE和LLM融合方案
SGX/TDX解决方案
SGX 安全飞地的容量最多可达单颗 CPU 512GB,双路共计 1TB 容量,可满足目前千亿大模型的执行空间需求。该技术提供支持的机密计算可实现应用层、虚拟机 (VM)、容器和功能层的数据隔离。 无论是在云端、边缘还是本地环境,都能确保计算与数据始终在私密性和安全性上获得更全面的保护,以免暴露给云服务提供商、未经授权的管理员和操作系统,甚至是特权应用。
TDX将客户机操作系统和虚拟机应用与云端主机、系统管理程序和平台的其他虚拟机隔离开来。 它的信任边界较SGX 应用层的隔离边界更大,使受其保护的机密虚拟机比基于SGX 的安全飞地的应用更易于进行大规模部署和管理,在部署 LLM 这类复杂应用时,TDX 在易用性上更具优势。
英特尔在 SDK 的基础上,推出了开源的 lib OS 项目 Gramine 来帮助开发者更好地使用基于SGX的 TEE,助推 LLM 与 TEE 的融合。
TEE保护LLM推理
在数据上传云端前,查询可先通过客户端对传输内容加密,云端只需在SGX/TDX 中解密查询问题,然后输入大模型的推理服务中,并将所得结果在云端的 TEE 中加密后传输回本地客户端。 在整个工作流程中,客户端以外的数据和运行态程序均处于密态环境当中,效率远远高于其他基于纯密码学的解决方案。
端到端大模型和TEE融合
LLM 在端到端应用中的痛点包括:
- 软件栈复杂,难以确保端到端应用的安全。 LLM 的训练和推理常依赖较多的软件栈、服务和硬件。 为保护用户数据和模型产权,需确保每个环节的安全性(不同硬件、运行环境、网络和存储等)。
- 计算量大,且对性能敏感。 LLM 的计算量非常大,需引入足够多的性能优化。 但是,不同模型、平台和软件栈需要使用不同的优化方案,要在特定平台上实现更理想的性能,需要长时间的性能调优。
英特尔主导的开源项目 BigDL:
- 提供端到端的安全保护:在不修改代码的情况下,为单机和分布式的 LLM 应用提供端到端的安全保护功能,包括基于SGX/TDX 的 TEE、远程证明、统一的密钥管理接口、透明的加解密 API 等。
- 实现一站式性能优化:让现有 LLM 应用在几乎不用修改代码的情况下受益于英特尔® AMX、英特尔® AVX-512 和英特尔® Extension for PyTorch,用户还可利用 BigDL Nano 提供的 LLM API,快速构建应用。
在应用了 PPML(Privacy Preserving Machine Learning,隐私保护的机器学习)提供的安全技术后,由于更强的安全和隐私保护会带来额外开销,端到端应用性能会略有下降; 但应用了 BigDL Nano 提供的优化功能后,端到端的性能得到了显著改善,总体性能甚至高于没有任何保护的明文性能。
3. OpaquePrompts隐藏敏感输入数据
动机
OpenAI 面向消费者的 ChatGPT不断根据用户输入训练其模型,并与第三方提供商共享用户输入。
Anthropic 的 Claude 默认保留我们的数据至少 30 天。
Google 的 Bard 会将我们的活动保留至少 3 个月,最长可能保留 3 年。它还使用输入数据来持续训练其模型。
通过在个人或敏感数据到达 LLM 之前对其进行清理,不再需要依赖 LLM 提供商来遵循任何特定的数据保留或处理政策。这就是 OpaquePrompts 提供的功能。通过利用机密计算和可信执行环境 (TEE),托管 OpaquePrompts 的 Opaque 也不会看到提示,从而确保只有用户才能看到prompt中包含的任何信息。
OpaquePrompts
工作流程如下:
- 给定用户提供的输入,LLM 应用程序会像以前一样构建提示,可能包括检索到的上下文、内存和用户查询。LLM 应用程序将此提示转发给 OpaquePrompts。
- 在 TEE 中,OpaquePrompts 使用基于自然语言处理 (NLP) 的机器学习来识别提示中的敏感标记。
- 在 TEE 中,OpaquePrompts 通过加密所有个人和敏感令牌来清理(换句话说,加密和编辑)提示,然后再将清理后的提示返回到 LLM 应用程序。
- LLM 申请将提示提交给他们选择的 LLM(例如 ChatGPT 或 Claude),LLM 将清理响应(包含具有个人信息的令牌的清理版本的响应)返回给 LLM 应用程序。
- 在 TEE 中,OpaquePrompts 从 LLM 应用程序接收经过净化的响应并对其进行去净化,用其明文等效项替换经过净化的令牌。
- LLM 应用程序将经过净化的响应返回给用户。
借助 OpaquePrompts,LLM 申请者在使用第三方 LLM 之前不再需要依赖用户手动删除任何敏感信息并、。
4.NVIDIA H100
机密GPU
Intel 和 AMD 等公司的 CPU 允许创建 TEE,它可以隔离进程或整个来宾虚拟机 (VM),从而有效地将主机操作系统和虚拟机管理程序从信任边界中消除。机密GPU的愿景是将这种信任边界扩展到 GPU,允许在 CPU TEE 中运行的代码将计算和数据安全地卸载到 GPU。
图 1:使用 NVIDIA GPU 实现机密计算的愿景。
挑战:
- 必须防范各种攻击,例如中间人攻击,攻击者可以观察或篡改 PCIe 总线或 NVIDIA NVLink 上的流量连接多个 GPU 以及模拟攻击
- 必须确保Azure主机操作系统对GPU有足够的控制权来执行管理任务
- 增加的保护不得带来较大的性能开销,增加功率可能需要对 GPU 微架构进行重大更改
解决方案,扩展以下功能: - 一种新模式,其中 GPU 上的所有敏感状态(包括 GPU 内存)与主机隔离
- GPU 芯片上的硬件信任根,可以生成可验证的证明,捕获 GPU 的所有安全敏感状态,包括所有固件和微代码
- 对 GPU 驱动程序的扩展,用于验证 GPU 证明、与 GPU 建立安全通信通道以及透明地加密 CPU 和 GPU 之间的所有通信
- 硬件支持通过 NVLink 透明加密所有 GPU-GPU 通信
- 支持客户操作系统和虚拟机管理程序将 GPU 安全地连接到 CPU TEE,即使 CPU TEE 的内容已加密
A100的实现
NVIDIA 和 Azure 通过 NVIDIA A100 Tensor Core GPU 中名为APM的新功能,朝着实现这一愿景迈出了重要一步。
APM 在 A100 GPU 中引入了一种新的机密执行模式。当 GPU 在此模式下初始化时,GPU 会将高带宽内存 (HBM) 中的一个区域指定为受保护区域,防止从主机和对等 GPU 访问该区域的内存映射 I/O (MMIO) 造成泄漏。仅允许经过身份验证和加密的流量进出该区域。
在机密模式下,GPU 可以与任何外部实体配对,例如主机 CPU 上的 TEE。为了实现这种配对,GPU 包含一个硬件信任根 (HRoT)。NVIDIA 为 HRoT 提供唯一的身份以及在制造过程中创建的相应证书。HRoT 还通过测量 GPU 以及 GPU 上其他微控制器(包括名为 SEC2 的安全微控制器)的固件来实现身份验证和测量启动。反过来,SEC2 可以生成包含这些测量值并由新的证明密钥签名的证明报告,该新的证明密钥由唯一的设备密钥认可。任何外部实体都可以使用这些报告来验证 GPU 是否处于机密模式并运行最后一次已知的良好固件。
当CPU TEE中的NVIDIA GPU驱动程序加载时,它会检查GPU是否处于机密模式。如果是,驱动程序会请求一份认证报告,并检查 GPU 是否是运行已知良好固件的正品 NVIDIA GPU。一旦确认,驱动程序将使用安全协议和数据模型 (SPDM) 支持的基于 Diffie-Hellman 的密钥交换协议与 GPU 上的 SEC2 微控制器建立安全通道,以建立新的会话密钥。当交换完成时,GPU 驱动程序和 SEC2 都持有相同的对称会话密钥。
GPU 驱动程序使用共享会话密钥来加密进出 GPU 的所有后续数据传输。由于分配给 CPU TEE 的页面在内存中进行了加密,并且 GPU DMA 引擎无法读取,因此 GPU 驱动程序会在 CPU TEE 外部分配页面并将加密数据写入这些页面。在GPU端,SEC2微控制器负责解密从CPU传输的加密数据并将其复制到受保护区域。一旦数据以明文形式存储在高带宽内存 (HBM) 中,GPU 内核就可以自由地使用它进行计算。
图 2:主机 CPU 上的 GPU 驱动程序和 NVIDIA A100 Tensor Core GPU 上的 SEC2 微控制器协同工作,实现数据传输的端到端加密。
H100
- 基于硬件的安全和隔离:在本地、云端或边缘实现虚拟机 (VM) 的完全隔离。CPU 和 H200 或 H100 GPU 之间的数据传输以 PCIe 线速加密和解密。大部分 GPU 内存被配置为计算保护区 (CPR),使用内置硬件防火墙创建物理隔离的可信执行环境 (TEE),以保护 H200 或 H100 GPU 上的整个工作负载。
- 防止未经授权的访问:保护使用中的数据和人工智能工作负载的机密性和完整性。未经授权的实体(包括虚拟机管理程序、主机操作系统、云提供商)无法在执行期间查看或修改人工智能应用程序和数据。
- 设备证明的可验证性:确保只有授权的最终用户才能在 H200 或 H100 的 TEE 中放置要执行的数据和代码。此外,设备认证可验证用户是否正在与真实的 NVIDIA GPU 进行通信、固件是否未被篡改以及 GPU 固件是否已按预期更新。
- 无需更改应用程序代码:在大多数情况下, GPU 加速工作负载无需更改代码,即可充分利用机密计算的所有优势,,同时保持安全性、隐私性。
5. 安全可信的LLM
在 TEE 中保护用户隐私的同时,需要平衡性能需求,TEE 和异构硬件的结合将成为未来发展趋势。 随着 CPU 性能的提升以及内置 AI 加速技术的升级和更新,在方便部署的场景下,CPU 会是大模型推理和 TEE 结合的首选;在训练的场景下,基于 CPU 的 TEE 结合异构硬件的加密支持,则会是大模型训练甚至大模型联邦训练的技术方向。
中国信通院《大模型可信赖研究报告》提出了大模型可信赖六大目标,包括可靠性、健壮性、安全性、公平性、可问责和可解释,同时提出大模型可信风险来自于框架、数据、模型和生成内容等四大方面。
大模型AI安全可信,是一组相关数据、技术、产品、方案和服务等组合起来的能力集合,其中包括:数据采集、标注和清洗等数据服务;模型设计、评估与微调等模型服务;基于人类反馈的增强学习服务;数据保护与隐私安全;咨询服务等等诸多领域,涉及到了大模型全生命周期的方方面面。
在大模型公有云服务方面,以百度、阿里等为代表的互联网与云服务公司,从大模型全生命周期视角出发,涵盖大模型训练、精调、推理、大模型部署、大模型运营等关键阶段面临的安全风险与业务挑战,在自有技术体系内进行深入布局,探索打造安全产品与服务。
360等第三方独立的人工智能与安全科技公司,探索“以模型管理模型”方式,打造以大模型为核心的AI Agent(AI智能体),带入企业真实安全运营场景中,以“虚拟安全专家”的形象,满足企业对安全业务的需求。
开源社区也积极推出大模型安全可信开源工具。LLM Guard是一个保护和强化大型语言模型安全性的开源工具包,LLM Guard的目的是通过提供开箱即用的所有必要工具来简化公司安全采用大模型的过程。
[1] https://www.intel.cn/content/www/cn/zh/customer-spotlight/cases/privacy-security-challenge-large-language-model.html
[2] https://pradiptabanerjee.medium.com/confidential-containers-for-large-language-models-42477436345a
[3] https://mp.weixin.qq.com/s/6hdBb0fDQUZIQiHjEnpG5g
[4] https://techcommunity.microsoft.com/t5/azure-confidential-computing/unlocking-the-potential-of-privacy-preserving-ai-with-azure/ba-p/3776838
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达,可以在下面评论区评论