太阳城集团

  • / 18
  • 下载费用:30 金币  

内核漏洞后端检测的方法及装置.pdf

摘要
申请专利号:

CN201611069041.1

申请日:

2016.11.28

公开号:

CN106778284A

公开日:

2017.05.31

当前法律状态:

实审

有效性:

审中

法律详情: 实质审查的生效IPC(主分类):G06F 21/57申请日:20161128|||公开
IPC分类号: G06F21/57(2013.01)I 主分类号: G06F21/57
申请人: 北京奇虎科技有限公司; 奇智软件(北京)有限公司
发明人: 李琦
地址: 100088 北京市西城区新街口外大街28号D座112室(德胜园区)
优先权:
专利代理机构: 北京市立方律师事务所 11330 代理人: 王增鑫
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

太阳城集团CN201611069041.1

授权太阳城集团号:

|||

法律状态太阳城集团日:

2017.06.23|||2017.05.31

法律状态类型:

太阳城集团实质审查的生效|||公开

摘要

本发明实施例提供了一种内核漏洞后端检测的方法及装置,该方法包括:当系统创建新进程时,通过已设置的进程创建通知回调例程将所创建的新进程添加记录至进程创建记录表中,然后通过已设置的进程创建通知回调例程检测到当前进程被调用时,判断当前进程是否存在于预存的进程创建表中,当当前进程存在于进程创建表中时,对当前进程进行检测,然后根据检测结果来确定当前进程的权限,并生成检测日志。本发明实施例提供的内核漏洞后端检测的方法及装置可以适用于在服务器端虚拟机沙箱隔离环境下针对指定的样本文件进行漏洞利用检测。

权利要求书

1.一种内核漏洞后端检测的方法,其特征在于,包括:
当系统创建新进程时,通过已设置的进程创建通知回调例程将所创建的新进程添加记
录至进程创建记录表中;
通过已设置的进程创建通知回调例程检测到当前进程被调用时,判断所述当前进程是
否存在于预存的进程创建表中;
当所述当前进程存在于所述进程创建表中时,对所述当前进程进行检测;
根据检测结果来确定所述当前进程的权限,并生成检测日志。
2.根据权利要求1所述的内核漏洞后端检测的方法,其特征在于,所述判断当前进程是
否存在于所述进程创建表中的步骤之后,还包括:
当所述当前进程不存在于所述进程创建表时,将所述当前进程移入所述进程创建表
中。
3.根据权利要求1或2所述的内核漏洞后端检测的方法,其特征在于,在系统创建新进
程之前,还包括:
当检测到I/O管理函数时,开启内核层行为监控总控开关。
4.根据权利要求1-3任一项所述的内核漏洞后端检测的方法,其特征在于,所述当检测
到I/O管理函数时,开启内核层行为监控总控开关的步骤之前,还包括:
记录各个系统进程分别对应的进程标识以及HalDispatch Table表中存储的各个函数
指针成员域的值;
其中,所述通过已设置的进程创建通知回调例程将所创建的新进程添加记录至进程创
建记录表中的步骤,包括:
通过已设置的进程创建通知回调例程将所创建的新进程的权限Privileges、用户标识
UserSID、以及使用者标识OwnerSID分别对应的属性值,添加记录至进程创建记录表中。
5.根据权利要求1-4任一项所述的内核漏洞后端检测的方法,其特征在于,所述对所述
当前进程进行检测的步骤之前,还包括:
获取所述当前进程对应的HalDispatchTable中各关键函数指针成员域的值;
其中,所述对所述当前进程进行检测的步骤,包括:
检测所述当前进程对应的HalDispatchTable中各关键函数指针成员域的值,与预先记
录的HalDispatch Table表中存储的各个函数指针成员域的值是否匹配;
其中,所述根据检测结果来确定所述当前进程的权限,并生成检测日志的步骤,包括:
若至少一项不匹配,则确定所述当前进程的提权,并按照预置格式,生成检测日志。
6.根据权利要求1-5任一项所述的内核漏洞后端检测的方法,其特征在于,所述对所述
当前进程进行检测的步骤之前,还包括:
获取所述当前进程对应的EPROCESS,并根据各个系统进程分别对应的进程标识,获取
各个系统进程分别对应的EPROCESS;
其中,所述对所述当前进程进行检测的步骤,包括:
检测所述当前进程对应的EPROCESS中的Token域指针值,是否与该各个进程中的某个
进程对应的EPROCESS中的Token域指针值相同;
其中,所述根据检测结果来确定所述当前进程的权限,并生成检测日志的步骤,包括:
若所述当前进程对应的EPROCESS中的Token域指针值与所述某个进程对应的EPROCESS
中的Token域指针值相同,则确定所述当前进程的提权,并按照预置格式,生成检测日志。
7.根据权利要求1-6任一项所述的内核漏洞后端检测的方法,其特征在于,所述对所述
当前进程进行检测的步骤之前,还包括:
获取所述当前进程的Privileges、UserSID、以及OwnerSID分别对应的属性值;
其中,所述对所述当前进程进行检测的步骤,包括:
检测所述当前进程的Privileges、UserSID、以及OwnerSID分别对应的属性值,与进程
创建记录表记录的所述当前进程的Privileges、UserSID、以及OwnerSID分别对应的属性
值,是否存在至少一项不相同;
其中,所述根据检测结果来确定所述当前进程的权限,并生成检测日志的步骤,包括:
若存在至少一项不相同,则确定所述当前进程的提权,并按照预置格式,生成检测日
志。
8.根据权利要求1-7任一项所述的内核漏洞后端检测的方法,其特征在于,所述根据检
测结果来确定所述当前进程的权限,并生成检测日志的步骤之后,还包括:
将所述检测日志,插入日志缓冲表中;
当预创建的日志记录线程检测到所述日志缓冲表中插入新的检测日志时,将所述检测
日志写入配置选项中指定路径的配置文件中,并将所述检测日志从所述日志缓冲表中删
除。
9.一种内核漏洞后端检测的装置,其特征在于,包括:
添加记录模块,用于当系统创建新进程时,通过已设置的进程创建通知回调例程将所
创建的新进程添加记录至进程创建记录表中;
判断模块,用于通过已设置的进程创建通知回调例程检测到当前进程被调用时,判断
所述当前进程是否存在于预存的进程创建表中;
检测模块,用于当所述判断模块判断所述当前进程存在于所述进程创建表中时,对所
述当前进程进行检测;
确定模块,用于根据所述检测模块得到的检测结果来确定所述当前进程的权限;
生成模块,用于生成检测日志。
10.根据权利要求9所述的内核漏洞后端检测的装置,其特征在于,所述装置还包括:移
入模块;
移入模块,用于当所述当前进程不存在于所述进程创建表时,将所述当前进程移入所
述进程创建表中。

