【论文分享】坏字符:难以察觉的NLP攻击

AI 2年前 (2022) admin
450 0 0

本次分享的论文主题是基于编码的自然语言处理对抗攻击,主要研究人员来自于剑桥大学。该攻击的目标在于生成恶意文本输入,使其绕过文本模型检测。区别于传统的基于词的文本对抗攻击,该工作提出了一种全新的基于编码的攻击, 使得篡改后的文本输入与原始输入的差异在视觉上难以分辨。该攻击不依赖于攻击者对目标模型的假设,可以广泛攻击不同任务的自然语言系统。作者在由Google、Microsoft等部署的商业NLP模型以及由Facebook、IBM、HuggingFace等发布的开源模型上进行了实验, 证实了该攻击的有效性以及隐蔽性。该论文发表于IEEE S&P 2022(录取率 14.52%)。

【论文分享】坏字符:难以察觉的NLP攻击

全文约2900字,阅读时间约7分钟。

01

【背景介绍】


针对机器学习模型的对抗攻击旨在生成不影响人工判断但能绕过机器判断的样本。早期的对抗攻击主要对图像施加扰动生成对抗样本, 并通过像素值间的距离衡量和限制扰动的大小。由于像素值是连续的,攻击者可以设计损失函数, 通过基于梯度的方法进行优化,得到对模型输出改变最大的扰动。


而由于文本的离散特性,针对文本模型的对抗攻击很难在保证成功率的情况下保持语义不变和语言流畅。此前,研究者提出同义词替换、字符替换等方法对样本施加扰动,或利用拼写错误[1]降低神经机器翻译和文本分类等模型的性能,但这类扰动很容易被辨认出来。此外,通过回译(即两次机器翻译)的改写[2] 能够更大程度上保留文本的整体语义,但其生成的文本较为生硬。


本文通过在字符电子编码(Unicode)层面施加扰动弥补了已有方法的不足。Unicode是用于标准化文本电子表示的字符集。拉丁字母、繁体中文字符、数学符号和表情符号等多种字符都可以用 Unicode 表示。Unicode将每个字符映射到代码点或数字表示形式。这些数字码位通常用前缀 U+ 表示,可以通过多种方式进行编码。其中UTF-8 是最常见的,将代码点表示为 1-4 个字节。而字体是描述应如何呈现代码点的字形集合,没有相应字形的代码点通常呈现为“未知”占位符。


由于Unicode支持全球多种语言集,其规范非常复杂,也存在一些安全风险。在网络犯罪领域,攻击者可以利用字形视觉效果相似的Unicode字符实施诈骗[3],例如使用paypaI(大写i).com仿冒paypal(小写L).com。


这种攻击思路同样可以应用于文本对抗。考虑到人类读者通过视觉上的字形读取文本,而自然语言处理模型则通过文本的编码读取文本,  并进行分词(tokenization)、获取词嵌入表示(embedding)等预处理操作。未出现在词表(vocabulary)中的词统一被当作<unk>处理。因此,利用Unicode规范的复杂性,攻击者可以在编码层面实现肉眼无法辨认的扰动(例如不可见字符等),从而生成可绕过多种自然语言处理任务的对抗样本。


02

【攻击场景】


本文提出的攻击是黑盒攻击,即攻击者可以仅能访问模型输出,而不了解模型内部细节。攻击者通过在一定的扰动预算内修改模型输入,达到篡改模型输出的目标。扰动预算指生成的对抗样本与原样本之间的距离。具体攻击目标分为两种:完整性攻击(Integrity Attack), 即更改模型判断结果; 可用性攻击(Availability Attack), 即增加模型判断所需时间。


03

【攻击方法】


本文提出了四种基于Unicode编码的对抗攻击方法:


1. 不可见字符 (Invisible Characters):插入不显示字形的有效字符, 如图表1所示。Unicode中的零宽度空格字符ZWSC,ZWNJ,  ZWJ (U+200B, U+200C, U+200D)可用于构建此类攻击。论文利用 GNU’s Unifont glyphs对字符可见性进行判断,并筛选不显示的字符 。此类字符对于人类读者不可见,但对于NLP模型来说是有效输入,可以影响模型的准确度和效率。在词与词之间插入不可见字符可导致模型将不可见字符识别为<unk>, 在词中插入将导致原单词分裂为词频更低的词或<unk>。

【论文分享】坏字符:难以察觉的NLP攻击

图表1: 左侧为文本输入,右侧为模型翻译结果。红色方框标出的位置插了不可见字符

2. 同形字 (Homoglyphs):替换成字形相同的其他字符, 如图表2所示。论文利用Unicode Consortium发布的同形字/形近字报告[4]可替换的字符组合。输入文本的扰动位置会对NLP模型判断产生影响,将扰动后的词识别为词频更低的词或<unk>,但对人类读者来说,视觉上的效果以及相应的理解是不会改变的。

【论文分享】坏字符:难以察觉的NLP攻击

图表2: 左侧为文本输入,右侧为模型翻译结果。红色方框中的字符在恶意样本中被替换成同形字

3. 重定向 (Reorderings): 改变字形显示的顺序, 如图表3所示。论文利用Unicode规范中定义的Bidirectional (Bidi) Algorithm[5]进行重定向编码,此后NLP模型在输入文本的扰动位置将按照从右到左的顺序读取文本, 即与人类读者实际看到的顺序相反。

【论文分享】坏字符:难以察觉的NLP攻击

图表3:左侧为文本输入,右侧为模型翻译结果。红色圈内的字符以倒序显示(即显示顺序与底层编码顺序相反)

