提高LLM安全性的分步指南 原创
随着LLM持续火爆,如何实现其安全性成为组织必须思考的关键问题。
在过去一年中,关于大型语言模型(LLM)的讨论激增,这促使许多组织开始思考:我们应该如何保护人工智能?安全影响又是什么?
要回答这些问题,最好先了解一下LLM的运作原理。首先,我们简要介绍一下LLM和LLM应用程序是什么?LLM安全性与传统安全性有何不同?什么是保护LLM的良好框架?我们如何实现这些框架?
从某种角度来看,LLM的兴起就像当初的社交网络,试想一下社交网络是如何戏剧性地改变了我们的交流方式,以及它们又是如何沦为新型攻击的目标的。这些平台可以被操纵来传播错误信息或偏见,就像LLM如果不加以控制,可能会延续甚至放大它们所训练的数据中的现有偏见一样。出于这个原因,制定新的最佳实践来实现LLM安全性是十分必要的。
生成式人工智能(GenAI)的有趣事实
让我们从一些人工智能的有趣事实开始。据估计,《财富》2000强公司总共拥有大约100万个定制应用程序。云安全联盟(CSA)几年前的调查显示,在《财富》2000强企业中,每家公司平均拥有500个定制应用程序。这些应用程序越来越多地集成了人工智能,开发人员渴望在他们的工作中注入生成式人工智能功能。
据普华永道称,人工智能的潜在经济影响是惊人的,预测显示,到2030年,人工智能对全球经济的贡献将高达15.7万亿美元。这种增长将主要来自用新的人工智能驱动的工作流程来增强现有应用程序,而不是创建全新的应用程序。
考虑到这些数字,安全专业人员有必要清楚地了解将人工智能集成到这些应用程序中的意义。首先,让我们分析一下LLM是什么,以及它们的安全性与传统应用程序相比有何不同。
了解LLM(包括RAG)
从本质上讲,LLM可以被视为复杂的库或智能数据库。它们处理大量的人类语言数据,使它们能够大规模地理解、解释和生成文本。基于LLM的应用程序类似于传统的应用程序,但它不是查询数据库,而是与LLM交互,LLM根据其训练数据生成响应。可以使用一种称为检索增强生成(retrieve -augmented generation,RAG)的技术,在运行时使用额外的私有数据对LLM数据集进行扩展。具体流程如下所示:
数据安全挑战
由于LLM依赖于大型非结构化数据集,因此保护LLM具有独特的挑战性。主要问题包括几下几点:
- 数据隐私和机密性:LLM需要大量数据,这增加了在培训和查询处理期间暴露敏感信息的风险。
- 外部数据依赖性:外部数据源的集成可能会引入偏差和操作风险。
- 模型盗窃:如果LLM被盗并进行逆向工程,那么它所训练的数据可能会暴露。
- 缺乏内省(Introspection):与传统数据库不同,LLM是黑匣子,很难精确定位和管理其中的特定信息片段。
为了说明这些风险,我来分享一个个人轶事。去年冬天,我在亚马逊上买毛衣时注意到他们的应用程序提供了人工智能生成的客户评论摘要。出于好奇,我决定测试一下它的极限,让它用Python编写一个反向shell。令我惊讶的是,人工智能提供了一个完整而详细的脚本,包括对攻击者和受害者的说明。这一事件凸显了LLM如果没有得到适当的保护,即使在客户服务等看似无害的应用程序中也可能被滥用。
为了降低这些风险,我们需要采用一个全面的框架来保护LLM,同时关注数据层和语义层。
保护LLM安全性的框架
1. 发现LLM应用程序:首先确定组织内的所有LLM应用程序。这可以通过检查云使用情况(AWS Bedrock、Google Vertex AI、Azure OpenAI)或使用工具跟踪API使用情况和相关资源来完成。
2. 保护数据接口:为训练数据、检索增强数据、提示和响应需要实现强大的扫描和处理过程。具体包括以下几点:
- 数据存储扫描器:使用数据安全状态管理(DSPM)等工具扫描和清理数据存储。
- 按需扫描仪:实时评估文档,以确保在将文档提供给LLM之前不包含敏感数据。
- 按需文本扫描器:对提示和响应应用类似的检查,以防止敏感信息的暴露。
3. 实施策略匹配:除了扫描敏感数据,还可以采用人工智能驱动的策略执行来解决偏见、幻觉和其他细微的威胁。这涉及到创建一个策略库来定义可接受的AI行为,并确保所有交互都符合这些策略。
4. 构建语义防火墙:将DSPM和策略实施结合起来,创建一个语义防火墙(Semantic Firewall),以保护静态和动态数据。此防火墙可以充当代理,过滤和清理与LLM的所有交互,以确保符合安全策略。具体可以遵循以下最佳做法来制定有效的政策:
- 简要:从简单、清晰的策略开始,并经常调整。
- 模块化:将企业范围的策略与特定于部门的指导方针分开,以实现灵活性和精确性。
- 成本管理:要注意与高级检查和优化相关的成本,特别是对于大型企业。
结语:从检测影子LLM开始
与传统技术相比,LLM是一种完全不同的类型,因为它们近似于人的层面,当然,保护本质上是保护所有OSI层,但最重要的是保护数据和语义。要做到这一点,首先要了解所有的LLM,包括那些安全和IT团队甚至不知道它们正在被使用的“影子LLM”。接下来,就可以实现数据层保护和AI策略匹配。最后,您便可以开发和实施全面的语义层保护。
原文标题:A Step-by-Step Guide to Improving Large Language Model Security,作者:Ravi Ithal