说明书

内核漏洞后端检测的方法及装置

技术领域

本发明涉及计算机网络技术领域,具体而言,本发明涉及一种内核漏洞后端检测
的方法及装置。

背景技术

内核,是一个操作系统的核心,它负责管理系统的进程、内存、设备驱动程序、文件
和网络系统,决定着系统的性能和稳定性,因此确保内核的安全是重中之重。

当内核出现漏洞时,黑客可能利用内核漏洞提升对计算机的访问权限,例如,黑客
可以利用该内核漏洞入侵并访问某台计算机中系统太阳城集团,更改该计算机中的系统太阳城集团或者
获取该计算机中存储的某些太阳城集团,从而导致计算机系统瘫痪或者某些私密太阳城集团外泄,给用
户造成巨大的损失,因此对内核漏洞后端检测成为一个重要问题。

发明内容

为克服上述技术问题或者至少部分地解决上述技术问题,特提出以下技术方案:

本发明的实施例根据一个方面,提供了一种内核漏洞后端检测的方法,包括:

当系统创建新进程时,通过已设置的进程创建通知回调例程将所创建的新进程添
加记录至进程创建记录表中;

通过已设置的进程创建通知回调例程检测到当前进程被调用时,判断所述当前进
程是否存在于预存的进程创建表中;

当所述当前进程存在于所述进程创建表中时,对所述当前进程进行检测;

根据检测结果来确定所述当前进程的权限,并生成检测日志。

可选地,所述判断当前进程是否存在于所述进程创建表中的步骤之后,还包括:

当所述当前进程不存在于所述进程创建表时,将所述当前进程移入所述进程创建
表中。

可选地,在系统创建新进程之前,还包括:

当检测到I/O管理函数时,开启内核层行为监控总控开关。

可选地,所述当检测到I/O管理函数时,开启内核层行为监控总控开关的步骤之
前,还包括:

记录各个系统进程分别对应的进程标识以及HalDispatch Table表中存储的各个
函数指针成员域的值;

具体地,所述通过已设置的进程创建通知回调例程将所创建的新进程添加记录至
进程创建记录表中的步骤,包括:

通过已设置的进程创建通知回调例程将所创建的新进程的权限Privileges、用户
标识UserSID、以及使用者标识OwnerSID分别对应的属性值,添加记录至进程创建记录表
中。

可选地,所述对所述当前进程进行检测的步骤之前,还包括:

获取所述当前进程对应的HalDispatchTable中各关键函数指针成员域的值;

具体地,所述对所述当前进程进行检测的步骤,包括:

