攻击代码检测方法、装置、电子设备、程序和存储介质制造方法及图纸

技术编号:33905721 阅读:19 留言:0更新日期:2022-06-25 18:38
本发明专利技术提供一种攻击代码检测方法、装置、电子设备、程序和存储介质,获取系统中进程栈范围内的调用函数的返回地址,若存在返回地址不属于用于存储系统可执行文件的系统配置地址,则确定系统存在攻击代码。通过获取调用函数的返回地址直接实现对攻击代码的检测,无需建立特征库,识别过程简单,有利于提升对攻击代码的识别效率。代码的识别效率。代码的识别效率。

【技术实现步骤摘要】
攻击代码检测方法、装置、电子设备、程序和存储介质


[0001]本专利技术涉及信息安全防护
,尤其涉及一种攻击代码检测方法、装置、电子设备、程序和存储介质。

技术介绍

[0002]网络设备不可避免的会存在漏洞,攻击者会利用这些漏洞构造一段攻击代码对网络设备进行攻击。例如,攻击者会通过攻击代码在网络设备中实现权限提升、执行程序、连接远程机器等操作,从而达到任意控制网络设备的目的。例如,用于攻击的Linux服务器的攻击代码shellcode。
[0003]现有技术中需要事先学习系统调用的调用链序列,并建立正常行为特征库,然后将系统的系统调用的序列和正常序列特征库进行匹配来识别漏洞利用行为。然而这种方法具有如下缺点:需要事先学习建立特征库,必须保证学习过程中没有漏洞利用行为;匹配逻辑较复杂,必定比较消耗过多的系统资源。可见现有的攻击代码识别的方法需要基于大量数据建立特征库,识别过程比较复杂,识别效率较低。

技术实现思路

