一种线程识别方法、装置、设备及计算机存储介质制造方法及图纸

技术编号:36765154 阅读:30 留言:0更新日期:2023-03-08 21:18
本申请实施例公开了一种线程识别方法、装置、设备及计算机存储介质,其中,所述方法包括:在确定系统中待识别的内核线程存在访问令牌的情况下,基于栈回溯机制,在所述内核线程的堆栈中获取至少一个函数的返回地址;在确定任一所述返回地址在预设地址区间的情况下,确定所述内核线程为所述系统中用于网络服务的线程;其中,所述预设地址区间的起始地址为所述网络服务的驱动代码段的起始地址,所述预设地址区间的结束地址为所述网络服务的驱动代码段的结束地址。码段的结束地址。码段的结束地址。

【技术实现步骤摘要】
一种线程识别方法、装置、设备及计算机存储介质


[0001]本申请实施例涉及互联网服务
,涉及但不限于一种线程识别方法、装置、设备及计算机存储介质。

技术介绍

[0002]目前,在某些场景下,由于安全性要求,需要对终端操作所对应的操作者身份是否为网络服务进行确定,然而由于某些原因,无法准确识别操作者身份是否为网络服务。
[0003]比如,现有的安全软件为了病毒防护或者防止自身程序被恶意篡改,可以基于驱动技术实现文件操作过滤,该技术的原理是基于文件系统过滤驱动(minifilter),拦截文件的破坏性操作,对操作者身份进行验证,从而达到拦截恶意篡改的目的;然而,目前业内方案由于某些提供网络服务协议的服务是工作在内核态,由于该服务属于系统进程,其它第三方内核驱动或者系统内核驱动的线程也工作在系统进程,所以文件系统过滤驱动无法区分是正常的系统行为还是网络访问行为。

技术实现思路

