菜单

AI应用安全

相关源文件

本文档详细介绍了生成式 AI 系统背景下 AI 应用程序的安全注意事项和实践。它涵盖了 AI 应用程序面临的独特安全挑战、常见威胁和攻击向量,以及实施强大安全措施的最佳实践。

重点在于保护使用大型语言模型 (LLM) 的 AI 应用程序的实用方法,例如本课程中涵盖的模型。有关 AI 应用程序生命周期和部署注意事项的信息,请参阅生成式 AI 应用程序生命周期

理解 AI 上下文中的安全性

AI 应用程序的安全性包括传统的应用程序安全以及特定于 AI 的考虑因素。与传统的软件不同,AI 系统因其学习能力、对外部数据的依赖以及输出的概率性性质而具有独特的漏洞。

来源:13-securing-ai-applications/README.md21-74

关键安全维度

保护 AI 应用程序时,必须考虑四个关键维度

  1. 数据安全:保护用于训练和推理的数据
  2. 模型安全:保护 AI 模型本身免遭盗窃或篡改
  3. 基础设施安全:保护运行 AI 模型的系统
  4. 应用程序安全:在使用 AI 的应用程序中实施安全编码实践

来源:13-securing-ai-applications/README.md25-38 13-securing-ai-applications/README.md65-74

AI 应用程序中的常见威胁和风险

AI 系统面临着超出传统网络安全问题的各种威胁。了解这些威胁对于实施有效的安全措施至关重要。

数据投毒

数据投毒目前被认为是 AI 系统最重大的安全威胁。当攻击者故意操纵训练数据以破坏模型性能或引入后门时,就会发生这种情况。

数据投毒的常见形式包括

类型描述示例
标签翻转故意更改训练数据中的标签将良性样本标记为恶意
特征投毒修改特征以引入偏差添加不相关的关键词以操纵推荐
数据注入将恶意数据插入训练集引入虚假用户评论以扭曲情感分析
后门攻击将隐藏模式插入训练数据使用后门图像训练面部识别

来源:13-securing-ai-applications/README.md36-48

提示词注入

提示注入是一种攻击技术,攻击者通过精心设计的输入来操纵 LLM,使其行为超出其预期参数。此漏洞可能导致未经授权的访问、数据泄露或绕过内容过滤器。

来源:13-securing-ai-applications/README.md58-60

其他关键威胁

  1. 供应链漏洞:AI 应用程序堆栈中的组件可能会引入漏洞
  2. 过度依赖:过度信任 LLM 输出可能导致模型出现幻觉或提供不准确信息时产生实际后果
  3. 模型盗窃:未经授权访问模型权重或架构
  4. 对抗性攻击:经过专门设计的输入,导致模型产生错误输出

来源:13-securing-ai-applications/README.md60-62

AI 应用程序的安全测试

AI 系统的安全测试需要专门的方法来解决这些系统的独特特性。全面的安全测试应包括

来源:13-securing-ai-applications/README.md65-74

测试方法详解

  1. 数据净化:从训练数据和输入中删除或匿名化敏感信息,以防止数据泄露和维护隐私。

  2. 对抗性测试:生成并应用对抗性示例,以评估模型在抵御攻击方面的稳健性。

  3. 模型验证:验证模型参数和架构的正确性和完整性,以防止模型被窃取。

  4. 输出验证:验证模型输出的质量和安全性,以检测恶意操纵。

来源:13-securing-ai-applications/README.md70-74

常见漏洞的安全缓解措施

为保护 AI 应用程序免受各种威胁,请实施以下缓解策略

防范提示注入

实施以下关键防护措施以防范提示注入

  1. 输入验证:在将用户输入传递给 LLM 之前,对其进行彻底的清理
  2. 上下文边界:清晰地区分用户输入和系统提示
  3. 系统提示:使用设计良好的系统提示来为模型设置约束和指南
  4. 输出过滤:实施后处理过滤器来验证模型输出

来源:13-securing-ai-applications/README.md58-60 13-securing-ai-applications/README.md103-120

防范数据投毒

  1. 数据验证:对所有训练数据实施强大的验证
  2. 数据来源跟踪:监控和验证所有训练数据的来源
  3. 异常检测:使用检测系统来识别潜在的投毒尝试
  4. 定期审计:定期审计训练数据是否存在操纵迹象

来源:13-securing-ai-applications/README.md36-48

构建安全的 AI 应用程序架构

AI 应用程序的全面安全架构应包含多层保护

安全 AI 架构的关键组成部分

  1. API 网关:提供速率限制、基本验证和访问控制
  2. 身份验证和授权:验证用户身份和权限
  3. 输入验证和清理:在将危险输入传递给 LLM 之前对其进行过滤
  4. LLM 交互层:管理与模型的通信,实施系统提示
  5. 输出验证:确保输出符合安全标准
  6. 监控和日志记录:跟踪系统行为并检测异常

来源:13-securing-ai-applications/README.md80-100

AI 应用程序的最佳安全实践

应用程序级安全控制

安全控制描述实现
输入验证过滤和清理所有用户输入模式匹配、允许列表、上下文验证
系统提示明确的模型行为约束关于可接受输出和边界的明确说明
内容过滤有害内容的前/后处理毒性检测、不当内容分类器
速率限制防止通过过度请求滥用API 网关配置、每用户限制
访问控制根据用户角色限制模型功能基于角色的访问、基于功能的权限
可观测性监控和分析模型行为日志记录、指标、异常检测

来源:13-securing-ai-applications/README.md103-142

模型级安全注意事项

  1. 模型选择:为您的用例选择具有适当安全功能的模型
  2. 安全微调:对于敏感应用程序,考虑进行安全专项微调
  3. 部署环境:保护模型部署的基础设施
  4. 版本控制:跟踪模型版本和更改以确保可追溯性

来源:13-securing-ai-applications/README.md150-163

在开发生命周期中实施安全测试

安全应贯穿 AI 应用程序的整个开发生命周期

每个阶段的关键安全活动

  1. 需求:定义安全需求和约束
  2. 设计:进行针对 AI 漏洞的威胁建模
  3. 实施:为 AI 应用程序遵循安全编码实践
  4. 测试:对 AI 系统进行专门的安全测试
  5. 部署:保护部署环境并管理访问控制
  6. 监控:持续监控安全问题和意外行为

来源:13-securing-ai-applications/README.md175-190

安全框架和资源

一些组织已经制定了框架来帮助保护 AI 应用程序

  1. MITRE ATLAS:人工智能系统对抗性威胁态势 - 一个关于 AI 系统实际攻击中使用的策略和技术的知识库,模仿 MITRE ATT&CK 框架。

  2. OWASP LLM 十大漏洞:开放式 Web 应用程序安全项目列出的 LLM 应用程序中最关键的漏洞。

  3. 必学 AI 安全:一个免费资源,提供有关应对新兴 AI 威胁的广泛指导。

来源:13-securing-ai-applications/README.md50-63

结论

保护 AI 应用程序需要一种多方面的方法,该方法要解决传统的安全问题以及特定于 AI 的漏洞。通过在应用程序堆栈的所有级别实施适当的安全控制,从数据保护到模型安全再到用户交互,您可以构建既强大又安全的 AI 应用程序。

请记住,AI 安全是一个不断发展的领域,及时了解最新的威胁和缓解措施对于维持强大的安全态势至关重要。