网络安全 频道

Gen AI通过普及漏洞挖掘,正在改变网络威胁格局

  大型语言模型(LLMs)已被证明是发现零日漏洞、绕过检测和编写漏洞利用代码的有价值工具,从而降低了渗透测试人员和攻击者的入门门槛。生成式人工智能对多种业务流程产生了重大影响,优化了工作流程并加速了其执行速度,在某些情况下还降低了专业技能的基线要求。

  将漏洞挖掘也加入这一名单中,因为大型语言模型(LLMs)正被证明是协助黑客(无论善恶)更快地发现软件漏洞和编写漏洞利用代码的有价值工具,同时填补了知识空白。

  这种漏洞挖掘技能的普及化有可能通过降低能够开发和利用零日漏洞的攻击者的入门门槛来重塑威胁格局。这些攻击针对的是以前未知且未修补的漏洞。

  历史上,这些漏洞利用一直与资金充足、手段高超的威胁行为者相关联,如国家支持的网络间谍组织,以及少数具备自主研发能力或财力在黑市上购买漏洞利用技术的网络犯罪团伙。

  “大型语言模型和生成式人工智能可能会对零日漏洞利用生态系统产生重大影响,”网络安全作家兼HypaSec咨询公司创始人克里斯·库贝克(Chris Kubecka)表示。该公司提供安全培训,并为政府提供国家层面的事件响应和管理建议。

  “这些工具可以协助代码分析、模式识别,甚至自动化漏洞利用开发流程的部分环节,”她在11月于布加勒斯特举行的DefCamp会议上就量子计算和人工智能重新定义网络战的话题发表演讲后,通过电子邮件向首席安全官(CSO)表示。“通过快速分析大量源代码或二进制文件并识别潜在漏洞,大型语言模型可以加速零日漏洞的发现。此外,提供自然语言解释和建议的能力降低了理解漏洞利用创建过程的门槛,可能会使这些过程被更广泛的受众所掌握。”

  另一方面,同样的大型语言模型也被道德黑客和渗透测试人员所利用,以更快地发现漏洞并向受影响的供应商和使用受影响产品的组织报告。安全团队和开发团队还可以将大型语言模型与现有的代码分析工具集成,以便在漏洞进入生产环境之前识别、分类和修复它们。

  大型语言模型在漏洞挖掘中的效率和局限性

  使用大型语言模型发现漏洞,黑客们可能会取得不同程度的成功。影响因素包括:

  模型应用的定制化程度以及是否与传统分析工具一起使用模型中是否存在限制某些类型响应的原生安全协议分析代码的大小和复杂性,以及代码中存在的漏洞的性质模型在单个提示中可以处理的输入大小限制出现编造和错误响应(即幻觉)的可能性

  尽管如此,专家们认为,即使是对大型语言模型稍作修改或不做修改,也能识别出不太复杂的输入清理漏洞,如跨站脚本(XSS)和SQL注入漏洞,甚至是内存损坏漏洞,如缓冲区溢出漏洞。这些模型在包括安全编码实践、开发者支持论坛、漏洞列表、黑客技术和漏洞利用示例在内的网络来源信息上接受了大量训练,因此具备了这种固有能力。但是,当黑客使用与主题相关的数据增强模型并仔细设计提示时,大型语言模型的效率可以显著提高。

  例如,库贝克构建了一个她称之为Zero Day GPT的ChatGPT定制版本。使用这个工具,她在几个月内发现了大约25个零日漏洞——她说,否则她可能需要数年时间才能完成这项任务。其中一个漏洞出现在Zimbra中,这是一个开源协作平台,之前曾被国家支持的网络间谍组织作为目标,包括在2023年末通过零日漏洞利用进行攻击。

  使用大型语言模型进行漏洞挖掘的情况

  为了发现这个漏洞,库贝克指示她的定制GPT分析Zimbra已知漏洞的补丁,向模型提供漏洞版本和修补版本之间的代码更改,以及已知的漏洞利用代码。然后,她询问是否仍然可以使用旧的漏洞利用代码针对修补后的代码。

  “答案是:你可以重用漏洞利用代码,但是你需要稍微修改一下代码,顺便说一下,让我来重构它,因为现有的漏洞利用代码编写得不是很好,”她在接受CSO采访时说。“因此,它能够彻底分析并给了我一个新的漏洞利用代码,而且,它奏效了。”

  库贝克的GPT已经识别了一个补丁绕过漏洞,这是研究人员偶尔也会完成的任务。许多开发人员通过实施过滤机制来阻止恶意输入,以解决输入清理漏洞。然而,历史表明,这种黑名单方法往往是不完整的。凭借创造力和技能,研究人员可以设计出成功绕过这些过滤器的有效载荷变体。

  渗透测试公司Bit Sentinel的红队技术负责人卢西安·尼策斯库(Lucian Nițescu)告诉CSO:“假设一个Web应用程序通过过滤与漏洞利用相关的特定关键字或模式来防止SQL注入攻击。攻击者可以使用大型语言模型生成绕过这些过滤器的替代有效载荷。例如,如果补丁阻止了常见的SQL关键字(如‘sleep’),大型语言模型可能会建议使用编码表示或非传统语法来实现相同的恶意结果而不触发过滤器,如SQL注释或URL编码。”尼策斯库也在他的工作中使用大型语言模型,包括向ChatGPT或Ollama(本地托管的GPT)提供定制提示,并用诸如HackTricks存储库(一个黑客技术和漏洞利用技术的集合)等数据集进行增强。他还测试了一个名为Vulnhuntr的开源大型语言模型驱动的代码分析工具,该工具由Protect AI开发,迄今为止已发现十多个可远程利用的零日漏洞。

  尼策斯库(Nițescu)向CSO透露,他推出了Vulnhuntr,并在GitHub上随机选择的一个项目上进行了测试。大型语言模型(LLM)在15分钟内便识别出一个远程代码执行漏洞。由于该漏洞仍处于披露流程中,他拒绝透露具体细节,但强调了该工具在GitHub上高评分项目中发现的其他已公开披露的漏洞,并以此为例。

  “以使用Vulnhuntr发现的CVE-2024-10099漏洞为例,我们可以看到它提供了完整的利用链,或有助于实现一个完全可用的两步利用。”他表示,“考虑到该漏洞影响了ComfyUI——一个在GitHub上拥有超过6万颗星的项目——它已经将技能门槛降低到相当低的程度,使得初级黑客也能编写出完全可用的利用程序。”

  与此同时,库贝克(Kubecka)向CSO展示了她是如何实时使用她定制的一个GPT,将网站代码分成12个部分,以识别其安全弱点和漏洞。大型语言模型检测到了缺失的安全头信息、可被利用的弱输入验证问题以及其他漏洞。

  提升复杂性当然,漏洞或攻击链越复杂,要实现预期影响,大型语言模型就越难完全自动化发现过程。不过,只要有知识渊博的用户进行指导,提供额外背景信息,或将问题分解成更有针对性的部分,大型语言模型仍可以识别复杂的漏洞。

  “当你使用大型语言模型对传统分析工具的输出进行优先级排序,为每个潜在发现补充更多背景信息,并据此进行优先级排序时,它的真正威力就显现出来了,”进攻性安全公司Bishop Fox的能力发展总监迦勒·格罗斯(Caleb Gross)告诉CSO。

  格罗斯认为,由于单个提示(即上下文窗口)的输入大小限制,仅仅将代码块输入到大型语言模型(LLM)中并要求其识别漏洞既不高效也不实用。例如,模型可能会识别出C代码中大量不安全的strcpy使用,这在理论上可能导致缓冲区溢出,但它无法确定这些代码路径在应用程序中是否可达以及如何实现。

  在2024年RVASec大会上,格罗斯和他的Bishop Fox同事就LLM漏洞挖掘发表演讲,并介绍了他们如何使用LLM构建排序算法,对传统静态代码分析工具(如Semgrep或补丁差异比较)产生的潜在误报进行排序。

  LLM在识别解析复杂数据的代码函数方面也很有用,这些函数是模糊测试的理想候选——模糊测试是一种安全测试类型,涉及向函数提供畸形数据以触发意外行为,如崩溃或信息泄露。LLM甚至可以帮助设置模糊测试用例。

  “不是我们不知道如何进行模糊测试,而是我们在寻找合适的目标并围绕其编写辅助工具以进行初步基础工作方面的能力有限,”格罗斯说,“我在这种情境下有效地使用了LLM。”

  使用LLM编写利用代码并绕过检测

  识别潜在漏洞是一回事,但编写针对这些漏洞的利用代码需要更深入地了解安全漏洞、编程以及目标平台上存在的防御机制。

  例如,将缓冲区溢出漏洞转化为远程代码执行利用可能需要绕过进程沙箱机制或规避操作系统级别的防御措施,如地址空间布局随机化(ASLR)和数据执行保护(DEP)。同样,利用网页表单中的弱输入验证问题来成功发动SQL注入攻击,可能需要绕过针对SQL注入载荷的通用过滤器,或绕过部署在应用前端的Web应用防火墙(WAF)。

  这是大型语言模型(LLM)可以产生重大影响的一个领域:弥合初级漏洞猎人和经验丰富的利用代码编写者之间的知识差距。即使是生成现有利用代码的新变种以绕过防火墙和入侵防御系统中的检测签名,也是一项值得注意的发展,因为许多组织不会立即部署可用的安全补丁,而是依赖其安全供应商为已知利用添加检测,直到其补丁周期跟上。

  德勤罗马尼亚网络安全专家主管兼拥有超过100个负责任披露的CVE漏洞的猎人马泰·巴达诺尤(Matei Bădănoiu)告诉CSO,他自己在漏洞挖掘工作中没有使用过LLM,但他的团队中有同事在渗透测试项目中成功使用了LLM来编写绕过现有防御的利用载荷。

  虽然他认为LLM对零日漏洞生态系统尚未产生重大影响,但他看到了它们颠覆该生态系统的潜力。“它们似乎能够帮助研究人员通过作为集中式知识库来缩短开发利用所需的时间——例如,编写利用的一部分代码、提供通用代码模板——从而导致零日漏洞的数量整体增加,”他说。

  巴达诺尤提到的工具包括0dAI,这是一个基于订阅的聊天机器人和经过网络安全数据训练的模型,以及由LLM驱动的渗透测试框架HackingBuddyGPT。

  Bishop Fox的格罗斯(Gross)描述了他对LLM编写利用的经历为“谨慎乐观”,并指出他看到过LLM陷入死胡同并失去大局观的例子。他还认为,关于利用编写的优质、高度技术性的材料——这是一个非常微妙和复杂的领域——与例如安全测试资源相比,在网上并不那么广泛可用。因此,LLM可能接受的关于利用编写的成功示例训练比其他主题要少。

  LLM弥合安全知识差距

  Bit Sentinel的尼策斯库(Nițescu)已经看到了LLM在提升威胁猎人水平方面所能产生的影响。作为组织DefCamp Capture the Flag黑客竞赛团队的负责人,尼策斯库和D-CTF组织者今年不得不重新思考一些挑战,因为他们意识到,与往年相比,在LLM的帮助下,这些挑战将太容易解决。

  “AI工具可以帮助经验较少的人员创建更复杂的利用和载荷混淆,这有助于绕过安全机制,或为利用特定漏洞提供详细指导,”尼策斯库说。“这确实降低了网络安全领域的入门门槛。同时,它还可以通过建议改进现有代码、识别新的攻击向量,甚至自动化利用链的部分内容,来协助经验丰富的利用开发者。这可能导致更高效、更有效的零日利用。”今年的DefCamp Capture the Flag活动吸引了来自92个国家的近800支队伍参加资格赛,其中16支入围队伍在会议上进行了现场角逐。获胜队伍Hackemus Papam的两名成员告诉CSO,他们依靠ChatGPT解决了一些挑战,包括一个涉及配置错误的AWS云环境的挑战。

  为了获取“旗帜”,他们必须利用服务器端请求伪造(SSRF)漏洞从元数据中提取凭据,然后使用这些凭据攻击与其他与S3存储桶交互的服务。由于他们没有与这些AWS服务及其API交互的经验,ChatGPT在他们在自己发现初始漏洞(相对容易,如果提供代码,ChatGPT可能也能发现)后的后利用阶段为他们提供了极大的帮助。

  他们的团队还在评估Vulnhuntr在发现代码中的脆弱区域方面的作用,但目前他们认为,在填补知识差距方面,LLM最能协助人类。LLM可以提供关于在哪里查找和尝试什么的想法——这个过程类似于故障排除。

  HypaSec的库贝克(Kubecka)也强调了这一方面,她指出,漏洞猎人可以请LLM解释他们不熟悉的编程语言中的代码或他们在尝试利用时遇到的错误。然后,LLM可以帮助他们找出问题所在,并建议修复或重构代码的方法。

  “LLM可以降低编写武装利用所需的技能,”她说。“通过提供详细指令、生成代码模板,甚至调试利用尝试,LLM使个人更容易开发功能性的利用。虽然绕过先进的保护机制仍然需要对现代防御有深刻的理解,但LLM可以协助生成多态变种、绕过载荷以及武器化的其他组件,从而极大地辅助这一过程。”

  在DefCamp CTF中获得第二名的The Few Chosen团队成员霍里亚·尼察(Horia Niță)证实,他的团队使用了几种定制的AI工具来帮助扫描新的代码库、提供潜在攻击向量的见解,并为他们遇到的代码提供解释。

  “这些工具极大地简化了我们的漏洞悬赏工作,我相信该领域的每个人都应该在其工具箱中拥有类似的资源,”他告诉首席安全官(CSO)。

  Niță表示,他使用大型语言模型(LLMs)来研究特定主题或生成用于暴力破解的有效载荷,但根据他的经验,在针对特定类型的漏洞时,这些模型的表现仍不稳定。

  “以当前的人工智能发展水平,它有时能够生成功能性强且有用的漏洞利用代码或有效载荷的变种,以绕过检测规则,”他说,“然而,由于幻觉和不准确性的可能性很高,它并不像人们希望的那样可靠。虽然这种情况随着时间的推移可能会得到改善,但目前,许多人仍然认为手动工作更加可靠和有效,尤其是在需要高精度的复杂任务中。”

  尽管存在明显的局限性,但许多漏洞研究人员仍认为LLMs具有价值,他们利用LLMs的能力来加速漏洞发现、协助漏洞利用代码的编写、重新设计恶意有效载荷以逃避检测,并建议新的攻击路径和战术,尽管成功率各不相同。LLMs甚至还可以自动化生成漏洞披露报告——这是一项研究人员通常不喜欢且耗时的活动。

  当然,恶意行为者也可能在利用这些工具。当在野外环境中发现漏洞利用代码或有效载荷时,很难确定它们是否由LLMs编写,但研究人员已经注意到攻击者明显在使用LLMs的实例。

  今年2月,微软和OpenAI发布了一份报告,重点介绍了某些知名高级持续性威胁(APT)组织如何使用LLMs。检测到的一些战术、技术和程序(TTPs)包括LLMs辅助的侦察、LLMs增强的脚本技术、LLMs增强的异常检测逃避以及LLMs辅助的漏洞研究。可以肯定的是,自那以后,威胁行为者对LLMs和生成式人工智能的采用只会不断增加,组织和安全团队应该努力跟上这一趋势,同样利用这些工具。

0
相关文章