1.本发明实施例涉及网络信息安全
技术领域:
:,尤其涉及一种傀儡进程检测方法、装置、电子设备和存储介质。
背景技术:
::2.傀儡进程是恶意软件隐藏自身代码的一种常用方式,其通过将恶意代码写入正常的子程序内存来伪装成正常进程。目前,现有的检测技术是通过扫描可执行文件的恶意代码特征的方式实现傀儡进程的检测,但是如果傀儡进程的负载被加密,通过静态特征检测的方式检测率将大大降低。技术实现要素:3.基于现有技术的上述情况,本发明实施例的目的在于提供一种傀儡进程检测方法、装置、电子设备和存储介质,以提高对于傀儡进程型病毒的检测能力。4.为达到上述目的,根据本发明的一个方面,提供了一种傀儡进程检测方法,包括:5.监视进程中各子进程的执行进度;当任意一个进程调用函数恢复该子进程所在的线程的运行时,遍历该子进程所有包含可执行属性的内存区块,并判断其是否符合可移植条件;6.根据该内存区块是否符合可移植条件,对该内存区块进行镜像文件检测;7.根据镜像检测的结果,判断该进程是否为傀儡进程。8.进一步的,所述可移植条件包括:9.该内存区块头部是否符合可移植的可执行文件的头部特征。10.进一步的,根据该内存区块是否符合可移植条件,对该内存区块进行镜像文件检测,包括:11.若该内存区块头部符合可移植的可执行文件的头部特征,则检测该内存区块是否有对应的镜像文件。12.进一步的,所述函数包括功能为恢复线程执行的函数。13.进一步的,根据镜像检测的结果,判断该进程是否为傀儡进程,包括:14.若在该内存区块中未找到对应的镜像文件,则判断该进程为被利用作为傀儡进程的容器;15.若在该内存区块中找到对应的镜像文件,则判断该进程为正常进程。16.根据本发明的第二个方面,提供了一种傀儡进程检测装置,包括监视模块、检测模块和判断模块;其中,17.所述监视模块,用于监视进程中各子进程的执行进度;当任意一个进程调用函数恢复该子进程所在的线程的运行时,遍历该子进程所有包含可执行属性的内存区块,并判断其是否符合可移植条件;18.所述检测模块,用于根据该内存区块是否符合可移植条件,对该内存区块进行镜像文件检测;19.所述判断模块,用于根据镜像检测的结果,判断该进程是否为傀儡进程。20.进一步的,所述监视模块遍历该子进程所有包含可执行属性的内存区块,并判断其是否符合可移植条件,包括:21.若该内存区块头部符合可移植的可执行文件的头部特征,则检测该内存区块是否有对应的镜像文件。22.进一步的,所述判断模块根据镜像检测的结果,判断该进程是否为傀儡进程,包括:23.若在该内存区块中未找到对应的镜像文件,则判断该进程为被利用作为傀儡进程的容器;24.若在该内存区块中找到对应的镜像文件,则判断该进程为正常进程。25.根据本发明的第三个方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的可执行指令,所述处理器执行所述程序时实现如本发明第一个方面所述的傀儡进程检测方法。26.根据本发明的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机可执行指令,所述可执行指令被处理器执行时实现如本发明第一个方面所述的傀儡进程检测方法。27.综上所述,本发明实施例提供了一种傀儡进程检测方法、装置、电子设备和计算机可读存储介质,该傀儡进程检测方法包括:监视进程中各子进程的执行进度;当任意一个进程调用函数恢复该子进程所在的线程的运行时,遍历该子进程所有包含可执行属性的内存区块,并判断其是否符合可移植条件;根据该内存区块是否符合可移植条件,对该内存区块进行镜像文件检测;根据镜像检测的结果,判断该进程是否为傀儡进程。本发明实施例的技术方案,充分利用傀儡进程需要先将恶意模块写入正常程序的内存,并设置内存为可执行属性的特点,根据该特点对进程中的子进程进行检测,在对于傀儡进程的识别率和准确率上得到了显著的提升,同时不会被加壳软件干扰误报,有效地解决了病毒长期潜伏导致用户数据被窃取的技术问题。附图说明28.图1是本发明实施例提供的傀儡进程检测方法的流程图;29.图2是本发明实施例提供的傀儡进程检测装置的构成框图;30.图3是本发明实施例提供的电子设备的结构示意图。具体实施方式31.为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。32.下面对结合附图对本发明实施例的技术方案进行详细说明。傀儡进程是恶意软件隐藏自身代码的一种常用方式,其通过将恶意代码写入正常的子程序内存来伪装成正常进程。傀儡进程通常通过以下流程实现恶意代码的隐藏:(1)启动并暂停一个被杀毒软件或者其他监测软件认为是正常的子进程。(2)在该正常的子进程中申请新的内存并将该内存设置为可执行属性。(3)将恶意代码模块写入该正常的子进程内存中。33.(4)通过setthreadcontext接口将该正常的子进程的执行位置修改为恶意代码模块的入口地址。34.(5)使用resumethread函数恢复线程的运行。resumethread函数的作用是使线程的挂起时间计数减1,通常在创建一个挂起的线程或者手动挂起一个线程后调用。调用该函数后线程不一定会立刻执行,而是由操作系统继续调度,直到计数为0,系统为其分配资源时才开始执行。35.根据上文中所述的傀儡进程将恶意代码隐藏至正常子进程的过程,本发明实施例根据要实现傀儡进程需要先将恶意代码模块写入正常程序的内存,并设置内存为可执行属性的特点,来对傀儡进程进行检测。本发明的实施例中,提供了一种傀儡进程检测方法,尤其适用于windows系统下的傀儡进程检测,该检测方法100的流程图如图1所示,包括以下步骤:36.s102、监视进程中各子进程的执行进度;当任意一个进程调用函数恢复该子进程所在的线程的运行时,遍历该子进程所有包含可执行属性的内存区块,并判断其是否符合可移植条件。根据上文中所述的傀儡进程隐藏恶意代码的实现流程,本发明实施例该步骤中,监测进程中各子进程的执行进度,当任意一个进程执行至上述实现流程的步骤(5),即进程调用函数恢复该子进程所在的线程的运行时,遍历该子进程所有包含可执行属性的内存区块,以进入到对于傀儡进程的判断流程。该函数包括功能为恢复线程执行的函数,例如为上文中所述的resumethread函数。其中,可移植条件包括:该内存区块头部是否符合可移植的可执行文件(portableexecutable,以下简称“pe”)的头部特征,常见的例如exe、dll、ocx、sys、com等文件都属于pe文件。可以通过image_dos_header结构下的e_nagic标识,或者image_nt_headers结构下的signature标识来对pe文件的头部特征进行检测。37.s104、根据该内存区块是否符合可移植条件,对该内存区块进行镜像文件检测。当内存区块头部符合pe文件的头部特征时,对该内存区块进行镜像文件检测。根据该内存区块是否符合可移植条件,对该内存区块进行镜像文件检测,包括如下步骤:若该内存区块头部符合可移植的可执行(pe)文件的头部特征,则检测该内存区块是否有对应的镜像文件。其中,该镜像文件即pe文件,加载到内存后,此处内存和pe文件路径将被进行记录,进程结构体(eprocess)中的虚拟地址描述符(virtualaddressdescriptor,以下简称“vad”)中存储了进程内存分配信息,从而可查询出内存对应的镜像文件,如果没有查询到,就是没有对应镜像文件的内存。38.s106、根据镜像检测的结果,判断该进程是否为傀儡进程。根据镜像检测的结果,判断该进程是否为傀儡进程,包括如下步骤:若在该内存区块中未找到对应的镜像文件,则判断该进程为被利用作为傀儡进程的容器;若在该内存区块中找到对应的镜像文件,则判断该进程为正常进程。在该步骤中,如果没有找到关联的文件镜像文件,则可以确认该进程是被傀儡进程利用,被作为傀儡进程的容器。因为对于正常进程来说,进程当前运行时机主线程还没有得到时机运行时,pe文件加载器不会创建上述特征的内存区域,,即没有镜像关联的可执行内存。从而通过本实施例提供的上述步骤可以实现傀儡进行的检测。39.本发明的实施例中,还提供了一种傀儡进程检测装置,尤其适用于windows系统下的傀儡进程检测,该检测装置200的构成框图如图2所示,包括监视模块201、检测模块202和判断模块203。40.所述监视模块201,用于监视进程中各子进程的执行进度;当任意一个进程调用函数恢复该子进程所在的线程的运行时,遍历该子进程所有包含可执行属性的内存区块,并判断其是否符合可移植条件。其中,监视模块遍历该子进程所有包含可执行属性的内存区块,并判断其是否符合可移植条件,包括:若该内存区块头部符合可移植的可执行文件的头部特征,则检测该内存区块是否有对应的镜像文件。41.所述检测模块202,用于根据该内存区块是否符合可移植条件,对该内存区块进行镜像文件检测。42.所述判断模块203,用于根据镜像检测的结果,判断该进程是否为傀儡进程。其中,根据镜像检测的结果,判断该进程是否为傀儡进程,包括:若在该内存区块中未找到对应的镜像文件,则判断该进程为被利用作为傀儡进程的容器;若在该内存区块中找到对应的镜像文件,则判断该进程为正常进程。43.上述傀儡进程检测装置200中的各个模块的具体功能和操作已经在上述实施例的傀儡进程检测方法中进行了详细介绍,因此,这里将省略其重复描述。44.本发明的实施例中,还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的可执行指令,所述处理器执行所述程序时实现如本发明上述实施例中所述的傀儡进程检测方法。图3所示为本技术该实施例提供的电子设备300的结构示意图。如图3所示,该电子设备300包括:一个或多个处理器301和存储器302;以及存储在存储器302中的计算机可执行指令,可执行指令在被处理器301运行时使得处理器301执行如上述实施例的傀儡进程检测方法。处理器301可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备中的其他组件以执行期望的功能。存储器302可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器301可以运行程序指令,以实现上文的本发明实施例的傀儡进程检测方法中的步骤以及/或者其他期望的功能。在一些实施例中,电子设备300还可以包括:输入装置303和输出装置304,这些组件通过总线系统和/或其他形式的连接机构(图3中未示出)互连。例如,在该电子设备是单机设备时,该输入装置303可以是通信网络连接器,用于从外部的可移动设备接收所采集的输入信号。此外,该输入设备303还可以包括例如键盘、鼠标、麦克风等。该输出装置304可以向外部输出各种信息,例如可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等。45.本发明的实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明上述实施例中所述的方法中的步骤。计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器((ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。46.应当理解的是,本发明实施例中的处理器可以为中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。47.综上所述,本发明实施例涉及一种傀儡进程检测方法、装置、电子设备和存储介质,该傀儡进程检测方法包括:监视进程中各子进程的执行进度;当任意一个进程调用函数恢复该子进程所在的线程的运行时,遍历该子进程所有包含可执行属性的内存区块,并判断其是否符合可移植条件;根据该内存区块是否符合可移植条件,对该内存区块进行镜像文件检测;根据镜像检测的结果,判断该进程是否为傀儡进程。本发明实施例的技术方案,充分利用傀儡进程需要先将恶意模块写入正常程序的内存,并设置内存为可执行属性的特点,根据该特点对进程中的子进程进行检测,在对于傀儡进程的识别率和准确率上得到了显著的提升,同时不会被加壳软件干扰误报,有效地解决了病毒长期潜伏导致用户数据被窃取的技术问题。48.应当理解的是,以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。当前第1页12当前第1页12