CN114254272A - 一种保护lsass进程的方法、装置、电子设备及介质 - Google Patents

一种保护lsass进程的方法、装置、电子设备及介质 Download PDF

Info

Publication number
CN114254272A
CN114254272A CN202111565696.9A CN202111565696A CN114254272A CN 114254272 A CN114254272 A CN 114254272A CN 202111565696 A CN202111565696 A CN 202111565696A CN 114254272 A CN114254272 A CN 114254272A
Authority
CN
China
Prior art keywords
handle
lsass
target process
address
private
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
Application number
CN202111565696.9A
Other languages
English (en)
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.)
DBAPPSecurity Co Ltd
Original Assignee
DBAPPSecurity 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 DBAPPSecurity Co Ltd filed Critical DBAPPSecurity Co Ltd
Priority to CN202111565696.9A priority Critical patent/CN114254272A/zh
Publication of CN114254272A publication Critical patent/CN114254272A/zh
Pending legal-status Critical Current

Links

Images

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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Abstract

本申请公开了一种保护lsass进程的方法、装置、电子设备及介质,主要涉及计算机领域。该方法先获取目标进程,然后判断该目标进程是否为System、csrss、wininit或lsass进程;若否,则调用函数将GrantedAccessBits进行去除读写权限的计算,其中,GrantedAccessBits为目标进程中打开lsass进程的句柄拥有的权限。相较于传统的通过监控有转储进程功能的API实现保护lsass进程的方法,该方法通过去除目标进程的读写lsass进程的权限的方式保护lsass进程,从根源上预防了非法程序读写lsass进程,有力保障了lsass进程的安全。

Description

