首页 / 一种大语言模型驱动的渗透测试智能体系统及测试方法

一种大语言模型驱动的渗透测试智能体系统及测试方法实质审查 发明

技术领域

[0001] 本发明涉及渗透测试领域,特别涉及一种大语言模型驱动的渗透测试智能体系统及测试方法。

相关背景技术

[0002] 网络空间安全防御形式日趋复杂,针对信息系统安全的攻防博弈愈演愈烈。信息系统中的漏洞若是被攻击者利用,可造成安防失效、敏感数据泄露、系统损坏等严重后果。2017年,美国三大信用评级机构之一的Equifax遭受大规模数据泄露,黑客利用其系统中未修复的Apache Struts的OGNL注入漏洞(CVE‑2017‑5638)实现远程代码执行,窃取近1.47亿消费者的高度敏感数据。利用渗透测试以模拟攻击的方式,揭示系统中的安全漏洞,促进安全防御能力的提升,是确保信息系统安全的重要手段。
[0003] 然而渗透测试是网络空间安全领域多种前沿技术相互融合的综合应用形态,是各种理论、技术在应用层面的集成和扩展,依赖安全专家长期的专注与投入,是一个技术难度大、专业性要求强的领域,亟需提升渗透测试的智能化和自动化水平。针对渗透测试的智能化和自动化尝试,始终未摆脱人在环路中的模式,依赖渗透测试实施主体的专业性和经验。通过智能体的引入来协助人的工作,可实现渗透测试模式由人在环路中向人在环路上的转变。

具体实施方式

