一种恶意系统调用识别方法及装置制造方法及图纸

技术编号:33375978 阅读:15 留言:0更新日期:2022-05-11 22:43
本发明专利技术提供一种恶意系统调用识别方法及装置,所述方法包括:在发生系统调用的情况下,通过预设于内核中的回调函数获取目标信息;判定所述目标信息满足预设条件,则确定当前系统调用为恶意系统调用,并对所述当前系统调用进行拦截。本发明专利技术能够在内核层的系统调用运行之前识别并拦截恶意系统调用,有效地改善了现有技术在识别恶意系统调用时的滞后性。技术在识别恶意系统调用时的滞后性。技术在识别恶意系统调用时的滞后性。

【技术实现步骤摘要】
一种恶意系统调用识别方法及装置


[0001]本专利技术涉及信息安全领域,尤其涉及一种恶意系统调用识别方法及装置。

技术介绍

[0002]在对木马病毒进行行为检测和识别时,反病毒软件一般通过挂钩底层NTDLL中的导出函数来完成,但是,该种方式无法识别木马病毒利用直接系统调用的方式执行的恶意行为,给用户信息安全带来极大的威胁。
[0003]为了解决这一问题,现有技术采用在用户层注册回调函数的方法实现对直接系统调用执行恶意行为的木马病毒的检测。当恶意系统调用执行完毕,回到用户层空间继续执行前,会通知该回调函数,并进行预警。
[0004]但是,上述恶意系统调用识别的方法,是在系统调用执行完毕后才能够执行预警动作,方法存在滞后性,无法实现恶意系统调用的及时检测和拦截。

技术实现思路

[0005]本专利技术提供的一种恶意系统调用识别方法及装置,以解决现有技术存在的恶意系统调用识别方法存在滞后性,无法实现恶意系统调用的及时拦截和检测的问题。
[0006]本专利技术提供一种恶意系统调用识别方法,包括:
[0007]在发生系统调用的情况下,通过预设于内核中的回调函数获取目标信息;判定所述目标信息满足预设条件,则确定当前系统调用为恶意系统调用,并对所述当前系统调用进行拦截。
[0008]根据本专利技术提供的一种恶意系统调用识别方法,所述方法还包括:
[0009]通过预设于内核中的回调函数获取待返回用户层的指令地址。
[0010]将当前线程的KTHREAD.TrapFrame结构的EIP\RIP字段中存储入待返回用户层的指令地址作为所述预设于内核中的回调函数的触发条件。
[0011]在检测到当前线程的KTHREAD.TrapFrame结构的EIP\RIP字段中存储了待返回用户层的指令地址后,触发预设于内核中的回调函数以提取所述待返回用户层的指令地址。
[0012]触发预设于内核中的回调函数,将KTHREAD.TrapFrame结构拷贝到用户层线程的context结构中;
[0013]获取所述context结构,并从中提取待返回用户层的指令地址。
[0014]若所述指令地址不属于NTDLL模块地址所确定的范围内,则判定所述目标信息满足预设条件。
[0015]本专利技术还提供一种恶意系统调用识别装置,包括:
[0016]目标信息获取模块,用于在发生系统调用的情况下,通过预设于内核中的回调函数获取目标信息;指令执行模块,用于判定所述目标信息满足预设条件,则对当前系统调用进行拦截。
[0017]本专利技术提供一种恶意系统调用识别装置,所述目标信息获取模块具体用于:
[0018]通过预设于内核中的回调函数获取待返回用户层的指令地址,所述指令地址保存于当前线程的KTHREAD.TrapFrame结构的EIP\RIP字段中;
[0019]所述指令执行单元模块用于:
[0020]若所述指令地址不属于NTDLL模块地址所确定的范围内,则判定所述目标信息满足预设条件。
[0021]本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述恶意系统调用识别方法的步骤。
[0022]本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述恶意系统调用识别方法的步骤。
[0023]本专利技术还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述恶意系统调用识别方法的步骤。
[0024]本专利技术提供的一种恶意系统调用识别方法及装置,先在发生系统调用时通过设于内核中的回调函数获取目标信息,然后确定目标信息满足预设条件,即判定当前系统调用为恶意系统调用,并对该系统调用进行拦截;本专利技术能够在内核层的系统调用运行之前识别并拦截恶意系统调用,实现了恶意系统调用的及时拦截和检测,从而解决了现有技术存在的恶意系统调用识别方法存在滞后性的问题。
附图说明
[0025]为了更清楚地说明本专利技术或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0026]图1是本专利技术实施例提供的恶意系统调用识别方法的流程示意图;
[0027]图2是本专利技术实施例提供的由用户层到内核层进行系统调用的示意图;
[0028]图3是本专利技术实施例提供的恶意系统调用识别装置的结构示意图;
[0029]图4是本专利技术提供的电子设备的结构示意图。
具体实施方式
[0030]为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术中的附图,对本专利技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0031]下面结合图1描述本专利技术实施例提供的数据集划分方法,包括:
[0032]步骤101、在发生系统调用的情况下,通过预设于内核中的回调函数获取目标信息。
[0033]可以理解的是,系统调用是指将用户层的应用程序的请求传给内核,调用相应的内核函数完成所需的处理,再将处理结果返回给应用程序的过程。例如,用户层的应用程序先通过调用Win32 API函数来请求系统服务,然后Win32 API函数对程序调用的参数进行检
查确认,Win32 API主要函数封装在KERNEL32.DLL和ADVAPI32.DLL中;最后Win32 API函数调用NTDLL.DLL中与只对应的系统服务封装函数之对应的系统服务封装函数,来获取该封装函数中与请求服务对应的目标信息。
[0034]其中,NTDLL.DLL是系统服务函数在用户态的封装,是用户态的系统服务调用接口。
[0035]需要说明的是,部分用户层的应用程序的请求可以不通过NTDLL.DLL而直接调用内核层的系统调用,若请求的调用为恶意的系统调用,则应在系统调用在内核层运行之前对该恶意的系统调用进行拦截。
[0036]步骤102、判定所述目标信息满足预设条件,则确定当前系统调用为恶意系统调用,并对所述当前系统调用进行拦截。
[0037]可以理解的是,异常系统调用和正常系统调用的执行方式与获取的信息有所不同;如图2所述,序号0