一种保护lsass进程的方法、装置、电子设备及介质
技术领域
本申请涉及计算机领域,特别是涉及一种保护lsass进程的方法、装置、电子设备及介质。
背景技术
随着互联网行业的快速发展,计算机在生活中越来越普遍,而在个人操作系统中,windows系统占比高。由于windows的认证都是基于lsass进程的,不论是域环境的一种计算机网络授权协议(Kerberos)认证,还是工作组环境的问询/应答身份验证协议(ntlm)认证,最终认证之后的凭据都会保存在lsass进程的内存中,因此,对lsass进程的保护至关重要。
当前通过监控有转储进程功能的应用程序编程接口(API)实现对lsass进程的保护,但是,当程序通过OpenProces函数打开lsass进程的句柄,直接读取lsass进程时,通过监控具有转储进程功能的API无法实现对lsass进程的保护。
由此可见,如何实现对lsass进程的保护是本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种保护lsass进程的方法、装置、电子设备及介质,用于防止非法程序读写lsass进程。
为解决上述技术问题,本申请提供一种保护lsass进程的方法,包括:
获取目标进程;
判断目标进程是否为System、csrss、wininit或lsass进程;
若否,则调用函数将GrantedAccessBits进行去除读写权限的计算,GrantedAccessBits为目标进程中打开lsass进程的句柄拥有的权限。
优选地,若目标进程为新创建的进程,则在获取目标进程之前,还包括:
创建通知事件,通知事件用于监控目标进程的创建。
优选地,在判断目标进程是否为System、csrss、wininit或lsass进程之前,还包括:
判断目标进程是否申请lsass进程的读写权限;
若否,则确定目标进程创建成功;
若是,则进入判断目标进程是否为System、csrss、wininit或lsass进程的步骤。
优选地,若目标进程为用户层程序筛选得到的具有lsass进程的读写权限的进程,则获取目标进程包括:
接收用户层程序发送的目标进程的ID和打开lsass进程的句柄值;
对应地,判断目标进程是否为System、csrss、wininit或lsass进程包括:
根据目标进程的ID判断目标进程是否为System、csrss、wininit或lsass进程。
优选地,在调用函数将GrantedAccessBits进行去除读写权限的计算之前,还包括:
通过目标进程的EPROCESS结构体获取ObjectTable地址;
根据与ObjectTable地址对应的HANDLE_TABLE结构体获取TableCode指针;
读取TableCode指针指向的TableCode地址,并根据TableCode地址计算得到目标进程的私有句柄表的级别。
优选地,若私有句柄表为一级句柄表,则获取GrantedAccessBits包括:
根据TableCode地址计算得到私有句柄表地址;
根据句柄值和私有句柄表地址计算得到句柄属性地址;
从与句柄属性地址对应的HANDLE_TABLE_ENTRY结构体中获取GrantedAccessBits。
优选地,若私有句柄表为二级句柄表,则获取GrantedAccessBits包括:
根据TableCode地址计算得到存储地址,存储地址包括多个私有句柄表地址;
根据句柄值确定存储句柄的私有句柄表,并从存储地址中获取与私有句柄表对应的私有句柄表地址;
根据句柄值和私有句柄表地址计算得到句柄属性地址;
从与句柄属性地址对应的HANDLE_TABLE_ENTRY结构体中获取GrantedAccessBits。
为解决上述技术问题,本申请还提供一种保护lsass进程的装置,包括:
获取模块,用于获取目标进程;
判断模块,用于判断目标进程是否为System、csrss、wininit或lsass进程;
调用模块,用于调用函数将GrantedAccessBits进行去除读写权限的计算,GrantedAccessBits为目标进程中打开lsass进程的句柄拥有的权限。
为解决上述技术问题,本申请还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现上述保护lsass进程的方法的步骤。
为解决上述技术问题,本申请还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述保护lsass进程的方法的步骤。
本申请提出一种保护lsass进程的方法,该方法先获取目标进程;然后判断该目标进程是否为System、csrss、wininit或lsass进程;若否,则调用函数将GrantedAccessBits进行去除读写权限的计算,其中,GrantedAccessBits为目标进程中打开lsass进程的句柄拥有的权限。相较于传统的通过监控有转储进程功能的API实现保护lsass进程的方法,该方法通过去除目标进程的读写lsass进程的权限的方式保护lsass进程,从根源上预防了非法程序读写lsass进程,有力保障了lsass进程的安全。
此外,本申请所提供的保护lsass进程的装置、电子设备及介质与保护lsass进程的方法相对应,效果如上。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种保护lsass进程的方法的流程图;
图2为本申请提供的一种保护lsass进程的装置的结构图;
图3为本申请提供的一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
本申请的核心是提供一种保护lsass进程的方法,用于防止非法程序读写lsass进程。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。
图1为本申请提供的一种保护lsass进程的方法的流程图。如图1所示,该方法包括:
S1:获取目标进程。
在本实施例中,目标进程可以是新创建的进程,也可以是用户层程序筛选得到的具有lsass进程的读写权限的进程,其中,用户层程序可以通过NtQuerySystemInformation函数遍历句柄表筛选得到目标进程,也可以根据实际情况选择其他方式遍历句柄表筛选得到目标进程,本实施例对此不做限制。若目标进程为新创建的进程,则会使用创建的通知事件捕获创建目标进程的行为、监控目标进程的创建,进而获取目标进程;若目标进程为用户层程序筛选得到的具有lsass进程的读写权限的进程,用户层程序在找到目标进程后,会将目标进程的ID和打开lsass进程的句柄值通过输入输出请求包(IRP)发送至windows的驱动层,此时驱动层会接收用户层程序发送的目标进程的ID和打开lsass进程的句柄值,实现获取目标进程。需要说明的是,在本实施例中,用户层程序通过IRP将目标进程的ID和打开lsass进程的句柄值封装成一种固定的数据结构发送给驱动层,驱动层接收到该数据结构后,需要解析该数据结构,以获取目标进程的ID和打开lsass进程的句柄值。
S2:判断目标进程是否为System、csrss、wininit或lsass进程,若否,则进入步骤S3。
由于System、csrss、wininit和lsass进程为系统进程,其他进程无法通过正常操作使用上述四个系统进程读写lsass进程,因此为预防部分合法程序不能读写lsass进程,本实施例只是去除非System、csrss、wininit和lsass进程的其他进程的句柄的读写权限。若目标进程为新创建的进程,则通过通知事件能够直接获取目标进程的ID,根据目标进程的ID判断目标进程是否为System、csrss、wininit或lsass进程;若目标进程为用户层程序筛选得到的具有lsass进程的读写权限的进程,用户层程序会将目标进程的ID发送给驱动层,驱动层再根据接收到的目标进程的ID判断目标进程是否为System、csrss、wininit或lsass进程。
S3:调用函数将GrantedAccessBits进行去除读写权限的计算,GrantedAccessBits为目标进程中打开lsass进程的句柄拥有的权限。
本实施例中,若判断得出目标进程为非System、csrss、wininit和lsass进程的其他进程,则需要去除目标进程的读写权限,其中,读写权限为读写lsass进程的权限。本实施例通过修改GrantedAccessBits的值实现去除目标进程的读写权限,例如,若GrantedAccessBits的值为0x10,二进制表示为00010000,其中表示读权的标志位为1,通过将该标志位改为0可实现去除读权,对应地,将表示写权的标志位改为0可实现去除写权。需要说明的是,目标进程中可以有多个句柄,但每个句柄只有一个GrantedAccessBits,在本实施例中,GrantedAccessBits为目标进程中打开lsass进程的句柄拥有的权限,不仅包括lsass进程的读写权限,还包括查询权限等其他权限。
若目标进程为新创建的进程,则可以通过通知事件直接获取到GrantedAccessBits,再通过修改GrantedAccessBits的值实现去除目标进程的读写权限;若目标进程为用户层程序筛选得到的具有lsass进程的读写权限的进程,则需要先计算目标进程的私有句柄表的级别,再根据用户层程序发送的打开lsass进程的句柄值以及计算得到的私有句柄表地址计算句柄属性地址,进而获取与该句柄属性地址对应的HANDLE_TABLE_ENTRY结构体中的GrantedAccessBits,其中,不同级别的私有句柄表获取私有句柄表地址的方式不同。此外,在去除目标进程的读写权限后,会返回处理后的句柄,使得其他进程得到该句柄后也无法对lsass进程进行读写操作。
本实施例提出一种保护lsass进程的方法,该方法先获取目标进程;然后判断该目标进程是否为System、csrss、wininit或lsass进程;若否,则调用函数将GrantedAccessBits进行去除读写权限的计算,其中,GrantedAccessBits为目标进程中打开lsass进程的句柄拥有的权限。该方法通过去除目标进程的读写lsass进程的权限的方式保护lsass进程,使得其他进程无法通过目标进程对lsass进程进行读写操作,从根源上防止了非法程序读写lsass进程,有力保障了lsass进程的安全。
若上述实施例中的目标进程为新创建的进程,则在获取目标进程之前,还需要捕获目标进程的创建行为,监控目标进程的创建。本实施例创建通知事件,其中通知事件用于监控目标进程的创建,通过通知事件实现捕获目标进程的创建行为,监控目标进程的创建。需要说明的是,本实施例中通过调用预先注册的函数创建通知事件,通过windows提供的API可实现该函数的注册。
本实施例创建通知事件,通过通知事件实现监控目标进程的创建,以便获取目标进程。
若上述实施例中的目标进程为新创建的进程,由于去除读写权限是建立在目标进程拥有读写lsass进程的权限的基础上,因此在判断目标进程是否为System、csrss、wininit或lsass进程之前,应先判断该目标进程是否申请了lsass进程的读写权限。该步骤包括:
判断目标进程是否申请lsass进程的读写权限;
若否,则确定目标进程创建成功;
若是,则进入判断目标进程是否为System、csrss、wininit或lsass进程的步骤。
在上述实施例中提到,通过通知事件监控目标进程的创建,因此在本实施例中,判断通知事件监控的目标进程是否申请了lsass进程的读写权限,若目标进程未申请lsass进程的读写权限,即说明不需要对其进行去除读写权限的操作,则可以直接确定该目标进程创建成功;若目标进程申请了lsass进程的读写权限,此时需要判断目标进程是否为System、csrss、wininit或lsass进程,根据目标进程是否为System、csrss、wininit或lsass进程的结果决定是否去除目标进程读写lsass进程的权限。
当目标进程为新创建的进程时,本实施例判断目标进程是否申请lsass进程的读写权限,根据判断结果决定是否需要判断目标进程是否为System、csrss、wininit或lsass进程,当目标进程未申请lsass进程的读写权限时,不需要再判断目标进程是否为System、csrss、wininit或lsass进程,而是直接确定其创建成功,有效简化了操作步骤。
若上述实施例中的目标进程为用户层程序筛选得到的具有lsass进程的读写权限的进程,则需要从用户层程序中获取目标进程。该步骤包括:
接收用户层程序发送的目标进程的ID和打开lsass进程的句柄值;
对应地,判断目标进程是否为System、csrss、wininit或lsass进程包括:
根据目标进程的ID判断目标进程是否为System、csrss、wininit或lsass进程。
在本实施例中,用户层程序调用NtQuerySystemInformation函数遍历句柄表,判断进程是否具有lsass进程的读写权限,若该进程没有lsass进程的读写权限,则不需要将其发送给驱动层,以实现用户层程序对目标进程的筛选。本实施例中的目标进程为用户层程序遍历句柄表得到的具有lsass进程的读写权限的进程,用户层程序找到目标进程后,通过IRP将目标进程的ID和打开lsass进程的句柄值发送给驱动层,驱动层会根据用户层发送的目标进程的ID判断目标进程是否为System、csrss、wininit或lsass进程,以及后续根据打开lsass进程的句柄值计算句柄属性地址,获取GrantedAccessBits。
当目标进程为用户层程序筛选得到的具有lsass进程的读写权限的进程时,本实施例接收用户层程序发送的目标进程的ID和打开lsass进程的句柄值,以便于根据目标进程的ID判断目标进程是否为System、csrss、wininit或lsass进程和后续根据打开lsass进程的句柄值计算句柄属性地址,获取GrantedAccessBits。
在上述实施例调用函数将GrantedAccessBits进行去除读写权限的计算之前,需要先获取GrantedAccessBits,由于GrantedAccessBits存储于与句柄属性地址对应的HANDLE_TABLE_ENTRY结构体中,而句柄属性地址由私有句柄表地址以及用户层程序发送的打开lsass进程的句柄值计算得到,且不同级别的私有句柄表获取私有句柄表地址的方式不同,因此,需要先计算私有句柄表的级别。该步骤包括:
通过目标进程的EPROCESS结构体获取ObjectTable地址;
根据与ObjectTable地址对应的HANDLE_TABLE结构体获取TableCode指针;
读取TableCode指针指向的TableCode地址,并根据TableCode地址计算得到目标进程的私有句柄表的级别。
在本实施例中,目标进程为用户层程序筛选得到的具有lsass进程的读写权限的进程,一个进程只有一个EPROCESS结构体,一个EPROCESS结构体中也只有一个ObjectTable地址,由于每个结构体的偏移是固定的,因此通过偏移可获取EPROCESS结构体中的ObjectTable地址。由于ObjectTable地址存放的是HANDLE_TABLE结构体,TableCode指针储存于该结构体中,且每个结构体的偏移固定,因此通过偏移可以从HANDLE_TABLE结构体中获取TableCode指针。读取到TableCode指针指向的TableCode地址后,将TableCode地址与3进行&计算,根据计算结果可得到目标进程的私有句柄表的级别。需要说明的是,TableCode地址与3进行&计算的计算结果与私有句柄表的级别存在对应关系,若计算结果为0,则私有句柄表为一级句柄表,若计算结果为1,则私有句柄表为二级句柄表,若计算结果为2,则私有句柄表为三级句柄表,例如,若TableCode的值为0xFFFF80013A2BF0C1,则将0xFFFF80013A2BF0C1与3进行&计算,得到计算结果为1,根据该计算结果与私有句柄表的对应关系可得到私有句柄表的级别为二级。
本实施例先获取目标进程的EPROCESS结构体中的ObjectTable地址,然后,获取与ObjectTable地址对应的HANDLE_TABLE结构体中的TableCode指针,再读取TableCode指针指向的TableCode地址,并根据TableCode地址计算得到目标进程的私有句柄表的级别,以便于根据私有句柄表的级别获取私有句柄表地址,进而计算得到句柄属性地址、获取GrantedAccessBits。
上述实施例对计算私有句柄表的级别的步骤进行了详细说明,由于GrantedAccessBits存储于与句柄属性地址对应的HANDLE_TABLE_ENTRY结构体中,而句柄属性地址由私有句柄表地址以及用户层程序发送的打开lsass进程的句柄值计算得到,且不同级别的私有句柄表获取私有句柄表地址的方式不同,因此,不同级别的私有句柄表获取GrantedAccessBits的步骤不同。本实施例对私有句柄表为一级句柄表时,获取GrantedAccessBits的步骤进行说明。该步骤包括:
根据TableCode地址计算得到私有句柄表地址;
根据句柄值和私有句柄表地址计算得到句柄属性地址;
从与句柄属性地址对应的HANDLE_TABLE_ENTRY结构体中获取GrantedAccessBits。
当私有句柄表为一级句柄表时,所有的句柄属性都保存在一个4096字节大小的页中,32位系统一个句柄属性占8个字节,64位系统占16个字节,不同位数的操作系统每个句柄表最大存储的句柄分别是512个、256个。在本实施例中,先将TableCode地址与~3进行&计算得到私有句柄表地址,然后,将用户层程序发送的打开lsass进程的句柄值除以4,再乘以0x10并加上私有句柄表地址可得到句柄属性地址,由于该句柄属性地址对应的是一个HANDLE_TABLE_ENTRY结构体,因此,可通过句柄属性地址找到该结构体,进而获取该结构体中的GrantedAccessBits。
本实施例对私有句柄表为一级句柄表时,获取GrantedAccessBits的步骤进行了详细说明,先根据上述实施例得到的TableCode地址计算得到私有句柄表地址,再根据句柄值和私有句柄表地址计算得到句柄属性地址,从与句柄属性地址对应的HANDLE_TABLE_ENTRY结构体中获取GrantedAccessBits,以便去除目标进程读写lsass进程的权限。
上述实施例对私有句柄表为一级句柄表时,获取GrantedAccessBits的步骤进行了说明,由于不同级别的私有句柄表获取GrantedAccessBits的步骤不同,因此,本实施例对私有句柄表为二级句柄表时,获取GrantedAccessBits的步骤进行说明。该步骤包括:
根据TableCode地址计算得到存储地址,存储地址包括多个私有句柄表地址;
根据句柄值确定存储句柄的私有句柄表,并从存储地址中获取与私有句柄表对应的私有句柄表地址;
根据句柄值和私有句柄表地址计算得到句柄属性地址;
从与句柄属性地址对应的HANDLE_TABLE_ENTRY结构体中获取GrantedAccessBits。
在本实施例中,TableCode地址与3进行&计算可得到存储地址,与一级句柄表不同的是,在二级句柄表中无法根据TableCode地址直接计算得到私有句柄表地址,而是根据TableCode地址计算得到存储了私有句柄表地址的存储地址。由于存储地址中存储了多个私有句柄表地址,因此还需要根据用户层程序发送的打开lsass进程的句柄值确定存储该句柄的私有句柄表,进而从存储地址中获取与该私有句柄表对应的私有句柄表地址。在得到私有句柄表地址后,将句柄值除以4,再乘以0x10并加上私有句柄表地址可得到句柄属性地址,找到与句柄属性地址对应的HANDLE_TABLE_ENTRY结构体,进而获取该结构体中的GrantedAccessBits。此外,若私有句柄表为三级句柄表,则TableCode地址与3进行&计算得到的地址中存储的是二级句柄表的地址,需要按照二级句柄表的计算方式进行计算,以获取GrantedAccessBits。
本实施例对私有句柄表为二级句柄表时,获取GrantedAccessBits的步骤进行了详细说明,先根据TableCode地址计算得到存储地址,由于存储地址包括多个私有句柄表地址,因此,再根据句柄值确定存储该句柄的私有句柄表,并从存储地址中获取与该私有句柄表对应的私有句柄表地址,根据句柄值和私有句柄表地址计算得到句柄属性地址,找到HANDLE_TABLE_ENTRY结构体,进而获取该结构体中的GrantedAccessBits,以便去除目标进程读写lsass进程的权限。
在上述实施例中,对于保护lsass进程的方法进行了详细描述,本申请还提供保护lsass进程的装置对应的实施例。需要说明的是,本申请从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角度。
图2为本申请提供的一种保护lsass进程的装置的结构图。如图2所示,该装置包括:
获取模块10,用于获取目标进程;
判断模块11,用于判断目标进程是否为System、csrss、wininit或lsass进程;
调用模块12,用于调用函数将GrantedAccessBits进行去除读写权限的计算,GrantedAccessBits为目标进程中打开lsass进程的句柄拥有的权限。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本实施例所提供的保护lsass进程的装置,通过获取模块获取目标进程;通过判断模块判断目标进程是否为System、csrss、wininit或lsass进程;通过调用模块调用函数将GrantedAccessBits进行去除读写权限的计算,其中,GrantedAccessBits为目标进程中打开lsass进程的句柄拥有的权限。该装置通过去除目标进程的读写lsass进程的权限的方式,使得其他进程无法通过目标进程对lsass进程进行读写操作,从根源上防止了非法程序读写lsass进程,保护lsass进程。
图3为本申请另一实施例提供的电子设备的结构图。如图3所示,该电子设备包括:存储器20,用于存储计算机程序;
处理器21,用于执行计算机程序时实现如上述实施例中所提到的保护lsass进程的方法的步骤。
本实施例提供的电子设备可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有图像处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的保护lsass进程的方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括Windows、Unix、Linux等。数据203可以包括但不限于目标进程打开lsass进程的句柄值等。
在一些实施例中,电子设备还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
本领域技术人员可以理解,图3中示出的结构并不构成对该电子设备的限定,可以包括比图示更多或更少的组件。
本申请实施例提供的电子设备,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现上述保护lsass进程的方法,效果同上。
最后,本申请还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的保护lsass进程的方法的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请提供的计算机可读存储介质包括上述提到的保护lsass进程的方法,效果同上。
以上对本申请所提供的保护lsass进程的方法、装置、电子设备及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种保护lsass进程的方法,其特征在于,包括:
获取目标进程;
判断所述目标进程是否为System、csrss、wininit或lsass进程;
若否,则调用函数将GrantedAccessBits进行去除读写权限的计算,所述GrantedAccessBits为所述目标进程中打开所述lsass进程的句柄拥有的权限。
2.根据权利要求1所述的保护lsass进程的方法,其特征在于,若所述目标进程为新创建的进程,则在获取所述目标进程之前,还包括:
创建通知事件,所述通知事件用于监控所述目标进程的创建。
3.根据权利要求2所述的保护lsass进程的方法,其特征在于,在所述判断所述目标进程是否为System、csrss、wininit或lsass进程之前,还包括:
判断所述目标进程是否申请所述lsass进程的所述读写权限;
若否,则确定所述目标进程创建成功;
若是,则进入所述判断所述目标进程是否为System、csrss、wininit或lsass进程的步骤。
4.根据权利要求1所述的保护lsass进程的方法,其特征在于,若所述目标进程为用户层程序筛选得到的具有所述lsass进程的所述读写权限的进程,则所述获取目标进程包括:
接收所述用户层程序发送的所述目标进程的ID和打开所述lsass进程的句柄值;
对应地,所述判断所述目标进程是否为System、csrss、wininit或lsass进程包括:
根据所述目标进程的所述ID判断所述目标进程是否为所述System、所述csrss、所述wininit或所述lsass进程。
5.根据权利要求4所述的保护lsass进程的方法,其特征在于,在所述调用函数将GrantedAccessBits进行去除读写权限的计算之前,还包括:
通过所述目标进程的EPROCESS结构体获取ObjectTable地址;
根据与所述ObjectTable地址对应的HANDLE_TABLE结构体获取TableCode指针;
读取所述TableCode指针指向的TableCode地址,并根据所述TableCode地址计算得到所述目标进程的私有句柄表的级别。
6.根据权利要求5所述的保护lsass进程的方法,其特征在于,若所述私有句柄表为一级句柄表,则获取所述GrantedAccessBits包括:
根据所述TableCode地址计算得到私有句柄表地址;
根据所述句柄值和所述私有句柄表地址计算得到句柄属性地址;
从与所述句柄属性地址对应的HANDLE_TABLE_ENTRY结构体中获取所述GrantedAccessBits。
7.根据权利要求6所述的保护lsass进程的方法,其特征在于,若所述私有句柄表为二级句柄表,则获取所述GrantedAccessBits包括:
根据所述TableCode地址计算得到存储地址,所述存储地址包括多个所述私有句柄表地址;
根据所述句柄值确定存储所述句柄的所述私有句柄表,并从所述存储地址中获取与所述私有句柄表对应的所述私有句柄表地址;
根据所述句柄值和所述私有句柄表地址计算得到句柄属性地址;
从与所述句柄属性地址对应的HANDLE_TABLE_ENTRY结构体中获取所述GrantedAccessBits。
8.一种保护lsass进程的装置,其特征在于,包括:
获取模块,用于获取目标进程;
判断模块,用于判断所述目标进程是否为System、csrss、wininit或lsass进程;
调用模块,用于调用函数将GrantedAccessBits进行去除读写权限的计算,所述GrantedAccessBits为所述目标进程中打开所述lsass进程的句柄拥有的权限。
9.一种电子设备,其特征在于,包括存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的保护lsass进程的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的保护lsass进程的方法的步骤。
CN202111565696.9A 2021-12-20 2021-12-20 一种保护lsass进程的方法、装置、电子设备及介质 Pending CN114254272A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111565696.9A CN114254272A (zh) 2021-12-20 2021-12-20 一种保护lsass进程的方法、装置、电子设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111565696.9A CN114254272A (zh) 2021-12-20 2021-12-20 一种保护lsass进程的方法、装置、电子设备及介质

