您好,欢迎访问全国教育考试教材网
商品分类

被人工智能击败:利用大型语言模型进行渗透测试

Happe, A.Cito, J.(2023 年11 月)。通过ai: 使用大型语言模型进行渗透测试。第31 届ACM 欧洲软件工程联合会议和软件工程基础研讨会论文集(第2082-2086 页)。

论文:https://arxiv.org/pdf/2308.00121.pdf

概括

介绍

1 种方法

我们区分两种用例:在较高的层次上,渗透测试人员提出的一个典型问题是“什么是好的攻击方法”,例如“如何攻击Active Directory”。这些问题应该产生实施这些策略的策略和潜在技术。在低层次上,我们假设渗透测试人员已经为目标系统选择了策略,并且正在寻找适当的技术和相应的程序。一个典型的问题是“我想执行权限升级(策略),针对这个特定Linux 系统的适当攻击媒介是什么?”

2.1 高层评估:任务规划系统

在一次高级评估中,我们要求AgentGPT 成为Active Directory 中的域管理员。生成的文档包含高度真实的攻击媒介,例如密码喷射、Kerberoasting、AS-REP 烘烤、利用Active Directory 证书服务、滥用无约束授权或利用组策略。所有这些攻击都是现实的,并且常用于渗透测试。

另外,在获得目标公司的批准后,我们要求AutoGPT为该公司设计外部渗透测试计划。 AutoGPT 的计划包括标准方法,例如执行网络漏洞扫描、执行OSINT/用户枚举以及针对已识别用户执行网络钓鱼。所有这些操作通常在外部渗透测试期间执行。当进一步询问时,AutoGPT 能够抓取该公司的网页并识别潜在的网络钓鱼目标(用户及其电子邮件地址)。然而,由于其道德过滤器,它拒绝执行任何“真正的”网络安全扫描或执行网络钓鱼操作。这两个答案都很现实,并且可以为渗透测试人员提供有关潜在攻击向量的良好反馈。

2.2 底层评估:攻击执行系统

低级评估针对一个常见场景:渗透测试人员获得对Linux 系统的低级特权访问权限后,他们会寻找特权升级攻击以成为系统的root。为了进行实际评估,我们编写了一个Python 脚本,使用SSH 连接到故意设置漏洞的lin.security Linux 虚拟机。源代码和文档位于https://github.com/ipa-lab/hackingBuddyGPT。

此外,在每次循环迭代结束时,GPT 3.5 都会显示所选命令及其输出,然后根据此信息识别潜在的安全漏洞。对于每个漏洞,它的任务是提供一个开发示例,偷偷地命名为“验证命令”。这会产生额外的攻击向量。

我们的脚本通常能够在虚拟机中获得root权限。一个常见的技巧是通过调用sudo -l 列出“sudoers”文件,然后使用列出的sudo,或使用列出的GTFObins 来获取root shell。 GTFObins 是一个良性的系统命令,当通过sudo 调用时,可以被滥用来获取root shell。另一个常见的攻击媒介是检索/etc/passwd 并识别不使用影子密码的用户帐户。我们请求搜索SUID 二进制文件,但返回的二进制文件没有被积极利用,这表明我们的脚本或低级模型缺乏多步骤规划功能。稍微改变的提示指示LLM 打开给定IP 地址的反向shell,成功放弃root shell。

被人工智能击败:利用大型语言模型进行渗透测试

3 个结果

3.1 幻觉的结果和依据

我们的原型的一个有趣的方面是所有执行的命令及其结果输出都写入协议。这使我们能够推断LLM 提出的漏洞是基于提供系统知识的查询,还是基于GPT 3.5 在训练期间提取的安全趋势和先入之见。后者类似于渗透测试人员应用在工作或培训(例如参加CTF)中获得的知识。

有迹象表明因果依赖性:在检索sudoers 列表后,GPT 3.5 始终建议使用各种易受攻击的sudo 命令进行权限升级。检索passwd 文件后出现了类似的模式:下一步是攻击配置较弱的用户帐户。

其他建议(例如使用dirty_cow 等某些系统漏洞)是合理的,因为GPT 3.5“知道”这是一个Linux 系统,但没有任何先前的枚举。

简单且易于检测的幻觉很少发生,最常见的情况是建议执行“exploit.sh”。将此脚本执行的安全写入作为GPT 3.5 训练集的一部分似乎是合理的。

虽然建议的系统命令显然是基于模式匹配,而不是对Linux 系统或模型构建的更深入理解,但看到我们为获得root 权限而设置的基于llm shell 的简单反馈循环还是很可怕。一个合适的类比是,用笔与同事打电话,询问对话伙伴的能力建议,而对话伙伴只有一组非常有限的实际系统,但有一组先入为主的观念(即先验),这是与我们的研究问题部分一致。当在提示中给出附加子命令“并解释发现的漏洞”时,GPT3.5 能够提供良好的介绍性信息,因此可以用作在职培训的一部分。