7对应的是内核层(K)应用程序的请求的运行情况,8

19对应的是由用户层(U)后系统调用情况,当API函数由用户层进入内核层时,必然会经过NTDLL模块,然后由NTDLL发起系统调用指令,操作系统将当前CPU环境切换到KTHREAD结构的TrapFrame中,以便在内核执行完要做的事情,再返本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种恶意系统调用识别方法,其特征在于,包括:在发生系统调用的情况下,通过预设于内核中的回调函数获取目标信息;判定所述目标信息满足预设条件,则确定当前系统调用为恶意系统调用,并对所述当前系统调用进行拦截。2.根据权利要求1所述的恶意系统调用识别方法,其特征在于,所述通过预设于内核中的回调函数获取目标信息,具体包括:通过预设于内核中的回调函数获取待返回用户层的指令地址。3.根据权利要求2所述的恶意系统调用识别方法,其特征在于,在通过预设于内核中的回调函数获取待返回用户层的指令地址之前,所述方法包括:将当前线程的KTHREAD.TrapFrame结构的EIP\RIP字段中存储入待返回用户层的指令地址作为所述预设于内核中的回调函数的触发条件。4.根据权利要求3所述的恶意系统调用识别方法,其特征在于,所述通过预设于内核中的回调函数获取待返回用户层的指令地址,包括:在检测到当前线程的KTHREAD.TrapFrame结构的EIP\RIP字段中存储了待返回用户层的指令地址后,触发预设于内核中的回调函数以提取所述待返回用户层的指令地址。5.根据权利要求4所述的恶意系统调用识别方法,其特征在于,所述触发预设于内核中的回调函数以提取所述待返回用户层的指令地址,包括:触发预设于内核中的回调函数,将KTHREAD.TrapFrame结构拷贝到用户层线程的context结构中;获取所述context结构,并从中提取待返回用户层的指令地址。6.根据权...

【专利技术属性】
技术研发人员:王丹阳
申请(专利权)人:奇安信安全技术珠海有限公司
类型:发明
国别省市:

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

1