[0004]本专利技术提供一种攻击代码检测方法、装置、电子设备、程序和存储介质,用以解决可见现有的攻击代码识别的方法需要基于大量数据建立特征库,识别过程比较复杂,识别效率较低的缺陷,实现通过简单的方式识别攻击代码,提高识别效率。
[0005]本专利技术提供一种攻击代码检测方法,包括:
[0006]获取调用函数的返回地址;其中,所述调用函数为被系统的目标进程调用的函数;
[0007]若所述返回地址不属于系统配置地址,则所述系统中存在攻击代码;所述系统配置地址为目标进程加载的可执行文件的代码段地址。
[0008]根据本专利技术提供一种攻击代码检测方法,在上述基础上,在获取调用函数的返回地址之前,所述方法还包括:
[0009]获取监测函数是否被调用的监测信息;其中,所述监测函数根据攻击代码对函数的历史调用信息确定;
[0010]若所述监测信息为监测函数被调用,则将调用所述监测函数的进程作为所述目标进程。
[0011]根据本专利技术提供一种攻击代码检测方法,在上述基础上,所述获取调用函数的返回地址,包括:
[0012]从内核中获取所述调用函数的函数栈帧,和/或从应用层获取所述调用函数的函数栈帧;
[0013]根据调用函数的函数栈帧获取所述返回地址。
[0014]根据本专利技术提供一种攻击代码检测方法,在上述基础上,所述从内核中获取所述调用函数的函数栈帧,包括:
[0015]从内核栈中获取所述目标进程陷入内核时,保存在内核栈中的用户态上下文结构;
[0016]根据所述用户态上下文结构确定所述目标进程栈范围内首个函数栈帧的基地址,作为第一基地址;
[0017]自所述第一基地址开始获取所述目标进程栈范围内的每一函数栈帧,得到所述调用函数的函数栈帧。
[0018]根据本专利技术提供一种攻击代码检测方法,在上述基础上,所述从应用层获取所述调用函数的函数栈帧,包括:
[0019]从应用层的用户栈中获取所述目标进程栈范围内首个函数栈帧的基地址,作为第二基地址;
[0020]自所述第二基地址开始获取所述目标进程栈范围内的每一函数栈帧,得到所述调用函数的函数栈帧。
[0021]根据本专利技术提供一种攻击代码检测方法,在上述基础上,在所述返回地址不属于系统配置地址之前,还包括:
[0022]通过内存中的虚拟内存管理结构确定所述返回地址对应的虚拟内存区块结构体,根据所述虚拟内存区块结构体中描述被映射文件的成员所指向的地址,确定所述返回地址是否属于所述系统配置地址;
[0023]和/或,从应用层获取表示内存布局的内存布局文件,从所述内存布局文件中获取所述返回地址所在的行内容,根据所述行内容中的文件路径,确定所述返回地址是否属于所述系统配置地址。
[0024]本专利技术还提供一种攻击代码检测装置,包括:
[0025]获取模块,用于获取调用函数的返回地址;其中,所述调用函数为被系统的目标进程调用的函数;
[0026]确定模块,用于若所述返回地址不属于系统配置地址,则所述系统中存在攻击代码;所述系统配置地址为目标进程加载的可执行文件的代码段地址。
[0027]本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述攻击代码检测方法的步骤。
[0028]本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述攻击代码检测方法的步骤。
[0029]本专利技术还提供一种计算机程序,该计算机程序被处理器执行时实现如上述任一种所述攻击代码检测方法的步骤。
[0030]本专利技术提供的一种攻击代码检测方法、装置、电子设备、程序和存储介质,获取系统中进程栈范围内的调用函数的返回地址,若存在返回地址不属于用于存储系统可执行文件的系统配置地址,则确定系统存在攻击代码。通过获取调用函数的返回地址直接实现对攻击代码的检测,无需建立特征库,识别过程简单,有利于提升对攻击代码的识别效率。
附图说明
[0031]为了更清楚地说明本专利技术或现有技术中的技术方案,下面将对实施例或现有技术
描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0032]图1是本专利技术提供的攻击代码检测方法的流程示意图之一;
[0033]图2是本专利技术提供的栈中栈帧的结构示意图;
[0034]图3是本专利技术提供的通过内核获取函数调用链的过程示意图;
[0035]图4是本专利技术提供的通过内核进行攻击代码检测的流程示意图;
[0036]图5是本专利技术提供的攻击代码检测装置的结构框图之一;
[0037]图6是本专利技术提供的电子设备的实体结构示意图;
具体实施方式
[0038]为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术中的附图,对本专利技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0039]图1为本实施例提供的攻击代码检测方法的流程示意图,该攻击代码检测方法可以由待进行攻击代码检测的设备(服务器或终端)执行,例如,该攻击代码检测方法可以由Linux服务器执行,具体由植入Linux服务器的防护驱动模块执行,参见图1,该攻击代码检测方法包括:
[0040]步骤101:获取调用函数的返回地址;其中,所述调用函数为被系统的目标进程调用的函数。
[0041]系统的进程通常通过调用系统中函数的方式完成该进程对应的任务,被进程所调用的调用函数可以从对进程创建的栈中获取函数栈帧,在函数栈帧中有调用函数的信息,这些信息包括调用函数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种攻击代码检测方法,其特征在于,包括:获取调用函数的返回地址;其中,所述调用函数为被系统的目标进程调用的函数;若所述返回地址不属于系统配置地址,则所述系统中存在攻击代码;所述系统配置地址为目标进程加载的可执行文件的代码段地址。2.根据权利要求1所述的攻击代码检测方法,其特征在于,在获取调用函数的返回地址之前,所述方法还包括:获取监测函数是否被调用的监测信息;其中,所述监测函数根据攻击代码对函数的历史调用信息确定;若所述监测信息为监测函数被调用,则将调用所述监测函数的进程作为所述目标进程。3.根据权利要求1所述的攻击代码检测方法,其特征在于,所述获取调用函数的返回地址,包括:从内核中获取所述调用函数的函数栈帧,和/或从应用层获取所述调用函数的函数栈帧;根据调用函数的函数栈帧获取所述返回地址。4.根据权利要求3所述的攻击代码检测方法,其特征在于,所述从内核中获取所述调用函数的函数栈帧,包括:从内核栈中获取所述目标进程陷入内核时,保存在内核栈中的用户态上下文结构;根据所述用户态上下文结构确定所述目标进程栈范围内首个函数栈帧的基地址,作为第一基地址;自所述第一基地址开始获取所述目标进程栈范围内的每一函数栈帧,得到所述调用函数的函数栈帧。5.根据权利要求3所述的攻击代码检测方法,其特征在于,所述从应用层获取所述调用函数的函数栈帧,包括:从应用层的用户栈中获取所述目标进程栈范围内首个函数栈帧的基地址,作为第二基地址;自所述第二基...

【专利技术属性】
技术研发人员:徐荣维王健齐向东吴云坤
申请(专利权)人:奇安信科技集团股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1