[0004]有鉴于此,本申请实施例提供一种线程识别方法、装置、设备及计算机存储介质。
[0005]本申请实施例的技术方案是这样实现的:
[0006]第一方面,本申请实施例提供一种线程识别方法包括:在确定系统中待识别的内核线程存在访问令牌的情况下,基于栈回溯机制,在所述内核线程的堆栈中获取至少一个函数的返回地址;在确定任一所述返回地址在预设地址区间的情况下,确定所述内核线程为所述系统中用于网络服务的线程;其中,所述预设地址区间的起始地址为所述网络服务的驱动代码段的起始地址,所述预设地址区间的结束地址为所述网络服务的驱动代码段的结束地址。
[0007]第二方面,本申请实施例提供一种线程识别装置所述装置包括:第一获取模块,用于在确定待识别的内核线程存在访问令牌的情况下,基于栈回溯机制,获取所述内核线程的堆栈的至少一个返回地址;第一确定模块,用于在确定任一所述返回地址在预设地址区间的情况下,确定所述内核线程为用于网络服务的线程;其中,所述预设地址区间的起始地址为所述网络服务的驱动代码段的起始地址,所述预设地址区间的结束地址为所述网络服务的驱动代码段的结束地址。
[0008]第三方面,本申请实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。
[0009]第四方面,本申请实施例提供一种计算机存储介质,存储有可执行指令,用于引起处理器执行时,实现上述方法。
[0010]本申请实施例中,首先,在确定待识别的内核线程存在访问令牌的情况下,基于栈回溯机制,获取至少一个返回地址,然后在确定任一返回地址在预设地址区间的情况下,确定所述内核线程为用于网络服务的线程。这样,在网络共享服务工作在内核态的情况下,可
以有效确定内核线程为用于网络服务的线程,对终端操作所对应的操作者身份是否为网络服务进行确定,准确识别操作者身份是否为网络服务。
附图说明
[0011]图1为本申请实施例提供的一种线程识别方法的实现流程示意图;
[0012]图2为本申请实施例提供的一种线程识别方法的实现流程示意图;
[0013]图3为本申请实施例提供的一种线程识别方法的实现流程示意图;
[0014]图4为本申请实施例提供的一种线程识别方法的实现流程示意图;
[0015]图5为本申请实施例提供的线程识别装置的组成结构示意图;
[0016]图6为本申请实施例提供的电子设备的一种硬件实体示意图。
具体实施方式
[0017]为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对专利技术的具体技术方案做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
[0018]在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
[0019]在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
[0020]除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的
的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
[0021]对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
[0022]网络共享:通常是指通过服务器报文块(Server Message Block,SMB)协议实现的网络文件访问协议。SMB协议是内网中常用的文件共享协议,用于实现同一个IP网段的网络设备之间的共享文件访问、读、写等操作。SMB协议作为内网中常用的文件共享协议,容易被不法分子利用并传播网络病毒。
[0023]文件系统过滤驱动:一种工作在内核态可以截获所有文件操作的驱动程序。
[0024]Minifilter:微软提供的文件系统过滤驱动框架。
[0025]自保护:可以是指软件通过文件系统过滤驱动,内核进程操作回调,注册表操作回调等技术实现的软件防恶意篡改。
[0026]线程Token:windows系统用于身份识别的访问令牌。
[0027]Srv驱动:SMB协议服务驱动,用于提供网络文件共享服务。
[0028]文件破坏性操作:包括文件的修改、删除、改名,属性的修改等文件操作。
[0029]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完
整地描述。
[0030]应当理解,此处所描述的一些实施例仅仅用以解释本申请的技术方案,并不用于限定本申请的技术范围。
[0031]本申请实施例提供的一种线程识别方法,如图1所示,该方法包括:
[0032]步骤S101、在确定系统中待识别的内核线程存在访问令牌的情况下,基于栈回溯机制,在所述内核线程的堆栈中获取至少一个函数的返回地址;
[0033]线程是操作系统能够进行运算调度的最小单位,被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。内核线程指需要内核的参与,由内核完成线程的调度。
[0034]访问令牌可以是线程Token,即,系统用于身份识别的访问令牌。
[0035]在一些实施例中,用于网络服务的线程必定会有token用于身份识别,但是有token不一定就是用于网络服务的线程。需要首先确定待识别的内核线程是否存在访问令牌。其中,待识别的内核线程可以基于该内核线程对应的文件操作确定,即,可以在确定文件操作为破坏性操作的情况下,获取该操作对应的内核线程。
[0036本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种线程识别方法,所述方法包括:在确定系统中待识别的内核线程存在访问令牌的情况下,基于栈回溯机制,在所述内核线程的堆栈中获取至少一个函数的返回地址;在确定任一所述返回地址在预设地址区间的情况下,确定所述内核线程为所述系统中用于网络服务的线程;其中,所述预设地址区间的起始地址为所述网络服务的驱动代码段的起始地址,所述预设地址区间的结束地址为所述网络服务的驱动代码段的结束地址。2.如权利要求1所述的方法,其特征在于,在所述在确定任一所述返回地址在预设地址区间的情况下,确定所述内核线程为所述系统中用于网络服务的线程的步骤之前,还包括:遍历所述系统的内核模块,确定所述网络服务的驱动模块;基于所述网络服务的驱动模块确定所述网络服务的驱动代码段的起始地址和结束地址;将所述网络服务的驱动代码段的起始地址确定为所述预设地址区间的起始地址;将所述网络服务的驱动代码段的结束地址确定为所述预设地址区间的结束地址。3.如权利要求1所述的方法,其特征在于,所述基于栈回溯机制,在所述内核线程的堆栈中获取至少一个函数的返回地址,包括:基于所述栈回溯机制,确定所述内核线程中每一层函数的调用关系;将所述调用关系中每一层函数的地址确定为所述至少一个函数的返回地址。4.如权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:在确定所述系统中共享文件的访问操作为预设操作的情况下,将所述访问操作对应的内核线程确定为所述待识别的内核线程。5.如权利要求4所...

【专利技术属性】
技术研发人员:陈楚明梁智
申请(专利权)人:深信服科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1