首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

生成式AI安全最佳实践 - 抵御OWASP Top 10攻击 (下)

  • 25-03-07 22:02
  • 2743
  • 7709
blog.csdn.net

今天小李哥将开启全新的技术分享系列,为大家介绍生成式AI的安全解决方案设计方法和最佳实践。近年来生成式 AI 安全市场正迅速发展。据IDC预测,到2025年全球 AI 安全解决方案市场规模将突破200亿美元,年复合增长率超过30%,而Gartner则预估到2025年约30%的网络攻击将利用生成式AI技术。与此同时,Capgemini的调查显示,近74%的企业认为AI驱动的安全防护至关重要,加上Cybersecurity Ventures报告指出,与生成式AI相关的安全事件年增长率超过20%,这充分表明企业和安全供应商正面临日益严峻的安全挑战,并加大投入以构建更全面的防护体系。今天要介绍的就是如何设计生成式AI应用安全解决方案,抵御OWASP Top 10攻击。未来也会分享更多的AI安全解决方案,欢迎大家关注。

目前我们生活中有各色各样的生成式AI应用,常见的场景之一就是生成式AI对话助手。然而在部署之前,通常还要对应用进行评估,其中包括了解安全态势、监控和日志记录、成本跟踪、弹性等问题。在这些评估中,安全性通常是最高优先级。如果存在无法明确识别的安全风险,我们就无法有效解决这些风向,这可能会阻碍生成式AI应用向生产环境部署的进度。

在本文章中,小李哥将向大家展示一个自己设计的生成式应用的真实场景,并演示如何利用 OWASP安全框架,基于大语言模型应用常见的Top 10安全攻击来评估应用的安全态势,以及实施缓解措施。下图就是一个生成式AI应用的安全解决方案最佳实践,我们将继续从左到右详细介绍本方案中使用到的安全方案细节。

应用控制层

应用层通常容易遭受到诸如LLM01:2025提示注入、LLM05:2025输出处理不当以及LLM02:2025敏感信息泄露等风险。恶意攻击者可能会频繁尝试恶意的提示词输入来操控AI模型,从而可能通过AI模型泄露敏感信息或危及下游的应用系统。

在我们开头的架构图中,应用层的服务器就是亚马逊云科技无服务器计算服务Lambda。它通过从 API Gateway中提取事件的数据部分并进行语法和语义校验,实施严格的输入验证。通过对输入请求进行清洗、应用白名单和需要组织的关键字黑名单,并预定义合法请求的格式和规则进行验证,使用Lambda服务有助于防止LLM01:2025提示注入攻击。此外通过将user_id字段传递到下游应用中,可以使下游应用组件降低敏感信息泄露的风险,从而解决了LLM02:2025敏感信息泄露的问题。

同时亚马逊云科技Bedrock Guardrails提供了额外的大模型输入输出保护层,可过滤和拦截敏感内容,如个人身份信息(PII)以及通过正则表达式定义的自定义敏感数据。Guardrails还有检测和屏蔽攻击性语言、竞争对手名称或其他不希望出现的词语,确保输入和输出均安全。大家还可以利用 Guardrails在有害或操控性的提示词到达AI模型之前就进行检测和过滤,从而防止LLM01:2025提示注入攻击,维护提示词的完整性。

另一个关键的安全方面是管理AI模型的输出。由于AI模型可能生成包含可执行代码的内容,比如 JavaScript或Markdown,如果这些内容处理不当,就存在XSS攻击的风险。为降低此类风险,我们需要使用输出编码技术,例如HTML实体编码或JavaScript转义,在将内容呈现给用户前将任何潜在有害内容进行无害化转换。此方法解决了LLM05:2025输出处理不当的风险。

我们也可以利用亚马逊云科技Bedrock的提示管理和版本控制,使得在不断提升用户体验的同时,也能维持整个应用的安全性。通过完善管理提示词及其处理方式的变更,在增强IA模型功能的同时不会引入新的漏洞,并降低LLM01:2025提示注入攻击的风险。

降低未经授权或非预期的AI模型操作风险的策略的核心就是:“将AI模型视为不受信任的信息来源,并在某些操作上采用人工介入流程”。

亚马逊云科技Bedrock大语言模型与代理层

AI模型与AI模型代理层经常处理与AI模型的交互,面临诸如LLM10:2025不受限制的使用、LLM05:2025输出处理不当以及LLM02:2025敏感信息泄露等风险。

拒绝服务(DoS)攻击可能会通过大量资源密集型请求使AI模型处理不堪重负,从而降低整体服务质量并增加成本。在与亚马逊云科技Bedrock托管的AI模型交互时,设置诸如输入请求的最大长度等请求参数,将有助于降低AI模型资源耗尽的风险。此外亚马逊云科技Bedrock代理对队列中的最大动作数量以及完成客户意图的总动作数都有硬性限制,这限制了系统对AI模型代理基于用户需求所采取的总动作数量,避免了可能耗尽AI模型资源的异常死循环或密集任务。

输出处理不当会导致远程代码执行、跨站脚本(XSS)、服务器端请求伪造(SSRF)以及权限提升等安全漏洞。对AI模型生成的输出在发送到下游服务前,如果验证和管理不佳,就可能间接开放漏洞攻击面,让这些漏洞有机可乘。为降低这一风险,应将模型视为普通的应用用户一样,对 LLM生成的响应进行安全验证。亚马逊云科技Bedrock Guardrails利用可配置阈值的内容过滤器来过滤各种有害内容,并在这些响应被其他后端系统进一步处理之前就进行阻拦,从而简化了这一过程。Guardrails会自动评估用户输入和模型响应,检测并帮助防止有害的内容。

