订阅以接收新文章的通知:

Cloudflare 宣布推出 Firewall for AI

2024-03-04

8 分钟阅读时间
这篇博文也有 EnglishFrançaisDeutsch日本語한국어PortuguêsEspañol繁體中文版本。

今天,Cloudflare 宣布开发 Firewall for AI(用于人工智能的防火墙),作为部署在大语言模型(LLM)前的保护层,用于识别和防止滥用模型的行为。

Cloudflare announces Firewall for AI

随着人工智能(AI)模型,特别是大型语言模型,正在快速发展,客户告诉我们,他们关注保护自有 LLM 的最佳策略。在接入互联网的应用程序中使用 LLM 会引入新的漏洞,可能会被不法分子所利用。

一些影响传统网站和 API 应用程序的漏洞也适用于 LLM 领域,包括注入或数据泄露。然而,由于 LLM 的工作方式,出现了一系列全新威胁。例如,研究人员最近在一个 AI 协作平台中发现了一个漏洞,允许他们劫持模型并执行未经授权的操作。

Firewall for AI 是一个高级的 Web 应用程序防火墙(WAF),专为使用 LLM 的应用程序量身定制。其中将包括一组工具,供部署在应用程序前面,以检测漏洞并为模型所有者提供可见性。这个工具包将包括已经是 WAF 一部分的产品,如速率限制和敏感数据检测,以及一个目前正在开发中的全新保护层。这一全新验证功能将分析最终用户提交的提示词,以识别利用模型提取数据的企图和其他滥用尝试。通过利用 Cloudflare 网络的规模,Firewall for AI 在尽可能靠近用户的地方运行,使我们能够提前发现攻击,同时保护最终用户和模型免受滥用和攻击。

在深入介绍 Firewall for AI 如何工作及其完整功能集之前,让我们首先看一下 LLM 的独特之处,以及它们引入的攻击面。我们将使用 OWASP  LLM 应用程序十大风险作为参考。

为什么 LLM 不同于传统应用程序?

在考虑基于 LLM 的互联网应用程序时,与传统 Web 应用程序相比,有两个主要区别。

第一是用户与产品交互的方式。传统应用程序本质上确定性的。以银行应用程序为例,它是由一系列操作定义的(查看我的余额,进行转账等)。通过控制这些端点接受的一组具体操作:“GET /balance” 或 “POST /transfer”,即可确保业务操作(和数据)的安全性。

LLM 操作在设计上就是非确定性的。首先,LLM 交互基于自然语言,这使得识别有问题的请求比匹配攻击特性更困难。此外,除非响应被缓存,大语言模型通常每次都会提供不同的响应 —— 即使重复相同的输入提示。因此,限制用户与应用程序互动的方式要困难得多。这也对用户构成了威胁,因为用户可能会接触到错误的信息,从而削弱对模型的信任。

其次,一个重大区别是应用程序控制平面与数据交互的方式。在传统应用程序中,控制平面(代码)与数据平面(数据库)是明显分离的。定义的操作是与底层数据交互的唯一方式(例如显示我的支付交易历史记录)。这允许安全从业者专注于为控制平面添加检查和防护措施,从而间接地保护数据库。

LLM 的不同之处在于,训练数据通过训练过程成为模型本身的一部分,因而极难控制在作为用户提示的结果中数据的共享方式。人们正在探索一些架构性解决方案,例如将 LLM 分成不同的层级并隔离数据。然而,快速有效的解决方案还未找到。

从安全角度来看,这些差异允许攻击者设计针对 LLM 的全新攻击手段,绕开为传统网络应用程序设计的现有安全工具的监测。

OWASP LLM 漏洞

OWASP 基金会发布了 LLM 十大漏洞清单,为考虑如何保护语言模型提供了一个有用的框架。其中一些威胁类似于 OWASP 的 Web 应用程序十大漏洞,另一些则是语言模型所特有的。

类似于 Web 应用程序,其中一些漏洞在 LLM 应用程序设计、开发和训练时予以解决效果最佳。例如,_训练数据投毒_可在用于训练新模型的数据集中引入漏洞。当模型上线时,有害的信息就会呈现给用户。 供应链漏洞_和_不安全的插件设计​ 是添加到模型的组件(如第三方软件包)中引入的漏洞。 最后,处理_过度代理_时,管理授权和权限至关重要,因为不受约束的模型可能在更广泛的应用程序或基础设施中执行未经授权的操作。

相反,通过采用像 Cloudflare Firewall for AI 这样的代理安全解决方案,可以缓解_提示词注入_、_模型拒绝服务_和_敏感数据泄露_等漏洞。接下来,我们将提供有关这些漏洞的更多细节,并讨论 Cloudflare 如何具备缓解这些风险的最佳优势。