检测所述当前进程对应的HalDispatchTable中各关键函数指针成员域的值,与预
先记录的HalDispatch Table表中存储的各个函数指针成员域的值是否匹配;

其中,所述根据检测结果来确定所述当前进程的权限,并生成检测日志的步骤,包
括:

若至少一项不匹配,则确定所述当前进程的提权,并按照预置格式,生成检测日
志。

可选地,所述对所述当前进程进行检测的步骤之前,还包括:

获取所述当前进程对应的EPROCESS,并根据各个系统进程分别对应的进程标识,
获取各个系统进程分别对应的EPROCESS;

具体地,所述对所述当前进程进行检测的步骤,包括:

检测所述当前进程对应的EPROCESS中的Token域指针值,是否与该各个进程中的
某个进程对应的EPROCESS中的Token域指针值相同;

其中,所述根据检测结果来确定所述当前进程的权限,并生成检测日志的步骤,包
括:

若所述当前进程对应的EPROCESS中的Token域指针值与所述某个进程对应的
EPROCESS中的Token域指针值相同,则确定所述当前进程的提权,并按照预置格式,生成检
测日志。

可选地,所述对所述当前进程进行检测的步骤之前,还包括:

获取所述当前进程的Privileges、UserSID、以及OwnerSID分别对应的属性值;

具体地,所述对所述当前进程进行检测的步骤,包括:

检测所述当前进程的Privileges、UserSID、以及OwnerSID分别对应的属性值,与
进程创建记录表记录的所述当前进程的Privileges、UserSID、以及OwnerSID分别对应的属
性值,是否存在至少一项不相同;

其中,所述根据检测结果来确定所述当前进程的权限,并生成检测日志的步骤,包
括:

若存在至少一项不相同,则确定所述当前进程的提权,并按照预置格式,生成检测
日志。

可选地,所述根据检测结果来确定所述当前进程的权限,并生成检测日志的步骤
之后,还包括:

将所述检测日志,插入日志缓冲表中;

当预创建的日志记录线程检测到所述日志缓冲表中插入新的检测日志时,将所述
检测日志写入配置选项中指定路径的配置文件中,并将所述检测日志从所述日志缓冲表中
删除。

本发明的实施例根据另一个方面,还提供了一种内核后端检测的装置,包括:

添加记录模块,用于当系统创建新进程时,通过已设置的进程创建通知回调例程
将所创建的新进程添加记录至进程创建记录表中;

判断模块,用于通过已设置的进程创建通知回调例程检测到当前进程被调用时,
判断所述当前进程是否存在于预存的进程创建表中;

检测模块,用于当所述判断模块判断所述当前进程存在于所述进程创建表中时,
对所述当前进程进行检测;

确定模块,用于根据所述检测模块得到的检测结果来确定所述当前进程的权限;

生成模块,用于生成检测日志。

可选地,所述装置还包括:移入模块;

移入模块,用于当所述当前进程不存在于所述进程创建表时,将所述当前进程移
入所述进程创建表中。

可选地,所述装置还包括:开启模块;

所述开启模块,用于当检测到I/O管理函数时,开启内核层行为监控总控开关。

所述装置还包括:记录模块;

记录模块,用于记录各个系统进程分别对应的进程标识以及HalDispatch Table
表中存储的各个函数指针成员域的值;

具体地,所述添加记录模块,具体用于通过已设置的进程创建通知回调例程将所
创建的新进程的权限Privileges、用户标识UserSID、以及使用者标识OwnerSID分别对应的
属性值,添加记录至进程创建记录表中。

可选地,所述装置还包括:获取模块;

所述获取模块,用于获取所述当前进程对应的HalDispatchTable中各关键函数指
针成员域的值;

具体地,所述检测模块,具体用于检测所述当前进程对应的HalDispatchTable中
各关键函数指针成员域的值,与预先记录的HalDispatch Table表中存储的各个函数指针
成员域的值是否匹配;

所述确定模块,具体用于当至少一项不匹配时,确定所述当前进程的提权;

所述生成模块,具体用于按照预置格式,生成检测日志。

可选地,获取模块,还用于获取所述当前进程对应的EPROCESS,并根据各个系统进
程分别对应的进程标识,获取各个系统进程分别对应的EPROCESS;

具体地,所述检测模块,具体用于检测所述当前进程对应的EPROCESS中的Token域
指针值,是否与该各个进程中的某个进程对应的EPROCESS中的Token域指针值相同;

所述确定模块,具体用于当所述当前进程对应的EPROCESS中的Token域指针值与
所述某个进程对应的EPROCESS中的Token域指针值相同时,确定所述当前进程的提取;

所述生成模块,具体用于按照预置格式,生成检测日志。

