CN116094850A - 基于系统状态追踪图引导的网络协议漏洞检测方法及系统 - Google Patents

基于系统状态追踪图引导的网络协议漏洞检测方法及系统 Download PDF

Info

Publication number
CN116094850A
CN116094850A CN202310378873.5A CN202310378873A CN116094850A CN 116094850 A CN116094850 A CN 116094850A CN 202310378873 A CN202310378873 A CN 202310378873A CN 116094850 A CN116094850 A CN 116094850A
Authority
CN
China
Prior art keywords
system state
detected
network protocol
data packet
state tracking
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202310378873.5A
Other languages
English (en)
Other versions
CN116094850B (zh
Inventor
于珺泽
罗正雄
姜宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN202310378873.5A priority Critical patent/CN116094850B/zh
Publication of CN116094850A publication Critical patent/CN116094850A/zh
Application granted granted Critical
Publication of CN116094850B publication Critical patent/CN116094850B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种基于系统状态追踪图引导的网络协议漏洞检测方法及系统,包括:获取待检测系统客户端与服务端之间交流通信的网络协议流量;基于所述网络协议流量生成待检测系统状态轨迹,根据待检测系统状态轨迹构造待检测系统状态追踪图;基于所述待检测系统状态追踪图通过预设的引导序列生成策略,生成变异操作序列,产生变异数据包;通过所述变异数据包对待检测系统流量进行变异操作,完成基于系统状态追踪图的模糊测试。发明能够根据待检测系统状态生成不同的变异操作序列,提高生成协议数据包有效性的概率,从而更有效地检测网络协议漏洞。

Description

基于系统状态追踪图引导的网络协议漏洞检测方法及系统
技术领域
本发明涉及计算机程序漏洞检测技术领域,尤其涉及一种基于系统状态追踪图引导的网络协议漏洞检测方法及系统。
背景技术
在软件安全领域中,模糊测试技术是一种重要且有效的软件安全保障机制,其通过提前挖掘目标软件中潜在的异常或漏洞,并将其报告给软件开发人员以及时进行补救,以此确保软件的安全。由于所挖掘漏洞的真实可触发性和可复现性,模糊测试目前已成为软件安全保障过程中不可或缺的环节。模糊测试是一种自动化的程序测试技术,它通过不断的产生测试用例(测试用例又常称为“种子”,对于协议程序,协议包就是种子),将这些测试用例作为输入运行目标程序并监视程序异常来挖掘程序漏洞。目前,有许多模糊测试工具可于软件的缺陷检测,如American Fuzzy Lop(简称为 AFL),Defensics,Peach等。从它们产生新测试用例的方式而言,它们可以被分为两类:基于变异的和基于生成的。基于变异的模糊测试工具通过对现有种子的变异(字节或比特位上的随机修改)来产生新的测试输入,如AFL;相反,基于生成的模糊测试工具需要用户提供输入文件的格式说明,它们通过利用这份格式说明来生成新的种子。
近年来,诸如AFL的基于变异的模糊测试工具凭借其易用性和高效性广受用户欢迎。但是,由于它们缺少目标程序的相关信息而进行随机变异,因此,对于协议程序这种使用高度结构化的协议包作为输入的程序,这些模糊测试器产生的种子大多数是无效的,这使得它们在测试过程中难以深入程序内部并实现较高的代码覆盖率。为了解决这一问题,最近有一些研究引入了诸如符号执行技术等代码分析技术来优化模糊测试工具,包括Driller,KLEE,SAFL,MoWF等。符号执行技术能够为模糊测试工具提供目标程序的语义信息,以此来提升测试效率。符号执行是一种静态代码分析技术,在集成进模糊测试工具时,符号执行能够收集某条程序执行路径上所有的限制条件,并通过对这些限制条件进行求解来产生新种子,以此触发该程序路径。因此,模糊测试工具可以利用这项技术帮助触发所期望的程序状态(如帮助覆盖那些未被覆盖到的代码段),进而,它们更有可能触发隐藏在程序深处的漏洞。这种优化同样可以应用于协议程序,由于协议包通常具有特定的格式规范,因此利用符号执行技术可以帮助模糊测试器尽可能多的产生合法的协议包。这项技术对于产生一些格式简单的协议包十分有效,但是对于那些具有复杂格式的协议包,其可扩展性无法保证,因为目前符号执行技术仍存在路径爆炸以及复杂限制条件难以求解等技术难题,并且该技术的实施通常需要严格的执行环境支持。因此,对于像在工业环境中使用的工控协议这样的复杂程序,符号执行技术的应用仍是一个挑战。基于变异的模糊测试器将协议包视为字节向量,因此对协议包的变异操作主要集中在比特/字节上。为了更好的对以结构化文件为输入的程序进行模糊测试,基于生成的模糊测试器在文件结构层面上工作,它们基于用户给定的配置信息(例如Peach工具的Peach Pit),实施一系列的测试操作。其中,配置信息中包含两大部分重要信息:(1)数据模型,其主要描述了协议包的结构信息;(2)状态模型,主要描述了如何实施测试操作,例如发送协议包的顺序、根据收到协议包的情况制定回包规则等。这类模糊测试器按照状态模型描述的规则生成对应格式的协议包,并根据状态模型实施测试操作。基于生成的模糊测试工具由于拥有用户提供的协议包格式规范,因此能够生成合法的种子,这些工具更加适用于协议测试。但通常而言,这些模糊测试工具是黑盒的,它们仅不断的产生协议包并将其发送给待测协议服务程序而不关注于程序的运行状况如代码覆盖率情况等,在这种情况下,测试是完全随机且因此低效的。
发明内容
本发明提供一种基于系统状态追踪图引导的网络协议漏洞检测方法及系统,用以解决现有网络协议漏洞难以快速全面发现的问题,能够根据待检测系统状态生成不同的变异操作序列,提高生成协议数据包有效性的概率,从而更有效地检测网络协议漏洞。
本发明提供一种基于系统状态追踪图引导的网络协议漏洞检测方法,包括:
获取待检测系统客户端与服务端之间交流通信的网络协议流量;
基于所述网络协议流量生成待检测系统状态轨迹,根据待检测系统状态轨迹构造待检测系统状态追踪图;
基于所述待检测系统状态追踪图通过预设的引导序列生成策略,生成变异操作序列,产生变异数据包;
通过所述变异数据包对待检测系统流量进行变异操作,完成基于系统状态追踪图的模糊测试,发现网络协议漏洞。
根据本发明提供的一种基于系统状态追踪图引导的网络协议漏洞检测方法,所述基于所述网络协议流量生成待检测系统状态轨迹,根据待检测系统状态轨迹构造待检测系统状态追踪图,具体包括:
对待检测系统客户端与服务端之间交流通信的网络协议流量进行分析处理;
从所述网络协议流量中分析提取出关键信息,构建状态信息轨迹;
根据所述状态信息轨迹构建待检测系统状态追踪图。
根据本发明提供的一种基于系统状态追踪图引导的网络协议漏洞检测方法,根据所述状态信息轨迹构建待检测系统状态追踪图,具体包括:
将所述状态信息轨迹映射为系统状态追踪图上的一条路径;
对不同的路径进行过滤合并,在交互过程中构建一张系统状态追踪图。
根据本发明提供的一种基于系统状态追踪图引导的网络协议漏洞检测方法,基于所述待检测系统状态追踪图通过预设的引导序列生成策略,生成变异操作序列,产生变异数据包,具体包括:
在待检测系统进行网络协议交互过程中,通过所述系统状态追踪图展示系统当前所处的状态;
通过预设的引导序列生成策略根据系统当前状态信息启发式地对能够完成下个状态变迁的数据包进行变异操作;
通过所述变异操作生成变异操作序列,产生变异数据包。
根据本发明提供的一种基于系统状态追踪图引导的网络协议漏洞检测方法,通过所述变异操作生成变异操作序列,产生变异数据包,具体包括:
通过对系统状态追踪图的遍历,产生变异操作序列;
通过对所述变异操作序进程拆解得到数据包模式序列;
在所述数据包模式序列的指导下产生变异数据包。
根据本发明提供的一种基于系统状态追踪图引导的网络协议漏洞检测方法,通过所述变异数据包对待检测系统流量进行变异操作,完成基于系统状态追踪图的模糊测试,发现网络协议漏洞,具体包括:
通过对待测系统的网络协议流量进行处理和分析,能够不侵入待测系统内部,构建系统状态追踪图来引导模糊测试过程中网络数据包的变异操作;
通过变异操作产生符合协议状态逻辑的高质量数据包,完成模糊测试,发现网络协议漏洞。
本发明还提供一种基于系统状态追踪图引导的网络协议漏洞检测系统,所述系统包括:
数据获取模块,用于获取待检测系统客户端与服务端之间交流通信的网络协议流量;
系统状态追踪图构造模块,用于基于所述网络协议流量生成待检测系统状态轨迹,构造待检测系统状态追踪图;
变异数据包生成模块,用于基于所述待检测系统状态追踪图通过预设的引导序列生成策略,生成变异操作序列,产生变异数据包;
变异交互模块,用于通过所述变异数据包对待检测系统流量进行变异操作,完成基于系统状态追踪图的模糊测试,发现网络协议漏洞。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于系统状态追踪图引导的网络协议漏洞检测方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于系统状态追踪图引导的网络协议漏洞检测方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述基于系统状态追踪图引导的网络协议漏洞检测方法。
本发明提供的一种基于系统状态追踪图引导的网络协议漏洞检测方法及系统,通过获取待检测系统客户端与服务端之间交流通信的网络协议流量,构造待检测系统状态追踪图,基于系统状态追踪图引导产生变异数据包,触发待测系统更多的状态,达到更为深入的系统状态;能够在不侵入待测系统内部的情况下,通过构建系统状态追踪图,指导模糊测试过程中的网络数据包变异操作,生成符合协议状态逻辑的高质量数据包。通过这种方式,可以提高模糊测试的效率和全面性,从而更有效地发现网络协议漏洞。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一种基于系统状态追踪图引导的网络协议漏洞检测方法的流程示意图之一;
图2是本发明提供的一种基于系统状态追踪图引导的网络协议漏洞检测方法的流程示意图之二;
图3是本发明提供的一种基于系统状态追踪图引导的网络协议漏洞检测方法的流程示意图之三;
图4是本发明提供的一种基于系统状态追踪图引导的网络协议漏洞检测方法的流程示意图之四;
图5是本发明提供的一种基于系统状态追踪图引导的网络协议漏洞检测系统的模块连接示意图;
图6是本发明提供的一种基于系统状态追踪图引导的网络协议漏洞检测方法的框架图;
图7是本发明提供的基于网络协议流量的构造系统状态轨迹的流程示意图;
图8是本发明提供的对数据包抽象的例子示意图;
图9是本发明提供的被标记状态迁移的状态轨迹示意图;
图10是本发明提供的系统状态追踪图;
图11是本发明提供的电子设备的结构示意图。
附图标记:
110:数据获取模块;120:系统状态追踪图构造模块;130:变异数据包生成模块;140:变异交互模块;
1110:处理器;1120:通信接口;1130:存储器;1140:通信总线。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1-图4描述本发明的一种基于系统状态追踪图引导的网络协议漏洞检测方法,包括:
S100、获取待检测系统客户端与服务端之间交流通信的网络协议流量;
S200、基于所述网络协议流量生成待检测系统状态轨迹,根据待检测系统状态轨迹构造待检测系统状态追踪图;
S300、基于所述待检测系统状态追踪图通过预设的引导序列生成策略,生成变异操作序列,产生变异数据包;
S400、通过所述变异数据包对待检测系统流量进行变异操作,完成基于系统状态追踪图的模糊测试,发现网络协议漏洞。
本发明通过基于系统状态追踪图引导的高效的模糊化方法可以在不同的协议实现中扩展。本方法与待检测系统进行交互,获得网络协议流量通过系统状态追踪和引导模块进行高效的模糊测试。
基于所述网络协议流量生成待检测系统状态轨迹,根据待检测系统状态轨迹构造待检测系统状态追踪图,具体包括:
S201、对待检测系统客户端与服务端之间交流通信的网络协议流量进行分析处理;
S202、从所述网络协议流量中分析提取出关键信息,构建状态信息轨迹;
S203、根据所述状态信息轨迹构建待检测系统状态追踪图。
在本发明中,通过对待检测系统客户端和服务端之间交流通信的网络协议流量,进行处理和分析,经过对交互包序列的过滤与抽象得到待测系统状态轨迹,构造待测系统状态追踪图,用以非侵入的方式反映和追踪待测系统的状态。通过待测系统状态轨迹来构造系统状态追踪图来表示所探索的系统状态空间。模块可以跟踪待测系统的状态转变,并确定待测系统是否到达新的、先前不可达的状态区域。还用更丰富的信息扩展系统状态追踪图,引导探索达到期望的状态。
具体地,客户端和服务端双方的发送的数据包流量包含着对系统状态信息的刻画,从数据包流量中可以分析和提取出关键的信息,来构建待测系统状态轨迹,可以反映一次交互中不同阶段双方所处的协议状态情况。然后将轨迹映射成系统状态追踪图上的一条路径,对不同的路径进行过滤与合并,从而在交互的过程中构建一张系统状态追踪图。图中的节点由包括两部分数据,分别是客户端和服务端所要采取发包动作,以此来同时刻画待测系统的两个部分整体的状态。系统状态追踪图中的边由网络数据包组成, 当有数据包产生并被对方接收时,状态节点得以变迁,对方状态因为接收到不同的数据包而发生不同的迁移。对数据包流量的关键信息的提取可以避免状态空间爆炸问题,平衡状态追踪结果的准确性和执行时间效率。
基于所述待检测系统状态追踪图通过预设的引导序列生成策略,生成变异操作序列,产生变异数据包,具体包括:
S301、在待检测系统进行网络协议交互过程中,通过所述系统状态追踪图展示系统当前所处的状态;
S302、通过预设的引导序列生成策略根据系统当前状态信息启发式地对能够完成下个状态变迁的数据包进行变异操作;
S303、通过所述变异操作生成变异操作序列,产生变异数据包。
在本发明中,通过预设的引导序列生成策略,以有效地探索状态空间,并利用数据包实例化子模块来提供高质量的数据包序列。在对系统网络流量进行一定的分析后,能够根据系统状态追踪图来引导对系统的模糊测试过程中数据包的变异生成。在模糊测试时,想要尽可能探索系统状态空间,就要触发待测系统更多的状态,达到更为深入的系统状态。只有在合适的状态下,生成符合状态要求的网络协议数据包,才能够使系统进行状态的变迁,以触发新的系统状态,否则大多数数据包将是无效的,被待测系统会直接拒绝甚至断开网络连接。
待测系统进行网络协议交互过程中,利用构造的系统状态追踪图可以有效反映当前所处的状态情况,利用此状态信息,启发式的对能够完成下个状态变迁的数据包进变异操作,以此来探索新的状态。通过对系统状态追踪图的遍历,可以产生一个变异操作序列,从而得到数据包模式序列,在此数据包模式序列的指导下,对待测系统的流量进行相应的操作,从而完成基于系统状态追踪图引导的模糊测试。通过对待测系统的网络协议流量进行处理和分析,能够不侵入待测系统内部,构建系统状态追踪图来引导模糊测试过程中网络数据包的变异操作,产生符合协议状态逻辑的高质量数据包,来提高模糊测试效率。
通过所述变异数据包对待检测系统流量进行变异操作,完成基于系统状态追踪图的模糊测试,发现网络协议漏洞,具体包括:
S401、通过对待测系统的网络协议流量进行处理和分析,能够不侵入待测系统内部,构建系统状态追踪图来引导模糊测试过程中网络数据包的变异操作;
S402、通过变异操作产生符合协议状态逻辑的高质量数据包,完成模糊测试,发现网络协议漏洞。
在一个具体实施例中,工具基于待测系统的输出来收集信息,而非使用进行侵入性的操作来收集信息。与普通应用程序不同,协议实现是为网络上的实体通信而定制的。因此,系统输出的网络流量可以用来反映待测系统本身的协议状态。数据包的结构通常是标准化的和符合协议的,因此便于对数据包二进制流进行解析和分析。以QUIC会话为例,当客户端向服务器发送Initial[CRYPTO]数据包时,可以推断客户端可能会保持连接的初始状态。此外,当客户端发送初始[ACK]和握手[CRYPTO,ACK]数据包时,可以推断握手已完成,客户端已准备好进入数据传输阶段。
参考图7基于网络协议流量的构造系统状态轨迹包括:
过滤和提取数据包序列,给定在待测系统执行期间捕获的网络流量,基于网络协议流量的系统状态追踪图挑选与待测系统状态相关的数据包流量,来构成一个具体的数据包序列S,数据包中的相对顺序与原始流量相同。具体而言,只考虑待测系统方发送的数据包,并丢弃其接收的数据包。
参考图8,构造抽象数据包序列。为了指示待测系统状态,直接使用具体的数据包可能会造成混淆,因为某些字段与系统状态的关联性很低,且取值范围很大,例如数据字段。以Initial[CRYPTO]包为例。用于识别连接的DCID字段的值在连接开始时随机生成。考虑到该字段可能会使状态空间太大因而会导致状态爆炸。因此,需要抽象掉一些数据包的某些字段,关注并保留数据包所携带的关键语义信息。
对数据包的某些字段进行抽象过程为:
逐一抽象序列S中的数据包,以获得基本抽象包序列π。对于每个数据包P,对其进行解析以获得解析P_d,其结果为一个分层组织的字段树状结构,其中每个字段表示为一个类型值对。基于P_d,模块通过保留枚举类型和用户自定义的关键字段,来构造相应的抽象数据包
Figure SMS_1
。例如,保留数据包类型Initial和帧类型CRYPTO及其层次关系,将QUIC握手的第一部分抽象为Initial[CRYPTO]。模块将抽象数据包
Figure SMS_2
与其对应的具体数据包P间的中间映射关系缓存在一个字典数据结构中便于后续构造图使用;
为便于状态轨迹的构造,进一步处理抽象包序列
Figure SMS_3
中相邻同方向的抽象数据包,进行合并连接操作。例如,两个数据包被抽象后可以合并连接表示为: Initial[CRYPTO,ACK] + Handshake[CRYPTO]。在最终的抽象数据包序列 π 中,相邻的两个抽象数据包由协议中不同的两端发送。
构造状态跟踪。对于给定的抽象包序列
Figure SMS_4
,每个抽象包
Figure SMS_5
只能指示相应待测系统方
Figure SMS_6
的状态,而不是整个待测系统的状态。因为可能有多条路径可以到
Figure SMS_7
的该状态,但它们在点处的待测系统相应状态有所不同。假设客户端在某一点向服务器发送数据包a或数据包b(a和b是不同的类型),并且这两个数据包对服务器来说都是意外的。在这种情况下,服务器将以相同的错误消息c响应其中一个。当服务器发送数据包c时,在这两个不同的路径下,整个待测系统状态应该是不同的。
通过引入一些先验信息对待测系统客户端和服务端的状态进行建模。考虑到完整的网络流量可能会导致状态空间爆炸。使用待测系统双方通信中的关键信息可以实现在刻画待测系统的状态同时,达到最小化状态跟踪空间的良好平衡。因此待测系统状态包含双方,可以表示为一对有序的对象,其形式为
Figure SMS_10
. 每个对象都取自集合
Figure SMS_12
,其中C表示客户端,S表示服务端,Ω 是一个抽象的数据包字母表。这两个对象的顺序非常重要,
Figure SMS_15
表示在其中一方T2已发送
Figure SMS_9
的前提先验下,另一方T1将响应
Figure SMS_13
(前一方)。其中,
Figure SMS_14
只记录T2传递的最新抽象数据包。通过这种方式,可以通过分析抽象包序列π中每对相邻抽象包
Figure SMS_16
Figure SMS_8
(如上所述,这两个包具有相反的源)来推断待测系统的状态。然后添加两个相邻状态之间的迁移从而形成状态轨迹。使用抽象的数据包字母表表示图6中涉及的待测系统的状态
Figure SMS_11
带有5个符号:
Figure SMS_17
如上所述,会话的状态轨迹可以被描述为:
Figure SMS_18
本发明中,通过设计系统状态追踪图来识别待测系统的探索状态空间,并用更丰富的信息进行扩展。
参考图9,标记状态迁移。首先对于获得的状态轨迹,标记每个迁移的触发条件,不同于现有方法直接保留具体数据包,而是记录如何使用相应的抽象数据包ω和选择对其进行操作的变异算子σ来生成这些数据包,即数据包模式ω⊕σ。由于工具从待测系统中接收数据包,抽象数据包ω可以从待测系统状态中提取。对应的变异算子σ可以从工具执行过程中记录。因此可以不跟踪变异算子的细节,以避免状态空间爆炸问题。例如,中标记状态轨迹,这相当于工具直接转发接收到的数据包而不执行变异。图10显示了结果,待测系统从状态q 0开始,客户端将输出数据包a的状态。在接收到包a之后,工具通过使用σ。对a进行操作(即
Figure SMS_19
)生产系统的输入。在系统收到输入后
Figure SMS_20
, 待测系统迁移到状态q 1。其余状态被类似地遍历。
合并状态轨迹。然后,使用系统状态追踪图通过不断合并状态轨迹来刻画探索的状态空间。工具在模糊测试过程中与待测系统交互,并为待测系统生成不同的协议包。这可能会产生具有相同的开始状态不同的状态轨迹。每次迭代的启动都由待测系统的第一个动作驱动。例如,客户端总是在每次迭代开始时将Initial[CRYPTO]数据包发送给工具。不同之处在于工具的后续动作如何变异接收的数据包。因此,为了将状态轨迹合并到已实现的系统状态追踪图中,工具从系统状态追踪图的开始状态开始,该状态也是要合并的状态轨迹的开始状态,合并它们的共享节点或迁移(边),并使用在状态轨迹中发现的新状态或状态迁移来更新系统状态追踪图,从而动态构造出系统状态跟踪图,如图10所示。
系统状态追踪图捕获协议实现的实际状态空间,并为状态空间遍历提供了一种有效的方式:给定要达到的目标状态q i ,从q 0q i 的任何路径上的迁移标签形成一个数据包模式序列。在系统状态追踪图的指导下,设计了启发式方法,以有效地探索未知状态空间并促进全面遍历。该模块输出数据包模式序列并将其传递给数据包实例化模块,作为数据包序列生成的指导。
通过使用以下启发式引导算法指导数据包序列的生成。
首先,尝试利用变异算子对输入进行变异,完成对每个系统状态追踪图状态进行测试。具体而言,对于待测系统状态
Figure SMS_21
, 尽管状态输出α是“确定性的”(每个执行的对应具体数据包可能在某些细节上有所不同),工具接收相同α作为变异基础,可以选择不同的变异算子σ来构造不同的数据包模式
Figure SMS_22
作为测试输入。为此,首先检查是否存在状态q,该状态q可由尚未应用的其他类型数据包模式到达。如果存在,构建一个可以到达q的数据包模式序列,然后在将期望的数据包模式附加到之后。
其次,在所有待测系统状态都已由可用的各种数据包模执行遍历之后,试图通过转向低密度区域来促进所实现的系统状态追踪图的全面遍历。从初始状态开始,然后在循环中运行,直到到达结束状态:在每个步骤中,从相应状态的可用迁移中选择优先级最高的一个,记录其上标记的相应包模式,并进行此迁移到达下一个状态。值得注意的是,即使应用了数据包模式P来到达状态S,但未能发现新的行为,由于P可以生成的数据包集合通常是有限的,所以也值得之后在S上尝试P。
对于给定的数据包模式序列:
Figure SMS_24
,数据包实例化子模块生成符合作为待测系统输入的具体数据包序列。由于在抽象级别上给出了在中的包
Figure SMS_27
,需要实例化它们,同时最大限度地保证它们的语法和语义正确性。为此,数据包实例化子模块利用待测系统各方中编码的协议逻辑。在系统状态追踪图的保证下,数据包模式为不同的待测系统方准备了不同的输入。通过实例化子模块逐一实例化它们。例如,对于包模式
Figure SMS_29
作为服务器输入实例化,数据包实例化子模块从客户端接收数据包P(如果有多个数据包,将它们连接成一个),并检查P是否符合
Figure SMS_25
的结构:(i)如果符合,则直接将P作为
Figure SMS_28
的实例化,然后对P执行相应的变异算子
Figure SMS_30
以生成测试数据包;(ii)如果不是,则表明待测系统的实际内部状态发生了转变,与由设计的数据包模式不同,则存在两种可能的情况:(a)发现了一些新的状态或状态迁移;(b)由于系统状态追踪图固有的不确定性,一些转变没有被视为预期的,导致不同的状态轨迹。在这些情况下,为了在实现的系统状态追踪图的全面遍历和对未知状态空间的有效探索之间取得平衡,工具随机选择以下两种策略来生成具体的包:(1)忽略
Figure SMS_31
并直接对P执行
Figure SMS_23
;以及(2)对符合的数据包使用Oracle Map,并对其执行
Figure SMS_26
本发明提供的一种基于系统状态追踪图引导的网络协议漏洞检测方法,通过获取待检测系统客户端与服务端之间交流通信的网络协议流量,构造待检测系统状态追踪图,基于系统状态追踪图引导产生变异数据包,触发待测系统更多的状态,达到更为深入的系统状态;能够在不侵入待测系统内部的情况下,通过构建系统状态追踪图,指导模糊测试过程中的网络数据包变异操作,生成符合协议状态逻辑的高质量数据包。通过这种方式,可以提高模糊测试的效率和全面性,从而更有效地发现网络协议漏洞。
参考图5,本发明还公开了一种基于系统状态追踪图引导的网络协议漏洞检测系统,所述系统包括:
数据获取模块110,用于获取待检测系统客户端与服务端之间交流通信的网络协议流量;
系统状态追踪图构造模块120,用于基于所述网络协议流量生成待检测系统状态轨迹,根据待检测系统状态轨迹构造待检测系统状态追踪图;
变异数据包生成模块130,用于基于所述待检测系统状态追踪图通过预设的引导序列生成策略,生成变异操作序列,产生变异数据包;
变异交互模块140,用于通过所述变异数据包对待检测系统流量进行变异操作,完成基于系统状态追踪图的模糊测试,发现网络协议漏洞。
其中,系统状态追踪图构造模块120,对待检测系统客户端与服务端之间交流通信的网络协议流量进行分析处理;
从所述网络协议流量中分析提取出关键信息,构建状态信息轨迹;
根据所述状态信息轨迹构建待检测系统状态追踪图。
将所述状态信息轨迹映射为系统状态追踪图上的一条路径;
对不同的路径进行过滤合并,在交互过程中构建一张系统状态追踪图。
变异数据包生成模块130,在待检测系统进行网络协议交互过程中,通过所述系统状态追踪图展示系统当前所处的状态;
通过预设的引导序列生成策略根据系统当前状态信息启发式地对能够完成下个状态变迁的数据包进行变异操作;
通过所述变异操作生成变异操作序列,产生变异数据包。
变异交互模块140,通过对待测系统的网络协议流量进行处理和分析,能够不侵入待测系统内部,构建系统状态追踪图来引导模糊测试过程中网络数据包的变异操作;
通过变异操作产生符合协议状态逻辑的高质量数据包,完成模糊测试,发现网络协议漏洞。
本发明提供的一种基于系统状态追踪图引导的网络协议漏洞检测系统,通过获取待检测系统客户端与服务端之间交流通信的网络协议流量,构造待检测系统状态追踪图,基于系统状态追踪图引导产生变异数据包,触发待测系统更多的状态,达到更为深入的系统状态;能够在不侵入待测系统内部的情况下,通过构建系统状态追踪图,指导模糊测试过程中的网络数据包变异操作,生成符合协议状态逻辑的高质量数据包。通过这种方式,可以提高模糊测试的效率和全面性,从而更有效地发现网络协议漏洞。
图11示例了一种电子设备的实体结构示意图,如图11所示,该电子设备可以包括:处理器(Processor)1110、通信接口(Communications Interface)1120、存储器(Memory)1130和通信总线1140,其中,处理器1110,通信接口1120,存储器1130通过通信总线1140完成相互间的通信。处理器1110可以调用存储器1130中的逻辑指令,以执行一种基于系统状态追踪图引导的网络协议漏洞检测方法,该方法包括获取待检测系统客户端与服务端之间交流通信的网络协议流量;
基于所述网络协议流量生成待检测系统状态轨迹,根据待检测系统状态轨迹构造待检测系统状态追踪图;
基于所述待检测系统状态追踪图通过预设的引导序列生成策略,生成变异操作序列,产生变异数据包;
通过所述变异数据包对待检测系统流量进行变异操作,完成基于系统状态追踪图的模糊测试,发现网络协议漏洞。
此外,上述的存储器1130中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的一种基于系统状态追踪图引导的网络协议漏洞检测方法,该方法包括:获取待检测系统客户端与服务端之间交流通信的网络协议流量;
基于所述网络协议流量生成待检测系统状态轨迹,根据待检测系统状态轨迹构造待检测系统状态追踪图;
基于所述待检测系统状态追踪图通过预设的引导序列生成策略,生成变异操作序列,产生变异数据包;
通过所述变异数据包对待检测系统流量进行变异操作,完成基于系统状态追踪图的模糊测试,发现网络协议漏洞。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的一种基于系统状态追踪图引导的网络协议漏洞检测方法,该方法包括获取待检测系统客户端与服务端之间交流通信的网络协议流量;
基于所述网络协议流量生成待检测系统状态轨迹,根据待检测系统状态轨迹构造待检测系统状态追踪图;
基于所述待检测系统状态追踪图通过预设的引导序列生成策略,生成变异操作序列,产生变异数据包;
通过所述变异数据包对待检测系统流量进行变异操作,完成基于系统状态追踪图的模糊测试,发现网络协议漏洞。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (9)

1.一种基于系统状态追踪图引导的网络协议漏洞检测方法,其特征在于,包括:
获取待检测系统客户端与服务端之间交流通信的网络协议流量;
基于所述网络协议流量生成待检测系统状态轨迹,根据待检测系统状态轨迹构造待检测系统状态追踪图;
基于所述待检测系统状态追踪图通过预设的引导序列生成策略生成变异操作序列,产生变异数据包;
通过所述变异数据包对待检测系统流量进行变异操作,完成基于系统状态追踪图的模糊测试,发现网络协议漏洞。
2.根据权利要求1所述的基于系统状态追踪图引导的网络协议漏洞检测方法,其特征在于,所述基于所述网络协议流量生成待检测系统状态轨迹,根据待检测系统状态轨迹构造待检测系统状态追踪图,具体包括:
对待检测系统客户端与服务端之间交流通信的网络协议流量进行分析处理;
从所述网络协议流量中分析提取出关键信息,构建状态信息轨迹;
根据所述状态信息轨迹构建待检测系统状态追踪图。
3.根据权利要求2所述的基于系统状态追踪图引导的网络协议漏洞检测方法,其特征在于,根据所述状态信息轨迹构建待检测系统状态追踪图,具体包括:
将所述状态信息轨迹映射为系统状态追踪图上的一条路径;
对不同的路径进行过滤合并,在交互过程中构建一张系统状态追踪图。
4.根据权利要求1所述的基于系统状态追踪图引导的网络协议漏洞检测方法,其特征在于,基于所述待检测系统状态追踪图通过预设的引导序列生成策略,生成变异操作序列,产生变异数据包,具体包括:
在待检测系统进行网络协议交互过程中,通过所述系统状态追踪图展示系统当前所处的状态;
通过预设的引导序列生成策略根据系统当前状态信息启发式地对能够完成下个状态变迁的数据包进行变异操作;
通过所述变异操作生成变异操作序列,产生变异数据包。
5.根据权利要求4所述的基于系统状态追踪图引导的网络协议漏洞检测方法,其特征在于,通过所述变异操作生成变异操作序列,产生变异数据包,具体包括:
通过对系统状态追踪图的遍历,产生变异操作序列;
通过对所述变异操作序进程拆解得到数据包模式序列;
在所述数据包模式序列的指导下产生变异数据包。
6.根据权利要求1所述的基于系统状态追踪图引导的网络协议漏洞检测方法,其特征在于,通过所述变异数据包对待检测系统流量进行变异操作,完成基于系统状态追踪图的模糊测试,发现网络协议漏洞,具体包括:
通过对待测系统的网络协议流量进行处理和分析,能够不侵入待测系统内部,构建系统状态追踪图来引导模糊测试过程中网络数据包的变异操作;
通过变异操作产生符合协议状态逻辑的高质量数据包,完成模糊测试,发现网络协议漏洞。
7.一种基于系统状态追踪图引导的网络协议漏洞检测系统,其特征在于,所述系统包括:
数据获取模块,用于获取待检测系统客户端与服务端之间交流通信的网络协议流量;
系统状态追踪图构造模块,用于基于所述网络协议流量生成待检测系统状态轨迹,构造待检测系统状态追踪图;
变异数据包生成模块,用于基于所述待检测系统状态追踪图通过预设的引导序列生成策略,生成变异操作序列,产生变异数据包;
变异交互模块,用于通过所述变异数据包对待检测系统流量进行变异操作,完成基于系统状态追踪图的模糊测试,发现网络协议漏洞。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述基于系统状态追踪图引导的网络协议漏洞检测方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述基于系统状态追踪图引导的网络协议漏洞检测方法。
CN202310378873.5A 2023-04-11 2023-04-11 基于系统状态追踪图引导的网络协议漏洞检测方法及系统 Active CN116094850B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310378873.5A CN116094850B (zh) 2023-04-11 2023-04-11 基于系统状态追踪图引导的网络协议漏洞检测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310378873.5A CN116094850B (zh) 2023-04-11 2023-04-11 基于系统状态追踪图引导的网络协议漏洞检测方法及系统

Publications (2)

Publication Number Publication Date
CN116094850A true CN116094850A (zh) 2023-05-09
CN116094850B CN116094850B (zh) 2023-06-27

Family

ID=86212381

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310378873.5A Active CN116094850B (zh) 2023-04-11 2023-04-11 基于系统状态追踪图引导的网络协议漏洞检测方法及系统

Country Status (1)

Country Link
CN (1) CN116094850B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117118879A (zh) * 2023-10-23 2023-11-24 北京华云安信息技术有限公司 网络协议漏洞挖掘方法、装置、设备以及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012216841A1 (de) * 2011-09-29 2013-04-04 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur Durchführung von Sicherheitstests hinsichtlich von Protokollimplementierungen
CN114168451A (zh) * 2021-11-12 2022-03-11 北京水木羽林科技有限公司 一种双端支持的协议模糊测试方法和装置
CN114650163A (zh) * 2022-01-21 2022-06-21 中国人民解放军战略支援部队信息工程大学 面向有状态网络协议的模糊测试方法及系统
CN115001849A (zh) * 2022-07-06 2022-09-02 济南鲁通汇元电子科技有限公司 针对大数据安全漏洞挖掘的漏洞修复方法及漏洞修复系统
CN115515139A (zh) * 2022-09-14 2022-12-23 中国移动通信集团有限公司 漏洞安全检测方法、装置、设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012216841A1 (de) * 2011-09-29 2013-04-04 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur Durchführung von Sicherheitstests hinsichtlich von Protokollimplementierungen
CN114168451A (zh) * 2021-11-12 2022-03-11 北京水木羽林科技有限公司 一种双端支持的协议模糊测试方法和装置
CN114650163A (zh) * 2022-01-21 2022-06-21 中国人民解放军战略支援部队信息工程大学 面向有状态网络协议的模糊测试方法及系统
CN115001849A (zh) * 2022-07-06 2022-09-02 济南鲁通汇元电子科技有限公司 针对大数据安全漏洞挖掘的漏洞修复方法及漏洞修复系统
CN115515139A (zh) * 2022-09-14 2022-12-23 中国移动通信集团有限公司 漏洞安全检测方法、装置、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张开便等: ""基于模糊测试的网络协议漏洞挖掘研究"", 《现代电子技术》, vol. 39, no. 13 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117118879A (zh) * 2023-10-23 2023-11-24 北京华云安信息技术有限公司 网络协议漏洞挖掘方法、装置、设备以及存储介质
CN117118879B (zh) * 2023-10-23 2024-01-26 北京华云安信息技术有限公司 网络协议漏洞挖掘方法、装置、设备以及存储介质

Also Published As

Publication number Publication date
CN116094850B (zh) 2023-06-27

Similar Documents

Publication Publication Date Title
Duchêne et al. State of the art of network protocol reverse engineering tools
Basin et al. An on-the-fly model-checker for security protocol analysis
Bossert et al. Towards automated protocol reverse engineering using semantic information
Cho et al. Inference and analysis of formal models of botnet command and control protocols
Hsu et al. A model-based approach to security flaw detection of network protocol implementations
Kleber et al. Survey of protocol reverse engineering algorithms: Decomposition of tools for static traffic analysis
CN111488577B (zh) 一种基于人工智能的模型建立方法和风险评估方法及装置
CN114650163B (zh) 面向有状态网络协议的模糊测试方法及系统
WO2010065418A1 (en) Graph-based data search
Luo et al. Bleem: Packet sequence oriented fuzzing for protocol implementations
CN116094850B (zh) 基于系统状态追踪图引导的网络协议漏洞检测方法及系统
EP4072066A1 (en) Method for automatic derivation of attack paths in a network
CN116170224A (zh) 渗透测试方法、装置、设备及介质
CN116248337A (zh) 一种基于测试用例自动化生成的协议模糊测试方法及装置
Chandler et al. BinaryInferno: A Semantic-Driven Approach to Field Inference for Binary Message Formats.
Mödersheim et al. Constraint differentiation: Search-space reduction for the constraint-based analysis of security protocols
Pereira et al. A machine learning approach for prediction of signaling sip dialogs
Pan et al. Model‐Based Grey‐Box Fuzzing of Network Protocols
Xiao et al. Automatic protocol reverse engineering using grammatical inference
Yang et al. Fast submatch extraction using OBDDs
Xu et al. FIoTFuzzer: Response-based black-box fuzzing for IoT devices
Shu et al. A formal methodology for network protocol fingerprinting
Liu [Retracted] The Application of Machine Learning Models in Network Protocol Vulnerability Mining
CN116208416A (zh) 一种工业互联网的攻击链路挖掘方法及系统
Hosic et al. Evolving decision trees to detect anomalies in recurrent ICS networks

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant