原文标题:From Chatbots to Phishbots?: Phishing Scam Generation in Commercial Large Language Models
原文作者:Sayak Saha Roy, Poojitha Thota,Krishna Vamsi Naragam, Shirin Nilizadeh原文链接:https://ieeexplore.ieee.org/document/10646856发表会议:IEEE Symposium on Security and Privacy笔记作者:牟浩天@安全学术圈主编:黄诚@安全学术圈编辑:张贝宁@安全学术圈
1、引言
大型语言模型(LLMs)在众多应用中具有变革性,但其有效性和可访问性也使其容易被滥用以生成恶意内容,如网络钓鱼攻击。基于此,文章探讨了四种流行的商业大型语言模型(GPT 3.5 Turbo、GPT 4、Claude 和 Bard)生成功能性网络钓鱼攻击的潜力。文章通过研究发现,这些 LLMs 可以生成逼真的网络钓鱼网站和电子邮件,且能模仿知名品牌,同时采用多种逃避检测的策略。文章在评估 LLMs 生成攻击的性能的过程中还发现通过递归方式利用 LLMs 生成恶意提示,可显著减少攻击者在提示工程方面的工作量。作为对策,文章研究构建了一个基于 BERT 的自动化检测工具,用于早期检测恶意提示,防止 LLMs 生成网络钓鱼内容。 文章已经向相关 LLMs 开发商披露了所发现的漏洞,其中谷歌已确认这是一个严重问题。
2、相关工作
商业 LLMs 的应用。文章讨论了商业 LLMs 在不同领域的应用,如内容创作、软件开发中的故障排除、数字学习等,并探讨了 ChatDoctor 和 PMC-LLaMA 在提高大语言模型在医疗领域理解能力的相关研究。
大型语言模型的滥用。文章指出商业 LLMs 存在被滥用的风险,攻击者通过越狱提示攻击、提示注入和代码注入攻击等手段生成如恶意软件和虚假信息这样的恶意内容。
网络钓鱼攻击检测。文章介绍了多年来研究人员为理解和应对网络钓鱼攻击所采取的有效策略,包括传统的机器学习算法和基于预训练语言模型的方法。
3、威胁模型
使用商业LLM生成钓鱼诈骗的攻击者威胁模型如下图所示。
攻击者通过提交多个提示,利用商用LLM来构建完整的钓鱼攻击,包括钓鱼邮件及其对应的网站。钓鱼邮件旨在伪装成知名品牌或组织,同时设计文本内容,通过诱导混淆或增加紧迫感这种钓鱼策略,促使用户点击外部链接。相关的钓鱼网站则被设计成实现模仿知名组织平台的外观和功能元素、欺骗用户提供敏感信息、收集数据无缝传输回攻击者等多个目标。在LLM生成钓鱼内容后,攻击者将钓鱼站点托管在选定的域名上,并将站点链接嵌入钓鱼邮件中后发送给目标用户。
利用LLM创建这些钓鱼诈骗,为攻击者提供了多种优势。LLM不仅允许快速且大规模地生成钓鱼内容,而且其用户友好性也确保了无论技术能力如何,广泛的攻击者都能使用这些内容,这使得即使是技术不熟练的人也能采用复杂的规避方法。
4、本文方法
下图展示了文章探索商业LLM在创建钓鱼网站和电子邮件诈骗方面的能力,并设计出有效的检测模型,通过三个关键阶段防止此类生成的方法。
(1)提示设计与钓鱼诈骗生成。文章展示了如何设计提示词以绕过 LLMs 的内容过滤机制,并生成用于网络钓鱼攻击的功能性组件,同时探讨了如何利用 LLMs 自动复制这些提示以扩展攻击规模。
(2)生成网络钓鱼骗局的有效性。文章对 LLMs 生成的钓鱼网站进行了质量评估,并比较了其与人类生成的网络钓鱼内容在反网络钓鱼工具检测下的表现。
(3)网络钓鱼提示的自动检测。文章设计了一个基于机器学习的检测模型,用于实时检测恶意提示,防止 LLMs 生成恶意内容。
5、钓鱼网站的生成
文章的本节重点在于利用商业大语言模型(LLM)创建各种类型的钓鱼网站,全面展示LLM可能生成的潜在钓鱼威胁,这些威胁涵盖多种攻击类型,表1总结了现有文献中已识别和分析的八种不同的钓鱼攻击类型。
5.1 提示词的结构
商业 LLM 由于内置的滥用检测模型,在直接被要求生成钓鱼攻击时会拒绝执行。文章指出攻击者要设计提示词,使其不显示恶意意图,从而使LLM能够生成可用的功能组件,并将其组合起来创建钓鱼网站。攻击者可以设计包含四个主要功能组件的提示:
(1)设计组件:首先,要求 LLM 创建一个受目标组织或品牌官方网站启发的设计(而不是模仿它)。LLM可以创建与目标网站非常相似的设计样式表和网站布局资源。
(2)凭据窃取组件:在模拟网站设计之后,可以生成相关的凭证获取对象,例如输入字段、登录按钮、输入表单等。
(3)漏洞利用组件:可以要求LLM基于规避型漏洞实现功能。例如,对于文本编码漏洞,提示词要求将所有可读网站代码以ASCII 形式编码。对于reCAPTCHA验证码漏洞,提示词可以要求创建一个多阶段攻击,其中第一页包含二维码,该二维码导向第二页,其中包含获取凭证的组件。
(4)凭证传输组件:最后,可以要求LLM创建必要的JS函数或PHP脚本,将受害者在钓鱼网站上输入的凭证发送给攻击者。
这些功能指令可以合并为一个单一的提示,或者按顺序逐个提示词。通过这种方法,文章表明攻击者可以成功生成常规和规避型网络钓鱼攻击。这些提示也可以与品牌无关,即它们可用于针对任何品牌或组织。
5.2 提示词的构建
文章评估了生成表 1 中描述的网络钓鱼攻击所需的迭代提示数量,发现不同技术水平的编码者在生成利用提示方面的表现相似,表明使用 ChatGPT 等工具生成网络钓鱼攻击不需要广泛的安全知识。并在下一小节中进一步探索了利用大语言模型自动生成提示的可行性,以期自主地简化这一过程。
5.3 提示词的自动化生成
手动设计提示词较为耗时,但文章发现 LLMs 可以通过输入手工制作的提示并要求生成具有相同功能的多个提示来帮助攻击者自动化这一过程,从而快速生成大量提示,将其生成的提示再反馈给 LLM,即可生成对应的网络钓鱼攻击源代码。这种循环机制使得攻击者能够不断优化提示,并生成更复杂和有效的网络钓鱼攻击。
5.3.1 对生成的钓鱼网站进行评估
文章让三个独立编码者根据网站外观和功能两个标准评估 LLMs 生成的网络钓鱼网站,使用 5 点量表(WAS)量化外观相似度,并以二元变量计算功能实现情况。评估结果如下所示:
这些结果显示 GPT-4 在生成与原始网站高度相似的网站方面表现最佳,约一半样本的平均 WAS 分数高于 4。ChatGPT 3.5T 和 Claude 处于中等水平,而 Bard 的大部分样本得分较低。在功能性方面,GPT-4 和 Claude 在常规网络钓鱼样本中表现出色,而 Bard 表现的能力则十分有限。
5.3.2 针对反钓鱼检测工具的有效性
文章将 LLM 生成的网站与人类生成的网站进行比较,发现除 Bard 外,其他模型生成的网络钓鱼网站与人类创建的网站在检测率上没有显著差异,这表明 LLM 生成的网络钓鱼攻击在反钓鱼检测方面几乎与人类创建的攻击一样有效。
6、钓鱼邮件的生成
钓鱼网站通常由攻击者通过电子邮件分发,因此文章在本节中专门研究攻击者如何使用商业 LLM 模型生成钓鱼邮件。本节中生成这些邮件的方法类似于第5节中使用 LLM 生成提示词以及生成钓鱼网站的方法,使用一些人工创建的钓鱼邮件要求GPT-4设计提示,再将这些提示随后反馈给LLM,以设计一封诱使用户注册服务或提供敏感信息的邮件。
电子邮件生成作为较为传统的文本生成任务领域,提供了算法评估的机会。文章将LLM生成的钓鱼邮件与人工构建的钓鱼邮件进行了比较,采用了四种用于文本生成任务的流行指标:BLEU、Rouge、Perplexity 和 Topic Coherence 来衡量和比较LLM在生成钓鱼邮件文本方面的性能。4种 LLM的表现如下所示,其中GPT-4 在所有指标上均表现出色。
7、钓鱼提示词的检测
文章在第 5 节探讨了商业 LLM 如何通过自身生成的恶意提示来创建钓鱼网站。因此,文章进一步指出需要主动检测这些提示,以便防止此类内容的生成。文章在商业 LLM 生成的恶意和良性提示的基础上训练了一个基于 RoBERTA 的分类器,并提出了一个检测框架,如下图所示,用于检测单独提示词、整个提示词集合以及提示词子集这三种不同场景。
7.1 收集提示词用于构建数据基准
文章使用 ChatGPT 的开发 API 生成用于训练检测模型的恶意和良性提示词数据基准。生成了 258 个用于生成网络钓鱼网站的恶意提示集合和 258 个良性提示集合,并确保提示集合涵盖多种品牌以避免模型偏差。
7.2 创建代码本和标记提示词
文章利用一种开放编码技术手动标记提示词,创建代码本以区分“网络钓鱼”和“良性”提示。代码本包含 35 个特征,描述了与网络钓鱼活动相关的风险和意图。例如,“数据重定向”和“URL 随机化”被标记为网络钓鱼,而“排版和字体”被标记为良性。通过两轮标记和协商,最终确定了 1,255 个恶意提示和 1,137 个良性提示用于训练集。
7.3 标记提示词的预处理
文章提取提示集合中的每个提示并进行清理,移除项目符号、数字值和描述符等冗余元素,保存了诸如集合编号和提示词编号等属性以保留提示词的顺序。
7.4 单独的提示词的检测
7.4.1 构建单独的提示词检测的数据基准
文章使用 1,255 个恶意提示和 1,534 个良性提示构建训练集,以 70% 用于训练、30% 用于测试的比例进行划分。
7.4.2 模型选择与实验
传统的机器学习算法如朴素贝叶斯和支持向量机在二分类领域中虽然十分有效。然而,这些算法通常需要具有大量特征的大数据集才能发挥最佳性能。在本文的案例中,由于数据有限且缺乏丰富的特征,因此受到限制。相关研究显示预训练语言模型在数据有限的场景中也表现出色,因此文章使用BERT、DistilBERT、 RoBERTa、 Electra、DeBERTa 和 XLNET 等预训练模型来构建分类器。
7.4.3 训练细节
对所有模型进行微调,训练 10 个周期,批量大小为 16,使用 AdamW 优化器,学习率设为 2e-5,最大序列长度为 512。
7.4.4 性能评估
为了选择最佳模型,文章关注平均 F1 分数、准确率、精确率和召回率等指标。此外,由于文章的目标是将模型部署在实际场景中,因此文章还计算了预测 100 个样本的总时间和单个样本的中位预测时间,各个模型的表现如下表所示。
RoBERTa 在测试集上表现出最佳性能,平均 F1 分数为 0.94,准确率为 0.94。尽管 DistilBERT 和 ELECTRA 等较轻量级模型预测时间更短,但它们的 F1 分数略低。综合性能和预测时间,RoBERTa 是最佳选择。
7.4.5 单独的提示词检测的挑战
单独的提示可能无法完全揭示攻击者的意图,攻击者可能设计看似良性的单独提示,但组合起来却用于生成恶意内容。因此,需要进一步评估提示集合和提示子集。
7.5 钓鱼提示词集合的检测
这种检测方案的主要目标是评估当提供一个包含多个提示词的完整集合时模型的表现。为此,文章采用两种不同的评估方法:第一种方法是用完整的钓鱼和正常提示词集合训练一个新的模型;第二种方法则是利用之前已在单独提示词上训练好的分类器。
7.5.1 钓鱼提示集合检测的数据基准
在第一种方法的训练过程中,文章采用了与单独提示检测相同的数据基准,而在第二种方法的训练过程中,文章则使用了来自标注数据集的整个提示词集合。文章采用了70-30的比例进行训练和测试——最终训练集包括 185 个钓鱼提示词集合和 176 个正常提示词集合,测试集包括 73 个钓鱼提示词集合和 82 个正常提示词集合。在评估模型性能时,文章对两种方法都使用了相同的测试集。
7.5.2 性能评估
如上表7所示,在提示词集合上训练和测试的模型准确率为 0.92,F1 分数为 0.92;在单独提示词上训练、在集合上测试的模型准确率为 0.93,F1 分数为 0.93。两种方法均表现良好。
7.5.3 钓鱼提示词集合检测的挑战
文章指出,如果模型必须等待所有提示集合到达后才进行预测,不仅会延迟分类结果,还会让攻击者有机会获取大部分由大语言模型生成的源代码。因此,为了适应实时场景,在下一节中文章建议通过动态构建提示词子集的方式,结合当前提示词及其之前的提示词来判断每一步中捕捉到的上下文是否揭示了任何恶意活动。
7.6 实时钓鱼提示词子集的检测
本小节旨在观察用户向LLM提供新提示词时其意图的演变。为此,文章将新提示词与其之前的提示词结合形成一个子集,然后让模型对其进行分类。这个过程持续到模型将某个子集标记为钓鱼为止。
7.6.1 构建提示词子集检测的测试集
文章使用7.4节中用于单个提示词检测的模型来评估本节提出的方法。在测试时,选择了7.5节中用于整个提示词集合检测的测试集来生成平衡的测试集,包含 597 个恶意提示词子集和 635 个良性提示词子集。
7.6.2 性能评估
在测试阶段,文章经过微调的RoBERTa模型,在单个提示词上训练并在提示词子集上测试,从表7的结果中可以看出准确率、精确率、召回率和 F1 分数均达到 0.96。文章认为这种实验结果表明:为了适应实时场景,使用在单个提示词上训练并在提示词子集上测试的模型是高效实时检测钓鱼提示词的最佳选择。
7.6.3 模型预测的解释
文章利用LIME工具对模型预测进行了解释,通过分析提示文本中的特定词语或短语来确定其对模型预测的影响程度,发现模型关注的特征与人类评估者识别的关键特征高度一致,这进一步验证了模型在识别网络钓鱼提示方面的有效性和准确性。
7.7 Bard和Claude的单个及子集提示词的检测
文章在本小节中测试了上面训练出的检测模型对 Claude 和 Bard 生成的提示词的检测能力。从表7展示的实验结果中可以看出,在单个提示词的检测中,检测模型对于 Claude 生成的提示词的检测准确率为 0.93,F1 分数为 0.93;对于 Bard 生成的提示词的检测准确率为 0.95,F1 分数为 0.96。在提示词子集的检测中,检测模型对于 Claude 生成的提示词的检测准确率为 0.96,对于 Bard 生成的提示词的检测准确率为 0.95,这样的结果表明文章中训练出的检测模型对不同 LLM 生成的提示词具有良好的泛化能力。
7.8 对专门生成恶意提示词的 LLMs 的检测
为了进一步识别文章提出的提示词生成框架和检测模型的泛化能力,文章在两个用于生成钓鱼攻击和其他恶意内容的流行LLM上进行了测试:FraudGPT 和 WormGPT。文章生成了由 WormGPT 和 FraudGPT 生成的 240 个提示词集合,并由检测模型进行预测,分别检测出 97% 和 91% 的恶意提示,显示了检测模型的广泛适用性。
7.9 检测生成钓鱼邮件的提示词
文章使用 RoBERTa 架构训练模型检测网络钓鱼电子邮件提示,数据集包含 2,109 个网络钓鱼提示和 2,109 个良性提示。模型在准确率、精确率、召回率和 F1 分数上均达到 0.94,表现出强大的早期检测能力。
类似于第7.7节,文章还使用Claude和Bard手动生成钓鱼邮件提示词来对检测模型进行测试,结果如下表所示。
这样的结果表明钓鱼电子邮件检测模型在ChatGPT、Claude和Bard之间也具有跨平台的有效性。
8、讨论
•伦理与数据披露:文章已经将漏洞报告给了开发者,并且公开了他们的模型和框架,以便其他研究人员和开发者可以使用这些成果来防止 LLMs 被滥用。
•LLMs 滥用影响:文章指出,LLMs 的滥用不仅限于生成网络钓鱼内容。有许多其他的 LLMs 被滥用的案例,这些案例强调了开发先进检测系统以识别和缓解 LLMs 恶意使用的紧迫性。
•图像提示滥用:随着 LLMs 开始支持图像上传功能,用户可以上传品牌登录表单的截图,直接生成网络钓鱼攻击。现有的机器学习模型可以从标志或登录字段的位置等线索中确定网络钓鱼网站的意图。将文章中的检测模型与这些模型结合,可以提供更强的保护,抵御结合图像和文本提示的网络钓鱼攻击。
9、总结
文章的研究显示,广泛使用的商用LLM可能被滥用以生成钓鱼网站和电子邮件。文章发现了一种生成钓鱼提示词的方法:使用LLM自主创建钓鱼诈骗提示词。这种商业LLM的滥用行为带来了严重的潜在危险。攻击者可以轻松地反复优化少量提示词,从而生成无限量的恶意提示词来扩大他们的攻击规模。鉴于这一点,文章开发了一个机器学习模型,能够在检测用于生成钓鱼网站和电子邮件的恶意提示词方面表现良好。此外,用于训练机器学习模型的数据集还提供了一个新的带注释的钓鱼提示词资源,可以进一步推动该领域的研究。
安全学术圈招募队友-ing
有兴趣加入学术圈的请联系 secdr#qq.com
声明:本文来自安全学术圈,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。