可选地,获取模块,还用于获取所述当前进程的Privileges、UserSID、以及
OwnerSID分别对应的属性值;

具体地,所述检测模块,具体用于检测所述当前进程的Privileges、UserSID、以及
OwnerSID分别对应的属性值,与进程创建记录表记录的所述当前进程的Privileges、
UserSID、以及OwnerSID分别对应的属性值,是否存在至少一项不相同;

所述确定模块,具体用于当存在至少一项不相同时,确定所述当前进程的提权;

所述生成模块,具体用于按照预置格式,生成检测日志。

可选地,所述装置还包括:插入模块、写入模块、删除模块;

所述插入模块,用于将所述检测日志,插入日志缓冲表中;

所述写入模块,用于当预创建的日志记录线程检测到所述日志缓冲表中插入新的
检测日志时,将所述检测日志写入配置选项中指定路径的配置文件中;

所述删除模块,用于将所述检测日志从所述日志缓冲表中删除。

本发明提供了一种内核漏洞后端检测的方法及装置,与现有技术相比,本发明当
已设置的进程创建通知回调例程检测到当前进程被调用,并且当前进程位于预存的进程创
建表中,能够对当前进程进行检测,并根据检测结果,生成检测日志,即能够对当前进程进
行检测,确定当前进程的太阳城集团是否被改变,以确定内核是否存在漏洞,从而可以实现对内核
漏洞进行检测。

本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变
得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得
明显和容易理解,其中:

图1为本发明实施例的一种内核漏洞后端检测的方法流程图;

图2为本发明实施例的一种内核漏洞后端检测的装置结构示意图;

图3为本发明实施例的另一种内核漏洞后端检测的装置结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终
相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附
图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一
个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措
辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加
一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元
件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在
中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措
辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术
语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该
理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的
意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义
来解释。

本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信
号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件
的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备
可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示
器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可
以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人
数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络太阳城集团器、记事本、日
历和/或GPS(Global Positioning System,全球定位系统)接收器;常规膝上型和/或掌上
型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其
他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、
海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球
和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上
网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网
设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。

实施例1

本发明实施例提供了一种内核漏洞后端检测的方法,如图1所示,包括:

步骤101、当系统创建新进程时,通过已设置的进程创建通知回调例程将所创建的
新进程添加记录至进程创建记录表中。

对于本发明实施例,在操作系统内核中设置进程创建通知回调例程,对指定的内
核API挂钩。其中,上述操作系统可以包括:Windows操作系统。

其中,指定的内核API包括:NtQueryIntervalProfile、NtAdjustPrivilegesToken
以及NtCreateProcess。

对于本发明实施例,首先创建进程创建通知回调例程
HOOKNtQueryIntervalProfile NTAPI,然后当系统创建新进程时,进入已设置的创建通知
回调例程,并把新进程的相关太阳城集团添加记录至创建记录表中。

步骤102、通过已设置的进程创建通知回调例程检测到当前进程被调用时,判断当
前进程是否存在于预存的进程创建表中。

对于本发明实施例,通过已设置的进程创建通知回调例程检测到当前例程被调用
时,利用Fake函数判断当前进程的相关太阳城集团是否存储于进程记录表中。

步骤103、当当前进程存在于进程创建表中时,对当前进程进行检测。

对于本发明实施例,当当前进程存在于进程创建表中时,对当前进程进行检测,检
测出内核是否存在漏洞。

步骤104、根据检测结果来确定当前进程的权限,并生成检测日志。

对于本发明实施例,根据检测结果判断检出该当前进程提权,并根据检测节点,打
点并按照格式生成检测日志,以使得可以根据检测日志,确定内核当前是否存在漏洞。

本发明实施例提供了一种内核漏洞后端检测的方法,与现有技术相比,本发明实
施例当已设置的进程创建通知回调例程检测到当前进程被调用,并且当前进程位于预存的
进程创建表中,能够对当前进程进行检测,并根据检测结果,生成检测日志,即能够对当前
进程进行检测,确定当前进程的太阳城集团是否被改变,以确定内核是否存在漏洞,从而可以实现
对内核漏洞进行检测。

实施例2

本发明实施例的另一种可能的实现方式,在实施例1所示的基础上,步骤102、通过
已设置的进程创建通知回调例程检测到当前进程被调用时,判断当前进程是否存在于预存
的进程创建表中,之后还包括实施例2所示的步骤204,其中步骤201-203、205所执行的操作
与步骤101-104所执行的操作相似,在此不再赘述。

步骤204、当当前进程不存在于进程创建表时,将当前进程移入进程创建表中。

对于本发明实施例,当该进程关闭时,将该进程从进程创建表中移除。

实施例3

