CN111639340B - 恶意应用程序检测方法、装置、电子设备及可读存储介质 - Google Patents

恶意应用程序检测方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN111639340B
CN111639340B CN202010467743.5A CN202010467743A CN111639340B CN 111639340 B CN111639340 B CN 111639340B CN 202010467743 A CN202010467743 A CN 202010467743A CN 111639340 B CN111639340 B CN 111639340B
Authority
CN
China
Prior art keywords
page
data stored
kernel module
memory
module
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
CN202010467743.5A
Other languages
English (en)
Other versions
CN111639340A (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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
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 Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202010467743.5A priority Critical patent/CN111639340B/zh
Publication of CN111639340A publication Critical patent/CN111639340A/zh
Application granted granted Critical
Publication of CN111639340B publication Critical patent/CN111639340B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例提供了一种恶意应用程序检测方法、装置、电子设备及可读存储介质,确定目标设备中内核模块对应的内存区域,作为待检测内存区域;确定待检测内存区域中的内存数据所指向的内核模块,作为待检测内核模块;基于待检测内核模块,确定目标设备中是否存在恶意应用程序。基于上述处理,能够提高恶意应用程序的检测精度。

Description

恶意应用程序检测方法、装置、电子设备及可读存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种恶意应用程序检测方法、装置、电子设备及可读存储介质。
背景技术
恶意攻击者可以通过网络或其他方式,向被攻击的目标设备发送恶意应用程序,进而,通过恶意应用程序对目标设备进行攻击。
相关技术中,一些恶意应用程序往往以内核模块的形式,运行于目标设备中。例如,RootKit等恶意应用程序。为了检测目标设备中是否存在该类恶意应用程序,可以遍历目标设备的操作系统提供的内核模块链表,确定目标设备中是否存在该类恶意应用程序,内核模块链表表示该操作系统当前已加载的内核模块。
然而,该类恶意应用程序可能会通过DKOM(Direct Kernel ObjectManipulation,直接内核对象操作)方式,将自身从目标设备的操作系统提供的内核模块链表中删除,相应的,基于现有技术,则会确定目标设备中不存在该类恶意应用程序,降低恶意应用程序的检测精度。
发明内容
本申请实施例的目的在于提供一种恶意应用程序检测方法、装置、电子设备及可读存储介质,能够提高恶意应用程序的检测精度。具体技术方案如下:
第一方面,为了达到上述目的,本申请实施例公开了一种恶意应用程序检测方法,所述方法包括:
确定目标设备中内核模块对应的内存区域,作为待检测内存区域;
确定所述待检测内存区域中的内存数据所指向的内核模块,作为待检测内核模块;
基于所述待检测内核模块,确定所述目标设备中是否存在恶意应用程序。
可选的,所述基于所述待检测内核模块,确定所述目标设备中是否存在恶意应用程序,包括:
如果所述待检测内核模块,与所述目标设备的操作系统提供的内核模块链表中记录的内核模块不一致,确定所述目标设备中存在恶意应用程序。
可选的,在所述确定所述目标设备中存在恶意应用程序之后,所述方法还包括:
确定所述待检测内核模块与所述内核模块链表中记录的内核模块中不一致的内核模块,作为目标内核模块;
分别对所述目标内核模块对应的文件进行二进制扫描;
基于扫描结果,从所述目标内核模块对应的文件中,确定出恶意应用程序。
可选的,所述确定所述待检测内存区域中的内存数据所指向的内核模块,作为待检测内核模块,包括:
针对所述待检测内存区域中每一页面,判断该页面存储的内存数据是否符合驱动对象的有效数据结构;
如果该页面存储的内存数据符合驱动对象的有效数据结构,将该页面存储的内存数据指向的内核模块,确定为待检测内核模块。
可选的,所述判断该页面存储的内存数据是否符合驱动对象的有效数据结构,包括:
当该页面存储的内存数据满足预设条件时,判定该页面存储的内存数据符合驱动对象的有效数据结构,其中,所述预设条件包括:
该页面存储的内存数据中记录的魔术头Magic Header位为预设数值;
该页面存储的内存数据指向的模块的文件大小属于预设大小范围;
该页面存储的内存数据指向的模块的起始地址,属于所述待检测内存区域对应的地址范围;
该页面存储的内存数据指向的模块的文件为合法的可执行文件。
可选的,在所述判断该页面存储的内存数据是否符合驱动对象的有效数据结构之前,所述方法还包括:
判断该页面存储的内存数据,当前是否映射到所述目标设备的物理内存;
如果该页面存储的内存数据当前已映射到所述目标设备的物理内存,执行所述判断该页面存储的内存数据是否符合驱动对象的有效数据结构的步骤。
第二方面,为了达到上述目的,本申请实施例公开了一种恶意应用程序检测装置,其特征在于,所述装置包括:
第一确定模块,用于确定目标设备中内核模块对应的内存区域,作为待检测内存区域;
第二确定模块,用于确定所述待检测内存区域中的内存数据所指向的内核模块,作为待检测内核模块;
检测模块,用于基于所述待检测内核模块,确定所述目标设备中是否存在恶意应用程序。
可选的,所述检测模块,具体用于如果所述待检测内核模块,与所述目标设备的操作系统提供的内核模块链表中记录的内核模块不一致,确定所述目标设备中存在恶意应用程序。
可选的,所述装置还包括:
扫描模块,用于确定所述待检测内核模块与所述内核模块链表中记录的内核模块中不一致的内核模块,作为目标内核模块;
分别对所述目标内核模块对应的文件进行二进制扫描;
基于扫描结果,从所述目标内核模块对应的文件中,确定出恶意应用程序。
可选的,所述第二确定模块,具体用于针对所述待检测内存区域中每一页面,判断该页面存储的内存数据是否符合驱动对象的有效数据结构;
如果该页面存储的内存数据符合驱动对象的有效数据结构,将该页面存储的内存数据指向的内核模块,确定为待检测内核模块。
可选的,所述第二确定模块,具体用于当该页面存储的内存数据满足预设条件时,判定该页面存储的内存数据符合驱动对象的有效数据结构,其中,所述预设条件包括:
该页面存储的内存数据中记录的魔术头Magic Header位为预设数值;
该页面存储的内存数据指向的模块的文件大小属于预设大小范围;
该页面存储的内存数据指向的模块的起始地址,属于所述待检测内存区域对应的地址范围;
该页面存储的内存数据指向的模块的文件为合法的可执行文件。
可选的,所述装置还包括:
判断模块,用于判断该页面存储的内存数据,当前是否映射到所述目标设备的物理内存;
如果该页面存储的内存数据当前已映射到所述目标设备的物理内存,触发所述第二确定模块。
另一方面,为了达到上述目的,本申请实施例还公开了一种电子设备,所述电子设备包括存储器和处理器;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现如上述第一方面所述的恶意应用程序检测方法。
另一方面,为了达到上述目的,本申请实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现如上述第一方面所述的恶意应用程序检测方法。
另一方面,为了达到上述目的,本申请实施例还公开了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的恶意应用程序检测方法。
本申请实施例提供了一种恶意应用程序检测方法,可以确定目标设备中内核模块对应的内存区域,作为待检测内存区域;确定待检测内存区域中的内存数据所指向的内核模块,作为待检测内核模块;基于待检测内核模块,确定目标设备中是否存在恶意应用程序。
基于上述处理,由于恶意应用程序无法修改内存区域中的内存数据,因此,如果当前恶意应用程序在目标设备中运行,则基于内存区域中的内存数据确定出的待检测内核模块,包括恶意应用程序对应的内核模块,进而,基于待检测内核模块,能够有效地确定出目标设备中是否存在恶意应用程序,提高恶意应用程序的检测精度。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的恶意应用程序检测方法的一种流程图;
图2为本申请实施例提供的恶意应用程序检测方法的另一种流程图;
图3为本申请实施例提供的一种恶意应用程序检测装置的结构图;
图4为本申请实施例提供的一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
相关技术中,恶意应用程序可能会通过DKOM方式,将自身从目标设备的操作系统提供的内核模块链表中删除,进而,使得基于现有技术,会确定目标设备中不存在恶意应用程序,导致恶意应用程序的检测精度较低。
为了解决上述问题,本申请实施例提供了一种恶意应用程序检测方法,参见图1,该方法可以包括以下步骤:
S101:确定目标设备中内核模块对应的内存区域,作为待检测内存区域。
S102:确定待检测内存区域中的内存数据所指向的内核模块,作为待检测内核模块。
S103:基于待检测内核模块,确定目标设备中是否存在恶意应用程序。
可见,基于本申请实施例提供的恶意应用程序检测方法,由于恶意应用程序无法修改内存区域中的内存数据,因此,如果当前恶意应用程序在目标设备中运行,则基于内存区域中的内存数据确定出的待检测内核模块,包括恶意应用程序对应的内核模块,进而,基于待检测内核模块,能够有效地确定出目标设备中是否存在恶意应用程序,提高恶意应用程序的检测精度。
在步骤S101中,内核模块对应的内存区域,可以为目标设备的虚拟地址空间中的高端地址空间。高端地址空间为分配给操作系统内核的系统地址空间,即,目标设备的操作系统加载的内核模块对应的地址空间。
例如,在32位的Windows操作系统中,内核模块对应的内存区域的起始地址可以为0x80000000,结束地址可以为0xFFFFF000。
在步骤S102中,由于恶意应用程序无法对目标设备的高端地址空间中的内存数据进行修改,因此,基于目标设备的高端地址空间中的内存数据,能够有效地确定出目标设备当前已加载的各内核模块。
可选的,参见图2,S102可以包括以下步骤:
S1021:针对待检测内存区域中每一页面,判断该页面存储的内存数据是否符合驱动对象的有效数据结构。
在申请实施例中,在对待检测内存区域进行检测时,可以以页面为检测的单位。
一种实现方式中,可以按照待检测内存区域包含的各页面的起始地址从小到大的顺序,依次对每一页面存储的内存数据进行检测。
例如,在32位的Windows操作系统中,内存区域的高端地址空间的起始地址为0x80000000,相应的,第一个页面的起始地址则为0x80000000,该页面的大小为4096个字节,则第二个页面的起始地址为0x80001000。
S1022:如果该页面存储的内存数据符合驱动对象的有效数据结构,将该页面存储的内存数据指向的内核模块,确定为待检测内核模块。
在申请实施例中,针对待检测内存区域中的每一页面,如果该页面存储的内存数据符合驱动对象的有效数据结构,表明该页面存储的内存数据为有效的驱动对象,该有效的驱动对象指向的内核模块为目标设备的操作系统当前实际加载的内核模块。
可选的,步骤S1021可以包括以下步骤:
当该页面存储的内存数据满足预设条件时,判定该页面存储的内存数据符合驱动对象的有效数据结构,其中,预设条件包括:该页面存储的内存数据中记录的Magic Header位为预设数值;该页面存储的内存数据指向的模块的文件大小属于预设大小范围;该页面存储的内存数据指向的模块的起始地址,属于待检测内存区域对应的地址范围;该页面存储的内存数据指向的模块的文件为合法的可执行文件。
其中,预设数值可以由技术人员根据业务需求进行设置,例如,在32位的Windows操作系统中,内核模块对应的驱动对象的Magic Header位为0x00A80004,因此,可以设置预设数值为0x00A80004。
该页面存储的内存数据指向的模块的文件,即内存数据对应的应用程序的可执行文件。
预设大小范围可以由技术人员根据经验进行设置,例如,预设大小范围可以为大于1024个字节。
在申请实施例中,当根据该页面存储的数据,判定满足上述四个条件时,可以确定该页面存储的内存数据符合驱动对象的有效数据结构,即,表明该页面存储的内存数据,为目标设备的操作系统为当前实际加载的内核模块创建的驱动对象。
一种实现方式中,在32位的Windows操作系统中,可以依次判断是否满足上述四个条件。
例如,可以判断该页面存储的内存数据中记录的Magic Header位是否为0x00A80004。
如果该页面存储的内存数据中记录的Magic Header位为0x00A80004,可以获取该页面存储的内存数据中记录的指向的模块的文件大小,并判断是否大于1024个字节。
如果指向的模块的文件大于1024个字节,可以获取该页面存储的内存数据中记录的指向的模块的起始地址,并判断该起始地址是否属于0x80000000-0xFFFFF000的范围。
如果该起始地址属于0x80000000-0xFFFFF000的范围,可以获取该页面存储的内存数据指向的模块的文件,并判断该文件是否为合法的可执行文件。
例如,判断该文件的头部第一个字的值是否等于IMAGE_DOS_SIGNATURE(磁盘操作系统镜像签名),即,查找文件MZ头的数值是否为0x4D5A,如果是,则表明DOS MZ Header有效,继续下一步判断。
如果DOS MZ Header有效,可以继续判断PE头的第一个字的值是否等于IMAGE_NT_HEADE,即,判断PE头是否为0x4550,如果是,则可以确定该文件为合法的可执行文件。其中,可以用e_lfanew指针定位PE头,e_lfanew位于0x3C偏移处。
可选的,为了提高检测效率,在S1021之前,该方法还可以包括以下步骤:判断该页面存储的内存数据,当前是否映射到目标设备的物理内存;如果是,执行S1021。
在申请实施例中,针对待检测内存区域中的每一页面,当判定该页面存储的内存数据当前映射到目标设备的物理内存时,才继续判断该页面存储的内存数据是否符合驱动对象的有效数据结构。
即,如果该页面存储的内存数据当前未映射到目标设备的物理内存,表明目标设备的操作系统当前并未加载该内存数据,也就不存在对应的内核模块,因此,可以跳过后续的判断是否符合驱动对象的有效数据结构的检测步骤,以提高检测效率。
在步骤S103中,可以对待检测内核模块各自对应的文件依次进行扫描,以确定目标设备中是否存在恶意应用程序。
可选的,S103可以包括以下步骤:如果待检测内核模块,与目标设备的操作系统提供的内核模块链表中记录的内核模块不一致,确定目标设备中存在恶意应用程序。
在申请实施例中,还可以获取目标设备的操作系统提供的内核模块链表,进而,可以比较内核模块链表中记录的内核模块与待检测内核模块。
如果恶意应用程序对内核模块链表进行修改,会导致待检测内核模块与内核模块链表中记录的内核模块不一致,进而,可以确定目标设备中存在恶意应用程序。
可选的,在确定目标设备中存在恶意应用程序之后,该方法还可以包括以下步骤:
步骤一,确定待检测内核模块与内核模块链表中记录的内核模块中不一致的内核模块,作为目标内核模块。
在申请实施例中,如果恶意应用程序对内核模块链表进行修改以隐藏自身,则可以获取待检测内核模块中不属于内核模块链表的内核模块,即目标内核模块,目标内核模块包含恶意应用程序对应的内核模块。
步骤二,分别对目标内核模块对应的文件进行二进制扫描,并基于扫描结果,从目标内核模块对应的文件中,确定出恶意应用程序。
在申请实施例中,在确定出目标内核模块后,可以分别对目标内核模块对应的文件进行二进制扫描。
一种实现方式中,可以调用目标设备中的杀毒应用程序,分别对目标内核模块对应的文件进行二进制扫描,进而,可以根据扫描结果确定出恶意应用程序。
基于相同的发明构思,参见图3,图3为本申请实施例提供的一种恶意应用程序检测装置的结构图,装置包括:
第一确定模块301,用于确定目标设备中内核模块对应的内存区域,作为待检测内存区域;
第二确定模块302,用于确定待检测内存区域中的内存数据所指向的内核模块,作为待检测内核模块;
检测模块303,用于基于待检测内核模块,确定目标设备中是否存在恶意应用程序。
可选的,检测模块303,具体用于如果待检测内核模块,与目标设备的操作系统提供的内核模块链表中记录的内核模块不一致,确定目标设备中存在恶意应用程序。
可选的,装置还包括:
扫描模块,用于确定待检测内核模块与内核模块链表中记录的内核模块中不一致的内核模块,作为目标内核模块;
分别对目标内核模块对应的文件进行二进制扫描;
基于扫描结果,从目标内核模块对应的文件中,确定出恶意应用程序。
可选的,第二确定模块302,具体用于针对待检测内存区域中每一页面,判断该页面存储的内存数据是否符合驱动对象的有效数据结构;
如果该页面存储的内存数据符合驱动对象的有效数据结构,将该页面存储的内存数据指向的内核模块,确定为待检测内核模块。
可选的,第二确定模块302,具体用于当该页面存储的内存数据满足预设条件时,判定该页面存储的内存数据符合驱动对象的有效数据结构,其中,预设条件包括:
该页面存储的内存数据中记录的Magic Header位为预设数值;
该页面存储的内存数据指向的模块的文件大小属于预设大小范围;
该页面存储的内存数据指向的模块的起始地址,属于待检测内存区域对应的地址范围;
该页面存储的内存数据指向的模块的文件为合法的可执行文件。
可选的,装置还包括:
判断模块,用于判断该页面存储的内存数据,当前是否映射到目标设备的物理内存;
如果该页面存储的内存数据当前已映射到目标设备的物理内存,触发第二确定模块302。
基于本申请实施例提供的恶意应用程序检测装置,由于恶意应用程序无法修改内存区域中的内存数据,因此,如果当前恶意应用程序在运行,则基于内存区域中的内存数据确定出的待检测内核模块,包括恶意应用程序对应的内核模块,进而,基于待检测内核模块,能够有效地确定出目标设备中是否存在恶意应用程序,提高恶意应用程序的检测精度。
本申请实施例还提供了一种电子设备,如图4所示,包括存储器401和处理器402;
存储器401,用于存放计算机程序;
处理器402,用于执行存储器401上所存放的程序时,实现本申请实施例提供的恶意应用程序检测方法。
具体的,上述恶意应用程序检测方法,包括:
确定目标设备中内核模块对应的内存区域,作为待检测内存区域;
确定待检测内存区域中的内存数据所指向的内核模块,作为待检测内核模块;
基于待检测内核模块,确定目标设备中是否存在恶意应用程序。
需要说明的是,上述恶意应用程序检测方法的其他实现方式与前述方法实施例部分相同,这里不再赘述。
上述电子设备可以具备有实现上述电子设备与其他设备之间通信的通信接口。
上述的处理器,通信接口,存储器通过通信总线完成相互间的通信,此处提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(Non-Volatile Memory,简称NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行本申请实施例提供的恶意应用程序检测方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本申请实施例提供的恶意应用程序检测方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

Claims (8)

1.一种恶意应用程序检测方法,其特征在于,所述方法包括:
确定目标设备中内核模块对应的内存区域,作为待检测内存区域;
针对所述待检测内存区域中每一页面,判断该页面存储的内存数据是否符合驱动对象的有效数据结构;
如果该页面存储的内存数据符合驱动对象的有效数据结构,将该页面存储的内存数据指向的内核模块,确定为待检测内核模块;
如果所述待检测内核模块,与所述目标设备的操作系统提供的内核模块链表中记录的内核模块不一致,确定所述目标设备中存在恶意应用程序;
确定所述待检测内核模块与所述内核模块链表中记录的内核模块中不一致的内核模块,作为目标内核模块;
分别对所述目标内核模块对应的文件进行二进制扫描;
基于扫描结果,从所述目标内核模块对应的文件中,确定出恶意应用程序。
2.根据权利要求1所述的方法,其特征在于,所述判断该页面存储的内存数据是否符合驱动对象的有效数据结构,包括:
当该页面存储的内存数据满足预设条件时,判定该页面存储的内存数据符合驱动对象的有效数据结构,其中,所述预设条件包括:
该页面存储的内存数据中记录的魔术头Magic Header位为预设数值;
该页面存储的内存数据指向的模块的文件大小属于预设大小范围;
该页面存储的内存数据指向的模块的起始地址,属于所述待检测内存区域对应的地址范围;
该页面存储的内存数据指向的模块的文件为合法的可执行文件。
3.根据权利要求1所述的方法,其特征在于,在所述判断该页面存储的内存数据是否符合驱动对象的有效数据结构之前,所述方法还包括:
判断该页面存储的内存数据,当前是否映射到所述目标设备的物理内存;
如果该页面存储的内存数据当前已映射到所述目标设备的物理内存,执行所述判断该页面存储的内存数据是否符合驱动对象的有效数据结构的步骤。
4.一种恶意应用程序检测装置,其特征在于,所述装置包括:
第一确定模块,用于确定目标设备中内核模块对应的内存区域,作为待检测内存区域;
第二确定模块,用于针对所述待检测内存区域中每一页面,判断该页面存储的内存数据是否符合驱动对象的有效数据结构;如果该页面存储的内存数据符合驱动对象的有效数据结构,将该页面存储的内存数据指向的内核模块,确定为待检测内核模块;
检测模块,用于如果所述待检测内核模块,与所述目标设备的操作系统提供的内核模块链表中记录的内核模块不一致,确定所述目标设备中存在恶意应用程序;
扫描模块,用于确定所述待检测内核模块与所述内核模块链表中记录的内核模块中不一致的内核模块,作为目标内核模块;
分别对所述目标内核模块对应的文件进行二进制扫描;
基于扫描结果,从所述目标内核模块对应的文件中,确定出恶意应用程序。
5.根据权利要求4所述的装置,其特征在于,所述第二确定模块,具体用于当该页面存储的内存数据满足预设条件时,判定该页面存储的内存数据符合驱动对象的有效数据结构,其中,所述预设条件包括:
该页面存储的内存数据中记录的魔术头Magic Header位为预设数值;
该页面存储的内存数据指向的模块的文件大小属于预设大小范围;
该页面存储的内存数据指向的模块的起始地址,属于所述待检测内存区域对应的地址范围;
该页面存储的内存数据指向的模块的文件为合法的可执行文件。
6.根据权利要求4所述的装置,其特征在于,所述装置还包括:
判断模块,用于判断该页面存储的内存数据,当前是否映射到所述目标设备的物理内存;
如果该页面存储的内存数据当前已映射到所述目标设备的物理内存,触发所述第二确定模块。
7.一种电子设备,其特征在于,包括存储器和处理器;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现权利要求1-3任一所述的方法步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-3任一所述的方法步骤。
CN202010467743.5A 2020-05-28 2020-05-28 恶意应用程序检测方法、装置、电子设备及可读存储介质 Active CN111639340B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010467743.5A CN111639340B (zh) 2020-05-28 2020-05-28 恶意应用程序检测方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010467743.5A CN111639340B (zh) 2020-05-28 2020-05-28 恶意应用程序检测方法、装置、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN111639340A CN111639340A (zh) 2020-09-08
CN111639340B true CN111639340B (zh) 2023-11-03

Family

ID=72331187

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010467743.5A Active CN111639340B (zh) 2020-05-28 2020-05-28 恶意应用程序检测方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN111639340B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113032783B (zh) * 2021-03-11 2024-03-19 北京顶象技术有限公司 一种基于非代码特征的病毒检测方法和系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101183418A (zh) * 2007-12-25 2008-05-21 北京大学 一种Windows隐蔽性恶意软件检测方法
CN106130959A (zh) * 2016-06-12 2016-11-16 微梦创科网络科技(中国)有限公司 恶意应用识别方法及装置
CN106815523A (zh) * 2015-11-27 2017-06-09 北京金山安全软件有限公司 一种恶意软件防御方法及装置
CN109582437A (zh) * 2018-10-29 2019-04-05 中国科学院信息工程研究所 一种基于内存类型感知的恶意进程检测方法和系统
WO2020000741A1 (zh) * 2018-06-30 2020-01-02 平安科技(深圳)有限公司 一种rookit检测方法、装置及服务器
CN111027072A (zh) * 2019-12-20 2020-04-17 北京安天网络安全技术有限公司 Linux下基于elf二进制标准解析的内核Rootkit检测方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8566944B2 (en) * 2010-04-27 2013-10-22 Microsoft Corporation Malware investigation by analyzing computer memory
RU2510075C2 (ru) * 2012-04-11 2014-03-20 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ обнаружения вредоносного программного обеспечения в ядре операционной системы

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101183418A (zh) * 2007-12-25 2008-05-21 北京大学 一种Windows隐蔽性恶意软件检测方法
CN106815523A (zh) * 2015-11-27 2017-06-09 北京金山安全软件有限公司 一种恶意软件防御方法及装置
CN106130959A (zh) * 2016-06-12 2016-11-16 微梦创科网络科技(中国)有限公司 恶意应用识别方法及装置
WO2020000741A1 (zh) * 2018-06-30 2020-01-02 平安科技(深圳)有限公司 一种rookit检测方法、装置及服务器
CN109582437A (zh) * 2018-10-29 2019-04-05 中国科学院信息工程研究所 一种基于内存类型感知的恶意进程检测方法和系统
CN111027072A (zh) * 2019-12-20 2020-04-17 北京安天网络安全技术有限公司 Linux下基于elf二进制标准解析的内核Rootkit检测方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Windows系统Rootkit检测技术的研究;李建军;《中国优秀硕士学位论文全文数据库信息科技辑》;4.3.5-4.3.6 *

Also Published As

Publication number Publication date
CN111639340A (zh) 2020-09-08

Similar Documents

Publication Publication Date Title
US11063974B2 (en) Application phenotyping
RU2551820C2 (ru) Способ и устройство для проверки файловой системы на наличие вирусов
US8819835B2 (en) Silent-mode signature testing in anti-malware processing
US10430586B1 (en) Methods of identifying heap spray attacks using memory anomaly detection
KR101122646B1 (ko) 위장 가상 머신 정보를 이용한 인텔리전트 봇 대응 방법 및 장치
US9239922B1 (en) Document exploit detection using baseline comparison
US20190147163A1 (en) Inferential exploit attempt detection
US20100077482A1 (en) Method and system for scanning electronic data for predetermined data patterns
CN105814577A (zh) 隔离表现网络活动的可执行文件
CN109889511B (zh) 进程dns活动监控方法、设备及介质
CN112291258B (zh) 网关风险控制方法及装置
CN111989679A (zh) 在执行程序的进程的执行路径中注入陷阱代码以生成陷阱地址范围来检测潜在恶意代码
WO2018063756A1 (en) System, apparatus and method for performing on-demand binary analysis for detecting code reuse attacks
WO2010115959A1 (en) Providing information to a security application
CN111639340B (zh) 恶意应用程序检测方法、装置、电子设备及可读存储介质
CN108156127B (zh) 网络攻击模式的判断装置、判断方法及其计算机可读取储存媒体
US7130981B1 (en) Signature driven cache extension for stream based scanning
US9787699B2 (en) Malware detection
CN110659478B (zh) 在隔离的环境中检测阻止分析的恶意文件的方法
CN115412312A (zh) 一种恶意域名确定方法、装置、设备及介质
US10819683B2 (en) Inspection context caching for deep packet inspection
CN115022011B (zh) 漏扫软件访问请求识别方法、装置、设备和介质
WO2022249416A1 (ja) 分析装置、分析方法、および、分析システム
CN117574372A (zh) 一种命令拦截方法、装置、电子设备及存储介质
CN112637205A (zh) Web攻击的识别方法和和装置

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