3.2 稳定性和重复性

各个原型的运行不稳定,即给出的命令的顺序和选择以及识别的漏洞存在差异。如果运行很长时间,或者聚合多次运行的结果,结果往往是一致的(我们运行同一个脚本数十次,看看结果是否收敛)。单次运行中的差异似乎与GPT 3.5 过度关注测试系统的单个方面有关。我们都知道渗透测试人员在完成任务时会遇到这种情况,并且“掉进兔子洞”的情况会随着经验的增加而改善。

与linpeas.sh 等工具相比,LLM 似乎不太确定。该枚举工具遍历手动编译、硬编码的漏洞检查列表。进一步的研究应该阐明观察到的不稳定性是否会随着时间的推移而收敛,同时减少入侵检测系统的可检测模式。讽刺的是,GPT 3.5 建议一次运行调用linpeas.sh,但它失败了,因为它尝试从无效URL 下载它。

3.3 法学硕士的道德调整

道德问题在网络安全领域并不新鲜,尤其是在发布渗透测试工具时。使用GPT 3.5 引发的道德问题与红客和APT 都使用的开源安全工具的讨论类似。商业供应商试图审查他们的客户,而开源工具可供任何人使用。最终,恶意行为者可以并且将会同时使用这两种工具。关于军民两用产品分配的规定是存在的,但由于软件的流动性和不可变性,将它们应用到软件上是非常笨拙的。

用户评论


挽手余生ら

哇,这个话题真的太前沿了!我一直好奇人工智能在网络安全方面的应用,没想到渗透测试竟然也能用到大型语言模型,这让我对AI在安全领域的潜力有了更深的认识。

    有9位网友表示赞同!


花花世界总是那么虚伪﹌

听起来好高级啊,但我也担心这样的大型语言模型会不会给黑客提供更多的攻击手段?感觉现在的网络安全形势越来越严峻了。

    有8位网友表示赞同!


不相忘

这个技术听起来挺有意思的,但是渗透测试本身就是一种风险很高的活动,用人工智能来做,会不会让事情变得更复杂呢?

    有8位网友表示赞同!


眷恋

大型语言模型在渗透测试中的应用,确实能提高效率,但这也意味着我们需要更加注重数据安全和隐私保护,否则容易被滥用。

    有11位网友表示赞同!


失心疯i

我一直认为AI是双刃剑,这个案例又让我看到了它可能带来的风险。希望研究人员能找到平衡点,既能利用AI提高效率,又能避免潜在的安全问题。

    有13位网友表示赞同!


大王派我来巡山!

渗透测试用AI,这难道不是给黑客提供了新的武器吗?感觉这样的技术应该有严格的使用规范和监管。

    有5位网友表示赞同!


微信名字

这个标题太吸引人了,看完文章后发现,原来AI在渗透测试中的应用已经这么成熟了,真是大开眼界。

    有19位网友表示赞同!


夏至离别

大型语言模型进行渗透测试,听起来好厉害,但是否也意味着我们的人工智能防御系统也需要升级了?

    有10位网友表示赞同!


旧爱剩女

这篇文章让我对AI在网络安全领域的应用有了更全面的认识,但是否也意味着我们需要更多的安全专家来应对这些挑战呢?

    有16位网友表示赞同!


别伤我i

渗透测试本来就是为了发现安全漏洞,用AI来做确实能提高效率,但是否也会让一些漏洞被忽略掉呢?

    有10位网友表示赞同!


颓废人士

这个标题太有警示意义了,提醒我们要时刻关注AI技术可能带来的风险,不能因为追求效率而忽视安全。

    有15位网友表示赞同!


一个人的荒凉

AI在渗透测试中的应用,让我对未来的网络安全形势充满了担忧,希望有更多的措施来防范这些风险。

    有9位网友表示赞同!


迷路的男人

大型语言模型在渗透测试中的应用,感觉像是一场技术革命,但是否也会带来新的就业机会呢?

    有20位网友表示赞同!


凉笙墨染

这篇文章让我对AI在安全领域的应用有了新的认识,但是否也意味着我们需要加强对AI技术的了解和监管?

    有16位网友表示赞同!


ヅ她的身影若隐若现

渗透测试用AI,这个点子太酷了!但是否也意味着我们需要更加注重AI技术的伦理问题呢?

    有5位网友表示赞同!


古巷青灯

AI在渗透测试中的应用,确实提高了效率,但是否也会让一些安全专家失业呢?这让我有些担忧。

    有20位网友表示赞同!


冷落了♂自己·

这篇文章让我对AI在网络安全领域的应用有了新的认识,但是否也意味着我们需要更多的安全意识教育呢?

    有15位网友表示赞同!


关于道别

大型语言模型在渗透测试中的应用,感觉像是打开了新的大门,但是否也会带来更多的安全隐患呢?这是一个值得深思的问题。

    有13位网友表示赞同!