本发明实施例的另一种可能的实现方式,在实施例2所示的基础上,还包括实施例
3所示的步骤301,其中,步骤302-306所执行的操作与步骤201-205所执行的操作相似,在此
不再赘述。

步骤301、当检测到I/O管理函数时,开启内核层行为监控总控开关。

对于本发明实施例,当检测到相关的IOCTL时,开启内核层行为监控总控开关。在
本发明实施例中,通过开启内核层行为监控总控开关,能够开启对内核层的进程进行检测,
以确定内核是否存在漏洞。

实施例4

本发明实施例的另一种可能的实现方式,在实施例3所示的基础上,步骤301、当检
测到I/O管理函数时,开启内核层行为监控总控开关,之前还包括实施例4所示的步骤401,
步骤302、当系统创建新进程时,通过已设置的进程创建通知回调例程将所创建的新进程添
加记录至进程创建记录表中,具体包括实施例4所示的步骤403,其中步骤402、404-407所执
行的操作与步骤301、303-306所执行的操作相似,在此不再赘述。

步骤401、记录各个系统进程分别对应的进程标识以及HalDispatchTable表中存
储的各个函数指针成员域的值。

对于本发明实施例,在内核漏洞后端检测系统加载时,初始化驱动程序相关数据
结构对象以及变量,并记录各个系统进程分别对应的进程标识。例如,该系统进程可以包
括:System、smss.exe、csrss.exe、wininit.exe。

步骤403、通过已设置的进程创建通知回调例程将所创建的新进程的权限
Privileges、用户标识UserSID、以及使用者标识OwnerSID分别对应的属性值,添加记录至
进程创建记录表中。

对于本发明实施例,当系统创建新进程时,通过已设置的进程创建通知例程,在创
建记录表中记录该新进程的相关太阳城集团,该相关太阳城集团包括:新进程的权限Privileges、用户标
识UserSID、以及使用者标识OwnerSID分别对应的属性值。

实施例5

本发明实施例的另一种可能的实现方式,在实施例4所示的基础上,步骤405、当当
前进程存在于进程创建表中时,对当前进程进行检测,之前还包括实施例5所示的步骤505,
步骤405、当当前进程存在于进程创建表中时,对当前进程进行检测,包括实施例5所示的步
骤506,步骤407、根据检测结果来确定当前进程的权限,并生成检测日志,包括实施例5所示
的步骤508,其中步骤401-404、406所执行的操作与步骤501-504、507所执行的操作相似,在
此不再赘述。

步骤505、获取当前进程对应的HalDispatchTable中各关键函数指针成员域的值。

对于本发明实施例,当检测当前进程的HalDispatchTable表是否被篡改时,需要
获取当前进程对应的HalDispatchTable中各关键函数指针成员域的值。步骤506、当当前进
程存在于进程创建表中时,检测当前进程对应的HalDispatchTable中各关键函数指针成员
域的值,与预先记录的HalDispatch Table表中存储的各个函数指针成员域的值是否匹配。

对于本发明实施例,当满足第一预置条件时,通过检测当前进程对应的
HalDispatchTable中各关键函数指针成员域的值,与预先记录的HalDispatch Table表中
存储的各个函数指针成员域的值是否匹配,以确定当前系统是否提权,并生成检测日志。

对于本发明实施例,当检测当前进程的HalDispatchTable表是否被篡改时,需要
将当前进程对应的HalDispatchTable中各关键函数指针成员域的值以及内核漏洞后端检
测系统加载时,记载的该进程对应的HalDispatchTable中各关键函数指针成员域的值进行
比较,判断HalDispatchTable中各关键函数指针成员域的值是否被篡改。

步骤508、若至少一项不匹配,则确定当前进程的提权,并按照预置格式,生成检测
日志。

对于本发明实施例,通过对当前进程的HalDispatchTable中各关键函数指针成员
域的值进行检测,当存在不匹配项时,能够得出检测结果,其中,该检测日志包括:当前进程
的进程标识、被检测线程的标识、不匹配的关键函数指针值、当前进程所处的Hooked API。

例如,该检测日志可以为

[KernelExploit]\tTIME:942\tPID:1884\tTID:1888\tTYPE:HalDispatchTable\
tNAME:HalQuerySystemInformation\tADDRESS:0x02077BBA\tFUNCTION:
NtQueryIntervalProfile。

对于本发明实施例,当当前进程对应的HalDispatchTable中各关键函数指针成员
域的值,与预先记录的HalDispatch Table表中存储的各个函数指针成员域的值存在至少
一项不匹配时,表征当前进程对应的HalDispatchTable被篡改,即内核存在漏洞。

