一种ROP流量检测方法、装置、设备及计算机可读存储介质

阅读: 评论:0


一种rop流量检测方法、装置、设备及计算机可读存储介质
技术领域
1.本发明涉及网络流量检测领域,特别涉及一种rop流量检测方法、装置、设备及计算机可读存储介质。


背景技术:



2.现有的对rop流量(return oriented programming,返回导向式编程)进行检测的方法由于需要特定的目标环境才可以进行检测,使得在对流量进行检测时,需要预先存储大量目标库、地址信息等汇编信息,使得进行rop流量检测时占用的内存较大,例如使用硬件性能计数器对rop进行攻击检测时,需要对程序运行过程进行监控,检测过程较为复杂且与程序的执行环境紧密相关,局限性较大。因此,如何在进行rop流量检测时,减少占用的内存空间是本领域技术人员解决的技术问题。


技术实现要素:



3.有鉴于此,本发明的目的在于提供rop流量检测方法,解决了现有技术中对rop流量进行检测时占用空间较大的问题。
4.为解决上述技术问题,本发明提供了一种rop流量检测方法,包括:获取待检测流量;计算所述待检测流量对应的状态跳转序列集;调用有限状态机对所述状态跳转序列集进行处理,以得到所述待检测流量对应的检测评估值;根据所述检测评估值确定所述待检测流量是否为rop流量;所述调用有限状态机对所述状态跳转序列集进行处理,以得到所述待检测流量对应的检测评估值,包括:调用所述有限状态机计算所述状态跳转序列集对应的多个字节序列模式量化值;其中,所述字节序列模式量化值为;s表示字节序列,表示状态跳转权重,n表示所述字节序列发生n次状态跳转,表示激活函数;计算所述多个字节序列模式量化值中的最大值,将所述最大值作为所述检测评估值。
5.可选的,所述计算所述待检测流量对应的状态跳转序列集,包括:对所述待检测流量进行四通道采样,得到多个待检测字节序列;计算每个待检测字节序列对应的状态跳转序列,以得到所述状态跳转序列集。
6.可选的,所述rop流量检测方法,还包括:采集rop流量和非rop流量;对所述rop流量和所述非rop流量进行预处理,得到训练状态跳转序列集;
根据所述训练状态跳转序列集,迭代训练所述有限状态机。
7.可选的,所述根据所述训练状态跳转序列集,迭代训练所述有限状态机,包括:根据所述训练状态跳转序列集,应用梯度下降算法迭代训练包括损失函数的所述有限状态机;其中,所述损失函数为,r表示rop gadget地址首字节序列的集合,b表示正常流量中随机采样字节序列的集合,所述s表示所述字节序列;将作为所述损失函数的优化目标,得到所述状态跳转权重为所述的所述有限状态机。
8.可选的,所述根据所述检测评估值确定所述待检测流量是否为rop流量,包括:获取预设阈值;当所述检测评估值大于所述预设阈值时,确定所述待检测流量为rop流量;当所述检测评估值不大于所述预设阈值时,确定所述待检测流量为非rop流量。
9.可选的,所述rop流量检测方法,还包括:当所述待检测流量为rop流量时,输出提示信息。
10.本发明还提供一种rop流量检测装置,包括:待检测流量获取模块,用于获取待检测流量;状态跳转序列集获取模块,用于计算所述待检测流量对应的状态跳转序列集;检测评估值获取模块,用于调用有限状态机对所述状态跳转序列集进行处理,以得到所述待检测流量对应的检测评估值;rop流量确定模块,用于根据所述检测评估值确定所述待检测流量是否为rop流量;所述检测评估值获取模块,包括:字节序列模式量化值计算单元,用于调用所述有限状态机计算所述状态跳转序列集对应的多个字节序列模式量化值;其中,所述字节序列模式量化值为;s表示字节序列,表示状态跳转权重,n表示所述字节序列发生n次状态跳转,表示激活函数;检测评估值计算单元,用于计算所述多个字节序列模式量化值中的最大值,将所述最大值作为所述检测评估值。
11.本发明还提供了一种rop流量检测设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述的rop流量检测方法的步骤。
12.本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的rop流量检测方法的步骤。
13.可见,本发明通过获取待检测流量;计算所述待检测流量对应的状态跳转序列集;
调用有限状态机对所述状态跳转序列集进行处理,以得到所述待检测流量对应的检测评估值;根据所述检测评估值确定所述待检测流量是否为rop流量。和现有技术需要配置目标环境进行检测相比,本发明提供的rop流量检测方法,不依靠目标环境,不需要配置目标环境,直接计算待检测流量对应的检测评估值,利用该检测评估值确定待检测流量是否是rop流量。因此,本发明提供的rop流量检测方法,不需要配置目标环境,也无需记录任何地址信息或使用任何反汇编工具,检测过程简单,并且占用内存也极小。
14.此外,本发明还提供了一种rop流量检测装置、设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
15.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
16.图1为本发明实施例提供的一种rop流量检测方法的流程图;图2为本发明实施例提供的一种状态跳转序列示意图;图3为本发明实施例提供的一种有限状态机示意图;图4为本发明实施例提供的一种rop流量检测方法的流程示例图;图5为本发明实施例提供的一种rop流量检测装置的结构示意图;图6为本发明实施例提供的一种rop流量检测设备的结构示意图。
具体实施方式
17.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
18.请参考图1,图1为本发明实施例提供的rop流量检测方法。该方法可以包括:s100,获取待检测流量。
19.该实施例并不限定获取待检测流量的具体方式。例如,可以获取来自流量收集工具采集的待检测流量,也可以利用流量采集代码获取待检测流量。该实施例并不限定获取待检测流量的时机。例如,可以实时获取待检测流量,或者也可以按预设周期获取待检测流量。该实施例并不限定待检测流量的具体内容。例如,待检测流量可以是rop(return oriented programming,返回导向式编程)流量,或者待检测流量也可以是非rop流量。
20.s101,计算所待检测流量对应的状态跳转序列集。
21.该实施例中的待检测流量由于由多个字节组成,字节的变换可以理解为状态跳转,根据待检测流量的字节序列的前后顺序,计算字节和状态的对应关系,进而得到待检测流量对应的状态跳转序列集。该实施例并不限定状态与字节之间的具体对应关系,例如状态1可以对应字节77,或者状态1也可以对应字节7c,或者状态1还可以对应字节41。该实施例并不限定状态跳转序列集的具体跳转序列,例如状态跳转序列集可以包括字节状态跳转
序列1:跳转11,跳转12,跳转21,跳转13,跳转31,跳转12,跳转24,和字节状态跳转序列2:跳转12,跳转21,跳转13,跳转31,跳转14,跳转43,跳转32;或者状态跳转序列集可以包括:跳转序列1:跳转11,跳转12,跳转21,跳转13,跳转31,跳转12,跳转24,和跳转序列2:跳转12,跳转21,跳转13,跳转31,跳转14,跳转43,跳转32。
22.s102,调用有限状态机对所述状态跳转序列集进行处理,以得到待检测流量对应的检测评估值;该实施例中通过有限状态机对待检测流量的检测评估值进行计算。该实施例并不限定具体的检测评估值。例如,检测评估值可以是0.5,或者检测评估值可以是0.4,或者检测评估值还可以是0.8。
23.s103,根据检测评估值确定待检测流量是否为rop流量。
24.该实施例并不限定根据检测评估值确定待检测流量是否是rop流量的具体内容。例如,该实施例可以通过判断检测评估值是否达到预设阈值,来确定待检测流量是否是rop流量。该实施例并不限定预设阈值的具体数值,只要该预设阈值在0-1之间即可。例如,预设阈值可以是0.7,或者该预设阈值可以是0.8,或者预设阈值可以是0.9。该实施例还可以通过判断检测评估值是否在预设范围,来确定待检测流量是否是rop流量,该实施例并不限定预设范围的具体范围。例如,该预设范围可以是0至0.6,此时,当检测评估值在0至0.6,确定待检测流量不是rop流量;或者预设范围可以是0至0.8,此时,当检测评估值在0至0.8时,确定待检测流量不是rop流量。该实施例并不限定确定待检测流量是rop流量后执行的操作。例如,当确认待检测流量是rop流量时,可以发送提示信息,或者当确认待检测流量是rop流量时,可以直接阻断该待检测流量的进程。
25.上述调用有限状态机对状态跳转序列集进行处理,以得到待检测流量对应的检测评估值,可以包括:调用有限状态机计算状态跳转序列集对应的多个字节序列模式量化值;其中,所述字节序列模式量化值为;s表示字节序列,表示状态跳转权重,n表示字节序列发生n次状态跳转,表示激活函数;计算多个字节序列模式量化值中的最大值,将最大值作为检测评估值。
26.该实施例并不限定有限状态机中参数的初始值。例如,可以初始化一个sxs的权重矩阵,s为最大状态数,矩阵的第i行第j列表示在有限状态机中,由状态i跳转到状态j的权重值,矩阵中的元素的值初始化为0。或者,可以初始化一个sxs的权重矩阵,s为最大状态数,矩阵的第i行第j列表示在有限状态机中,由状态i跳转到状态j的权重值,矩阵中的元素的值初始化为0.5。该实施例并不限定最大状态数s的具体数值。例如,最大状态数s可以是5,或者最大状态数s可以是20,或者最大状态数s可以是25。根据得到的rop流量和非rop流量对应的训练状态跳转序列数据集,计算损失函数,采用梯度下降算法对参数进行训练,得到经训练的待参数的有限状态机。该实施例可以通过经过迭代训练的带参数的有限状态机计算待检测流量的多个字节序列模式量化值,从而计算多个字节序列模式量化值中的最大值,将最大值作为检测评估值,进而根据该检测评估值确定待检测流量是否是rop流量。
27.进一步,为了快速得到待检测流量对应的状态跳转序列集,上述计算待检测流量
对应的状态跳转序列集,可以包括:对待检测流量进行四通道采样,得到多个待检测字节序列;计算每个待检测字节序列对应的状态跳转序列,以得到状态跳转序列集。
28.该实施例对待检测流量进行四通道采样,对于每个通道字节序列,取固定长度的字节,即取起始点与终止点之间的s个字节,其中,s为最大状态数,即从起始点第1个字节开始,每取一个待检测字节序列,起始点和终止点向后移一位,直到终止点为通道字节序列最后一个字节,得到多个待检测字节序列,进而将多个待检测字节序列作为状态跳转序列集。该实施例通过对待检测流量进行四通道采样,提高了计算待检测流量对应的状态跳转序列集的速度。该实施例并不限定最大状态数s的具体数值。例如,最大状态数s可以为6个;或者最大状态数s可以为8个;或者最大状态数s可以为10个。该实施例并不限定待检测字节序列的数量。例如,待检测字节序列的数量可以是8个,或者待检测字节序列可以是16个。
29.进一步,为了对有限状态机进行准确训练。上述rop流量检测方法,还可以包括:采集rop流量和非rop流量;对rop流量和非rop流量进行预处理,得到训练状态跳转序列集;根据训练状态跳转序列集,迭代训练有限状态机。
30.该实施例并不限定rop流量的具体采集方式。例如,可以通过rop gadget(一种基于代码复用的一种攻击技术)工具构造而成,或者可以基于收集的rop gadget构造而成。该实施例并不限定正常流量的获取方法。例如,可以从已公开的ustc-tfc(数据集)中采集正常流量,或者可以从iscx(数据集)中采集正常流量。该实施例并不限定对rop流量和非rop流量进行预处理的具体处理方式。例如,若针对32位机器的rop流量检测,可以对待检测流量进行四通道采样,获取多个字节采集序列,得到训练状态跳转序列集;或者若针对64位机器的rop流量检测,可以对待检测流量进行八通道采样,获取多个字节采集序列,得到训练状态跳转序列集。该实施例可以通过训练状态跳转序列集,迭代训练有限状态机,得到带参数的有限训练状态机。
31.进一步,为了加快有限训练集的训练速度,上述根据训练状态跳转序列集,迭代训练所述有限状态机,包括:根据训练状态跳转序列集,应用梯度下降算法迭代训练包括损失函数的有限状态机;其中,损失函数为,r表示rop gadget地址首字节序列的集合,b表示正常流量中随机采样字节序列的集合,s表示字节序列;将作为损失函数的优化目标,得到状态跳转权重为的有限状态机。
32.该实施例中采用梯度下降算法和adam(adam optimization algorithm)优化算法迭代训练有限状态机。由于梯度下降算法需要较小的迭代就可以收敛,adam优化算法可以高效地计算,所以使用梯度下降算法和adam优化算法迭代训练有限状态机的速度更快。该实施例中是计算字节序列模式量化值的公式,只要有
字节序列,就能求出字节序列模式。nb表示有nb个非rop流量(benign traffic)sb表示第b个流量。同理,nr表示有nr个rop流量。训练开始前θ的值时随机初始化值,这一步的目的是得到最优的θ,使得损失函数的值最小。损失函数最小的能够使得rop流量的字节序列模式量化值尽可能大,非rop流量的字节序列模式量化值尽可能小,从而区分rop流量和非rop流量。后边利用函数进行检测时,可以直接使用参数θ,因为在检测前已经训练完毕得到了最优的θ。
33.进一步,为了快速确定是否是rop流量,上述根据检测评估值确定待检测流量是否为rop流量,可以包括:获取预设阈值;当检测评估值大于预设阈值时,确定待检测流量为rop流量;当检测评估值不大于预设阈值时,确定待检测流量为非rop流量。
34.该实施例并不限定具体的预设阈值。例如,该预设阈值可以是0.8,或者该预设阈值可以是0.7,或者该预设阈值可以是0.9。该实施例将检测评估值大于阈值的待检测流量确定为rop流量,将检测评估值不大于预设阈值的待检测流量确定为非rop流量。
35.进一步,为了及时提醒用户存在rop流量,上述rop流量检测方法,还可以包括:当所述待检测流量为rop流量时,输出提示信息。
36.该实施例并不限定提示信息的具体方式。例如,提示信息的方式可以是文字方式,或者提示信息的方式可以是声音提醒方式。
37.应用本发明实施例提供的rop流量检测方法,通过获取待检测流量;计算待检测流量对应的状态跳转序列集;调用有限状态机对状态跳转序列集进行处理,以得到待检测流量对应的检测评估值;根据检测评估值确定待检测流量是否为rop流量。可见,本发明采用字节序列模式提取出rop流量的静态特征,可以实现对rop流量的静态检测,相较于动态检测的方法(如ropdetector),本发明不依赖于目标程序的执行环境,适用范围广。并且本发明无需记录任何地址信息或使用任何反汇编工具,相较于现有的静态检测方法(如ropminer、deepreturn),实现更为简单且具有极小的内存开销。并且,对待检测流量进行四通道采样,可以快速得到待检测流量对应的状态跳转序列集;并且,本发明提供一种有限状态机的训练方式,可以快速计算检测评估值;并且,使用梯度下降算法和adam优化算法对包括损失函数的有限状态机进行准确、快速训练;并且,在确定待检测流量是rop流量时,可以发送提示信息,使得可以快速告知相关人员存在rop流量。
38.为了使本发明更便于理解,具体请参考图4,图4为本发明实施例提供的rop流量检测的流程示例图,具体可以包括:该实施例首先采集rop gadget工具构造的rop流量,并从已公开数据集ustc-tfc中采集非rop流量,进而对采集的rop流量和非rop流量进行四通道,对于整个流量字节序列,取其中n, n+4, n+8
ꢀ…
(n=0,1,2,3)位置的字节为一个通道,取n的值为0,1,2,3即构成四通道采样。采用四通道采样方法的原因是假设程序运行在32位操作系统的环境下,则rop gadget地址长度均为4个字节,应用四通道采样方法其中必然存在一个通道的字节序列包含rop gadget地址的首字节序列。然后,对四通道采样的流量进行数据筛选,对于rop流量
选择包含rop gadget地址首字节通道的字节序列,对于正常流量随机选择一个通道的字节序列。最后,根据字节序列的值生成状态跳转序列,并舍弃状态跳转序列中的状态数超过预设最大状态数s的部分,该实施例中的最大状态数s为17,构建训练状态跳转序列集,部分训练状态跳转序列集如图2所示。进而根据训练状态跳转序列集,应用梯度下降算法迭代训练包括损失函数的有限状态机;其中,损失函数为,r表示rop gadget地址首字节序列的集合,b表示正常流量中随机采样字节序列的集合;将作为损失函数的优化目标,得到状态跳转权重为的有限状态机,即得到带参数的有限状态机,有限状态机示意图,如图3所示,图3为本发明实施例提供的一种有限状态机示意图。
39.进而采集待检测流量,对待检测流量进行预处理,即对待检测流量进行四通道采样,对于每个通道字节序列,取起始点与终止点之间的5个字节,其中,5为最大状态数,得到5个待检测字节序列,待检测字节序列如表1所示。进而对得到的每个待检测字节序列,根据字节的值生成状态跳转序列集。最后,可以将状态跳转序列集输入到有限状态机,得到每个状态跳转序列对应的字节序列模式量化值,当该实施例中的字节序列模式量化值是[0.1,0.5, 0.4, 0.2, 0.1]时,确定检测评估值为最大值0.5。当该实施例中的预设阈值为0.8时,由于0.5小于0.8,所以,确定待检测流量为正常流量。
[0040]
表1 待检测字节序列示例表下面对本发明实施例提供的rop流量检测装置进行介绍,下文描述的rop流量检测装置与上文描述的rop流量检测方法可相互对应参照。
[0041]
具体请参考图5,图5为本发明实施例提供的rop流量检测装置的结构示意图,可以包括:待检测流量获取模块100,用于获取待检测流量;状态跳转序列集获取模块200,用于计算所述待检测流量对应的状态跳转序列集;检测评估值获取模块300,用于调用有限状态机对所述状态跳转序列集进行处理,以得到所述待检测流量对应的检测评估值;rop流量确定模块400,用于根据所述检测评估值确定所述待检测流量是否为rop流量。
[0042]
所述检测评估值获取模块300,可以包括:字节序列模式量化值计算单元,用于调用有限状态机计算所述状态跳转序列集对应的多个字节序列模式量化值;其中,所述字节序列模式量化值为
;s表示字节序列,表示状态跳转权重,n表示字节序列发生n次状态跳转,表示激活函数;检测评估值计算单元,用于计算多个字节序列模式量化值中的最大值,将所述最大值作为所述检测评估值。
[0043]
进一步,基于上述实施例,所述状态跳转序列集获取模块200,可以包括:待检测字节序列计算单元,用于对所述待检测流量进行四通道采样,得到多个待检测字节序列;状态跳转序列集计算单元计算每个待检测字节序列对应的状态跳转序列,以得到所述状态跳转序列集。
[0044]
进一步,基于上述任意实施例,所述rop流量检测装置,还可以包括:流量采集模块,用于采集rop流量和非rop流量;预处理模块,用于对所述rop流量和所述非rop流量进行预处理,得到训练状态跳转序列集;有限状态机训练模块,用于根据所述训练状态跳转序列集,迭代训练所述有限状态机。
[0045]
进一步,基于上述实施例,所述有限状态机训练模块,可以包括:有限状态机训练单元,用于根据所述训练状态跳转序列集,应用梯度下降算法迭代训练包括损失函数的所述有限状态机;其中,所述损失函数为,r表示rop gadget地址首字节序列的集合,b表示正常流量中随机采样字节序列的集合,所述s表示所述字节序列;带参数的有限状态机获取单元,用于将作为所述损失函数的优化目标,得到所述状态跳转权重为所述的所述有限状态机。
[0046]
进一步,基于上述任意实施例,所述rop流量确定模块400,可以包括:预设阈值获取单元,用于获取预设阈值;rop流量确定单元,用于当所述检测评估值大于所述预设阈值时,确定所述待检测流量为rop流量;非rop流量确定单元,用于当所述检测评估值不大于所述预设阈值时,确定所述待检测流量为非rop流量。
[0047]
进一步,基于上述任意实施例,所述rop流量检测装置,还可以包括:提示模块,用于当所述待检测流量为rop流量时,输出提示信息。
[0048]
本发明所提供的rop流量检测装置,包括待检测流量获取模块100,用于获取待检测流量;状态跳转序列集获取模块200,用于计算所述待检测流量对应的状态跳转序列集;检测评估值获取模块300,用于调用有限状态机对所述状态跳转序列集进行处理,以得到所述待检测流量对应的检测评估值;rop流量确定模块400,用于根据所述检测评估值确定所
述待检测流量是否为rop流量。可见,本发明采用字节序列模式提取出rop流量的静态特征,可以实现对rop流量的静态检测,相较于动态检测的方法(如ropdetector)对应的动态检测装置,本发明提供的rop流量检测装置不依赖于目标程序的执行环境,适用范围广。并且该rop流量检测装置无需记录任何地址信息或使用任何反汇编工具,相较于现有的静态检测方法(如ropminer、deepreturn),实现更为简单且具有极小的内存开销。并且,通过待检测字节序列计算单元对待检测流量进行四通道采样,可以快速得到待检测流量对应的状态跳转序列集;并且,使用梯度下降算法和adam优化算法对包括损失函数的有限状态机进行准确、快速训练;并且,在确定待检测流量是rop流量时,可以发送提示信息,使得可以快速告知相关人员存在rop流量。
[0049]
需要说明的是,上述rop流量检测装置中的模块以及单元在不影响逻辑的情况下,其顺序可以前后进行更改。
[0050]
下面对本发明实施例提供的rop流量检测设备进行介绍,下文描述的rop流量检测设备与上文描述的rop流量检测方法可相互对应参照。
[0051]
请参考图6,图6为本发明实施例提供的rop流量检测设备的结构示意图,可以包括:存储器10,用于存储计算机程序;处理器20,用于执行计算机程序,以实现上述的rop流量检测方法。
[0052]
存储器10、处理器20、通信接口31和通信总线32。存储器10、处理器20、通信接口31均通过通信总线32完成相互间的通信。
[0053]
在本发明实施例中,存储器10中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本技术实施例中,存储器10中可以存储有用于实现以下功能的程序:获取待检测流量;计算待检测流量对应的状态跳转序列集;调用有限状态机对状态跳转序列集进行处理,以得到待检测流量对应的检测评估值;根据检测评估值确定待检测流量是否为rop流量;其中,调用有限状态机对状态跳转序列集进行处理,以得到待检测流量对应的检测评估值,包括:调用有限状态机计算状态跳转序列集对应的多个字节序列模式量化值;其中,字节序列模式量化值为;s表示字节序列,表示状态跳转权重,n表示所述字节序列发生n次状态跳转,表示激活函数;计算多个字节序列模式量化值中的最大值,将最大值作为检测评估值。
[0054]
在一种可能的实现方式中,存储器10可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及至少一个功能所需的应用程序等;存储数据区可存储使用过程中所创建的数据。
[0055]
此外,存储器10可以包括只读存储器和随机存取存储器,并向处理器提供指令和
数据。存储器的一部分还可以包括nvram。存储器存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。操作系统可以包括各种系统程序,用于实现各种基础任务以及处理基于硬件的任务。
[0056]
处理器20可以为中央处理器(central processing unit,cpu)、特定应用集成电路、数字信号处理器、现场可编程门阵列或者其他可编程逻辑器件,处理器20可以是微处理器或者也可以是任何常规的处理器等。处理器20可以调用存储器10中存储的程序。
[0057]
通信接口31可以为通信模块的接口,用于与其他设备或者系统连接。
[0058]
当然,需要说明的是,图6所示的结构并不构成对本技术实施例rop流量检测设备的限定,在实际应用中rop流量检测设备可以包括比图6所示的更多或更少的部件,或者组合某些部件。
[0059]
下面对本发明实施例提供的计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的rop流量检测方法可相互对应参照。
[0060]
本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的rop流量检测方法的步骤。
[0061]
该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0062]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0063]
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本发明的范围。
[0064]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
[0065]
以上对本发明所提供的rop流量检测方法、装置、设备和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