LLM 部署

语言模型的风险也取决于部署方式。目前,我们看到三种主要的部署方法:内部、公共和产品 LLM。以上三种情况下,您都需要保护模型免受滥用,保护模型中存储的任何专有数据,并保护最终用户免受错误信息或不当内容的影响。

  • **内部 LLM:**公司开发 LLM 以支持员工的日常任务。这些模型被视为企业资产,不应该被非员工访问。例如,一个以销售数据和客户交互训练的 AI 副驾用于生成定制化提案,或者一个以内部知识库训练的 LLM 供工程师进行查询。

  • 公共 LLM: 这些是可以在公司边界之外访问的 LLM。这些解决方案通常提供任何人都可以使用的免费版本,它们通常是使用一般或公共知识训练的。例如 OpenAI 的 GPT 或 Anthropic 的 Claude

  • **产品 LLM:**从企业角度看,LLM 可以成为提供给客户的产品或服务的一部分。这些通常是自托管的、定制化的解决方案,可以作为与公司资源互动的工具提供。例如客户支持聊天机器人或 Cloudflare AI Assistant

从风险角度来看,产品和公共 LLM 之间的区别在于谁承受成功攻击的影响。公共 LLM 被认为威胁到数据,因为最终进入模型的数据可以被几乎任何人访问。这就是许多公司建议员工不要在公开可用服务的提示中使用保密信息的原因之一。如果模型在训练过程中(按照设计或意外地)访问了专有信息,产品 LLM 可以被视为对公司及其知识产权的威胁。

Firewall for AI

Cloudflare Firewall for AI 将如同传统 WAF 一样部署,对每一个带有 LLM 提示的 API 请求进行扫描,以寻找潜在攻击的模式和特征。

Firewall for AI 可部署托管于 Cloudflare Workers AI 平台的模型前面,或者托管于任何第三方基础设施上的模型前面。它可以与 Cloudflare AI Gateway 一起使用,客户将能使用 WAF 控制平面来控制和设置 Firewall for AI。

Firewall for AI 的工作方式类似于传统的 Web 应用程序防火墙。它部署在 LLM 应用程序前面,并扫描每个请求以识别攻击特征。

防止容量耗尽攻击

OWASP 列出的威胁之一是模型拒绝服务攻击。类似于传统应用程序,DoS 攻击 是通过消耗异常大量的资源来执行的,这会导致服务质量降低或可能增加模型运行成本。鉴于 LLM 运行所需的资源量和用户输入的不可预测性,这种类型的攻击可能会造成破坏。

通过采用速率限制策略来控制单个会话的请求速率,从而控制上下文窗口,可以缓解这种风险。今天就通过 Cloudflare 代理您的模型,您将获得开箱即用的  DDoS 防护。您还可以使用速率限制和 高级速率限制,通过设置会话期间单个 IP 地址或 API 密钥执行的请求的最大速率,管理对模型的请求速率。

通过敏感数据检测功能识别敏感信息

有两种适用于敏感数据的用例,取决于您是否拥有模型和数据,还是想要防止用户将数据发送到公共 LLM。

根据 OWASP 的定义,_敏感数据泄露_是指 LLM 无意中在响应中透露机密数据,导致未经授权的数据访问、隐私侵犯和安全漏洞。防止这种情况的一种方法是添加严格的提示验证。另一种方法是在个人身份信息(PII)离开模型时予以识别。一种相关的情况是当模型是使用公司知识库训练时,其中可能包含敏感信息,例如 PII(如社会安全号码)、专有代码或算法。

客户使用位于 Cloudflare WAF 后面的 LLM 模型时,可以使用敏感数据检测(SDD)WAF 托管规则集来识别模型在响应中返回的特定 PII。客户可以在 WAF 安全事件中查看 SDD 匹配项。今天,SDD 以一套托管规则的形式提供,设计为扫描财务信息(例如信用卡号)以及秘密(API 密钥)。作为路线图的一部分,我们计划允许客户创建自己的自定义指纹。

另一个用例旨在防止用户与外部 LLM 提供商(例如 OpenAI 或 Anthropic)共享 PII 或其他敏感信息。为了防范这种情况,我们计划扩展 SDD 以扫描请求提示,并将其输出与 AI Gateway 集成,在那里,依据请求的历史记录,我们会检测请求中是否包含特定敏感数据。我们将从使用现有的 SDD 规则开始,并计划允许客户编写自己的自定义特征。与此相关,我们听到很多客户谈论的另一个功能是混淆。一旦可用,扩展的 SDD 将允许客户在提示词到达模型之前,混淆特定敏感数据。请求阶段的 SDD 正在开发中。