对于本发明实施例,通过检测当前进程对应的HalDispatchTable中各关键函数指
针成员域的值,与预先记录的HalDispatch Table表中存储的各个函数指针成员域的值是
否匹配,能够检测出当前进程的HalDispatch Table表是否被篡改,从而可以根据当前进程
中的HalDispatch Table表是否被篡改,确定当前内核是否存在漏洞。

实施例6

本发明实施例的另一种可能的实现方式,在实施例4所示的基础上,步骤405、当当
前进程存在于进程创建表中时,对当前进程进行检测,之前还包括实施例6所示的步骤605,
步骤405、当当前进程存在于进程创建表中时,对当前进程进行检测,包括实施例6所示的步
骤606,步骤407、根据检测结果来确定当前进程的权限,并生成检测日志,包括实施例6所示
的步骤608,其中步骤401-404、406所执行的操作与步骤601-604、607所执行的操作相似,在
此不再赘述。

步骤605、获取当前进程对应的EPROCESS,并根据各个系统进程分别对应的进程标
识,获取各个系统进程分别对应的EPROCESS。

对于本发明实施例,每个Windows进程都有一个相对应的执行体进程EPROCESS,
EPROCESS不仅包括了进程的许多属性,还包括了许多指向其他数据结构的指针。步骤606、
检测当前进程对应的EPROCESS中的Token域指针值,是否与该各个进程中的某个进程对应
的EPROCESS中的Token域指针值相同。

对于本发明实施例,当满足第二预设条件时,通过检测当前进程对应的EPROCESS
中的Token域指针值,是否与该各个进程中的某个进程对应的EPROCESS中的Token域指针值
相同,和/或检测当前进程的Privileges、UserSID、以及OwnerSID分别对应的属性值,与进
程创建记录表记录的当前进程的Privileges、UserSID、以及OwnerSID分别对应的属性值,
是否存在至少一项不相同,确定当前系统是否提权,并生成检测日志。

对于本发明实施例,通过检测当前进程的EPROCESS中的Token域指针值,是否与某
个系统进程的Token域指针值相同,以确定当前进程是否提权为系统进程权限。

步骤608、若当前进程对应的EPROCESS中的Token域指针值与某个进程对应的
EPROCESS中的Token域指针值相同,则确定当前进程的提权,并按照预置格式,生成检测日
志。

对于本发明实施例,当检测到当前进程对应的EPROCESS中的Token域指针值与某
个进程对应的EPROCESS中的Token域指针值相同,则表征当前进程提权,内核出现漏洞,并
根据检测结果,生成检测日志。

对于本发明实施例,该检测日志可以包括:当前进程说我进程标识、线程标识、当
前进程对应的EPROCESS中的Token域指针值相同的系统进程名以及检测时所在的Hooked
API。

例如,检出日志可以为

[KernelExploit]\tTIME:88\tPID:1920\tTID:1392\tTYPE:TokenCompare\
tNAME:Token\tADDRESS:0xE1000860\tSYSPROC:System\tFUNCTION:
NtProtectVirtualMemory。

对于本发明实施例,通过检测当前进程对应的EPROCESS中的Token域指针值与某
个系统进程中的Token域指针值相同,能够判断出当前进程的权限是否提升,即能够确定内
核是否存在漏洞,从而可以根据当前进程对应的EPROCESS中的Token域指针值检测出内核
是否存在漏洞。

实施例7

本发明实施例的另一种可能的实现方式,在实施例4所示的基础上,步骤405、当当
前进程存在于进程创建表中时,对当前进程进行检测,之前还包括实施例7所示的步骤705,
步骤405、当当前进程存在于进程创建表中时,对当前进程进行检测,包括实施例7所示的步
骤706,步骤407、根据检测结果来确定当前进程的权限,并生成检测日志,包括实施例7所示
的步骤708,其中步骤401-404、406所执行的操作与步骤701-704、707所执行的操作相似,在
此不再赘述。

步骤705、获取当前进程的Privileges、UserSID、以及OwnerSID分别对应的属性
值。

步骤706、检测当前进程的Privileges、UserSID、以及OwnerSID分别对应的属性
值,与进程创建记录表记录的当前进程的Privileges、UserSID、以及OwnerSID分别对应的
属性值,是否存在至少一项不相同。

对于本发明实施例,当前进程的Token域的属性包括Privileges、UserSID、以及
OwnerSID。

对于本发明实施例,当前进程可以通过更改Token域的属性值,以达到提权的目
的。在本发明实施例中,通过检测当前进程中Token域的属性值与创建该进程时的Token域
的属性值是否存在完全匹配,能够检测出当前进程是否提权,从而可以检测出内核是否出
现漏洞。

步骤708、若存在至少一项不相同,则确定当前进程的提权,并按照预置格式,生成
检测日志。