亚马逊云科技Bedrock代理在执行多步骤任务时,与亚马逊云科技原生服务以及外部的第三方服务安全集成,从而有效解决输出处理不安全、过量代理行为和敏感信息泄露的风险。在文章开头的架构图中,代理下的action group中的Lambda服务用于对所有输出文本进行编码,使其自动无法被 JavaScript或Markdown异常执行。此外action group中的Lambda函数会解析和记录代理每一步执行时从AI模型得到的回复,并根据恢复内容相应地控制输出,确保在下一步处理前输出内容完全安全。

敏感信息泄露是AI模型面临的另一大风险,因为恶意的提示工程可能会导致AI模型无意中在响应中泄露不该公开的细节,从而引发AI模型隐私和机密性问题。为缓解这一问题,可以通过亚马逊云科技 Bedrock Guardrails中的内容过滤器实施数据清洗措施。

另外还应根据user_id实施自定义、精细化的数据过滤策略,并根据id执行严格的用户访问策略。亚马逊云科技Bedrock Guardrails可以过滤敏感内容,亚马逊云科技Bedrock代理则通过允许大家在预处理输入的提示词模板和处理响应的提示词模板中实施自定义逻辑来去除任何非预期的有害信息,进一步降低了敏感信息泄露的风险。如果大家已为AI模型启用了模型调用日志记录,或者在应用中实施了自定义日志逻辑,将 AI模型的输入和输出记录到亚马逊云科技CloudWatch中,那我们也需要开启CloudWatch日志数据保护等措施,在CloudWatch日志中识别和屏蔽敏感信息,从而进一步降低敏感信息泄露的风险。


代理插件控制层(action group Lambda函数)

代理插件控制层经常需要与内部和外部服务集成,并对内部和外部数据源以及外部第三方API应用授权。LLM08:2025向量与嵌入薄弱性以及LLM06:2025代理行为过度的风险开始显现。不受信或未经验证的第三方插件可能会以恶意代码的形式引入后门或漏洞。

对与外部系统进行集成交互的action group Lambda函数所使用的IAM角色,应使用最小权限原则原则,有助于解决LLM06:2025代理行为过度和LLM08:2025向量与嵌入薄弱性的风险。从文章开头的架构图可以看出,代理插件层的Lambda函数便是关联了一个最小权限的 IAM 角色,用以安全访问和与其他内部亚马逊云科技服务进行交互。

此外在确定用户身份后,通过将user_id传递给下游集成应用(如代理插件层),通过基于用户id身份授权访问,从而进一步限制数据的访问。虽然这个user_id参数可在代理插件控制层的Lambda函数中用于自定义授权逻辑,但其主要作用就是用于为外部第三方插件提供基于用户身份的细粒度的访问控制。应用所有者有责任在action group Lambda函数中实施自定义授权逻辑,该自定义逻辑需要将user_id参数与开发者预定义授权规则相结合,为第三方API和插件应用配置安全的访问授权级别。此方法将确定性的访问控制应用于非确定性的AI模型前,使得对哪些用户可以访问和执行特定外部第三方插件实现了细粒度控制。

将基于user_id的数据授权与IAM角色的最小权限相结合,一般可最大限度地降低LLM08:2025向量与嵌入薄弱性以及LLM06:2025代理非预期行为的风险。


RAG知识库数据存储层

RAG的数据存储层负责安全地从各类亚马逊云科技上的数据源和外部第三方数据源中检索最新、精准且受到访问控制的数据。在默认情况下,亚马逊云科技Bedrock使用了KMS秘钥服务,加密所有与知识库相关的数据。大家也可以选择使用Customer managed的KMS密钥。在为知识库配置数据提取任务时,还可以使用Custom KMS密钥对任务进行加密。

如果大家想选取OpenSearch Service作为知识库的向量存储,Amazon Bedrock可将大家选择好的 KMS密钥传递给它进行向量数据加密。此外在生成查询知识库响应的会话中,也可以使用KMS密钥对会话进行加密。为了便于安全通信,Amazon Bedrock知识库在与第三方向量存储进行数据交互时,默认使用TLS加密,前提是该服务支持并允许TLS加密传输。

关于用户访问权限控制,亚马逊云科技Bedrock知识库使用筛选来管理对数据的访问权限。大家可以利用文件元数据和过滤功能,在知识库上构建数据隔离访问解决方案。在运行应用时,必须对用户进行身份验证和授权,并在请求中包含该用户的验证信息,以保持准确和一致的访问控制。为了使访问控制持续生效,大家应定期在筛选配置中重新同步配置,以反映用户权限变化。另外用户组也可以作为一个筛选属性,对知识库中的文件进行精细化访问控制。

这种方法有助于解决LLM02:2025敏感信息泄露和LLM08:2025向量与嵌入薄弱性的风险,确保只有授权用户才能访问相关数据。

总结

在本文中,小李哥如何利用亚马逊云科技生成式AI安全合规框架,从亚马逊云科技安全共担责任模型的角度对生成式AI应用分为5大类,对于不同类别我们应用了不同的安全控制。同时我们回顾了一个常见的生成式AI应用的安全架构和最佳实践,再利用OWASP Top 10 for LLM风险评估模型评估了genAI应用安全态势,同时展示了如何利用亚马逊云科技服务有效解决OWASP Top 10 for LLM的常见威胁和风险,从而保护生成式AI应用的系统。想了解更多关于在亚马逊云科技构建安全生成式AI应用和AI安全的信息,欢迎大家关注小李哥不要错过更多精彩文章。

学习交流/商务合作/联系我
微信名片
注:本文转载自blog.csdn.net的佛州小李哥的文章"https://blog.csdn.net/m0_66628975/article/details/145446447"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

128
网络空间安全
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top