防止模型滥用

模型滥用是一种更广泛类型的滥用。其中包括像“提示词注入”的方法,即提交的请求让模型产生幻觉,或导致不准确、冒犯性、不适当或完全偏离主题的响应。

提示词注入是通过特别构造的输入来操纵语言模型的一种尝试,导致 LLM 产生非预期的回应。注入会产生各种结果,从提取敏感信息到通过模仿与模型的正常互动来影响决策。提示词注入的一个经典例子是操纵简历以影响简历筛选工具的输出。

从我们的 AI Gateway 客户处听到的一个常见用例是,他们想要避免应用程序产生有毒、冒犯性和有问题的语言。不对模型的结果进行控制的风险包括声誉损害和通过提供不可靠的回应而损害最终用户。

通过在模型前面增加一个额外的保护层,可以管理这些类型的滥用。这个层可以被训练用来阻止注入尝试或阻挡那些属于不适当类别的提示词。

提示词和响应验证

Firewall for AI 将运行一系列检测,旨在识别提示词注入尝试和其他滥用行为,比如确保主题停留在模型所有者定义的边界内。就像其他现有的 WAF 功能一样,Firewall for AI  将自动寻找 HTTP 请求中嵌入的提示词,或允许客户根据在请求的 JSON 主体中可以找到提示词的位置来创建规则。

一旦启用,防火墙将分析每个提示词并根据其是恶意的可能性提供一个评分。它还会根据预定义的类别对提示词进行标记。评分范围从 1 到 99,代表提示词注入的可能性,1 表示最有可能。

客户将能够创建 WAF 规则,以阻止或处理在一个或两个维度中具有特定评分的请求。您将能够将这一评分与其他现有信号(例如机器人评分或攻击评分)结合起来,以确定应该允许请求到达模型,还是应该予以阻止。例如,它可以与机器人评分结合使用,以识别请求是否恶意和由自动化来源产生。

检测提示词注入和提示词滥用是 Firewall for AI 范围的一部分。产品设计的早期迭代。

除了评分外,我们还将为每个提示词分配标记,这些标记可在创建规则时使用,以防止属于这些类别中任何之一的提示词到达其模型。例如,客户将能够创建规则以阻止特定主题。例如,使用攻击性词汇,或与宗教、性内容或政治相关的词汇。

我如何能够使用 Firewall for AI?谁能使用?

使用 Application Security Advanced 的 Enterprise 客户可立即开始使用高级速率限制和敏感数据检测(响应阶段)功能。这两个产品都位于 Cloudflare 仪表板的 WAF 部分。 Firewall for AI 的提示词验证功能目前正在开发中,测试版将在未来几个月内向所有 Workers AI 开放。欢迎加入等候名单,以便在该功能推出时获得通知。

总结

Cloudflare 率先推出 AI 应用程序保护工具套件的安全提供商之一。通过使用 Firewall for AI,客户可以控制哪些提示词和请求到达他们的语言模型,从而减少滥用和数据泄露的风险。欢迎继续关注,以进一步了解 AI 应用程序安全的发展。

我们保护整个企业网络,帮助客户高效构建互联网规模的应用程序,加速任何网站或互联网应用程序抵御 DDoS 攻击,防止黑客入侵,并能协助您实现 Zero Trust 的过程

从任何设备访问 1.1.1.1,以开始使用我们的免费应用程序,帮助您更快、更安全地访问互联网。要进一步了解我们帮助构建更美好互联网的使命,请从这里开始。如果您正在寻找新的职业方向,请查看我们的空缺职位
Security WeekAI安全性Developer PlatformWAFLLMApplication Services

在 X 上关注

Cloudflare|@cloudflare

相关帖子

2024年10月31日 13:00

Moving Baselime from AWS to Cloudflare: simpler architecture, improved performance, over 80% lower cloud costs

Post-acquisition, we migrated Baselime from AWS to the Cloudflare Developer Platform and in the process, we improved query times, simplified data ingestion, and now handle far more events, all while cutting costs. Here’s how we built a modern, high-performing observability platform on Cloudflare’s network....

2024年10月24日 13:05

Build durable applications on Cloudflare Workers: you write the Workflows, we take care of the rest

Cloudflare Workflows is now in open beta! Workflows allows you to build reliable, repeatable, long-lived multi-step applications that can automatically retry, persist state, and scale out. Read on to learn how Workflows works, how we built it on top of Durable Objects, and how you can deploy your first Workflows application....