AI赞助渗透测试:大年夜型措辞模型在收集安然实战中的应用与寻衅_模子_测试
这篇论文《Getting pwn’d by AI: Penetration Testing with Large Language Models》由Andreas Happe和Jürgen Cito撰写,磋商了大型措辞模型(如GPT3.5)在软件安全测试,特殊是渗透测试中的潜在运用。渗透测试是一个须要高度专业知识和涉及许多手动测试与剖析步骤的领域。
1. 弁言(Introduction)背景: 渗透测试作为网络安全领域的一个主要组成部分,目前面临人才短缺的问题。根据ISC2的2022年网络安全人才研究,只管环球网络安全人才每年增长11.1%,但这一增长速率仍未跟上安全人才缺口每年26.2%的扩大速率。此外,渗透测试职员在事情时须要同事供应不同的想法或方法,即所谓的“人类陪练伙伴”。
AI的潜力: 人工智能模型,特殊是大型措辞模型(LLMs),在打算机科学和盛行媒体中都成为了热门话题。这些模型能否作为渗透测试职员的陪练伙伴,供应替代性的想法或方法,是一个值得探索的问题。
2. 研究问题(RQ)
本文的核心研究问题是:我们能在多大程度上利用LLMs自动化安全测试?
3. 研究方法(Methodology)3.1 技能与工具背景(Background)MITRE ATT&CK定义与浸染: MITRE ATT&CK是一个详尽的知识库,它记录了关于网络威胁行为者(如APTs)的战术、技能和程序(TTP)。这些信息以层次模型的形式组织,个中:
“Tactics”(战术)描述了对手意图实现的高层次目标,如侦察、权限提升或数据网络。“Techniques”(技能)是实现战术的详细方法,例如滥用提升掌握机制(如sudo)或假造Kerberos票据。“Procedures”(程序)描述了对手实行技能的详细细节。在研究中的运用: 作者假设一个渗透测试的陪练伙伴该当能够覆盖ATT&CK中的全体TTP范围,包括选择得当的战术、相应的技能和程序。
大型措辞模型(LLMs)定义与组成: 大型措辞模型(LLMs)是由大量数据演习而成的神经网络,其能力高度依赖于模型的繁芜性,常日通过利用的参数数量来描述。当前的模型参数大小从数十亿到数万亿不等。
演习与运用: 演习一个新的LLM是昂贵的,但现有的LLM可以通过微调来适应特定的用例。这些经由微调的模型被称为“根本模型”,它们的主要性已被主流媒体所认可。
GPT3.5/ChatGPT交互办法: GPT3.5/ChatGPT常日通过用户和AI之间的问答形式进行交互。用户提出问题(称为“提示”),AI天生回答。
提示工程: 提示须要精心设计,以引发AI天生有用的回答。这导致了一种称为“提示工程”的新学科的发展。
本地模型: 一些工具,如llama.cpp,使得在消费级硬件上运行小型模型成为可能,这促进了额外的研究。
预演习的自主AI代理AutoGPT: AutoGPT引入了利用LLMs自动天生指令序列的观点,通过创建随后用于查询LLM的提示,减少了手动提示工程的需求。
BabyAGI: BabyAGI专注于自动化任务天生、方案和实行。它将用户给出的任务分解为较小的子任务,存储在任务行列步队中,并由自主任务实行代理实行。
Jarvis: Jarvis利用不同模型的代理创建多模态、多代理系统。
技能与工具的综合运用在论文中,作者将这些技能与工具综合运用于渗透测试的不同层面。高层次的任务方案利用了MITRE ATT&CK框架和LLMs的能力来设计攻击策略,而低层次的攻击实行则通过与易受攻击的虚拟机的实时交互,展示了LLMs在实际攻击场景中的运用潜力。
这些技能与工具的结合,不仅展示了LLMs在网络安全领域的运用前景,也为未来的研究供应了新的方向,包括如何提高LLMs的稳定性、如何整合不同层次的任务以及如何确保这些强大工具的伦理和安全利用。
渗透测试中的LLM运用(LLM-Based Penetration Testing)在论文《Getting pwn’d by AI: Penetration Testing with Large Language Models》中,作者磋商了大型措辞模型(LLMs)在渗透测试中的运用,详细分为两个层面:高层次的任务方案和低层次的攻击实行。
高层次任务方案(High-Level Task-Planning)目的与方法:
目的: 为渗透测试任务设计高层次的攻击策略和方法。方法: 利用LLM天生针对特定场景或目标组织的渗透测试操持。实验案例:
AgentGPT实验: 作者让AgentGPT考试测验成为Active Directory的域管理员,天生的文档包含了现实且可行的攻击向量,如密码喷洒、Kerberoasting、AS-REP roasting等。AutoGPT实验: AutoGPT被用来为一个详细的目标组织设计外部渗透测试操持,包括网络漏洞扫描、OSINT/用户列举和针对已识别用户的钓鱼攻击。结果剖析:
这些操持和攻击向量被认为是现实和可行的,可以为渗透测试职员供应有代价的反馈和潜在的攻击路子。低层次攻击实行(Low-Level Attack-Execution)目的与方法:
目的: 在渗透测试职员得到了对目标系统的低权限访问后,探求提权攻击以成为系统根用户。方法: 通过SSH连接到一个故意设置的易受攻击的Linux虚拟机,利用LLM天生和实行系统命令以考试测验得到更高权限。技能实现:
作者编写了一个Python脚本,该脚本通过SSH与虚拟机通信,形成一个闭环反馈系统。在这个循环中,LLM(GPT3.5)被指示想象自己是一个低权限用户,目标是成为根用户。LLM可以提出一个Linux shell命令,该命令将在虚拟机上实行,并将输出反馈回LLM以供下一步操作。实验结果:
通过这种大略的构造,研究团队能够在易受攻击的虚拟机上得到根权限。常见的路径包括列出“sudoers”文件,利用列出的shell或GTFObins命令来得到根shell。GTFObins是当通过sudo调用时可以被滥用以得到根shell的良性系统命令。结果与谈论结果根本与幻觉:
所有实行的命令及其结果都被记录,这许可研究者剖析LLM建议的漏洞是基于系统知识的查询,还是基于演习期间得到的安全趋势和预设不雅观念。稳定性与可重复性:
单一原型运行的结果是不稳定的,存在命令序列和选择的变异性。但多次运行后,结果趋于同等。伦理调节:
利用的GPT-3.5-turbo包含安全方法以防止恶意提示。只管原型将命令通报给了一个易受攻击的虚拟机,但整体场景可以轻松运用于真实系统。结论LLMs在渗透测试中的运用展示了其在安全领域的潜力,特殊是在任务方案和攻击实行方面。高层次的任务方案可以帮助渗透测试职员设计有效的攻击策略,而低层次的攻击实行则展示了LLMs在实际攻击场景中的运用能力。然而,这项技能的运用也引发了关于稳定性、可重复性和伦理问题的谈论,这些都须要在未来的研究中进一步磋商和解决。
链接:https://arxiv.org/pdf/2308.00121
本文系作者个人观点,不代表本站立场,转载请注明出处!