基于堆栈回溯与通信的驱动加载进程获取方法及系统与流程

文档序号:31862148发布日期:2022-10-19 05:44阅读:145来源:国知局
基于堆栈回溯与通信的驱动加载进程获取方法及系统与流程

1.本发明涉及计算机网络安全领域,特别涉及一种基于堆栈回溯与通信的驱动加载进程获取方法及系统。


背景技术:

2.在互联网不断发展的过程中,恶意软件也层出不穷,这严重威胁着用户的主机系统安全,一些恶意应用大都使用加载驱动的方式进行入侵式访问操作,普通用户层的防护难以达到文件安全防护目的。
3.而现有方法发现驱动加载时,通常是通过驱动签名与md5校验对加载的驱动进行判断,但不能百分百确定驱动是否有问题,判断加载驱动的进程,显得十分重要。


技术实现要素:

4.基于此,本技术实施例提供了一种基于堆栈回溯与通信的驱动加载进程获取方法及系统,能够有效对驱动加载进程进行获取。
5.第一方面,提供了一种基于堆栈回溯与通信的驱动加载进程获取方法,该方法包括:
6.加载minifilter框架,并通过所述minifilter框架获取系统的驱动加载状态;
7.当系统加载驱动完成时,在minifilter框架中遍历所有系统的驱动加载线程,并插入apc,堆栈回溯出每个所述驱动加载线程的行程轨迹;
8.当ntloaddriver函数内存在有目标驱动加载线程的行程轨迹时,则判断所述目标驱动加载线程对应的进程是否为service进程;
9.当对应的进程为service进程时,通过alpc之间关系以及win api访问找到目标驱动加载进程。
10.可选地,通过所述minifilter框架获取系统的驱动加载状态,包括:
11.获取系统的驱动加载的程序函数为ntloaddriver函数。
12.可选地,在判断所述目标驱动加载线程对应的进程是否为service进程之后,所述方法还包括:
13.当对应的进程不为service进程时,则确定该进程并非目标驱动加载进程。
14.可选地,所述加载minifilter框架,并通过所述minifilter框架获取系统的驱动加载状态包括:
15.在minifilter当中过滤到系统加载驱动后,即驱动的加载进程处于等待状态时,等待系统加载驱动完成。
16.第二方面,提供了一种基于堆栈回溯与通信的驱动加载进程获取系统,该系统包括:
17.获取模块,用于加载minifilter框架,并通过所述minifilter框架获取系统的驱动加载状态;
18.回溯模块,用于当系统加载驱动完成时,在minifilter框架中遍历所有系统的驱动加载线程,并插入apc,堆栈回溯出每个所述驱动加载线程的行程轨迹;
19.判断模块,用于当ntloaddriver函数内存在有目标驱动加载线程的行程轨迹时,则判断所述目标驱动加载线程对应的进程是否为service进程;当对应的进程为service进程时,通过alpc之间关系以及win api访问找到目标驱动加载进程。
20.可选地,所述获取模块中:
21.获取系统的驱动加载的程序函数为ntloaddriver函数。
22.可选地,所述确认模块还用于:
23.当对应的进程不为service进程时,则确定该进程并非目标驱动加载进程。
24.可选地,所述获取模块具体用于:
25.在minifilter当中过滤到系统加载驱动后,即驱动的加载进程处于等待状态时,等待系统加载驱动完成。
26.本技术实施例提供的技术方案中首先加载minifilter框架,并通过minifilter框架获取系统的驱动加载状态;当系统加载驱动完成时,在minifilter框架中遍历所有系统的驱动加载线程,并插入apc,堆栈回溯出每个驱动加载线程的行程轨迹;当ntloaddriver函数内存在有目标驱动加载线程的行程轨迹时,则判断目标驱动加载线程对应的进程是否为service进程;当对应的进程为service进程时,通过alpc之间关系以及win api访问找到目标驱动加载进程。可以看出,本发明能够有效对驱动加载进程进行获取,并且具有兼容性好,查找准确的特点。
附图说明
27.为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
28.图1为本技术实施例提供的一种基于堆栈回溯与通信的驱动加载进程获取方法步骤流程图;
29.图2为本技术可选的一种实施例中进行驱动加载进程获取的流程图;
30.图3为本技术可选的另一种实施例中进行驱动加载进程获取的流程图。
具体实施方式
31.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
32.在本发明的描述中,术语“包括”、“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包括了一系列步骤或单元的过程、方法、系统、产品或设备不必限于已明确列出的那些步骤或单元,而是还可包含虽然并未明确列出的但对于这些过程、方法、产品或设备固有的其它步骤或单元,或者基于本发明构思进一步的优化方案所增加的步骤或单元。
33.在edr当中发现驱动加载时,通过md5校验(checksum)对接收的传输数据执行散列运算来检查数据的正确性,但md5校验还不能百分百驱动是否有问题,判断加载驱动的进程,也显得十分重要。目前,网络中各种解决方案都需进行二次开发,然而在对网络安全日益关注的今天,这种模式并不合适。请参考图1,其示出了本技术实施例提供的一种基于堆栈回溯与通信的驱动加载进程获取方法的流程图,该方法可以包括以下步骤:
34.步骤101,加载minifilter框架,并通过minifilter框架获取系统的驱动加载状态。
35.在本技术实施例中,获取系统的驱动加载的程序函数为ntloaddriver函数。minifilter框架是过滤管理器filter manager。
36.具体地,在minifilter当中过滤到系统加载驱动后,即驱动的加载进程处于等待状态时,等待系统加载驱动完成。
37.步骤102,当系统加载驱动完成时,在minifilter框架中遍历所有系统的驱动加载线程,并插入apc,堆栈回溯出每个驱动加载线程的行程轨迹。
38.其中,apc(alternative php cache)可以为能够缓存opcode的php中间码。
39.步骤103,当ntloaddriver函数内存在有目标驱动加载线程的行程轨迹时,则判断目标驱动加载线程对应的进程是否为service进程。
40.步骤104,当对应的进程为service进程时,通过alpc之间关系以及win api访问找到目标驱动加载进程。
41.在本技术一个可选的实施例中,如图2,驱动加载是由系统进程完成的,到底是那个进程通知系统进程加载驱动就不得而知,在模块回调当中或者minifiter当中拦截到驱动加载时,已经处在系统进程上下文当中了,通过堆栈回溯能找到对用关系。
42.具体地,在minifilter当中过滤到system加载驱动后,驱动的加载进程还处于等待状态,等待system加载驱动完成。在minifilter当中遍历出所有线程,插入apc,堆栈回溯出线程的行程轨迹。由于驱动的加载进程调用ntloaddriver后,驱动加载没有完成,处在等待状态,驱动加载的线程一定处于api ntloaddriver开始位置与ntloaddriver结束位置中间,当回溯到某一线程正好处于ntloaddriver函数内,就可以确认驱动加载进程,如果查找到的进程不是service.exe时,基本已经确定。如果时service.exe,驱动加载进程并不是service.exe,需要执行以下操作。
43.当找到确定好驱动加载进程时,如果service.exe时,还必须找出哪个进程通知service.exe加载驱动。关系就变成如图3所示。此时驱动的真正加载进程也是处于等待状态,这时就必须通过alpc之间关系,通过winapi访问找到真正的加载进程。
44.本技术实施例还提供的一种基于堆栈回溯与通信的驱动加载进程获取系统。系统包括:
45.获取模块,用于加载minifilter框架,并通过minifilter框架获取系统的驱动加载状态;
46.回溯模块,用于当系统加载驱动完成时,在minifilter框架中遍历所有系统的驱动加载线程,并插入apc,堆栈回溯出每个驱动加载线程的行程轨迹;
47.判断模块,用于当ntloaddriver函数内存在有目标驱动加载线程的行程轨迹时,则判断目标驱动加载线程对应的进程是否为service进程;
48.确认模块,用于当对应的进程为service进程时,通过alpc之间关系以及win api访问找到目标驱动加载进程。
49.在本技术一个可选的实施例中,获取模块中:
50.获取系统的驱动加载的程序函数为ntloaddriver函数。
51.在本技术一个可选的实施例中,确认模块还用于:
52.当对应的进程不为service进程时,则确定该进程并非目标驱动加载进程。
53.在本技术一个可选的实施例中,获取模块具体用于:
54.在minifilter当中过滤到系统加载驱动后,即驱动的加载进程处于等待状态时,等待系统加载驱动完成。
55.本技术实施例提供的基于堆栈回溯与通信的驱动加载进程获取系统用于实现上述基于堆栈回溯与通信的驱动加载进程获取方法,关于基于堆栈回溯与通信的驱动加载进程获取系统的具体限定可以参见上文中对于基于堆栈回溯与通信的驱动加载进程获取方法的限定,在此不再赘述。上述基于堆栈回溯与通信的驱动加载进程获取系统中的各个部分可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于设备中的处理器中,也可以以软件形式存储于设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
56.以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
57.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1