使用ChatGPT检测网络钓鱼(系列一)

Detecting Phishing Sites Using ChatGPT

论文链接:https://arxiv.org/abs/2306.05816

本系列博客主要是基于ChatGPT进行钓鱼网站检测、钓鱼邮件检测等方法的论文阅读,后续可能会补充大型语言模型LLMs相关的安全问题,包括其本身存在的安全问题和应用方面存在的安全问题等论文的阅读,分为多个系列是因为文本较长。目的是探索和学习大型语言模型在网络安全方面的应用前景,例如在社会工程学攻击检测方面的应用。

摘要

  大型语言模型LLMs的兴起对自然语言处理和人工智能等各个领域产生了重大影响。虽然ChatGPT等LLMs已经对代码生成和文本合成等任务进行了广泛研究,但它们在检测恶意Web内容(特别是钓鱼网站)方面的应用在很大程度上尚未得到探索。为了应对由LLMs引发的自动化网络攻击,必须自动检测恶意网页内容,这需要能够利用LLMs来分析和分类钓鱼网站的方法。
  在本文中,作者提出了一种利用ChatGPT来检测钓鱼网站的新方法。作者的方法涉及利用网络爬虫从网站收集信息并根据收集的数据生成提示。这种方法可以检测各种钓鱼网站,不需要微调机器学习模型,并从整个网站和URLs的上下文中识别社会工程学技术。为了评估提出方法的性能,作者使用数据集进行了实验。使用GPT-4的实验结果显示出良好的性能,精确率为98.3%,召回率为为98.4%。GPT-3.5和GPT-4之间的比较分析表明,后者减少假阴性的能力有所增强。这些发现不仅凸显了LLMs在有效识别钓鱼网站方面的潜力,而且对于加强网络安全措施和保护用户免受在线欺诈活动的危险具有重要意义。

1、介绍

  大型语言模型LLMs的出现彻底改变了各个领域,包括自然语言处理和人工智能。这些模型由于在任务中表现出色而受到广泛欢迎。虽然广泛的研究集中在探索LLMs执行代码生成和文本合成等任务的能力,但很少有人关注利用这些模型来分析和检测恶意web内容,特别是钓鱼网站。钓鱼网站采用社会工程学技术,通过伪装成合法平台并诱骗他们泄露敏感信息或造成经济损失,对互联网用户构成严重威胁。为了有效应对LLMs引发的日益增长的自动网络攻击威胁,自动检测恶意网络内容非常重要。这需要探索利用LLMs来分析和分类钓鱼网站的方法。
  在这项研究中,作者提出了一种利用ChatGPT检测钓鱼网站的新方法。方法涉及利用网络爬虫从网站收集信息并根据收集的数据生成提示。这些提示将呈现给ChatGPT,ChatGPT会确定给定网站是否为钓鱼网站。网络爬虫和ChatGPT上下文理解的集成使我们能够就网站的合法性或可疑性做出明智的决定。通过使用ChatGPT,我们可以:(1)检测各种钓鱼网站,不需要微调机器学习模型;(2)从整个网站的上下文和URLs来识别社会工程学(SE)技术。据作者所知,这是第一项分析LLMs来识别钓鱼网站能力的研究。为了评估提出方法的性能,作者使用精心构造的钓鱼网站数据集进行实验。使用GPT-4的实验结果显示出良好的性能,准确率为98.3%,召回率为98.4%。此外,GPT-3.5和GPT-4之间的比较分析表明,后者能力有显着提高,特别是在减少漏报方面。GPT-4在判断域名可疑性、从网站内容中识别SE技术以及考虑多种因素提供全面的钓鱼检测方面要优于GPT-3.5。这项研究的结果强调了LLMs在有效检测钓鱼网络方面的潜力,特别是在发现旨在对用户进行心理操纵的SE技术方面。这些发现对于加强自动化网络安全措施和减轻用户面临的在线欺诈活动风险具有重要意义。
  总之,作者做出以下贡献:
 (1)作者提出了一种使用ChatGPT检测钓鱼网站的新方法。通过利用网络爬虫技术从网站收集信息并生成提示,我们的方法使ChatGPT能够将网站分类为钓鱼或非钓鱼。
 (2)我们使用专为钓鱼网站检测设计的数据集对提出方法进行了实验评估。我们的实验结果显示出良好的性能,准确率为98.3%,召回率为98.4%,证明了LLMs在识别钓鱼网站方面的有效性。
 (3)我们对GPT-3.5和GPT-4进行了比较分析,发现GPT-4识别钓鱼网站的能力显着提高,特别是在最大限度地减少漏报方面。大型语言模型擅长识别可疑域名、检测网页内容中的社工技术,并通过考虑多种因素提供全面的网络钓鱼检测。

