[2412.20953] GASLITEing the Retrieval: Exploring Vulnerabilities in Dense Embedding-based Search
GASLITEing the Retrieval: Exploring Vulnerabilities in Dense Embedding-based Search

威胁模型
攻击者针对基于嵌入的 检索模型,旨在通过插入 精心制作的段落来提升信息 到检索语料库中。
攻击者的目标是 提升 恶意 信息 (𝑖𝑛𝑓𝑜),用于分布在 DQˇ 和检索器模型 R中的查询。 具体来说,攻击者希望: (1) 最大化对抗性段落 在针对性查询的排名靠前的结果中的 可见性 (∼DQˇ); (2) 确保该段落具有 信息量,传达攻击者选择的内容。 此外,攻击者可以通过对制作的段落施加约束(例如,流畅性)来优先考虑 隐蔽性,以规避潜在的 防御
攻击者的能力:攻击者可以 poison 检索语料库(一个集合 𝒫),插入对抗性文本段落,𝒫adv:={padv(1),padv(2),…},其数量 (|𝒫adv|) 定义了攻击 预算,使用 |𝒫adv|≪|𝒫|(例如,|𝒫adv|=10−5×|𝒫|)。
进一步假设可以进行白盒访问(即,攻击者可以访问 R 的权重)以检查检索器的最坏情况行为,这可以通过广泛使用开源、领先的模型来证明,其中一些被用于实际应用。攻击者 不能 控制模型权重或训练,他们也不能访问语料库 𝒫,因为它经常动态变化(例如,维基百科不断更新)。
目标查询分布 (DQˇ) 和攻击者的知识:
- “知道所有”的目标查询。 攻击者以一个已知的、有限的查询集 Q 为目标(即 DQˇ:=𝑈𝑛𝑖𝑓𝑜𝑟𝑚({q1,…,q|Q|}))。 先前的攻击方案侧重于此设置(有既定的攻击目标),主要针对单个查询 (|Q|=1)。
- “知道什么”类型的查询要以什么为目标。 攻击者的目标是 poison 一个特定的 概念,即针对与特定主题相关的查询。 DQˇ 具有潜在的无限支持,攻击者仅拥有(或合成生成)查询的样本 Q。
我们提出并专注于此设置,因为它与常见的搜索引擎优化(SEO)目标一致,其中,目标查询通常取决于推广内容或攻击上下文。 例如,当在面向用户的搜索中传播关于公众人物的虚假信息时,相关的受害者是提交 与该人物相关的查询 的用户。 类似地,当针对 RAG 时,攻击者旨在检索间接提示注入字符串以用于 与攻击上下文相关的查询(例如,在针对个人日历 RAG 时查询日程安排和会议)。
- 对目标查询“(几乎)一无所知”。 攻击者不加选择地针对具有显着词汇和语义变化的广泛查询分布 DQˇ。 攻击者仅获得查询样本 Q,并试图推广到未见过的查询。Corpus Poisoning攻击也评估了这种变体。
方法
对抗性目标
是很常规的期望最大化对抗性文段被检索到topk中的概率。
𝒫adv 必须满足约束 S(例如,携带 𝑖𝑛𝑓𝑜)并在 B 个段落的预算范围内。
首先假设没有约束,并且段落预算值只有1,后面再放宽这些假设。此时攻击者不能使用语料库P。把目标估计为:
【先计算一些样本问题的平均emb(目标查询分布的质心),拿来和对抗文段求相似度,目标是修改对抗文段,以最大化该相似度】
约束目标:为了确保 信息量 ,构建 padv,方法是将一个包含恶意信息的固定前缀 (𝑖𝑛𝑓𝑜) 与一个优化的触发器连接起来: padv:=𝑖𝑛𝑓𝑜⊕𝑡𝑟𝑖𝑔𝑔𝑒𝑟。保证前缀不变的情况下优化触发器,还可以添加其他约束,例如流畅度、文本困惑度
如何推广到更大的预算场景下?把查询集合Q划分为B个自己,分别攻击每一个子集,每个子集对应的优化公式都是公式2.作者在进行了多种划分方式之后发现kmeans算法最好地利用了给定的预算。
用GASLITE优化
引入了 GASLITE(Gradient-based Approximated Search for maLIcious Text Embeddings),一种基于多坐标上升梯度的算法,该算法迭代地改进文本触发器,以最大化对抗性段落和目标查询在嵌入空间内的相似度
首先计算目标向量,使用随机文本初始化触发器(L1,2)
对于 n𝑖𝑡𝑒𝑟 次迭代,计算目标函数的线性近似值,该值是基于 t 上 n𝑔𝑟𝑎𝑑 次随机单词翻转的平均值(L4,5)
随机选择 n𝑓𝑙𝑖𝑝 个令牌位置的子集(L6),在此子集中进行令牌替换,并对每个位置使用线性近似来识别 n𝑐𝑎𝑛𝑑 个有潜力的令牌替换方案(L8-9),过滤不可逆的令牌化方案(L10), 并评估剩余候选触发器上的精确目标函数,选择目标函数最大化的令牌替换来更新 t(L11)。
GASLITE 在三个关键方面对过去的方法进行了改进,每个改进都具有实证意义:(i) 它通过对从庞大词汇表中采样多个token替换的线性近似值进行平均,来精化目标近似值,从而扩展了 ARCA(Automatically auditing large language models via discrete optimization); (ii) 它在每次迭代中对多个位置的token进行替换,从而减少了每次替换所需的反向传递次数;以及 (iii) 它在攻击过程中保持了对抗性段落的性能(即从解码优化输入token生成的文本),因为攻击者向语料库中插入的是对抗性文本而非token。消除其中的每一个都会导致攻击成功下降 5–16%
实验设置
模型:
数据集:使用 MSMARCO passage 检索数据集, 包含 880 万个段落和 50 万个真实搜索查询, 我们分别对其进行中毒和目标攻击。从 ToxiGen 中采样有毒语句作为info。对于特定于概念的内容,使用 GPT4来创建负面陈述。还在NQ数据集上验证了结果
攻击:为了模拟最坏情况下的攻击,同时确保段落保持在良性段落长度内,作者评估 GASLITE 以创建段落,其中恶意前缀 𝑖𝑛𝑓𝑜 固定不变,后跟长度为 ℓ=100的触发器(即,padv:=𝑖𝑛𝑓𝑜⊕𝑡𝑟𝑖𝑔𝑔𝑒𝑟) 我们将 GASLITE 扩展到使用 k 均值的多预算攻击,用于查询分区。 对于额外的超参数,设置 niter=100、ngrad=50、ncand=128 和 nflip=20
基线:恶意文本仅由info组成、使用一个样本查询作为触发器(PoisonedRAG设置)、Corpus Poisoning。所有方法都使用 k-means 执行查询分区 并共享 𝑡𝑟𝑖𝑔𝑔𝑒𝑟 长度 (ℓ=100)
评估指标:根据 可见性 来衡量攻击的成功率。采用已建立的指标 appeared@k 衡量至少一个对抗段落 (padv∈𝒫adv) 出现在 前 k 个结果中的查询的比例;设置 k=10,根据常见的搜索应用程序 (例如,Google 搜索的第一页通常显示 10 个结果), 对保留的查询进行测量
评估基于嵌入的搜索的易感性
应对前文提到的三种不同的知识:
Knows ALL
研究表明,单一查询搜索引擎优化取得了最佳效果,精心制作的段落始终是排名第一的结果。
设置:目标问题是一个单一的查询,然后构造一个对抗文段。从嵌入空间的角度来看,这是问一个后缀控制文本(padv)与任意文本(q)的相似度有多高。对从 MSMARCO 中随机抽取的 50 个查询结果进行了平均。
结果:纯info从未出现在前10,但是参考PRAG方案,用查询本体q作为触发器,会把平均检索提高到30%以上。为什么Corpus Poisoning方案效果没那么好?这主要是(尽管不仅仅是)由于生成了对抗性token,一旦解码成文本并被token化为模型输入,结果与优化的token大相径庭。文章的方法设计的后缀更加具有相似度。
Knows What
攻击成功实现了针对特定概念的搜索引擎优化。只需插入 10 个伪造段落(中毒率≤0.0001%,可忽略不计),它就能在大多数查询和大多数模型的检索结果中获得前 10 名的可见度。
设置:考虑一个了解目标 概念 的攻击者,但对特定的目标查询一无所知。检查了 MSMARCO 数据集中查询的主题,使用 Spacy提取了查询中的所有名词,过滤掉在查询中出现 <100 次的名词,并在频率的第 15 到 85 百分位数之间选择概念,选择具有不同语义、最低歧义性和查询中不同频率的名词
将每个受攻击的概念与攻击者希望推广的恶意信息 (𝑖𝑛𝑓𝑜) 相关联;此信息通常与该概念相关,例如,针对概念 iphone 进行 SEO 的攻击者,可能希望推广与 iPhone 相关的信息。使用以下内容提示 ChatGPT-4o 来生成此 𝑖𝑛𝑓𝑜:
结果如图3,GASLITE 优于所有基线
Knows almost Nothing
与概念无关的搜索引擎优化相对具有挑战性,但仍有可能实现,通常需要毒化≥ 0.001% 的语料库,才能在>10% 的查询中检索到排名前 10 的结果。
设置;随机抽取了MSMARCO训练查询的5% (25K个查询),可用于攻击,预算为|𝒫adv|∈{1,5,10,50,100}。
结果。 GASLITE明显优于基线