Publications (1)

Publication Number Publication Date
CN114254272A true CN114254272A (zh) 2022-03-29

Family

ID=80793290

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111565696.9A Pending CN114254272A (zh) 2021-12-20 2021-12-20 一种保护lsass进程的方法、装置、电子设备及介质

Country Status (1)

Country Link
CN (1) CN114254272A (zh)

Similar Documents

Publication Publication Date Title
KR101928908B1 (ko) 멀웨어 스캐닝을 용이하게 하기 위하여 명성 표시자를 사용하기 위한 시스템 및 그 방법
CN109889517B (zh) 数据处理方法、权限数据集创建方法、装置及电子设备
US9516056B2 (en) Detecting a malware process
CN111131221B (zh) 接口校验的装置、方法及存储介质
WO2017032265A1 (zh) 一种应用推送方法、装置及服务设备
CN107944292B (zh) 一种隐私数据保护方法及系统
CN111416811A (zh) 越权漏洞检测方法、系统、设备及存储介质
CN103593604A (zh) 多安全-cpu系统
CN112165455A (zh) 数据访问控制方法、装置、计算机设备和存储介质
CN115277143A (zh) 一种数据安全传输方法、装置、设备及存储介质
US9378358B2 (en) Password management system
TWI610196B (zh) 網路攻擊模式之判斷裝置、判斷方法及其電腦程式產品
CN107368735B (zh) 一种应用安装方法、移动终端和计算机可读存储介质
CN107391980B (zh) 一种基于设备数据的登录验证方法、装置、设备及存储介质
CN108092946B (zh) 一种安全访问网络的方法及系统
CN111090616B (zh) 一种文件管理方法、对应装置、设备及存储介质
CN114254272A (zh) 一种保护lsass进程的方法、装置、电子设备及介质
CN107368738B (zh) 一种智能设备的防Root方法及装置
CN115277228A (zh) 一种分层网络中的数据访问防御方法及系统
CN106130968A (zh) 一种身份认证方法、及系统
CN110932733B (zh) 按键扫描方法及输入设备
CN114610577A (zh) 一种目标资源的锁定方法、装置、设备和介质
CN104484611B (zh) 一种Android系统的分区挂载管控方法及装置
KR102324950B1 (ko) 취약점을 효율적으로 탐지할 수 있는 아키텍처로 구성된 힙 영역 메모리 관리 방법 및 그 장치
US10552626B2 (en) System and method for selecting a data entry mechanism for an application based on security requirements

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