对于本发明实施例,当当前进程中Privileges、UserSID、以及OwnerSID分别对应
的属性值,与进程创建记录表记录的当前进程的Privileges、UserSID、以及OwnerSID分别
对应的属性值存在至少一项不匹配时,确定当前进程提权,即内核出现漏洞。

对于本发明实施例,按照缓存打点的方式,生成检测日志。其中,打点数据包括环
境和文件基本太阳城集团、以及检出功能点触发数据等,其中,环境和文件基本太阳城集团以流水日志等
形式输出,检出功能点出发数据以行为日志actions.log的形式输出。

其中,环境和文件基本太阳城集团包括:样本进程文件MD5,进样本文件路径、主要系统模
块名称以及文件版本等。在本发明实施例中,该检出日志可以包括:当前进程的进程标识、
线程标识、Privileges掩码描述序列、UserSID、以及OwnerSID、检测时所在的Hooked API
等。

例如,检出日志可以为

[KernelExploit]\tTIME:88\tPID:1920\tTID:1392\tTYPE:PrivilegeCompare\
tPRIVILEGES:SeMachineAccountPrivilege|SeIncreaseBasePriorityPrivilege|...|
SeManageVolumePrivilege|SeImpersonatePrivilege\tUSERSID:S-1-5-18\tOWNER-SID:
S-1-5-32-544\tFUNCTION:NtProtectVirtualMemory。

实施例8

本发明实施例的另一种可能的实现方式,在实施例1所示的基础上,步骤104、根据
检测结果来确定当前进程的权限,并生成检测日志,之后还包括实施例8所示的步骤805-
806,其中,步骤101-104所执行的操作与步骤801-804所执行的操作相似,在此不再赘述。

步骤805、将检测日志,插入日志缓冲表中。

对于本发明实施例,检测日志被暂存于日志缓冲表中。

步骤806、当预创建的日志记录线程检测到日志缓冲表中插入新的检测日志时,将
检测日志写入配置选项中指定路径的配置文件中,并将检测日志从日志缓冲表中删除。

对于本发明实施例,日志记录线程持续不断的检查日志缓冲表中是否有新的日志
插入,当检测到存在新的日志插入日志缓冲表中时,将新的日志写入配置选项中指定路径
的配置文件中,并释放日志缓冲表中该日志数据的节点。在本发明实施例中,日志记录线程
轮询该缓冲记录表,并按照先进先出队列(英文全称:First Input First Output,英文缩
写:FIFO)的方式依次处理各日志节点,将日志内容追加写入日志文件actions.log中,在检
测完成后有外部相关调度模块进程获取并处理该日志文件。

本发明实施例提供了另一种内核漏洞后端检测的方法,通过检测当前进程对应的
HalDispatchTable中各关键函数指针成员域的值,与预先记录的HalDispatch Table表中
存储的各个函数指针成员域的值是否匹配,能够检测出当前进程的HalDispatch Table表
是否被篡改,从而可以根据当前进程中的HalDispatch Table表是否被篡改,确定当前内核
是否存在漏洞;通过检测当前进程对应的EPROCESS中的Token域指针值与某个系统进程中
的Token域指针值相同,能够判断出当前进程的权限是否提升,即能够确定内核是否存在漏
洞,从而可以根据当前进程对应的EPROCESS中的Token域指针值检测出内核是否存在漏洞;
当前进程可以通过更改Token域的属性值,以达到提权的目的。在本发明实施例中,通过检
测当前进程中Token域的属性值与创建该进程时的Token域的属性值是否存在完全匹配,能
够检测出当前进程是否提权,从而可以检测出内核是否出现漏洞。

本发明实施例提供了一种内核漏洞后端检测的装置,如图2所示,该装置包括:添
加记录模块91、判断模块92、检测模块93、确定模块94、生成模块95。

添加记录模块91,用于当系统创建新进程时,通过已设置的进程创建通知回调例
程将所创建的新进程添加记录至进程创建记录表中。

判断模块92,用于通过已设置的进程创建通知回调例程检测到当前进程被调用
时,判断当前进程是否存在于预存的进程创建表中。

检测模块93,用于当判断模块判断当前进程存在于进程创建表中时,对当前进程
进行检测。

确定模块94,用于根据检测模块得到的检测结果来确定当前进程的权限。

生成模块95,用于生成检测日志。

进一步地,如图3所示,该装置还包括:移入模块1001。

移入模块1001,用于当当前进程不存在于进程创建表时,将当前进程移入进程创
建表中。

进一步的,如图3所示,该装置还包括:开启模块1002。

开启模块1002,用于当检测到I/O管理函数时,开启内核层行为监控总控开关。

进一步地,如图3所示,该装置还包括:记录模块1003。

记录模块1003,用于记录各个系统进程分别对应的进程标识以及HalDispatch
Table表中存储的各个函数指针成员域的值。