[0021] 下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的模块或具有相同或类似功能的模块。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。相反,本申请的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
[0022] 近年来,大语言模型涌现的自然语言理解与内容生成能力,已对众多垂直领域进行赋能,用于解决垂直领域中的智能化和自动化问题。本发明实施例提出了一种大语言模型驱动的渗透测试智能体系统,通过大模型对渗透测试模式的处理、学习和分析的能力,提高渗透测试智能化和自动化水平,以减少对专家资源的依赖。
[0023] 渗透测试是一个流程复杂的长链问题。主要的环节包括信息系统的漏洞扫描,渗透测试载荷的生成与投递,以及相关渗透测工具的使用。实现渗透测试的自动化与智能化,需要具备任务意图理解、载荷智能生成和载荷自动投递的功能。本发明提出一种基于大模型的渗透测试智能体系统中,大模型是一种基于深度学习的人工智能模型,大模型的优势在于多模态的语义理解与多模态的内容生成。智能体系统是一个能够感知环境并根据所感知的信息采取行动的系统,智能体的优势在于场景感知和场景交互。通过融合大模型和智能体的优势,可解决渗透测试过程中的渗透测试载荷生成、载荷投递与任务理解的问题。
[0024] 请参考图1,该渗透测试智能体系统主要包括记忆单元、智能单元以及规划单元。
[0025] 本实施例中,记忆单元基于渗透测试知识库实现,其包含漏洞信息、渗透方式、工具信息在内的数据要素,并采用知识图谱建立漏洞知识表示模型。其中,漏洞信息包括:通用缺陷枚举(Common Weakness Enumeration,CWE)、常见漏洞披露(Common Vulnerability Exposure,CVE)等与漏洞信息相关的数据;渗透方式包括漏洞利用数据库(ExploitDB)、通用攻击类型枚举分类(Common Attack Pattern Enumeration and Classification,CAPEC)、攻击矩阵(ATT&CK);工具信息包括常见的网络安全测试工具,如:网络测绘工具Nmap、渗透测试工具Metasploit、网络安全测试工具Burpsuite、密码爆破工具JohntheRipper等,各类网络安全测试工具的功能、操作手册、教学手册、指令等数据。通过这一系列数据要素进行收集和表征,是增强大语言模型推理能力,弥补大语言模型领域知识匮乏,保障大语言模型生成可信、可解释、准确、高一致性结果的基础。
[0026] 进一步的,在本实施例提出的记忆单元中,采用知识图谱技术建立统一的漏洞知识表示模型,整合海量渗透测试相关数据,集成跨资源边界的信息,提取与存储大量关键知识实体与关系,提供一种融合、管理和分析多源异构数据的能力,实现图谱与大模型的优势互补,知识协同。
[0027] 在本实施例提出的渗透测试智能体系统中,记忆单元在促进情境理解和长期信息保留方面发挥着至关重要的作用。知识包括短期和长期知识。短期知识充当智能体当前行为和想法的动态存储库,类似于其“思路”,实时响应用户的查询,允许智能体保持对正在进行的交互的情境理解,从而实现无缝和连贯的通信,通过情景学习提示词的方式,可以使大模型获得短期知识。长期知识充当综合日志,为智能体提供在较长时间内保留和调用信息的能力,通常是通过外部向量存储和快速检索,或进行领域微调增强其领域长期知识能力。
[0028] 本实施例中,规划单元为智能体分析用户查询、收集相关信息并制定行动策略以提供最佳建议或解决方案的系统过程。通过对既定复杂任务进行拆分,形成由一个个可控子任务组成的任务规划状态机,从而指导大语言模型的具体任务,并且在关键节点形成反馈环路,将信息同步给用户,若任务失败或可人工主动介入反馈。
[0029] 具体的,规划单元主要包括状态表示模块、转移条件模块、反馈优化模块和工具调用模块。其中,状态表示模块用于显示渗透测试任务的不同阶段、以及阶段目标的达成状态,状态集 。转移条件模块定义状态之间的转移条件,转移函数 ,其中 是事件集,描述状态转移条件,若当前状态为 ,事件 发生,则转移到状态 ,即 。反馈优化模块根据状态结果、任务进展和尝试次数的预定义阈值,决策是否将该步交由人执行,以提高任务整体的效率和准确性,定义反馈函数 ,其中 是在状态 的动作,反馈的值是执行动作的事件、成功率等,定义 为最大化累积反馈,,其中 为折扣因子,控制反馈的重要性。工具调用模块则是根据当前
任务选择合适的工具执行特定任务,例如在任务开始前,先使用网络探测工具获取端口、操作系统等信息;在载荷投递阶段使用Burpsuite等工具截取流量,将载荷修改为恶意载荷,已达到渗透测试效果。
[0030] 智能单元为智能体系统的核心,是负责管理智能体关键逻辑和行为特征的中央协调模 块,是生成工具调用指令、渗透测试载荷和渗透测试策略的关键部分,可以将其视为智能体的“意图理解与内容生成模块”。
[0031] 本实施例中,智能单元由大模型实现。在某些专业领域或特定场景中,通用大模型垂直领域能力较弱,因此,本实施例中对通用大模型进行领域能力增强处理。
[0032] 具体的,领域能力增强主要包括:结合记忆单元中以图谱结构捕获的大量与渗透测试相关数据,可作为大模型的知识来源。通过微调的方式,将知识图谱中的领域知识灌输到模型参数和表示中,使得模型在认知建模中的每一步都能受到上下文图的影响,从而以更紧密、更细粒度的方式塑造复杂的推理,并在执行下游任务时充分利用知识图谱中的领域知识。通过将知识图谱中的数据与大模型对齐,以提升大语言模型对渗透测试相关知识的掌握程度,实现基于专业知识的生成与推断,从知识图谱中检索的事实和从大语言模型中获得的隐性知识,并以思维导图的方式引导大语言模型进行推理,解决大语言模型难以及时获得知识更新,在处理具有时效性的问题时效果欠佳的问题。
[0033] 本发明提出的智能体系统通过大模型、知识库和任务规划单元的引入,提升了渗透测试任务自动化和智能化的水平。使用知识图谱作为智能体的记忆单元,支撑大模型的增强检索生成,提升了知识检索的完整度,保证了大模型输出的可解释性与一致性。使用任务状态机作为智能体的规划单元,通过预定义规则保证关键环节的工具选择和调用。针对渗透测试过程的复杂场景,实现高度定制化的代理行为,保障了渗透测试任务执行流程。
[0034] 进一步的,本发明还给出了一种基于前述大语言模型驱动的智能体系统的渗透测试方法,包括:(1)从互联网收集数据,构建渗透测试知识库;
(2)构建领域增强大模型,结合渗透测试知识库,对大模型进行微调,大模型通过检索渗透测试知识库,实现检索增强生成;
(3)构建任务规划状态机,针对不同类型的渗透测试任务,定义任务状态机,保证大模型任务执行流程的一致性;
(4)基于渗透测试知识库、领域增强大模型以及任务规划状态机形成智能体;
(5)在完成智能体系统构建后,直接可以通过智能体完成渗透测试。
[0035] 请参考图2,本实施例给出了通过智能体完成渗透测试的具体过程:①智能体接收用户下发的渗透测试目标与提示词,对渗透测试目标进行探测,得到渗透测试目标的探测结果;
②智能体根据探测结果完成渗透测试任务规划并反馈给用户;
③智能体在接收到用户反馈的渗透测试任务规划确认信息后,根据任务生成渗透测试利用载荷与指令,并发送到渗透测试目标;
④智能体接收渗透测试反馈的利用目的达成信号,并完成解释与评估后发送至用户。
[0036] 下面以对IP地址为10.0.2.5的web应用进行渗透测试为例,说明渗透测试智能体如何工作。
[0037] 请参考图3,首先,由渗透测试大模型生成渗透测试的任务规划,结合渗透测试策略对工具下达任务:例如,若第一步是对目标进行探测,便生成渗透测试工具调用指令: $ nmap 10.0.2.5,并将该任务传达给工具调用中间件,交由中间件对nmap工具进行实际调用。若调用成功,则将工具输出返回给工具调用大模型。工具调用大模型对nmap的输出信息进行总结:$ Only port 80 is open on 10.0.2.5。之后通过对Nikto、专门针对Flask服务写的测试脚本的调用后,根据中间件收集测试脚本的运行结果判定是否触发了上述漏洞(misconfigured routes, template injection, and insecure deserialization)。若未触发,则继续生成下一个测试用例,并重新调用测试脚本。
[0038] 大模型收集其中的关键信息,假定发现了一个模板注入漏洞,渗透测试大模型对渗透测试策略进行更新,并给出下一步的任务,利用工具调用大模型生成相应的exp‑{{''.__class__.mro()[1].__subclasses__()[71]('path/to/flag/file').read()}}。中间件利用工具调用大模型生成的exp测试10.0.2.5的系统,最终成功利用该模板注入漏洞。
[0039] 对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义;实施例中的附图用以对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
[0040] 尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页 第1页 第2页 第3页