CN115473826B - 一种rop流量检测方法、装置、设备及计算机可读存储介质 - Google Patents

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

Info

Publication number
CN115473826B
CN115473826B CN202211365888.XA CN202211365888A CN115473826B CN 115473826 B CN115473826 B CN 115473826B CN 202211365888 A CN202211365888 A CN 202211365888A CN 115473826 B CN115473826 B CN 115473826B
Authority
CN
China
Prior art keywords
flow
rop
detected
traffic
state
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.)
Active
Application number
CN202211365888.XA
Other languages
English (en)
Other versions
CN115473826A (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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202211365888.XA priority Critical patent/CN115473826B/zh
Publication of CN115473826A publication Critical patent/CN115473826A/zh
Application granted granted Critical
Publication of CN115473826B publication Critical patent/CN115473826B/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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/022Capturing of monitoring data by sampling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

一种ROP流量检测方法、装置、设备及计算机可读存储介质
技术领域
本发明涉及网络流量检测领域,特别涉及一种ROP流量检测方法、装置、设备及计算机可读存储介质。
背景技术
现有的对ROP流量(Return Oriented Programming,返回导向式编程)进行检测的方法由于需要特定的目标环境才可以进行检测,使得在对流量进行检测时,需要预先存储大量目标库、地址信息等汇编信息,使得进行ROP流量检测时占用的内存较大,例如使用硬件性能计数器对ROP进行攻击检测时,需要对程序运行过程进行监控,检测过程较为复杂且与程序的执行环境紧密相关,局限性较大。因此,如何在进行ROP流量检测时,减少占用的内存空间是本领域技术人员解决的技术问题。
发明内容
有鉴于此,本发明的目的在于提供ROP流量检测方法,解决了现有技术中对ROP流量进行检测时占用空间较大的问题。
为解决上述技术问题,本发明提供了一种ROP流量检测方法,包括:
获取待检测流量;
计算所述待检测流量对应的状态跳转序列集;
调用有限状态机对所述状态跳转序列集进行处理,以得到所述待检测流量对应的检测评估值;
根据所述检测评估值确定所述待检测流量是否为ROP流量;
所述调用有限状态机对所述状态跳转序列集进行处理,以得到所述待检测流量对应的检测评估值,包括:
调用所述有限状态机计算所述状态跳转序列集对应的多个字节序列模式量化值;其中,所述字节序列模式量化值为
Figure 490245DEST_PATH_IMAGE001
;s表示字节序列,
Figure 902247DEST_PATH_IMAGE002
表示状态跳转权重,N表示所述字节序列发生N次状态跳转,
Figure 424495DEST_PATH_IMAGE003
表示激活函数;
计算所述多个字节序列模式量化值中的最大值,将所述最大值作为所述检测评估值。
可选的,所述计算所述待检测流量对应的状态跳转序列集,包括:
对所述待检测流量进行四通道采样,得到多个待检测字节序列;
计算每个待检测字节序列对应的状态跳转序列,以得到所述状态跳转序列集。
可选的,所述ROP流量检测方法,还包括:
采集ROP流量和非ROP流量;
对所述ROP流量和所述非ROP流量进行预处理,得到训练状态跳转序列集;
根据所述训练状态跳转序列集,迭代训练所述有限状态机。
可选的,所述根据所述训练状态跳转序列集,迭代训练所述有限状态机,包括:
根据所述训练状态跳转序列集,应用梯度下降算法迭代训练包括损失函数的所述有限状态机;其中,所述损失函数为
Figure 201959DEST_PATH_IMAGE004
,R表示ROP Gadget地址首字节序列的集合,B表示正常流量中随机采样字节序列的集合,所述s表示所述字节序列;
Figure 354722DEST_PATH_IMAGE005
作为所述损失函数的优化目标,得到所述状态跳转权重为所述
Figure 584847DEST_PATH_IMAGE006
的所述有限状态机。
可选的,所述根据所述检测评估值确定所述待检测流量是否为ROP流量,包括:
获取预设阈值;
当所述检测评估值大于所述预设阈值时,确定所述待检测流量为ROP流量;
当所述检测评估值不大于所述预设阈值时,确定所述待检测流量为非ROP流量。
可选的,所述ROP流量检测方法,还包括:
当所述待检测流量为ROP流量时,输出提示信息。
本发明还提供一种ROP流量检测装置,包括:
待检测流量获取模块,用于获取待检测流量;
状态跳转序列集获取模块,用于计算所述待检测流量对应的状态跳转序列集;
检测评估值获取模块,用于调用有限状态机对所述状态跳转序列集进行处理,以得到所述待检测流量对应的检测评估值;
ROP流量确定模块,用于根据所述检测评估值确定所述待检测流量是否为ROP流量;
所述检测评估值获取模块,包括:
字节序列模式量化值计算单元,用于调用所述有限状态机计算所述状态跳转序列集对应的多个字节序列模式量化值;其中,所述字节序列模式量化值为
Figure 114048DEST_PATH_IMAGE001
;s表示字节序列,
Figure 339493DEST_PATH_IMAGE006
表示状态跳转权重,N表示所述字节序列发生N次状态跳转,
Figure 27874DEST_PATH_IMAGE005
表示激活函数;
检测评估值计算单元,用于计算所述多个字节序列模式量化值中的最大值,将所述最大值作为所述检测评估值。
本发明还提供了一种ROP流量检测设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述的ROP流量检测方法的步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的ROP流量检测方法的步骤。
可见,本发明通过获取待检测流量;计算所述待检测流量对应的状态跳转序列集;调用有限状态机对所述状态跳转序列集进行处理,以得到所述待检测流量对应的检测评估值;根据所述检测评估值确定所述待检测流量是否为ROP流量。和现有技术需要配置目标环境进行检测相比,本发明提供的ROP流量检测方法,不依靠目标环境,不需要配置目标环境,直接计算待检测流量对应的检测评估值,利用该检测评估值确定待检测流量是否是ROP流量。因此,本发明提供的ROP流量检测方法,不需要配置目标环境,也无需记录任何地址信息或使用任何反汇编工具,检测过程简单,并且占用内存也极小。
此外,本发明还提供了一种ROP流量检测装置、设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种ROP流量检测方法的流程图;
图2为本发明实施例提供的一种状态跳转序列示意图;
图3为本发明实施例提供的一种有限状态机示意图;
图4为本发明实施例提供的一种ROP流量检测方法的流程示例图;
图5为本发明实施例提供的一种ROP流量检测装置的结构示意图;
图6为本发明实施例提供的一种ROP流量检测设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例提供的ROP流量检测方法。该方法可以包括:
S100,获取待检测流量。
该实施例并不限定获取待检测流量的具体方式。例如,可以获取来自流量收集工具采集的待检测流量,也可以利用流量采集代码获取待检测流量。该实施例并不限定获取待检测流量的时机。例如,可以实时获取待检测流量,或者也可以按预设周期获取待检测流量。该实施例并不限定待检测流量的具体内容。例如,待检测流量可以是ROP(ReturnOriented Programming,返回导向式编程)流量,或者待检测流量也可以是非ROP流量。
S101,计算所待检测流量对应的状态跳转序列集。
该实施例中的待检测流量由于由多个字节组成,字节的变换可以理解为状态跳转,根据待检测流量的字节序列的前后顺序,计算字节和状态的对应关系,进而得到待检测流量对应的状态跳转序列集。该实施例并不限定状态与字节之间的具体对应关系,例如状态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。
S102,调用有限状态机对所述状态跳转序列集进行处理,以得到待检测流量对应的检测评估值;
该实施例中通过有限状态机对待检测流量的检测评估值进行计算。该实施例并不限定具体的检测评估值。例如,检测评估值可以是0.5,或者检测评估值可以是0.4,或者检测评估值还可以是0.8。
S103,根据检测评估值确定待检测流量是否为ROP流量。
该实施例并不限定根据检测评估值确定待检测流量是否是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流量时,可以直接阻断该待检测流量的进程。
上述调用有限状态机对状态跳转序列集进行处理,以得到待检测流量对应的检测评估值,可以包括:
调用有限状态机计算状态跳转序列集对应的多个字节序列模式量化值;其中,所述字节序列模式量化值为
Figure 869928DEST_PATH_IMAGE001
;s表示字节序列,
Figure 202820DEST_PATH_IMAGE006
表示状态跳转权重,N表示字节序列发生N次状态跳转,
Figure 423717DEST_PATH_IMAGE003
表示激活函数;
计算多个字节序列模式量化值中的最大值,将最大值作为检测评估值。
该实施例并不限定有限状态机中参数的初始值。例如,可以初始化一个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流量。
进一步,为了快速得到待检测流量对应的状态跳转序列集,上述计算待检测流量对应的状态跳转序列集,可以包括:
对待检测流量进行四通道采样,得到多个待检测字节序列;
计算每个待检测字节序列对应的状态跳转序列,以得到状态跳转序列集。
该实施例对待检测流量进行四通道采样,对于每个通道字节序列,取固定长度的字节,即取起始点与终止点之间的S个字节,其中,S为最大状态数,即从起始点第1个字节开始,每取一个待检测字节序列,起始点和终止点向后移一位,直到终止点为通道字节序列最后一个字节,得到多个待检测字节序列,进而将多个待检测字节序列作为状态跳转序列集。该实施例通过对待检测流量进行四通道采样,提高了计算待检测流量对应的状态跳转序列集的速度。该实施例并不限定最大状态数S的具体数值。例如,最大状态数S可以为6个;或者最大状态数S可以为8个;或者最大状态数S可以为10个。该实施例并不限定待检测字节序列的数量。例如,待检测字节序列的数量可以是8个,或者待检测字节序列可以是16个。
进一步,为了对有限状态机进行准确训练。上述ROP流量检测方法,还可以包括:
采集ROP流量和非ROP流量;
对ROP流量和非ROP流量进行预处理,得到训练状态跳转序列集;
根据训练状态跳转序列集,迭代训练有限状态机。
该实施例并不限定ROP流量的具体采集方式。例如,可以通过ROP gadget(一种基于代码复用的一种攻击技术)工具构造而成,或者可以基于收集的ROP gadget构造而成。该实施例并不限定正常流量的获取方法。例如,可以从已公开的USTC-TFC(数据集)中采集正常流量,或者可以从ISCX(数据集)中采集正常流量。该实施例并不限定对ROP流量和非ROP流量进行预处理的具体处理方式。例如,若针对32位机器的ROP流量检测,可以对待检测流量进行四通道采样,获取多个字节采集序列,得到训练状态跳转序列集;或者若针对64位机器的ROP流量检测,可以对待检测流量进行八通道采样,获取多个字节采集序列,得到训练状态跳转序列集。该实施例可以通过训练状态跳转序列集,迭代训练有限状态机,得到带参数的有限训练状态机。
进一步,为了加快有限训练集的训练速度,上述根据训练状态跳转序列集,迭代训练所述有限状态机,包括:
根据训练状态跳转序列集,应用梯度下降算法迭代训练包括损失函数的有限状态机;其中,损失函数为
Figure 918283DEST_PATH_IMAGE004
,R表示ROPGadget地址首字节序列的集合,B表示正常流量中随机采样字节序列的集合,s表示字节序列;
Figure 982054DEST_PATH_IMAGE005
作为损失函数的优化目标,得到状态跳转权重为
Figure 853058DEST_PATH_IMAGE006
的有限状态机。
该实施例中采用梯度下降算法和Adam(Adam optimization algorithm)优化算法迭代训练有限状态机。由于梯度下降算法需要较小的迭代就可以收敛,
Adam优化算法可以高效地计算,所以使用梯度下降算法和Adam优化算法迭代训练有限状态机的速度更快。该实施例中
Figure 662883DEST_PATH_IMAGE007
是计算字节序列模式量化值的公式,只要有字节序列,就能求出字节序列模式。NB表示有NB个非ROP流量(Benign Traffic)Sb表示第b个流量。同理,NR表示有NR个ROP流量。训练开始前θ的值时随机初始化值,这一步的目的是得到最优的θ,使得损失函数的值最小。损失函数最小的能够使得ROP流量的字节序列模式量化值
Figure 452984DEST_PATH_IMAGE007
尽可能大,非ROP流量的字节序列模式量化值尽可能小,从而区分ROP流量和非ROP流量。后边利用
Figure 144996DEST_PATH_IMAGE001
函数进行检测时,可以直接使用参数θ,因为在检测前已经训练完毕得到了最优的θ。
进一步,为了快速确定是否是ROP流量,上述根据检测评估值确定待检测流量是否为ROP流量,可以包括:
获取预设阈值;
当检测评估值大于预设阈值时,确定待检测流量为ROP流量;
当检测评估值不大于预设阈值时,确定待检测流量为非ROP流量。
该实施例并不限定具体的预设阈值。例如,该预设阈值可以是0.8,或者该预设阈值可以是0.7,或者该预设阈值可以是0.9。该实施例将检测评估值大于阈值的待检测流量确定为ROP流量,将检测评估值不大于预设阈值的待检测流量确定为非ROP流量。
进一步,为了及时提醒用户存在ROP流量,上述ROP流量检测方法,还可以包括:
当所述待检测流量为ROP流量时,输出提示信息。
该实施例并不限定提示信息的具体方式。例如,提示信息的方式可以是文字方式,或者提示信息的方式可以是声音提醒方式。
应用本发明实施例提供的ROP流量检测方法,通过获取待检测流量;计算待检测流量对应的状态跳转序列集;调用有限状态机对状态跳转序列集进行处理,以得到待检测流量对应的检测评估值;根据检测评估值确定待检测流量是否为ROP流量。可见,本发明采用字节序列模式提取出ROP流量的静态特征,可以实现对ROP流量的静态检测,相较于动态检测的方法(如ROPDetector),本发明不依赖于目标程序的执行环境,适用范围广。并且本发明无需记录任何地址信息或使用任何反汇编工具,相较于现有的静态检测方法(如ROPminer、DeepReturn),实现更为简单且具有极小的内存开销。并且,对待检测流量进行四通道采样,可以快速得到待检测流量对应的状态跳转序列集;并且,本发明提供一种有限状态机的训练方式,可以快速计算检测评估值;并且,使用梯度下降算法和Adam优化算法对包括损失函数的有限状态机进行准确、快速训练;并且,在确定待检测流量是ROP流量时,可以发送提示信息,使得可以快速告知相关人员存在ROP流量。
为了使本发明更便于理解,具体请参考图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位操作系统的环境下,则ROPGadget地址长度均为4个字节,应用四通道采样方法其中必然存在一个通道的字节序列包含ROP Gadget地址的首字节序列。然后,对四通道采样的流量进行数据筛选,对于ROP流量选择包含ROP Gadget地址首字节通道的字节序列,对于正常流量随机选择一个通道的字节序列。最后,根据字节序列的值生成状态跳转序列,并舍弃状态跳转序列中的状态数超过预设最大状态数S的部分,该实施例中的最大状态数S为17,构建训练状态跳转序列集,部分训练状态跳转序列集如图2所示。进而根据训练状态跳转序列集,应用梯度下降算法迭代训练包括损失函数的有限状态机;其中,损失函数为
Figure 285603DEST_PATH_IMAGE004
,R表示ROP Gadget地址首字节序列的集合,B表示正常流量中随机采样字节序列的集合;将
Figure 605726DEST_PATH_IMAGE005
作为损失函数的优化目标,得到状态跳转权重为
Figure 442095DEST_PATH_IMAGE008
的有限状态机,即得到带参数的有限状态机,有限状态机示意图,如图3所示,图3为本发明实施例提供的一种有限状态机示意图。
进而采集待检测流量,对待检测流量进行预处理,即对待检测流量进行四通道采样,对于每个通道字节序列,取起始点与终止点之间的5个字节,其中,5为最大状态数,得到5个待检测字节序列,待检测字节序列如表1所示。进而对得到的每个待检测字节序列,根据字节的值生成状态跳转序列集。最后,可以将状态跳转序列集输入到有限状态机,得到每个状态跳转序列对应的字节序列模式量化值,当该实施例中的字节序列模式量化值是[0.1,0.5, 0.4, 0.2, 0.1]时,确定检测评估值为最大值0.5。当该实施例中的预设阈值为0.8时,由于0.5小于0.8,所以,确定待检测流量为正常流量。
表1 待检测字节序列示例表
Figure 949300DEST_PATH_IMAGE009
下面对本发明实施例提供的ROP流量检测装置进行介绍,下文描述的ROP流量检测装置与上文描述的ROP流量检测方法可相互对应参照。
具体请参考图5,图5为本发明实施例提供的ROP流量检测装置的结构示意图,可以包括:
待检测流量获取模块100,用于获取待检测流量;
状态跳转序列集获取模块200,用于计算所述待检测流量对应的状态跳转序列集;
检测评估值获取模块300,用于调用有限状态机对所述状态跳转序列集进行处理,以得到所述待检测流量对应的检测评估值;
ROP流量确定模块400,用于根据所述检测评估值确定所述待检测流量是否为ROP流量。
所述检测评估值获取模块300,可以包括:
字节序列模式量化值计算单元,用于调用有限状态机计算所述状态跳转序列集对应的多个字节序列模式量化值;其中,所述字节序列模式量化值为
Figure 162107DEST_PATH_IMAGE001
;s表示字节序列,
Figure 212102DEST_PATH_IMAGE006
表示状态跳转权重,N表示字节序列发生N次状态跳转,
Figure 78427DEST_PATH_IMAGE003
表示激活函数;
检测评估值计算单元,用于计算多个字节序列模式量化值中的最大值,将所述最大值作为所述检测评估值。
进一步,基于上述实施例,所述状态跳转序列集获取模块200,可以包括:
待检测字节序列计算单元,用于对所述待检测流量进行四通道采样,得到多个待检测字节序列;
状态跳转序列集计算单元计算每个待检测字节序列对应的状态跳转序列,以得到所述状态跳转序列集。
进一步,基于上述任意实施例,所述ROP流量检测装置,还可以包括:
流量采集模块,用于采集ROP流量和非ROP流量;
预处理模块,用于对所述ROP流量和所述非ROP流量进行预处理,得到训练状态跳转序列集;
有限状态机训练模块,用于根据所述训练状态跳转序列集,迭代训练所述有限状态机。
进一步,基于上述实施例,所述有限状态机训练模块,可以包括:
有限状态机训练单元,用于根据所述训练状态跳转序列集,应用梯度下降算法迭代训练包括损失函数的所述有限状态机;其中,所述损失函数为
Figure 479452DEST_PATH_IMAGE004
,R表示ROP Gadget地址首字节序列的集合,B表示正常流量中随机采样字节序列的集合,所述s表示所述字节序列;
带参数的有限状态机获取单元,用于将
Figure 230371DEST_PATH_IMAGE005
作为所述损失函数的优化目标,得到所述状态跳转权重为所述
Figure 259507DEST_PATH_IMAGE008
的所述有限状态机。
进一步,基于上述任意实施例,所述ROP流量确定模块400,可以包括:
预设阈值获取单元,用于获取预设阈值;
ROP流量确定单元,用于当所述检测评估值大于所述预设阈值时,确定所述待检测流量为ROP流量;
非ROP流量确定单元,用于当所述检测评估值不大于所述预设阈值时,确定所述待检测流量为非ROP流量。
进一步,基于上述任意实施例,所述ROP流量检测装置,还可以包括:
提示模块,用于当所述待检测流量为ROP流量时,输出提示信息。
本发明所提供的ROP流量检测装置,包括待检测流量获取模块100,用于获取待检测流量;状态跳转序列集获取模块200,用于计算所述待检测流量对应的状态跳转序列集;检测评估值获取模块300,用于调用有限状态机对所述状态跳转序列集进行处理,以得到所述待检测流量对应的检测评估值;ROP流量确定模块400,用于根据所述检测评估值确定所述待检测流量是否为ROP流量。可见,本发明采用字节序列模式提取出ROP流量的静态特征,可以实现对ROP流量的静态检测,相较于动态检测的方法(如ROPDetector)对应的动态检测装置,本发明提供的ROP流量检测装置不依赖于目标程序的执行环境,适用范围广。并且该ROP流量检测装置无需记录任何地址信息或使用任何反汇编工具,相较于现有的静态检测方法(如ROPminer、DeepReturn),实现更为简单且具有极小的内存开销。并且,通过待检测字节序列计算单元对待检测流量进行四通道采样,可以快速得到待检测流量对应的状态跳转序列集;并且,使用梯度下降算法和Adam优化算法对包括损失函数的有限状态机进行准确、快速训练;并且,在确定待检测流量是ROP流量时,可以发送提示信息,使得可以快速告知相关人员存在ROP流量。
需要说明的是,上述ROP流量检测装置中的模块以及单元在不影响逻辑的情况下,其顺序可以前后进行更改。
下面对本发明实施例提供的ROP流量检测设备进行介绍,下文描述的ROP流量检测设备与上文描述的ROP流量检测方法可相互对应参照。
请参考图6,图6为本发明实施例提供的ROP流量检测设备的结构示意图,可以包括:
存储器10,用于存储计算机程序;
处理器20,用于执行计算机程序,以实现上述的ROP流量检测方法。
存储器10、处理器20、通信接口31和通信总线32。存储器10、处理器20、通信接口31均通过通信总线32完成相互间的通信。
在本发明实施例中,存储器10中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本申请实施例中,存储器10中可以存储有用于实现以下功能的程序:
获取待检测流量;
计算待检测流量对应的状态跳转序列集;
调用有限状态机对状态跳转序列集进行处理,以得到待检测流量对应的检测评估值;
根据检测评估值确定待检测流量是否为ROP流量;
其中,调用有限状态机对状态跳转序列集进行处理,以得到待检测流量对应的检测评估值,包括:
调用有限状态机计算状态跳转序列集对应的多个字节序列模式量化值;其中,字节序列模式量化值为
Figure 437678DEST_PATH_IMAGE001
;s表示字节序列,
Figure 185054DEST_PATH_IMAGE006
表示状态跳转权重,N表示所述字节序列发生N次状态跳转,
Figure 474084DEST_PATH_IMAGE003
表示激活函数;
计算多个字节序列模式量化值中的最大值,将最大值作为检测评估值。
在一种可能的实现方式中,存储器10可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及至少一个功能所需的应用程序等;存储数据区可存储使用过程中所创建的数据。
此外,存储器10可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括NVRAM。存储器存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。操作系统可以包括各种系统程序,用于实现各种基础任务以及处理基于硬件的任务。
处理器20可以为中央处理器(Central Processing Unit,CPU)、特定应用集成电路、数字信号处理器、现场可编程门阵列或者其他可编程逻辑器件,处理器20可以是微处理器或者也可以是任何常规的处理器等。处理器20可以调用存储器10中存储的程序。
通信接口31可以为通信模块的接口,用于与其他设备或者系统连接。
当然,需要说明的是,图6所示的结构并不构成对本申请实施例ROP流量检测设备的限定,在实际应用中ROP流量检测设备可以包括比图6所示的更多或更少的部件,或者组合某些部件。
下面对本发明实施例提供的计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的ROP流量检测方法可相互对应参照。
本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的ROP流量检测方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本发明的范围。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
以上对本发明所提供的ROP流量检测方法、装置、设备和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (9)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211365888.XA CN115473826B (zh) 2022-11-03 2022-11-03 一种rop流量检测方法、装置、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211365888.XA CN115473826B (zh) 2022-11-03 2022-11-03 一种rop流量检测方法、装置、设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN115473826A CN115473826A (zh) 2022-12-13
CN115473826B true CN115473826B (zh) 2023-01-20

Family

ID=84338104

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211365888.XA Active CN115473826B (zh) 2022-11-03 2022-11-03 一种rop流量检测方法、装置、设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN115473826B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110188540A (zh) * 2019-04-17 2019-08-30 中国科学院软件研究所 一种基于控制状态跟踪的rop攻击检测方法
US10409600B1 (en) * 2016-01-25 2019-09-10 Apple Inc. Return-oriented programming (ROP)/jump oriented programming (JOP) attack protection
CN114679315A (zh) * 2022-03-25 2022-06-28 中国工商银行股份有限公司 攻击检测方法、装置、计算机设备、存储介质和程序产品
CN114760131A (zh) * 2022-04-15 2022-07-15 中国人民解放军国防科技大学 一种面向返回式编程流量的特征提取方法、装置及设备
CN114826793A (zh) * 2022-07-04 2022-07-29 中国人民解放军国防科技大学 一种rop链的检测方法、装置及介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8997231B2 (en) * 2012-04-18 2015-03-31 Zimperium, Inc. Preventive intrusion device and method for mobile devices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10409600B1 (en) * 2016-01-25 2019-09-10 Apple Inc. Return-oriented programming (ROP)/jump oriented programming (JOP) attack protection
CN110188540A (zh) * 2019-04-17 2019-08-30 中国科学院软件研究所 一种基于控制状态跟踪的rop攻击检测方法
CN114679315A (zh) * 2022-03-25 2022-06-28 中国工商银行股份有限公司 攻击检测方法、装置、计算机设备、存储介质和程序产品
CN114760131A (zh) * 2022-04-15 2022-07-15 中国人民解放军国防科技大学 一种面向返回式编程流量的特征提取方法、装置及设备
CN114826793A (zh) * 2022-07-04 2022-07-29 中国人民解放军国防科技大学 一种rop链的检测方法、装置及介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Defending_against_ROP_Attacks_with_Nearly_Zero_Overhead;Peng Qin,et al.;《IEEE》;20200227;全文 *
一种基于字节波动特征的ROP流量静态;张梦杰等;《信息网络安全》;20220731(第7期);全文 *

Also Published As

Publication number Publication date
CN115473826A (zh) 2022-12-13

Similar Documents

Publication Publication Date Title
CN106899440B (zh) 一种面向云计算的网络入侵检测方法及系统
US8078556B2 (en) Generating complex event processing rules utilizing machine learning from multiple events
CN110135160B (zh) 软件检测的方法、装置及系统
CN108363657B (zh) 监控app客户端埋点数据采集完整性的方法、设备以及介质
CN106326137B (zh) 一种内存优化方法、装置及用户设备
CN108038398B (zh) 一种二维码解析能力测试方法、装置及电子设备
CN105653949B (zh) 一种恶意程序检测方法及装置
CN114760131B (zh) 一种面向返回式编程流量的特征提取方法、装置及设备
CN108470126B (zh) 数据处理方法、装置及存储介质
CN113342451A (zh) 书籍提示信息的展示方法、计算设备及计算机存储介质
CN115473826B (zh) 一种rop流量检测方法、装置、设备及计算机可读存储介质
CN104915593B (zh) 对软件的去捆绑处理方法及系统
CN111400707A (zh) 一种文件宏病毒检测方法、装置、设备及存储介质
CN110888628A (zh) 生成控制工具的方法、装置、设备和存储介质
CN108399266B (zh) 数据抽取方法、装置、电子设备及计算机可读存储介质
CN110442439B (zh) 任务进程处理方法、装置和计算机设备
CN105550250B (zh) 一种访问日志的处理方法及装置
CN112631945A (zh) 一种测试用例生成方法、装置及存储介质
CN110889065B (zh) 页面停留时长确定方法、装置与设备
CN111767161A (zh) 远程调用深度识别方法、装置、计算机设备及可读存储介质
CN107943536B (zh) 调整阈值的方法、装置、存储介质及电子设备
CN114116853A (zh) 基于时序关联分析的数据安全分析方法及装置
CN111460444B (zh) 针对威胁检测系统的自动恶意软件签名生成
CN107844702A (zh) 基于云防护环境下网站木马后门检测方法及装置
CN111641959A (zh) 一种网络环境信息的检测方法和装置

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