添加记录模块91,具体用于通过已设置的进程创建通知回调例程将所创建的新进
程的权限Privileges、用户标识UserSID、以及使用者标识OwnerSID分别对应的属性值,添
加记录至进程创建记录表中。

进一步地,如图3所示,该装置还包括:获取模块1004。

获取模块1004,用于获取当前进程对应的HalDispatchTable中各关键函数指针成
员域的值。

检测模块93,具体用于检测当前进程对应的HalDispatchTable中各关键函数指针
成员域的值,与预先记录的HalDispatch Table表中存储的各个函数指针成员域的值是否
匹配。

确定模块94,具体用于当至少一项不匹配时,确定当前进程的提权。

生成模块95,具体用于按照预置格式,生成检测日志。

获取模块1004,还用于获取当前进程对应的EPROCESS,并根据各个系统进程分别
对应的进程标识,获取各个系统进程分别对应的EPROCESS。

检测模块93,具体用于检测当前进程对应的EPROCESS中的Token域指针值,是否与
该各个进程中的某个进程对应的EPROCESS中的Token域指针值相同。

确定模块94,具体用于当当前进程对应的EPROCESS中的Token域指针值与某个进
程对应的EPROCESS中的Token域指针值相同时,确定当前进程的提权。

生成模块95,具体用于按照预置格式,生成检测日志。

获取模块1004,还用于获取当前进程的Privileges、UserSID、以及OwnerSID分别
对应的属性值。

检测模块93,具体用于检测当前进程的Privileges、UserSID、以及OwnerSID分别
对应的属性值,与进程创建记录表记录的当前进程的Privileges、UserSID、以及OwnerSID
分别对应的属性值,是否存在至少一项不相同。

确定模块94,具体用于当存在至少一项不相同时,确定当前进程的提权。

生成模块95,具体用于按照预置格式,生成检测日志。

进一步地,如图3所示,该装置还包括:插入模块1005、写入模块1006、删除模块
1007。

插入模块1005,用于将检测日志,插入日志缓冲表中。

写入模块1006,用于当预创建的日志记录线程检测到日志缓冲表中插入新的检测
日志时,将检测日志写入配置选项中指定路径的配置文件中。

删除模块1007,用于将检测日志从日志缓冲表中删除。

本发明实施例提供了一种内核漏洞后端检测的装置,与现有技术相比,本发明实
施例当已设置的进程创建通知回调例程检测到当前进程被调用,并且当前进程位于预存的
进程创建表中,能够对当前进程进行检测,并根据检测结果,生成检测日志,即能够对当前
进程进行检测,确定当前进程的太阳城集团是否被改变,以确定内核是否存在漏洞,从而可以实现
对内核漏洞进行检测。

本发明实施例提供了另一种内核漏洞后端检测的装置,通过检测当前进程对应的
HalDispatchTable中各关键函数指针成员域的值,与预先记录的HalDispatch Table表中
存储的各个函数指针成员域的值是否匹配,能够检测出当前进程的HalDispatch Table表
是否被篡改,从而可以根据当前进程中的HalDispatch Table表是否被篡改,确定当前内核
是否存在漏洞;通过检测当前进程对应的EPROCESS中的Token域指针值与某个系统进程中
的Token域指针值相同,能够判断出当前进程的权限是否提升,即能够确定内核是否存在漏
洞,从而可以根据当前进程对应的EPROCESS中的Token域指针值检测出内核是否存在漏洞;
当前进程可以通过更改Token域的属性值,以达到提权的目的。在本发明实施例中,通过检
测当前进程中Token域的属性值与创建该进程时的Token域的属性值是否存在完全匹配,能
够检测出当前进程是否提权,从而可以检测出内核是否出现漏洞。

本发明实施例提供的内核漏洞后端检测的装置可以实现上述提供的方法实施例,
具体功能实现请参见方法实施例中的说明,在此不再赘述。本发明实施例提供的内核漏洞
后端检测的方法及装置可以适用于在服务器端虚拟机沙箱隔离环境下针对指定的样本文
件进行漏洞利用检测。

本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的
一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用
计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地
激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在
适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不
限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只
读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable Programmable
Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable
Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡
片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输太阳城集团的任何介
质。

本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或
框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领
域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他
可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理
器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。

本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的
步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各
种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案
也可以被交替、更改、重排、分解、组合或删除。

以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人
员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应
视为本发明的保护范围。

关 键 词:
内核 漏洞 后端 检测 方法 装置
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
太阳城集团本文
本文标题:内核漏洞后端检测的方法及装置.pdf
链接地址:http://zh228.com/p-6019835.html
太阳城集团我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
葡京赌场|welcome document.write ('');