什么是大型语言模型?
大型语言模型 (LLM) 是一种 AI 算法,可以处理用户输入并通过预测单词序列来创建合理的响应。他们在巨大的半公开数据集上接受训练,使用机器学习来分析语言的各个组成部分如何组合在一起。
LLM 通常提供一个聊天界面来接受用户输入,称为提示。允许的输入部分由 input validation rules 控制。
LLM 在现代网站中可以有广泛的用例:
客户服务,例如虚拟助手。
译本。
SEO 改进。
分析用户生成的内容,例如跟踪页面评论的语气。
LLM 攻击和提示注入
许多 Web LLM 攻击依赖于一种称为提示注入的技术。这是攻击者使用构建的提示来纵 LLM 输出的地方。提示注入可能会导致 AI 采取超出其预期目的的作,例如对敏感 API 进行错误调用或返回不符合其准则的内容。
检测 LLM 漏洞
我们推荐的检测 LLM 漏洞的方法是:
确定 LLM 的输入,包括直接 (如提示) 和间接 (如训练数据) 输入。
确定 LLM 可以访问哪些数据和 API。
探测这个新的攻击面是否存在漏洞。】
利用 LLM API、函数和插件
LLM 通常由专门的第三方提供商托管。网站可以通过描述供 LLM 使用的本地 API 来为第三方 LLM 提供对其特定功能的访问权限。
例如,客户支持 LLM 可能有权访问管理用户、订单和库存的 API。
LLM API 的工作原理
将 LLM 与 API 集成的工作流程取决于 API 本身的结构。调用外部 API 时,某些 LLM 可能要求客户端调用单独的函数终端节点(实际上是私有 API),以便生成可发送到这些 API 的有效请求。此作的工作流可能如下所示:
客户端使用用户的提示符调用 LLM。
LLM 检测到需要调用函数并返回一个 JSON 对象,其中包含符合外部 API 架构的参数。
客户端使用提供的参数调用函数。
客户端处理函数的响应。
客户端再次调用 LLM,将函数响应附加为新消息。
LLM 使用函数 response 调用外部 API。
LLM 总结了此 API 调用的结果,并将其返回给用户。
此工作流程可能会产生安全隐患,因为 LLM 实际上是代表用户调用外部 API,但用户可能不知道这些 API 正在被调用。理想情况下,在 LLM 调用外部 API 之前,应向用户显示确认步骤。
映射 LLM API 攻击面
术语“过度代理”是指 LLM 可以访问可以访问敏感信息的 API,并可能被说服以不安全的方式使用这些 API。这使攻击者能够将 LLM 推到其预期范围之外,并通过其 API 发起攻击。
使用 LLM 攻击 API 和插件的第一阶段是找出 LLM 可以访问哪些 API 和插件。一种方法是简单地询问 LLM 它可以访问哪些 API。然后,您可以询问有关任何感兴趣的 API 的更多详细信息。
如果 LLM 不合作,请尝试提供误导性的上下文并重新提出问题。例如,您可以声称您是 LLM 的开发人员,因此应该具有更高级别的权限。