4. 删除 (Deletions): 插入删除控制字符, 如图表4所示。可选的字符包括 backspace字符(U+0008)、delete字符、carriage return字符 (不显示行首到当前字符)等,NLP模型能够识别扰动位置插入的字符及用于删除控制的字符,并按照删除后的结果进行理解。然而人类阅读者是无法肉眼识别并理解此类字符的。

【论文分享】坏字符:难以察觉的NLP攻击

图表4:左侧为文本输入,右侧为模型翻译结果。红色方框标出了与删除控制字符同时插入的字符


04

【实验结果】


本文在多个大型商业模型(Microsoft,Google)及开源模型( Facebook, IBM, HuggingFace)进行了评估实验,在机器翻译、有害内容检测、文本蕴含、命名实体识别与情感分析等多个自然语言处理任务上充分验证了该攻击的有效性。下面将选择性地列举部分验证结果。


1. 在机器翻译任务中,作者使用WMT14数据集(英语-法语), 在不同的扰动预算下各生成了500句对抗样本,使用BLEU评估完整性攻击, 用平均预测时间评估可用性攻击, 结果如图表5-6所示。


【论文分享】坏字符:难以察觉的NLP攻击

图表5: 机器翻译任务上的完整性攻击


【论文分享】坏字符:难以察觉的NLP攻击

图表6: 机器翻译任务上的可用性攻击


2. 在有害内容检测任务中,作者使用Wikipedia Detox 数据集在不同扰动预算下各生成了250句有害文本的对抗样本,并评估有害文本的检出率,结果如图表7所示。其中,同形字、重定向与删除操作可有效降低模型效果(减少近75%), 而插入不可见字符则几乎没有影响。


【论文分享】坏字符:难以察觉的NLP攻击

图表7: 有害内容检测任务上的可用性攻击


3. 在文本蕴含任务中,作者评估了在MNLI语料库上微调的RoBERTa模型,在不同扰动预算下从MNLI的测试集中各生成了500个对抗样本。有目标与无目标攻击的结果如图表8所示。

【论文分享】坏字符:难以察觉的NLP攻击

图表8: 文本蕴含任务上的可用性攻击


4. 作者在无目标文本蕴含任务上比较了该方法与传统的文本对抗攻击的有效性,结果如图表9所示。可见论文提出的不可察觉的攻击方法可以达到与传统易被察觉的攻击方法相似的有效性。


【论文分享】坏字符:难以察觉的NLP攻击

图表9:可察觉攻击与不可察觉攻击的有效性对比


此外,论文还对攻击的应用场景进行了分析,包括但不限于生成毒样本(poisoning)并逃避检测、在索引系统中隐藏文档、降低搜索质量、对 NLP 系统进行拒绝服务(denial-of-service)攻击等。作者还讨论了可能的防御方法,即提取文本的图像表示,并使用光学字符识别系统(光学字符识别)抽取其中的文本内容,将抽取的结果当作NLP系统的输入。作者在英-法翻译任务上重新评估了该防御方法的有效性,结果如图表10所示。可以看到,该方法可有效防御论文所提出的四种对抗攻击。


【论文分享】坏字符:难以察觉的NLP攻击

图表10:通过OCR防御编码扰动攻击


05

【结论】


基于语言编码的文本对抗攻击可以改变模型输出并增加推理运行时间,而无需修改输入的视觉外观。论文系统地探索了针对NLP系统的文本编码漏洞,开发了攻击方法,并详细探讨了如何将其用于误导和毒害机器翻译、有害内容检测、文本蕴涵分类、NER和情感分析系统。事实上,攻击方法可以用于任何处理自然语言的机器学习模型。与已有研究相比,本文提出的攻击方法可在保证对抗文本难以被人类识别(攻击“扰动更小”)的基础上,达到与已有的、易被人类察觉(攻击“扰动更大”)的对抗文本相似的攻击效率。本文也提出了针对此类攻击的防御措施,并建议所有构建和部署基于文本的NLP系统的公司实施此类防御措施。


原文链接

https://arxiv.org/pdf/2106.09898.pdf


参考文献

[1] J. Gao, J. Lanchantin, M. L. Soffa, and Y. Qi, “Black-box generation of adversarial text sequences to evade deep learning classifiers,” in 2018 IEEE Security and Privacy Workshops (SPW), May 2018, pp. 50–56.

[2] J. Wieting, J. Mallinson, and K. Gimpel, “Learning paraphrastic sentence embeddings from back-translated bitext,” in Proceedings of the 2017 Conference on Empirical Methods in Natural Language Processing. Copenhagen, Denmark: Association for Computational Linguistics, Sep. 2017, pp. 274–285.

[3] G. Simpson, T. Moore, and R. Clayton, “Ten years of attacks on companies using visual impersonation of domain names,” in APWG Symposium on Electronic Crime Research (eCrime). IEEE, 2020.

[4] “Unicode security mechanisms for uts #39: Confusables,” Feb. 2020. [Online]. https://www.unicode.org/Public/security/latest/confusables.txt

[5] The Unicode Consortium, “Unicode Bidirectional Algorithm,” The Unicode Consortium, Tech. Rep. Unicode Technical Report #9, Feb. 2020.  https://www.unicode.org/reports/tr9/tr9-42.html



编辑&审校|张一铭、刘明烜、刘保君



原文始发于微信公众号(NISL实验室):【论文分享】坏字符:难以察觉的NLP攻击

版权声明:admin 发表于 2022年12月23日 下午5:31。
转载请注明:【论文分享】坏字符:难以察觉的NLP攻击 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...