技术特征:


1.一种rop流量检测方法,其特征在于,包括:获取待检测流量;计算所述待检测流量对应的状态跳转序列集;调用有限状态机对所述状态跳转序列集进行处理,以得到所述待检测流量对应的检测评估值;根据所述检测评估值确定所述待检测流量是否为rop流量;其中,所述调用有限状态机对所述状态跳转序列集进行处理,以得到所述待检测流量对应的检测评估值,包括:调用所述有限状态机计算所述状态跳转序列集对应的多个字节序列模式量化值;其中,所述字节序列模式量化值为;s表示字节序列,表示状态跳转权重,n表示所述字节序列发生n次状态跳转,表示激活函数;计算所述多个字节序列模式量化值中的最大值,将所述最大值作为所述检测评估值。2.根据权利要求1所述的rop流量检测方法,其特征在于,所述计算所述待检测流量对应的状态跳转序列集,包括:对所述待检测流量进行四通道采样,得到多个待检测字节序列;计算每个待检测字节序列对应的状态跳转序列,以得到所述状态跳转序列集。3.根据权利要求1至2任一项所述的rop流量检测方法,其特征在于,还包括:采集rop流量和非rop流量;对所述rop流量和所述非rop流量进行预处理,得到训练状态跳转序列集;根据所述训练状态跳转序列集,迭代训练所述有限状态机。4.根据权利要求3所述的rop流量检测方法,其特征在于,所述根据所述训练状态跳转序列集,迭代训练所述有限状态机,包括:根据所述训练状态跳转序列集,应用梯度下降算法迭代训练包括损失函数的所述有限状态机;其中,所述损失函数为,r表示rop gadget地址首字节序列的集合,b表示正常流量中随机采样字节序列的集合,所述s表示所述字节序列;将作为所述损失函数的优化目标,得到所述状态跳转权重为所述的所述有限状态机。5.根据权利要求1所述的rop流量检测方法,其特征在于,所述根据所述检测评估值确定所述待检测流量是否为rop流量,包括:获取预设阈值;当所述检测评估值大于所述预设阈值时,确定所述待检测流量为rop流量;当所述检测评估值不大于所述预设阈值时,确定所述待检测流量为非rop流量。6.根据权利要求1所述的rop流量检测方法,其特征在于,还包括:
当所述待检测流量为rop流量时,输出提示信息。7.一种rop流量检测装置,其特征在于,包括:待检测流量获取模块,用于获取待检测流量;状态跳转序列集获取模块,用于计算所述待检测流量对应的状态跳转序列集;检测评估值获取模块,用于调用有限状态机对所述状态跳转序列集进行处理,以得到所述待检测流量对应的检测评估值;rop流量确定模块,用于根据所述检测评估值确定所述待检测流量是否为rop流量;其中,所述检测评估值获取模块,包括:字节序列模式量化值计算单元,用于调用所述有限状态机计算所述状态跳转序列集对应的多个字节序列模式量化值;其中,所述字节序列模式量化值为;s表示字节序列,表示状态跳转权重,n表示所述字节序列发生n次状态跳转,表示激活函数;检测评估值计算单元,用于计算所述多个字节序列模式量化值中的最大值,将所述最大值作为所述检测评估值。8.一种rop流量检测设备,其特征在于,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述的rop流量检测方法的步骤。9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的rop流量检测方法的步骤。

技术总结


本发明公开了一种ROP流量检测方法、装置、设备及计算机可读存储介质,应用于网络流量检测领域。该方法包括:获取待检测流量;计算待检测流量对应的状态跳转序列集;调用有限状态机对状态跳转序列集进行处理,以得到待检测流量对应的检测评估值;根据检测评估值确定待检测流量是否为ROP流量。本发明采用字节序列模式提取出ROP流量的字节跳转特征,可以实现对ROP流量的静态检测,相较于现有的动态检测方法,本发明不依赖于目标程序的执行环境,适用范围广,并且本发明无需记录任何地址信息或使用任何反汇编工具,相较于现有的静态检测方法,本发明实现更为简单且具有极小的内存开销。发明实现更为简单且具有极小的内存开销。发明实现更为简单且具有极小的内存开销。


技术研发人员:

王剑 黄恺杰 陈炯峄 张梦杰 刘星彤 李瑞林 冯超

受保护的技术使用者:

中国人民解放军国防科技大学

技术研发日:

2022.11.03

技术公布日:

2022/12/12

本文发布于:2022-12-15 08:17:30,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/1/34226.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:流量   序列   所述   跳转
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图