2、背景

  钓鱼网站是一种欺诈网站,旨在通过心理引诱用户来窃取个人信息、金钱或导致恶意软件感染。这些网站使用电子邮件、短信服务(SMS)和网络广告来吸引用户,并通过让用户点击恶意链接将他们重定向到钓鱼网站。钓鱼网站有两个关键组成部分,它们具有以下一个或两个要素:(1)模仿域名并使用官方logo和品牌来欺骗用户,让他们相信正在与合法服务进行交互,(2)利用社工技术去欺骗用户并操纵他们的行为。钓鱼网站通过冒充合法服务来欺骗用户并信任他们。这些网站经常模仿合法平台,例如网上银行、电子商务网站和社交媒体。此外,他们还可以通过显示虚假的恶意软件感染警告或账户问题来制造紧迫感和恐惧感,或者通过显示虚假奖励来引起兴趣。通过这些社工技术,用户会被误导提供敏感信息,例如登录凭据和信用卡号。此外,可能会引发各种用户操作,例如发送加密货币、致电虚假技术支持中心或者下载应用程序和可执行文件。
  先前的研究旨在了解钓鱼网站攻击者使用的特征、技术和基本机制。研究人员分析这些网站的设计、结构和内容,识别常见模式,并开发检测钓鱼网站的方法。这些研究有助于改进安全实践、教育用户有关潜在威胁的知识以及制定有效的策略来减轻在线欺诈和相关风险。例如,现有研究根据外观识别滥用合法品牌的网站,以及发现域名和URLs中的品牌信息。一些研究是根据证书和域名中包含的信息来识别网络钓鱼,以及捕获在技术支持诈骗、虚假感染警告和虚假奖励中的社会工程技术背景。
  尽管已经采用了多种方法来检测钓鱼网站,但仍然存在两个主要问题。一是需要了解目标品牌并根据钓鱼网站修改算法。例如,需要提前了解钓鱼网站滥用的logo图像,或者根据域名抢注技术创建规则来检测它们。另一个是无法详细分析由社会工程学引起的心理操纵背景。虽然有一些研究对关键词匹配和基于深度学习进行分析,但尚未尝试通过检查网站的全部内容来自动分析和理解心理操纵的各种背景。

3、方法

  作者提出了一种使用ChatGPT检测钓鱼网站的方法,去分析网站的上下文信息及其各自的URLs。作者提出的方法利用ChatGPT高度准确的上下文理解来精确识别涉及社工技术的文本表示,以及被网站和域名欺骗的品牌之间的不一致。通过使用大量文本数据训练的ChatGPT,我们可以检测到伪装成合法服务的各种钓鱼网站,而不需要从收集的钓鱼网站数据中学习。通过这种方式,所提出的方法解决了先前研究中存在的两个问题。该方法的概述如图1所示。通过使用网络爬虫来访问输入的URL并从访问的网站获取信息,例如屏幕截图、HTML和URLs。这些信息用于创建输入ChatGPT的提示,然后由ChatGPT确定该网站是钓鱼网站还是非钓鱼网站。
图1

3.1 网络爬虫

  我们实现了一个网络爬虫,可以使用Chrome DevTools 协议自动执行Google Chrome来访问网站并收集信息。给定输入的URL,网络爬虫会检索到达网页的URL(任何重定向的最终目的地)、JavaScript执行后的HTML,并捕获屏幕截图。获取Javascript执行后的HTML(浏览器渲染的HTML)的原因是一些钓鱼网站使用混淆的JavaScript生成DOM元素作为逃避分析的手段。因此,在JavaScript执行之前仅根据HTML分析网络钓鱼痕迹变得非常有挑战性。网络爬虫配置模拟了两种不同的环境:Windows+Chrome和iPhone+Safari。这些配置包括指定每个环境的UserAgent和浏览器大小。

3.2 Prompt

  我们描述了生成检测钓鱼网站提示的过程。提示模板如提示1所示,该提示的目的是向ChatGPT提供网站信息来判断是否为钓鱼网站。作者基于Chain of Thought(CoT)思想链的提示技术来创建模板。CoT是一种提示技巧,鼓励LLMs去解释它们的推理。CoT已经被证明可以有效提高各种推理任务的性能,例如算术和符号推理。钓鱼网站检测任务可以分为四个子任务,以便执行具体的推理过程。这些子任务如下:
 (1)分析网站是否包含欺骗或吸引用户的社工技术。设计的prompt提供了钓鱼网站常用的SE技术,例如现金奖励、虚假恶意软件感染警告、账户问题和邮政包裹问题。LLM被指示在非登录状态下出现这些没有上下文的短语表明是钓鱼网站的可能性很大。
 (2)提取网站的品牌名称。钓鱼网站可能是从合法网站复制HTML和图像等资源来创建的,因此很难仅根据HTML来确定其真实性。因此,LLM会被提示确认该URL是否对应于合法站点。
 (3)确定该网站是否为钓鱼网站,并明确说明该决策的理由。提供详细的描述可以提高响应的准确性,并使人们更容易分析它们。
 (4)生成JSON格式的输出。如果网站使用社工技术,LLM期望返回phishing为真。如果可以识别品牌名称并且域名与合法域名不同,则suspicious_domain期望返回为真。此外,LLM应该给出phishing_score,范围从0到10。
  这个promtp是由网站信息的HTML、URL和使用ORC从屏幕截图提取的文本来生成的。某些钓鱼网站通过在图像文件或画布元素中显示品牌信息(logos和标题)而不在HTML中包含特定品牌名称或文本,以此来逃避基于HTML的钓鱼网站分析。为了将无法直接从HTML中提取的文本输入到prompt中,作者使用OCR进行文本提取。
图2
  有些网站在输入数据较大时可能会超出ChatGPT的token限制,token是指代表字符或单词的单个文本单元,被LLMs用来处理和分析。GPT-3.5模型的限制为4096个token,而GPT-4(8k)的限制为8000个token,GPT-4(32k)限制为32000个token。事实上,作者收集的数据集中HTML的token中位数为30398(非网络钓鱼页面的中位数位74947个token),这表明大量网页超出了token限制。为了比较GPT-3.5和GPT-4模型的性能,作者在研究中简化了HTML和OCR提取的文本以适应4096个token。表1列出了每个数据类别的最大token计数。该提示模板消耗362个token,最大限制为HTML有3000个token和OCR提取文本有500个token。由于在此数据集中生成的所有提示均符合4096个token限制,因此作者没有简化URLs。数据集中URLs的token中位数位9,最长的URL由2209个token组成。在以下部分中,作者将描述简化HTML和OCR提取文本的具体过程。
表1

3.3 简化HTML

&emps;&emps;提出简化HTML的方法,同时保留了网络钓鱼检测和品牌识别的基本信息。位于HTML顶部的元素(例如标题和元描述元素)主要包含用于确定网站提供服务的提示。此外,用于输入登录信息的表单元素和页面上显示的文本对于分析网站的作用至关重要。为了最大限度地保留此类信息,同时最大限度地减少其长度,遵循算法1中概述的步骤。
&emps;&emps;所提出的方法删除了具有低相关性和大量tokens的HTML元素,例如style、script、comment tags。随后,我们解除除head、title、meta、body、h1、h2、h3、h4、h5、h6、p、strong、a、img、hr、table、tbody、tr、th、td、ol、ul、li、ruby和label等重要标记之外的HTML元素。不重要的元素被消除,它们的子元素被合并到它们的父元素中。然后,我们的方法会删除不包含标签内文本的HTML元素。我们还缩短了以base64编码的img元素的src属性和包含冗长URLs的a元素中的href属性。所提出的方法重复删除中间HTML元素,直到token数量低于3000。
公式1

3.4 简化OCR提取文本

&emps;&emps;某些网站可能会在屏幕上显示大量文本,OCR提取的文本以及HTML可能会超出token限制,所提出的方法还简化了OCR提取文本。具体来说,它检查OCR中识别的文本字体大小,并从最小字体大小开始删除句子。重复此过程,直到文本中的token数量低于500。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值