CN118013524A - 一种可疑行为监测方法、装置、电子设备及存储介质 - Google Patents
一种可疑行为监测方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN118013524A CN118013524A CN202410282269.7A CN202410282269A CN118013524A CN 118013524 A CN118013524 A CN 118013524A CN 202410282269 A CN202410282269 A CN 202410282269A CN 118013524 A CN118013524 A CN 118013524A
- Authority
- CN
- China
- Prior art keywords
- behavior
- suspicious
- callback function
- driver
- loading
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 121
- 238000012544 monitoring process Methods 0.000 title claims abstract description 66
- 230000006399 behavior Effects 0.000 claims abstract description 280
- 230000008569 process Effects 0.000 claims abstract description 66
- 238000013507 mapping Methods 0.000 claims abstract description 17
- 230000006870 function Effects 0.000 claims description 138
- 230000002159 abnormal effect Effects 0.000 claims description 17
- 230000000694 effects Effects 0.000 claims description 11
- 238000001514 detection method Methods 0.000 abstract description 37
- 238000012806 monitoring device Methods 0.000 abstract description 6
- 230000009471 action Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000001960 triggered effect Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 239000012634 fragment Substances 0.000 description 4
- 238000004806 packaging method and process Methods 0.000 description 4
- 230000003542 behavioural effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供一种可疑行为监测方法、装置、电子设备及存储介质,所述方法包括:注册预设的回调函数;通过所述回调函数监测驱动程序在系统中的可疑行为;所述可疑行为包括:关闭驱动签名强制组件、加载目标内核进程文件、映射可疑代码至内核中的一种或多种;生成包括所述可疑行为的行为信息的日志。通过将正常软件在系统中不常见的行为列为可疑行为,利用回调函数监测系统中可疑行为的发生,能有效地捕捉到rootkit攻击在系统中的行为,为后续的攻击检测提供更丰富与可靠的检测数据。
Description
技术领域
本申请涉及网络安全技术领域,具体而言,涉及一种可疑行为监测方法、装置、电子设备及存储介质。
背景技术
随着攻击手段的不断升级,攻击者越来越倾向于使用rootkit攻击手段对目标计算机进行高级攻击。其通过获得操作系统的最高权限级别来巧妙地隐藏自身,从而大大增加了安全软件对其的检测难度。因此,如何有效揭露系统中潜藏的rootkit是本领域亟待解决的技术问题。
发明内容
本申请实施例的目的在于提供一种可疑行为监测方法、装置、电子设备及存储介质,用以实现揭露系统中潜藏rootkit的技术效果。
本申请实施例第一方面提供了一种可疑行为监测方法,所述方法包括:
注册预设的回调函数;
通过所述回调函数监测驱动程序在系统中的可疑行为;所述可疑行为包括:关闭驱动签名强制组件、加载目标内核进程文件、映射可疑代码至内核中的一种或多种;
生成包括所述可疑行为的行为信息的日志。
在上述实现过程中,将正常软件在系统中不常见的行为列为可疑行为,利用回调函数监测系统中可疑行为的发生。如此,能有效地捕捉到rootkit攻击在系统中的行为,为后续的攻击检测提供更丰富与可靠的检测数据。
进一步地,所述回调函数包括镜像回调函数与文件回调函数,所述可疑行为包括关闭驱动签名强制组件;所述通过所述回调函数监测驱动程序在系统中的可疑行为,包括:
通过所述镜像回调函数记录所述驱动程序对目标动态链接库的第一加载行为;
通过所述文件回调函数记录所述驱动程序对所述目标动态链接库的第一读取行为;
确定所述可疑行为的行为信息包括所述第一加载行为与所述第一读取行为的行为信息;
其中,所述目标动态链接库包括目标变量的存储地址;所述目标变量用于配置所述驱动签名强制组件。
在上述实现过程中,利用了镜像回调函数与文件回调函数监测驱动签名强制组件关闭时对目标动态链接库的加载与读取行为,为后续的攻击检测提供更丰富且可靠的检测数据。
进一步地,所述方法还包括:
监测所述目标变量的数值是否异常;
确定所述可疑行为的行为信息包括所述目标变量的异常值;其中,所述异常值用于关闭所述驱动签名强制组件。
在上述实现过程中,直接对配置驱动签名强制组件的目标变量的数值是否发生异常进行监测。因此就算恶意软件直接对目标变量的数值进行异常修改也能被监测到,从而提高了rootkit攻击的检出率。
进一步地,所述回调函数包括镜像回调函数与文件回调函数,所述可疑行为包括加载目标内核进程文件;所述通过所述回调函数监测驱动程序在系统中的可疑行为,包括:
通过所述镜像回调函数记录所述驱动程序对所述目标内核进程文件的第二加载行为;
通过所述文件回调函数记录所述驱动程序对所述目标内核进程文件的第二读取行为;
确定所述可疑行为的行为信息包括所述第二加载行为与所述第二读取行为的行为信息。
在上述实现过程中,利用了镜像回调函数与文件回调函数监测目标内核进程文件的加载与读取行为,为后续的攻击检测提供更丰富的检测数据。
进一步地,所述回调函数包括不可屏蔽中断NMI回调函数,所述可疑行为包括映射可疑代码至内核;所述通过所述回调函数监测驱动程序在系统中的可疑行为,包括:
定时向处理器发送NMI;
获取中断发生时所述NMI回调函数记录的代码片段;
若检测所述代码片段存在可疑代码,确定所述可疑行为的行为信息包括所述可疑代码的代码信息。
在上述实现过程中,通过定时的不可屏蔽中断来获取代码片段。以及通过对代码片段进行检测,可以发现恶意软件通过驱动程序向内核手动映射可疑代码的行为,从而为后续的攻击检测提供更丰富且可靠的检测数据。
进一步地,所述方法还包括:
监测可疑进程对所述驱动程序的第三加载行为;
确定所述可疑行为的行为信息包括所述第三加载行为的行为信息。
在上述实现过程中,当有不可信的可疑进程加载驱动程序时,会认为该第三加载行为是可疑行为,因此将该第三加载行为的行为信息作为可疑行为的行为信息,并封装至日志中进行后续的攻击分析,从而为攻击检测提供丰富且可靠的检测数据。
进一步地,所述方法还包括:
通过所述回调函数获取被加载的所述驱动程序的目标驱动信息;
将所述目标驱动信息与预设的漏洞驱动库进行匹配;其中,所述漏洞驱动库包括已知的漏洞驱动信息;
若所述目标驱动信息与所述漏洞驱动库匹配,确定所述驱动程序为漏洞驱动,并确定所述可疑行为的行为信息包括对所述驱动程序的第四加载行为。
在上述实现过程中,将被加载的驱动程序与已知的漏洞驱动进行匹配,判断当前是否有漏洞驱动被利用,从而收集恶意软件在加载漏洞驱动阶段的行为信息,以及时地分析并阻断攻击。
本申请实施例第二方面提供了一种可疑行为监测装置,所述装置包括:
注册模块,用于注册预设的回调函数;
监测模块,用于通过所述回调函数监测驱动程序在系统中的可疑行为;所述可疑行为包括:关闭驱动签名强制组件、加载目标内核进程文件、映射可疑代码至内核中的一种或多种;
日志模块,用于生成包括所述可疑行为的行为信息的日志。
本申请实施例第三方面提供了一种电子设备,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器调用所述可执行指令时实现第一方面任一所述方法的操作。
本申请实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时实现第一方面任一所述方法的步骤。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种可疑行为监测方法的流程示意图;
图2为本申请实施例提供的另一种可疑行为监测方法的流程示意图;
图3为本申请实施例提供的另一种可疑行为监测方法的流程示意图;
图4为本申请实施例提供的另一种可疑行为监测方法的流程示意图;
图5为本申请实施例提供的另一种可疑行为监测方法的流程示意图;
图6为本申请实施例提供的另一种可疑行为监测方法的流程示意图;
图7为本申请实施例提供的另一种可疑行为监测方法的流程示意图;
图8为本申请实施例提供的一种可疑行为监测装置的结构框图;
图9为本申请实施例提供的一种电子设备的硬件结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
rootkit是一种特殊的恶意软件,其可以在安装目标上隐藏自身及指定的文件、进程和网络链接等信息。由于rootkit的高隐藏性,常规的攻击检测手段难以发现其存在,为rootkit攻击的检测与阻拦带来了较大挑战。
rootkit攻击的检测依赖于足够的行为数据进行分析。因此采集丰富且可靠的行为数据是后续rootkit攻击检测的基础。为此,本申请提供了一种可疑行为监测方法,用于检测出与rootkit有关的可疑行为。如图1所示,该监测方法包括步骤110-步骤130。
步骤110:注册预设的回调函数;
步骤120:通过所述回调函数监测驱动程序在系统中的可疑行为;
其中,所述可疑行为包括:关闭驱动签名强制组件、加载目标内核进程文件、映射可疑代码至内核中的一种或多种;
步骤130:生成包括所述可疑行为的行为信息的日志。
回调函数是一种特殊的函数,其作为参数传递给另一个函数,并在被调用函数执行完毕后被调用。回调函数通常用于事件处理、异步编程等等。在本实施例中,回调函数用于监测驱动程序在系统中的可疑行为。回调函数的种类可以包括多种,任意能实现系统中可疑行为的监测功能的回调函数都可以作为步骤110中预设的回调函数,本实施例在此不做限制。
在rootkit攻击中,恶意软件可以通过系统中的驱动程序,例如是漏洞驱动在系统中进行攻击入侵。rootkit攻击虽然隐藏性高,但其通过驱动程序在系统中的行为与正常软件的行为不同。所谓漏洞驱动,是指系统中存在漏洞的合法驱动程序。恶意软件可以利用这些漏洞实施攻击。
作为一种例子,恶意软件可以通过驱动程序,例如是系统中的漏洞驱动来关闭驱动签名强制组件,例如是DSE(Driver Signature Enforcement,驱动签名强制)。在关闭驱动签名强制组件后,恶意软件再加载恶意驱动来实现攻击。而正常软件则不会关闭驱动签名强制组件。
作为一种例子,恶意软件可以通过驱动程序,例如是系统中的漏洞驱动来加载目标内核进程文件,例如是ntosknrl.exe。而正常软件一般不会进行该目标内核进程文件的加载。当然,除了ntosknrl.exe以外,其他的正常软件一般不会加载的内核进程文件都可以作为本实施例所述的目标内核进程文件,本实施例在此不做限制。
作为一种例子,恶意软件可以通过驱动程序,例如是系统中的漏洞驱动将恶意代码(shellcode)映射至内核中。而正常软件则不会映射恶意代码至内核中。
可知,上述的关闭驱动签名强制组件、加载目标内核进程文件、映射可疑代码至内核是恶意软件通过驱动程序可能会实施的行为,而正常软件一般不会执行这些操作。本实施例将正常软件在系统中不常见的行为列为可疑行为,利用回调函数监测系统中可疑行为的发生。如此,能有效地捕捉到rootkit攻击在系统中的行为,为后续的攻击检测提供更丰富与可靠的检测数据。
可选地,可以对记载有可疑行为的行为信息的日志进行分析。例如,可以将所述日志上传至服务器进行分析,如进行正则匹配。日志在通过分析检测后,可以确定日志中记载的可疑行为是否为与rootkit相关的攻击行为,从而有效地揭露系统中潜藏的rootkit攻击,并可及时地阻断攻击进行。
在一些实施例中,所述可疑行为可以是关闭驱动签名强制组件。为了监控驱动程序在系统中关闭驱动签名强制组件的行为,所述预设的回调函数可以包括镜像回调函数(Image Callback)与文件回调函数。
所述镜像回调函数,是一种监控机制,用于追踪系统中加载的模块或驱动。当一个新的驱动程序被加载到系统中时,会触发镜像回调。
所述文件回调函数,例如可以是minifilter(微型过滤器)文件回调函数,是文件系统筛选器驱动程序中的一部分,用于监控可能修改文件系统的活动。
驱动签名强制组件,例如是DSE,用于对驱动程序进行验签,确保只有经过数字签名的驱动程序才能在系统上运行。当恶意软件想要在系统中加载恶意驱动时,由于恶意驱动没有合法签名,因此恶意软件需要先通过驱动程序,例如是系统的漏洞驱动,来关闭驱动签名强制组件。关闭后再加载恶意驱动。
具体地,恶意软件在尝试关闭驱动签名强制组件时,会加载目标动态链接库,并从中获取目标变量的存储地址。所述目标变量用于配置驱动签名强制组件,可控制驱动签名强制组件的打开与关闭。随后,根据该存储地址,恶意软件可以查找到该目标变量。通过修改目标变量的数值可以完成驱动签名强制组件的关闭。
示例性地,所述目标动态链接库可以是ci.dll,用于处理代码完整性检查,包括驱动程序的验证。所述目标变量可以是g_CiOptions变量,其与代码完整性和驱动程序签名验证相关。
基于此,上述步骤120中通过回调函数监测驱动签名强制组件的关闭,具体可以包括如图2所示的步骤210-步骤230。
步骤210:通过所述镜像回调函数记录所述驱动程序对目标动态链接库的第一加载行为;
步骤220:通过所述文件回调函数记录所述驱动程序对所述目标动态链接库的第一读取行为;
步骤230:确定所述可疑行为的行为信息包括所述第一加载行为与所述第一读取行为的行为信息;
其中,所述目标动态链接库包括目标变量的存储地址;所述目标变量用于配置所述驱动签名强制组件。
可知,在驱动签名强制组件的关闭过程中,涉及到目标动态链接库的加载与目标变量存储地址的读取。由于镜像回调函数可用于追踪系统中加载的模块或驱动,因此当驱动程序加载目标链接库时,会触发镜像回调函数记录该第一加载行为。同理,由于文件回调函数可用于监控可能修改文件系统的活动,因此当驱动程序从目标链接库中读取目标变量的存储地址时,会触发文件回调函数记录该第一读取行为。
可以理解的是,由于正常软件在运行过程中一般不会加载目标动态链接库,如ci.dll。因此,若监测到驱动程序有进行目标动态链接库的加载行为与读取行为,那么有可能是恶意软件的行为。因此将所述第一加载行为与所述第二加载行为认定为可疑行为,需要后续做进一步的分析判断是否为rootkit的攻击行为。
从镜像回调函数中可以获取第一加载行为的行为信息;以及从文件回调函数中可以获取第一读取行为的行为信息。因此可以确定步骤130中可疑行为的行为信息包括第一加载行为与第一读取行为的行为信息。并将这两种行为信息封装至日志以进行后续的rootkit检测分析。
可知,本实施例利用了镜像回调函数与文件回调函数监测驱动签名强制组件关闭时对目标动态链接库的加载与读取行为,为后续的攻击检测提供更丰富且可靠的检测数据。
此外,基于上述实施例,所述监测方法还可以包括如图3所示的步骤310-步骤320。
步骤310:监测所述目标变量的数值是否异常;
步骤320:确定所述可疑行为的行为信息包括所述目标变量的异常值;其中,所述异常值用于关闭所述驱动签名强制组件。
示例性地,驱动签名强制组件可以包括多种模式。目标变量的不同取值可以对应配置驱动签名强制组件的不同模式。因此,恶意软件通过修改目标变量的数值,可以实现对驱动签名强制组件的打开与关闭。
在本实施例中,可以监测目标变量的数值是否异常。所述的异常值,可以是指与驱动签名强制组件关闭模式下对应的数值。若监测到目标变量的数值发生异常,说明驱动签名强制组件被关闭。此时,目标变量数值的修改操作很有可能是恶意软件执行的。因此,可以将目标变量的异常值确定为可疑行为的行为信息,并封装至日志中以进行后续的rootkit检测分析。
在一些可能的场景中,恶意软件可能并未通过上文所述的加载目标动态链接库并从目标动态链接库中获取目标变量的存储地址的方式来修改目标变量的数值,而是通过其他手段查找到目标变量并对其数值进行异常修改。而本实施例直接对配置驱动签名强制组件的目标变量的数值是否发生异常进行监测。因此就算恶意软件绕开了上述方式,其对目标变量的数值的异常修改也能被监测到,从而提高了rootkit攻击的检出率。
在一些实施例中,所述可疑行为可以是加载目标内核进程文件。为了监控驱动程序在系统中加载目标内核进程文件的行为,所述预设的回调函数可以包括镜像回调函数与文件回调函数。
所述目标内核进程文件,例如可以是ntosknrl.exe。恶意软件可以利用驱动程序,例如是系统中的漏洞驱动,来加载ntosknrl.exe并获取其中的导出函数地址,然后利用导出函数地址进行后续的攻击。
基于此,上述步骤120中通过回调函数监测目标内核进程文件的加载,具体可以包括如图4所示的步骤410-步骤430。
步骤410:通过所述镜像回调函数记录所述驱动程序对所述目标内核进程文件的第二加载行为;
步骤420:通过所述文件回调函数记录所述驱动程序对所述目标内核进程文件的第二读取行为;
步骤430:确定所述可疑行为的行为信息包括所述第二加载行为与所述第二读取行为的行为信息。
可知,恶意软件可能对目标内核进程文件进行加载与读取。由于镜像回调函数可用于追踪系统中加载的模块或驱动,因此当驱动程序加载目标内核进程文件时,会触发镜像回调函数记录该第二加载行为。同理,由于文件回调函数可用于监控可能修改文件系统的活动,因此当驱动程序从目标内核进程文件中读取导出函数地址时,会触发文件回调函数记录该第二读取行为。
从镜像回调函数中可以获取第二加载行为的行为信息;以及从文件回调函数中可以获取第二读取行为的行为信息。因此可以确定步骤130中可疑行为的行为信息包括第二加载行为与第二读取行为的行为信息。并将这两种行为信息封装至日志以进行后续的rootkit检测分析。
可知,本实施例利用了镜像回调函数与文件回调函数监测目标内核进程文件的加载与读取行为,为后续的攻击检测提供更丰富的检测数据。
在一些实施例中,所述可疑行为可以是映射可疑代码至内核。为了监控驱动程序在系统中将可疑代码映射至内核的行为,所述预设的回调函数可以包括NMI(Non MaskableInterrupt,不可屏蔽中断)回调函数。
恶意软件通过驱动程序,例如系统中的漏洞驱动,可以将恶意代码映射至内核中。例如绕过正常的加载机制,通过手动映射直接将恶意代码插入到系统的内存中。在检测确定被映射的代码为恶意代码之前,可以将驱动程序绕过正常的加载机制,直接手动映射至内存的代码称为可疑代码。可知,正常软件一般不会绕过正常的加载机制来将某一代码手动映射至内核中。因此,若监测到驱动程序有进行将代码映射至内核的行为,那么有可能是恶意软件的行为。
基于此,上述步骤120中通过回调函数监测可疑代码到内核的映射,具体可以包括如图5所示的步骤510-步骤530。
步骤510:定时向处理器发送NMI。
NMI属于中断请求的一种。所谓不可屏蔽中断,是指中断请求无法被操作系统禁止或屏蔽。
可选地,可以通过HalSendNMI机制来定时向处理器发送NMI。
可选地,可以通过填写APIC(Advanced Programmable Interrupt Controller,高级可编程中断控制器)的ICR(Interrupt Command Register,中断指令寄存器)来定时向处理器发送NMI。
步骤520:获取中断发生时所述NMI回调函数记录的代码片段。
NMI可以发生在任意的代码上下文中。当NMI发生时,会触发NMI回调函数,NMI回调函数会记录中断点附近的代码上下文,得到代码片段。
步骤530:若检测所述代码片段存在可疑代码,确定所述可疑行为的行为信息包括所述可疑代码的代码信息。
在从NMI回调函数获取代码片段后,可以检测代码片段中是否存在无模块代码。若存在,则所述无模块代码为所述可疑代码。此时,可以将无模块代码的代码信息作为可疑行为的行为信息封装至日志中进行后续的攻击检测。其中,代码信息可以包括但不限于代码地址、代码内容等等。
可知,本实施例通过定时的不可屏蔽中断来获取代码片段。通过对代码片段进行检测,可以发现恶意软件通过驱动程序向内核手动映射可疑代码的行为,从而为后续的攻击检测提供更丰富且可靠的检测数据。
此外,在上述任意实施例的基础上,所述监测方法还可以包括如图6所示的步骤610-步骤620。
步骤610:监测可疑进程对所述驱动程序的第三加载行为;
步骤620:确定所述可疑行为的行为信息包括所述第三加载行为的行为信息。
其中,所述可疑进程包括但不限于未签名进程与非白名单进程等等。
示例性地,可疑进程可以通过DeviceIoControl操作来加载驱动程序。DeviceIoControl操作是一种程序调用,用于在程序和驱动程序之间交换信息。
可知,在本实施例中,当有不可信的可疑进程加载驱动程序时,会认为该第三加载行为是可疑行为,因此将该第三加载行为的行为信息作为可疑行为的行为信息,并封装至日志中进行后续的攻击分析,从而为攻击检测提供丰富且可靠的检测数据。
此外,在上述任意实施例的基础上,所述监测方法还可以包括如图7所示的步骤710-步骤730。
步骤710:通过所述回调函数获取被加载的所述驱动程序的目标驱动信息。
示例性地,所述回调函数为镜像回调函数。
示例性地,所述驱动程序可以是系统中被加载的合法驱动,例如可以是漏洞驱动。
示例性地,可以在加载所述驱动程序时,通过镜像回调函数获取该驱动程序的目标驱动信息。
示例性地,所述目标驱动信息可以包括但不限于签名信息、哈希值等等。
步骤720:将所述目标驱动信息与预设的漏洞驱动库进行匹配。
其中,所述漏洞驱动库包括已知的漏洞驱动信息。
示例性地,本实施例方法的执行主体可以预设有漏洞驱动库。漏洞驱动库中记录了已知的漏洞驱动对应的漏洞驱动信息。
通过将目标驱动信息与漏洞驱动库进行匹配,可以判断被加载的驱动程序是否为系统的漏洞驱动。从而可以得知恶意程序是否在利用系统的漏洞驱动实施攻击。
步骤730:若所述目标驱动信息与所述漏洞驱动库匹配,确定所述驱动程序为漏洞驱动,并确定所述可疑行为的行为信息包括对所述驱动程序的第四加载行为。
若目标驱动信息与漏洞驱动库匹配,说明被加载的驱动程序为系统中已知的漏洞驱动。此时,可能存在恶意程序利用漏洞驱动实施攻击。因此可以将对漏洞驱动的第四加载行为作为可疑行为的行为信息,并封装至日志中进行后续的攻击分析。
可知,本实施例将被加载的驱动程序与已知的漏洞驱动进行匹配,判断当前是否有漏洞驱动被利用,从而收集恶意软件在加载漏洞驱动阶段的行为信息,以及时地分析并阻断攻击。
此外,为了更好地理解本申请提供的方案,本申请还提供了一种可疑行为监测方法。具体地,首先在系统中注册镜像回调函数、minifilter文件回调函数、以及NMI回调函数,以备后使用。监测过程具体包括以下各个阶段的行为监测。
1)驱动程序加载阶段
恶意软件可以利用系统中的驱动程序,如漏洞驱动,来实施各种不同的攻击。在进行攻击之前,恶意软件首先需要加载系统中的合法驱动程序。在加载过程中,可以通过以下方法采集可疑行为的行为信息。
1.1、监测可疑进程,包括未签名或非白名单进程,通过DeviceIoControl操作加载驱动程序的第三加载行为。将第三加载行为的行为信息封装至日志中,并上传至服务器进行分析。
1.2、通过注册的镜像回调函数监控试图加载到系统中的驱动程序。并从镜像回调函数中获取被加载的驱动程序的签名信息、哈希值等。随后将获取的签名信息和哈希值与预设的漏洞驱动库进行匹配。若匹配成功,说明被加载的驱动程序为已知的漏洞驱动。此时,可以将对漏洞驱动的第四加载行为封装至日志中,并上传至服务器进行分析,从而可以在恶意软件加载漏洞驱动的阶段就阻止rootkit攻击。
2)驱动程序行为阶段
若在上述阶段1)并未阻止驱动程序的加载,或者说该驱动程序为零日漏洞,即未被公开的安全漏洞,就会导致无法通过上述方法1.2来识别出漏洞驱动。如此,驱动程序被加载后,恶意软件可能会利用驱动程序在系统中进行以下几方面的行为。
2.1、关闭DSE
具体地,在关闭DSE的过程中,驱动程序会加载动态链接库ci.dll并从中获取g_CiOptions变量的存储地址。随后依照该存储地址查找g_CiOptions变量,并将g_CiOptions变量的数值修改为用于关闭DSE的异常值。在这过程中,可以通过镜像回调函数记录驱动程序加载动态链接库ci.dll的第一加载行为,以及通过minifilter文件回调函数记录驱动程序去读取动态链接库ci.dll的第一读取行为。将第一加载行为与第一读取行为的行为信息封装至日志中,并上传至服务器进行分析。
此外,若恶意软件没有上述的第一加载行为与第一读取行为,而是通过其他方式查找到g_CiOptions变量,并直接修改其数值,那么可以监测g_CiOptions变量的数值是否异常。若发现g_CiOptions变量的数值为异常值,则将该异常值封装至日志中,并上传至服务器进行分析。
此外,在任意驱动程序加载时,也会验证驱动程序的签名信息。若发现未签名或无效签名的驱动程序被成功加载时,则记录该加载行为生成日志进行攻击分析。
如此,通过将第一加载行为的行为信息、第一读取行为的行为信息、g_CiOptions变量的异常值中的一种或多种封装至日志中进行后续的攻击分析,可以有效揭露rootkit攻击关闭DSE的攻击行为。
2.2、加载内核进程文件ntosknrl.exe
具体地,恶意软件可能会利用驱动程序加载内核进程文件ntosknrl.exe,并获取其中的导出函数地址,以进行后续的攻击。由于正常软件一般并不会加载内核进程文件ntosknrl.exe,因此可以通过镜像回调函数记录驱动程序加载内核进程文件ntosknrl.exe的第二加载行为,以及通过minifilter文件回调函数记录驱动程序去读取内核进程文件ntosknrl.exe的第二读取行为。将第二加载行为与第二读取行为的行为信息封装至日志中,并上传至服务器进行分析。
2.3、映射可疑代码至内核
具体地,恶意软件可能会绕开正常的加载机制,直接手动映射恶意代码(shellcode)至内存中。对此,可以使用HalSendNMI机制,或填写APIC的ICR来定时地向处理器发送NMI。当NMI发生时,触发NMI回调函数记录中断点附近的代码上下文,得到代码片段。通过检测代码片段中是否存在无模块代码,确定内核中是否存在手动映射的可疑代码。此时,可以将NMI回调函数收集的可疑代码的地址与内容封装至日志中,并上传至服务器进行分析。
可知,本申请开发了一套rootkit检测解决方案,通过DSE关闭监控、内核进程文件ntosknrl.exe加载监控、以及不可屏蔽中断检测等方法,有效地收集rootkit攻击从驱动程序加载阶段,到攻击行为实施阶段中的各种行为信息,为后续的攻击检测提供了丰富且可靠的行为信息作为检测依据,从而可以有效地揭露系统中潜藏的rootkit,以显著地提升计算机的安全防护水平。
基于上述任意实施例,本申请还提供了一种可疑行为监测装置。如图8所示,该监测装置800包括:
注册模块810,用于注册预设的回调函数;
监测模块820,用于通过所述回调函数监测驱动程序在系统中的可疑行为;所述可疑行为包括:关闭驱动签名强制组件、加载目标内核进程文件、映射可疑代码至内核中的一种或多种;
日志模块830,用于生成包括所述可疑行为的行为信息的日志。
在一些实施例中,所述回调函数包括镜像回调函数与文件回调函数,所述可疑行为包括关闭驱动签名强制组件;监测模块820具体用于:
通过所述镜像回调函数记录所述驱动程序对目标动态链接库的第一加载行为;
通过所述文件回调函数记录所述驱动程序对所述目标动态链接库的第一读取行为;
确定所述可疑行为的行为信息包括所述第一加载行为与所述第一读取行为的行为信息;
其中,所述目标动态链接库包括目标变量的存储地址;所述目标变量用于配置所述驱动签名强制组件。
在一些实施例中,监测模块820还用于:
监测所述目标变量的数值是否异常;
确定所述可疑行为的行为信息包括所述目标变量的异常值;其中,所述异常值用于关闭所述驱动签名强制组件。
在一些实施例中,所述回调函数包括镜像回调函数与文件回调函数,所述可疑行为包括加载目标内核进程文件;监测模块820具体用于:
通过所述镜像回调函数记录所述驱动程序对所述目标内核进程文件的第二加载行为;
通过所述文件回调函数记录所述驱动程序对所述目标内核进程文件的第二读取行为;
确定所述可疑行为的行为信息包括所述第二加载行为与所述第二读取行为的行为信息。
在一些实施例中,所述回调函数包括不可屏蔽中断NMI回调函数,所述可疑行为包括映射可疑代码至内核;监测模块820具体用于:
定时向处理器发送NMI;
获取中断发生时所述NMI回调函数记录的代码片段;
若检测所述代码片段存在可疑代码,确定所述可疑行为的行为信息包括所述可疑代码的代码信息。
在一些实施例中,监测模块820还用于:
监测可疑进程对所述驱动程序的第三加载行为;
确定所述可疑行为的行为信息包括所述第三加载行为的行为信息。
在一些实施例中,监测装置800还包括:
获取模块,用于通过所述回调函数获取被加载的所述驱动程序的目标驱动信息;
匹配模块,用于将所述目标驱动信息与预设的漏洞驱动库进行匹配;其中,所述漏洞驱动库包括已知的漏洞驱动信息;
确定模块,用于若所述目标驱动信息与所述漏洞驱动库匹配,确定所述驱动程序为漏洞驱动,并确定所述可疑行为的行为信息包括对所述驱动程序的第四加载行为。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
基于上述任意实施例所述的一种可疑行为监测方法,本申请还提供了如图9所示的一种电子设备的结构示意图。如图9,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述任意实施例所述的一种可疑行为监测方法。
本申请还提供了一种计算机存储介质,存储介质存储有计算机程序,计算机程序被处理器执行时可用于执行上述任意实施例所述的一种可疑行为监测方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种可疑行为监测方法,其特征在于,所述方法包括:
注册预设的回调函数;
通过所述回调函数监测驱动程序在系统中的可疑行为;所述可疑行为包括:关闭驱动签名强制组件、加载目标内核进程文件、映射可疑代码至内核中的一种或多种;
生成包括所述可疑行为的行为信息的日志。
2.根据权利要求1所述的方法,其特征在于,所述回调函数包括镜像回调函数与文件回调函数,所述可疑行为包括关闭驱动签名强制组件;所述通过所述回调函数监测驱动程序在系统中的可疑行为,包括:
通过所述镜像回调函数记录所述驱动程序对目标动态链接库的第一加载行为;
通过所述文件回调函数记录所述驱动程序对所述目标动态链接库的第一读取行为;
确定所述可疑行为的行为信息包括所述第一加载行为与所述第一读取行为的行为信息;
其中,所述目标动态链接库包括目标变量的存储地址;所述目标变量用于配置所述驱动签名强制组件。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
监测所述目标变量的数值是否异常;
确定所述可疑行为的行为信息包括所述目标变量的异常值;其中,所述异常值用于关闭所述驱动签名强制组件。
4.根据权利要求1所述的方法,其特征在于,所述回调函数包括镜像回调函数与文件回调函数,所述可疑行为包括加载目标内核进程文件;所述通过所述回调函数监测驱动程序在系统中的可疑行为,包括:
通过所述镜像回调函数记录所述驱动程序对所述目标内核进程文件的第二加载行为;
通过所述文件回调函数记录所述驱动程序对所述目标内核进程文件的第二读取行为;
确定所述可疑行为的行为信息包括所述第二加载行为与所述第二读取行为的行为信息。
5.根据权利要求1所述的方法,其特征在于,所述回调函数包括不可屏蔽中断NMI回调函数,所述可疑行为包括映射可疑代码至内核;所述通过所述回调函数监测驱动程序在系统中的可疑行为,包括:
定时向处理器发送NMI;
获取中断发生时所述NMI回调函数记录的代码片段;
若检测所述代码片段存在可疑代码,确定所述可疑行为的行为信息包括所述可疑代码的代码信息。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
监测可疑进程对所述驱动程序的第三加载行为;
确定所述可疑行为的行为信息包括所述第三加载行为的行为信息。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述回调函数获取被加载的所述驱动程序的目标驱动信息;
将所述目标驱动信息与预设的漏洞驱动库进行匹配;其中,所述漏洞驱动库包括已知的漏洞驱动信息;
若所述目标驱动信息与所述漏洞驱动库匹配,确定所述驱动程序为漏洞驱动,并确定所述可疑行为的行为信息包括对所述驱动程序的第四加载行为。
8.一种可疑行为监测装置,其特征在于,所述装置包括:
注册模块,用于注册预设的回调函数;
监测模块,用于通过所述回调函数监测驱动程序在系统中的可疑行为;所述可疑行为包括:关闭驱动签名强制组件、加载目标内核进程文件、映射可疑代码至内核中的一种或多种;
日志模块,用于生成包括所述可疑行为的行为信息的日志。
9.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器调用所述可执行指令时实现权利要求1-7任一所述方法的操作。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,所述计算机指令被处理器执行时实现权利要求1-7任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410282269.7A CN118013524A (zh) | 2024-03-12 | 2024-03-12 | 一种可疑行为监测方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410282269.7A CN118013524A (zh) | 2024-03-12 | 2024-03-12 | 一种可疑行为监测方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118013524A true CN118013524A (zh) | 2024-05-10 |
Family
ID=90946976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410282269.7A Pending CN118013524A (zh) | 2024-03-12 | 2024-03-12 | 一种可疑行为监测方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118013524A (zh) |
-
2024
- 2024-03-12 CN CN202410282269.7A patent/CN118013524A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12019734B2 (en) | Methods and apparatus for control and detection of malicious content using a sandbox environment | |
US11063974B2 (en) | Application phenotyping | |
KR101265173B1 (ko) | 비실행 파일 검사 장치 및 방법 | |
EP3699794A1 (en) | System and method for detecting exploitation of a component connected to an in-vehicle network | |
JP5265061B1 (ja) | 悪意のあるファイル検査装置及び方法 | |
US8713631B1 (en) | System and method for detecting malicious code executed by virtual machine | |
EP3462358B1 (en) | System and method for detection of malicious code in the address space of processes | |
EP3416083B1 (en) | System and method of detecting anomalous events | |
CN110119619B (zh) | 创建防病毒记录的系统和方法 | |
US20110283358A1 (en) | Method and system to detect malware that removes anti-virus file system filter driver from a device stack | |
US8910283B1 (en) | Firmware-level security agent supporting operating system-level security in computer system | |
US11520886B2 (en) | Advanced ransomware detection | |
KR101031786B1 (ko) | 의심스러운 행위의 수준별 분류 및 격리 실행을 통한 악성 코드 사전 대응 장치, 방법 및 그 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체 | |
JP5326063B1 (ja) | デバッグイベントを用いた悪意のあるシェルコードの検知装置及び方法 | |
Kardile | Crypto ransomware analysis and detection using process monitor | |
KR100745639B1 (ko) | 파일 시스템 및 레지스트리를 보호하는 방법 및 그 장치 | |
KR101311367B1 (ko) | 메모리 보호기능 우회 공격 진단 장치 및 방법 | |
CN110348180B (zh) | 一种应用程序启动控制方法和装置 | |
CN118013524A (zh) | 一种可疑行为监测方法、装置、电子设备及存储介质 | |
CN116910768B (zh) | 一种防御攻击方法、系统、装置及介质 | |
EP3462354B1 (en) | System and method for detection of anomalous events based on popularity of their convolutions | |
CN117914582A (zh) | 一种进程挖空攻击的检测方法、装置、设备及存储介质 | |
CN117714143A (zh) | 一种进程白利用行为检测方法、装置、设备及介质 | |
CN117708818A (zh) | 一种恶意软件的识别方法、装置、电子设备及存储介质 |
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 |