脚本检测方法、装置、存储介质以及计算机设备

文档序号:7942 发布日期:2021-09-17 浏览:36次 英文

脚本检测方法、装置、存储介质以及计算机设备

技术领域

本申请涉及计算机

技术领域

,具体而言,涉及一种脚本检测方法、装置、存储介质和计算机设备。

背景技术

脚本(Script),是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,更具体来说,脚本是不需要编译、在运行时通过解释执行的程序。在Linux系统框架中,只要脚本的文件格式没有异常,就可以直接执行,在黑灰色产业链中,黑客可以通过执行恶意脚本来损害终端设备的安全性,如下载并安装木马病毒、监听用户数据、侵占系统资源等,导致应用了Linux系统框架的终端设备(如操作系统为Linux系统、安卓系统和鸿蒙系统的终端设备)的安全性较差。

发明内容

本申请提供一种脚本检测方法、终端设备、存储介质以及计算机设备,可以解决如何提高终端设备的安全性的技术问题。

第一方面,本申请实施例提供一种脚本检测方法,该方法包括:

获取调用当前进程的第一主体的第一主体类型,并获取当前进程的父进程的第一权限;

基于第一主体类型和第一权限,确定当前进程是否为合法状态;

若当前进程不是合法状态,则基于当前进程的第二权限确定当前进程对应的脚本是否为恶意脚本。

第二方面,本申请实施例提供一种脚本检测方法,该方法包括:

获取调用当前进程的第一主体的第一主体类型,并获取调用当前进程的父进程的第二主体的第二主体类型;

获取父进程的第一权限;

基于第一主体类型、第二主体类型以及第一权限,确定当前进程对应的脚本是否为恶意脚本。

第三方面,本申请实施例提供一种脚本检测装置,包括:

类型获取模块,用于获取调用当前进程的第一主体的第一主体类型,并获取当前进程的父进程的第一权限;

状态获取模块,用于基于第一主体类型和第一权限,确定当前进程是否为合法状态;

确定模块,用于若当前进程不是合法状态,则基于当前进程的第二权限确定当前进程对应的脚本是否为恶意脚本。

第四方面,本申请实施例提供一种脚本检测装置,包括:

类型获取模块,用于获取调用当前进程的第一主体的第一主体类型,并获取调用当前进程的父进程的第二主体的第二主体类型;

权限获取模块,用于获取父进程的第一权限;

确定模块,用于基于第一主体类型、第二主体类型以及第一权限,确定当前进程对应的脚本是否为恶意脚本。

第五方面,本申请实施例提供一种存储介质,存储介质存储有计算机程序,计算机程序适于由处理器加载并执行上述方法的步骤。

第六方面,本申请实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上执行的计算机程序,处理器执行程序时实现上述的方法的步骤。

在本申请实施例中,在执行脚本时,通过获取被执行脚本对应的当前进程以及当前进程的父进程的调用主体,根据当前进程的调用主体和父进程的调用主体来确定对应的脚本是否为恶意脚本,从而在识别出恶意脚本时,避免恶意脚本的继续执行,提高了终端设备的安全性。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种脚本检测方法的流程示意图;

图2为本申请实施例提供的一种脚本检测方法的流程示意图;

图3为本申请实施例提供的一种识别恶意脚本的流程示意图;

图4为本申请实施例提供的一种脚本检测方法的流程示意图;

图5为本申请实施例提供的一种脚本检测方法的流程示意图;

图6为本申请实施例提供的一种识别恶意脚本的流程示意图;

图7为本申请实施例提供的一种脚本检测方法的流程示意图;

图8为本申请实施例提供的一种脚本检测方法的流程示意图;

图9为本申请实施例提供的一种脚本检测方法的流程示意图;

图10为本申请实施例提供的一种脚本检测装置的结构示意图;

图11为本申请实施例提供的一种脚本检测装置的结构示意图;

图12为本申请实施例提供的一种脚本检测装置的结构示意图;

图13是本申请实施例提供的一种计算机设备的结构示意图。

具体实施方式

为使得本申请的特征和优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。附图中所示的流程图仅是示例性说明,不是必须按照所示步骤执行。例如,有的步骤是并列的,在逻辑上并没有严格的先后关系,因此实际执行顺序是可变的。另外,术语“第一”、“第二”、“第三”、“第四”、“第五”、“第六”、“第七”、“第八”仅是为了区分的目的,不应作为本公开内容的限制。

本申请实施例公开的脚本检测方法和终端设备可以应用于信息安全领域,例如智能手机的恶意脚本检测过程等,也可以应用于Linux操作系统的恶意脚本检测过程。终端设备,可以包括但不限于智能交互平板、手机、个人电脑、笔记本电脑等使用了Linux操作系统的智能终端,或是以Linux架构为操作系统框架的智能终端。

在本申请实施例中,终端设备可以在执行脚本时,通过获取被执行脚本对应的当前进程以及当前进程的父进程的调用主体,根据当前进程的调用主体和父进程的调用主体来确定对应的脚本是否为恶意脚本,从而在识别出恶意脚本时,避免恶意脚本的继续执行,提高了终端设备的安全性。

下面将结合图1~图9,对本申请实施例提供的脚本检测方法进行详细介绍。

请参照图1,为本申请实施例提供了一种脚本检测方法的流程示意图。如图1所示,方法可以包括以下步骤S101~步骤S103。

S101,获取调用当前进程的第一主体的第一主体类型,并获取当前进程的父进程的第一权限。

具体的,脚本是一个可以解释执行的程序,进程是程序的基本执行实体,即进程是正在运行的程序的实例,则可以理解的是,通过至少一个进程来执行整个脚本。调用进程的调用主体可以是普通用户以及其他主体,需要说明的是,普通用户可以是shell用户,即拥有shell权限的用户,其中,shell权限是在用户登录时自动获取的权限;其他主体可以是应用等,示例性的,终端设备中的应用可以直接调用脚本,或者是,普通用户在调用脚本时,该脚本对应的父进程调用父进程之外的应用程序,该应用程序又可以调用另一个进程,则这个被应用程序调用的进程的调用主体为其他主体,即应用程序。

移动终端在检测到进程被创建时,将被创建的进程作为当前进程,即正在执行的进程,然后获取当前进程的进程结构体,该进程结构体中至少包括该进程的进程名、PID、UID以及父进程的PID,其中,PID(Process Identification)是进程标识符,具有唯一性,需要说明的是,当整个进程终止之后,该PID会被操作系统回收;UID(User Identification)为用户标识符,示例性的,若UID为0,则该用户为超级管理员,若UID为2000,则该用户为shell用户。需要说明的是,若UID为0,该UID对应的进程的权限为根权限,即root权限;若UID为2000,该UID对应的进程的权限为普通用户权限,即shell权限。

根据当前进程的进程名确定调用当前进程的调用主体的主体类型,需要说明的是,若调用该进程的主体为普通用户时,该进程的进程名会有相应的标注信息,如sh。则可以理解的是,在获取调用当前进程的调用主体的主体类型时,先获取当前进程名,然后确定该进程名中是否有相应的标注信息,若进程名中存在普通用户对应的标注信息,则调用当前进程的第一主体的第一主体类型为普通用户,若进程名中不存在普通用户对应的标注信息,则调用当前进程的第一主体的第一主体类型为其他主体。然后根据父进程的PID确定当前进程的父进程,并获取父进程的进程结构体,根据父进程的UID获取父进程的第一权限。

S102,基于第一主体类型和第一权限,确定当前进程是否为合法状态。

具体的,若当前进程为合法状态,则当前进程不存在恶意行为,即当前进程为合法进程,则当前进程的调用过程的合法的,当前进程对应的脚本不是恶意脚本。

S103,若当前进程不是合法状态,则基于当前进程的第二权限确定当前进程对应的脚本是否为恶意脚本。

具体的,若当前进程不为合法状态,则当前进程可能存在恶意行为,即当前进程是否为合法进程是未知的,当前进程的调用过程是否合法也是未知的,从而无法基于此判断当前进程对应的脚本是否为恶意脚本,则此时需要进一步获取当前进程的第二权限作为新的判断依据,并基于此确定当前进程是否为合法进程,当前进程对应的脚本是否为恶意脚本。

在本申请实施例中,在执行脚本时,根据被执行脚本对应的当前进程的调用主体、当前进程的父进程的进程权限以及当前进程的进程权限来确定对应的脚本是否为恶意脚本,从而在识别出恶意脚本时,避免恶意脚本的继续执行,提高了终端设备的安全性。

请参照图2,为本申请实施例提供了一种脚本检测方法的流程示意图。如图2所示,方法可以包括以下步骤S201~步骤S211。

S201,若接收到脚本的执行指令,检测脚本的文件格式。

具体的,移动终端接收执行指令,获取执行指令对应的被执行文件,通过预设函数检查该被执行文件的文件头部,以确定该文件是否满足预设格式,同时,还可以通过该预设函数确定该文件对应的文件类型,其中,该预设函数可以是do_exec()。

S202,若文件格式满足预设格式,通过脚本解释器解释执行脚本。

具体的,若被执行文件满足预设格式,且被执行文件确定为脚本文件,通过脚本解释器来解释执行该脚本文件。示例性的,在被执行文件满足预设格式时,获取被执行文件的文件头部的头部开头,若文件头部是以“#!”为头部开头,则该被执行文件为脚本文件。

在本申请实施例中,通过检测执行指令对应的文件的文件格式,以确定该文件是否为脚本,即确定执行指令对应的文件是否需要进行安全性检测,以避免对其他文件,即非脚本文件,进行检测时,由于不适合的检测方法所导致的错误的检测结果。

S203,获取执行脚本的终端设备的设备状态。

具体的,设备状态为锁定状态和未锁定状态,其中,锁定状态可以理解为终端设备处于安全保护状态,未锁定状态可以理解为终端设备未处于安全保护状态。当终端设备处于锁定状态时,脚本检测程序处于受保护状态,脚本检测程序的程序代码不可修改;当终端设备设备处于未锁定状态时,脚本检测程序不处于受保护状态,脚本检测程序的程序代码可以随意修改,则此时的脚本校测程序本身就不安全,则无法基于此判定脚本是否恶意。

S204,若设备状态为锁定状态,获取调用当前进程的第一主体的第一主体类型,并获取当前进程的父进程的第一权限。

具体的,若终端设备的设备状态为锁定状态,然后获取调用当前进程的第一主体的第一主体类型,并获取当前进程的父进程的第一权限。具体可参见步骤S101,在此不再赘述。

在本申请实施例中,通过获取终端设备的设备状态,确定是否继续对脚本进行检测,以减少无用的检测过程。

S205,若第一主体类型为普通用户,第一权限为根权限,确定当前进程是合法状态。

具体的,若第一主体类型为普通用户,当前进程的父进程的第一权限为根权限,判定当前进程为合法状态,则当前进程不存在恶意行为,即当前进程为合法进程,则当前进程的调用过程的合法的,当前进程对应的脚本不是恶意脚本。

S206,若第一主体类型为普通用户,第一权限不为根权限,确定当前进程不是合法状态。

具体的,若第一主体类型为普通用户,当前进程的父进程的第一权限不为根权限,则判定当前进程不为合法状态,即无法基于此判定当前进程是否存在恶意行为,其调用过程是否合法也无从判断,则此时需要获取进一步的检测信息。

S207,若第一主体类型不为普通用户,获取调用父进程的第二主体的第二主体类型。

具体的,若第一主体类型不为普通用户,根据父进程的PID确定当前进程的父进程,并获取父进程的进程结构体,从而根据父进程的进程结构体获取父进程的进程名,确定该进程名中是否有相应的标注信息,若进程名中存在普通用户对应的标注信息,则调用父进程的第二主体的第二主体类型为普通用户,若进程名中不存在普通用户对应的标注信息,则调用当前进程的第二主体的第二主体类型为其他主体。

S208,第二主体类型不为普通用户,确定当前进程所属进程组的组长进程,获取调用组长进程的第三主体的第三主体类型。

具体的,进程结构体中至少包括该进程的进程名、PID、UID、父进程的PID以及组长进程的TGID,其中,组长进程是指执行脚本时第一个创建的进程,同时,创建进程组,然后将第一个创建的进程加入该进程组,且此后每个基于组长进程创建的进程都属于这个组长进程对应的进程组。TGID(Thread Group Identification)是组长进程的进程标识符。

若第二主体类型不为普通用户,根据组长进程的TGID确定当前进程的组长进程,然后获取组长进程的进程结构体,获取组长进程的进程名,然后确定该进程名中是否有相应的标注信息,若进程名中存在普通用户对应的标注信息,则调用组长进程的第三主体的第三主体类型为普通用户,若进程名中不存在普通用户对应的标注信息,则调用组长进程的第三主体的第三主体类型为其他主体。

S209,若第三主体类型为普通用户,则确定当前进程不是合法状态。

具体的,若调用组长进程的调用主体为普通用户,则判定当前进程不为合法状态,即无法基于此判定当前进程是否存在恶意行为,其调用过程是否合法也无从判断,则此时需要获取进一步的检测信息。

S210,若当前进程不是合法状态,获取当前进程的第二权限。

具体的,若当前进程不是合法状态,获取当前进程的进程结构体中的UID,根据UID确定当前进程的第二权限。

S211,若当前进程的第二权限为普通用户权限或根权限,则确定当前进程对应的脚本为恶意脚本。

具体的,若第二权限为其他权限,则结束对当前进程的检测,判定当前进程为合法进程,则当前进程对应的脚本为合法脚本。

在本申请实施例中,在执行脚本时,根据被执行脚本对应的当前进程的调用主体、当前进程的父进程的进程权限以及当前进程的进程权限来确定对应的脚本是否为恶意脚本,从而在识别出恶意脚本时,避免恶意脚本的继续执行,提高了终端设备的安全性。同时,先根据当前进程、当前进程的父进程和当前进程所属进程组的组长进程的调用主体来确定当前进程是否为合法状态,以确定是否继续对当前进程进行检测,避免在当前进程已经合法时还获取其他检测信息,从而提高对当前进程的检测效率。

请一并参照图3,为本申请实施例提供了一种识别恶意脚本的流程示意图。如图3所示,方法可以包括以下步骤S301~步骤S302。

S301,若当前进程的第二权限为普通用户权限,则标记当前进程为低危进程,获取当前进程的进程信息,根据进程信息生成第一安全事件报告并输出。

具体的,若第二权限为根权限,则判定当前进程对应的脚本为恶意脚本,拦截恶意脚本的运行,示例性的,结束执行当前进程以及恶意脚本对应的各进程,并返回运行错误。同时,将当前进程标记为高危进程,然后基于高危进程的进程信息以及高危进程对应的恶意脚本的运行情况生成第一安全事件报告,并将第一安全事件报告输出。

S302,若当前进程的第二权限为根权限,则标记当前进程为高危进程,获取当前进程的进程信息,根据进程信息生成第二安全事件报告并输出。

具体的,若第二权限为普通用户权限,则判定当前进程对应的脚本可能为恶意脚本,即当前进程存在一定的安全风险,因此,虽然还是判定了当前进程对应的脚本为恶意脚本,但此时并不会直接拦截当前进程对应的脚本的运行,也不会结束执行当前进程,只是需要将当前进程标记为低危进程,然后基于低危进程的进程信息以及低危进程对应的脚本的运行情况生成第二安全事件报告,并将第二安全事件报告输出,以使相关检测人员根据安全时间报告进一步确定该低危进程的危险级别,并确定该低危进程对应的脚本是否为恶意脚本。

在本申请实施例中,通过当前进程的进程权限来确定对应的脚本是否为恶意脚本,从而在识别出恶意脚本时,避免恶意脚本的继续执行,并输出安全事件报告,提高了终端设备的安全性。

请参照图4,为本申请实施例提供了一种脚本检测方法的流程示意图。如图4所示,方法可以包括以下步骤S401~步骤S403。

S401,获取调用当前进程的第一主体的第一主体类型,并获取调用当前进程的父进程的第二主体的第二主体类型。

具体的,终端设备检测到进程被创建时,将被创建的进程作为当前进程,然后基于当前进程的进程结构体中的进程名确定当前进程的调用主体是否为普通用户,若当前进程的调用主体为普通用户,基于当前进程的进程结构体中的父进程的PID确定当前进程的父进程,获取父进程的进程结构体中的进程名,并基于父进程的进程名确定父进程的调用主体是否为普通用户。

S402,获取父进程的第一权限。

具体的,若父进程的调用主体为普通用户,则基于父进程的进程结构体中的UID确定父进程的进程权限。

S403,基于第一主体类型、第二主体类型以及第一权限,确定当前进程对应的脚本是否为恶意脚本。

具体的,基于父进程的进程权限确定当前进程对应的脚本是否为恶意脚本,同时,还可以确定父进程是否存在恶意行为,进而确定父进程是否为恶意进程。

在本申请实施例中,在执行脚本时,根据当前进程的调用主体、父进程的调用主体以及父进程的进程权限来确定对应的脚本是否为恶意脚本,从而在识别出恶意脚本时,避免恶意脚本的继续执行,提高了终端设备的安全性。

请参照图5,为本申请实施例提供了一种脚本检测方法的流程示意图。如图5所示,方法可以包括以下步骤S501~步骤S506。

S501,若接收到脚本的执行指令,检测脚本的文件格式。

具体可参见步骤S201,在此不再赘述。

S502,若文件格式满足预设格式,通过脚本解释器解释执行脚本。

具体可参见步骤S202,在此不再赘述。

S503,获取执行脚本的终端设备的设备状态。

具体可参见步骤S203,在此不再赘述。

S504,若设备状态为锁定状态,获取调用当前进程的第一主体的第一主体类型,并获取调用当前进程的父进程的第二主体的第二主体类型。

具体的,若终端设备的设备状态为锁定状态,然后获取调用当前进程的第一主体的第一主体类型,并获取调用当前进程的父进程的第二主体的第二主体类型。具体可参见步骤S401,在此不再赘述。

S505,获取父进程的第一权限。

具体可参见步骤S402,在此不再赘述。

S506,若第一主体类型不为普通用户、第二主体类型为普通用户、第一权限为普通用户权限或根权限,确定当前进程对应的脚本为恶意脚本。

若第一权限为其他权限,则结束对当前进程的检测,判定父进程为合法进程,且当前进程对应的脚本为合法脚本。

请一并参照图6,为本申请实施例提供了一种识别恶意脚本的流程示意图。如图6所示,方法可以包括以下步骤S601~步骤S602。

S601,若第一主体类型不为普通用户、第二主体类型为普通用户、第一权限为普通用户权限,则标记父进程为低危进程,获取父进程的进程信息,根据进程信息生成第一安全事件报告并输出。

具体的,若第一权限为根权限,则判定当前进程对应的脚本为恶意脚本,拦截恶意脚本的运行,示例性的,结束执行当前进程、父进程以及恶意脚本对应的各进程,并返回运行错误。同时,将父进程标记为高危进程,然后基于高危进程的进程信息以及高危进程对应的恶意脚本的运行情况生成第一安全事件报告,并将第一安全事件报告输出。

S602,若第一主体类型不为普通用户、第二主体类型为普通用户、第一权限为根权限,则标记父进程为高危进程,获取父进程的进程信息,根据进程信息生成第二安全事件报告并输出。

具体的,若第一权限为普通用户权限,则判定当前进程对应的脚本可能为恶意脚本,即当前进程存在一定的安全风险,因此,虽然还是判定了当前进程对应的脚本为恶意脚本,但此时并不会直接拦截当前进程对应的脚本的运行,也不会结束执行当前进程,只是需要将父进程标记为低危进程,然后基于低危进程的进程信息以及低危进程对应的脚本的运行情况生成第二安全事件报告,并将第二安全事件报告输出,以使相关检测人员根据安全时间报告进一步确定该低危进程的危险级别,并确定该低危进程对应的脚本是否为恶意脚本。

在本申请实施例中,通过父进程的进程权限来确定对应的脚本是否为恶意脚本,从而在识别出恶意脚本时,避免恶意脚本的继续执行,并输出安全事件报告,提高了终端设备的安全性。

请参见图7,为本申请实施例提供了一种脚本检测方法的流程示意图。如图7所示,方法可以包括以下步骤S701~步骤S702。

S701,获取调用当前进程的第一主体的第一主体类型,并获取调用当前进程的父进程的第二主体的第二主体类型。

具体的,脚本是一个可以解释执行的程序,进程是程序的基本执行实体,即进程是正在运行的程序的实例,则可以理解的是,通过至少一个进程来执行整个脚本。调用进程的调用主体可以是普通用户以及其他主体,需要说明的是,普通用户可以是shell用户,即拥有shell权限的用户,其中,shell权限是在用户登录时自动获取的权限;其他主体可以是应用等,示例性的,终端设备中的应用可以直接调用脚本,或者是,普通用户在调用脚本时,该脚本对应的父进程调用父进程之外的应用程序,该应用程序又可以调用另一个进程,则这个被应用程序调用的进程的调用主体为其他主体,即应用程序。

移动终端在检测到进程被创建时,将被创建的进程作为当前进程,即正在执行的进程,然后获取当前进程的进程结构体,该进程结构体中至少包括该进程的进程名、PID以及父进程的PID,其中,PID(Process Identification)是进程标识符,具有唯一性,需要说明的是,当整个进程终止之后,该PID会被操作系统回收。

根据当前进程的进程名确定调用当前进程的调用主体的主体类型,需要说明的是,若调用该进程的主体为普通用户时,该进程的进程名会有相应的标注信息,如sh。则可以理解的是,在获取调用当前进程的调用主体的主体类型时,先获取当前进程名,然后确定该进程名中是否有相应的标注信息,若进程名中存在普通用户对应的标注信息,则调用当前进程的第一主体的第一主体类型为普通用户,若进程名中不存在普通用户对应的标注信息,则调用当前进程的第一主体的第一主体类型为其他主体。然后根据父进程的PID确定当前进程的父进程,获取父进程的进程结构体,并根据同样的方式获取调用父进程的第二主体的第二主体类型。

S702,基于第一主体类型和第二主体类型,确定当前进程对应的脚本是否为恶意脚本。

具体的,若调用当前进程的第一主体类型以及调用父进程的第二主体类型均不是普通用户,则当前进程未检测到恶意行为,即当前进程的调用过程的合法的,判定当前进程对应的脚本不是恶意脚本。进一步来说,由于脚本的执行过程对应至少一个进程,则若调用当前进程的第一主体类型以及调用父进程的第二主体类型均不是普通用户,则判定当前进程为合法进程,当整个脚本执行结束时,若脚本的执行过程中不存在非法进程,则该脚本不是恶意脚本,即是合法脚本。可以理解的是,若当前进程为非法进程,则当前进程对应的脚本为恶意脚本。需要说明的是,在判定脚本为恶意脚本时,立即停止执行恶意脚本,以避免对终端设备造成进一步的危害。

在本申请实施例中,在执行脚本时,通过获取被执行脚本对应的当前进程以及当前进程的父进程的调用主体,根据当前进程的调用主体和父进程的调用主体来确定对应的脚本是否为恶意脚本,从而在识别出恶意脚本时,避免恶意脚本的继续执行,提高了终端设备的安全性。

请参见图8,为本申请实施例提供了一种脚本检测方法的流程示意图。如图8所示,方法可以包括以下步骤S801~步骤S808。

S801,若接收到脚本的执行指令,检测脚本的文件格式。

具体的,移动终端接收执行指令,获取执行指令对应的被执行文件,通过预设函数检查该被执行文件的文件头部,以确定该文件是否满足预设格式,同时,还可以通过该预设函数确定该文件对应的文件类型,其中,该预设函数可以是do_exec()。

S802,若文件格式满足预设格式,通过脚本解释器解释执行脚本。

具体的,若被执行文件满足预设格式,且被执行文件确定为脚本文件,通过脚本解释器来解释执行该脚本文件。示例性的,在被执行文件满足预设格式时,获取被执行文件的文件头部的头部开头,若文件头部是以“#!”为头部开头,则该被执行文件为脚本文件。

在本申请实施例中,通过检测执行指令对应的文件的文件格式,以确定该文件是否为脚本,即确定执行指令对应的文件是否需要进行安全性检测,以避免对其他文件,即非脚本文件,进行检测时,由于不适合的检测方法所导致的错误的检测结果。

S803,获取执行脚本的终端设备的设备状态。

具体的,设备状态为锁定状态和未锁定状态,其中,锁定状态可以理解为终端设备处于安全保护状态,未锁定状态可以理解为终端设备未处于安全保护状态。当终端设备处于锁定状态时,脚本检测程序处于受保护状态,脚本检测程序的程序代码不可修改;当终端设备设备处于未锁定状态时,脚本检测程序不处于受保护状态,脚本检测程序的程序代码可以随意修改,则此时的脚本校测程序本身就不安全,则无法基于此判定脚本是否恶意。

S804,若设备状态为锁定状态,获取调用当前进程的第一主体的第一主体类型,并获取调用当前进程的父进程的第二主体的第二主体类型。

具体的,若终端设备的设备状态为锁定状态,然后获取调用当前进程的第一主体的第一主体类型,并获取调用当前进程的父进程的第二主体的第二主体类型,具体可参见步骤S701,在此不再赘述。

在本申请实施例中,通过获取终端设备的设备状态,确定是否继续对脚本进行检测,以减少无用的检测过程。

S805,获取当前进程的父进程的第一权限。

具体的,进程结构体中至少包括该进程的进程名、PID、UID以及父进程的PID,其中,UID(User Identification)为用户标识符,示例性的,若UID为0,则该用户为超级管理员,若UID为2000,则该用户为shell用户。需要说明的是,若UID为0,该UID对应的进程的权限为根权限,即root权限;若UID为2000,该UID对应的进程的权限为普通用户权限,即shell权限。

根据父进程的PID确定当前进程的父进程,然后获取父进程的进程结构体,获取父进程的UID,以根据父进程的UID获取父进程的权限。

S806,基于第一主体类型、第二主体类型和第一权限,确定当前进程对应的脚本是否为恶意脚本。

具体的,基于调用当前进程的第一主体类型、调用父进程的第二主体类型以及父进程的第一权限,来确定调用进程对应的脚本文件的用户所拥有的权限是否高于进程实际用到的权限,或与进程实际用到的权限相同。可以理解的是,当用户为普通用户时,若进程用到了管理员权限,则意味着该进程对应的脚本为恶意脚本,即意味着进程在执行时,通过非法手段提升了进程的权限。示例性的,终端设备存在提权漏洞,该脚本中存在一段提权代码,在脚本执行的过程中,通过进程执行提权代码,以通过提权漏洞提高了进程的权限,进而执行该权限对应的恶意操作,如远程下载恶意文件(如木马、蠕虫病毒等)、执行非正常服务以侵占设备资源、在终端设备中设置后门等恶意操作。需要说明的是,超级管理员权限(即根权限)高于普通用户权限(即shell权限)高于其他权限。

S807,确定当前进程所属进程组的组长进程,获取调用组长进程的第三主体的第三主体类型;

具体的,进程结构体中至少包括该进程的进程名、PID、UID、父进程的PID以及组长进程的TGID,其中,组长进程是指执行脚本时第一个创建的进程,同时,创建进程组,然后将第一个创建的进程加入该进程组,且此后每个基于组长进程创建的进程都属于这个组长进程对应的进程组。TGID(Thread Group Identification)是组长进程的进程标识符。

若调用当前进程的第一主体类型不是普通用户、调用父进程的第二主体类型也不是普通用户,根据组长进程的TGID确定当前进程的组长进程,然后获取组长进程的进程结构体,获取组长进程的进程名,然后确定该进程名中是否有相应的标注信息,若进程名中存在普通用户对应的标注信息,则调用组长进程的第三主体的第三主体类型为普通用户,若进程名中不存在普通用户对应的标注信息,则调用组长进程的第三主体的第三主体类型为其他主体。

S808,基于第一主体类型和第二主体类型和第三主体类型,确定当前进程对应的脚本是否为恶意脚本。

具体的,若调用组长进程的主体的第三主体类型不为普通用户,则当前进程未检测到恶意行为,即当前进程的调用过程的合法的,判定当前进程对应的脚本不是恶意脚本。进一步来说,由于脚本的执行过程对应至少一个进程,则若调用当前进程的第一主体类型以及调用父进程的第二主体类型均不是普通用户,则判定当前进程为合法进程,当整个脚本执行结束时,若脚本的执行过程中不存在非法进程,则该脚本不是恶意脚本,即是合法脚本。可以理解的是,若当前进程为非法进程,则当前进程对应的脚本为恶意脚本。需要说明的是,在判定脚本为恶意脚本时,立即停止执行恶意脚本,以避免对终端设备造成进一步的危害,同时还可以将恶意脚本标注出来,以在再次执行恶意脚本时,识别出该恶意脚本,并直接拦截其执行。

在本申请实施例中,在执行脚本时,根据被执行脚本对应的当前进程、当前进程的父进程的调用主体、当前进程的组长进程的调用主体、父进程的进程权限来确定对应的脚本是否为恶意脚本,从而在识别出恶意脚本时,避免恶意脚本的继续执行,提高了终端设备的安全性。

请参照图9,为本申请实施例提供了一种脚本检测方法的流程示意图。如图9所示,方法可以包括以下步骤S901~步骤S908。

S901,获取调用当前进程的第一主体的第一主体类型,并获取调用当前进程的父进程的第二主体的第二主体类型。

具体可参见步骤S701,在此不再赘述。

S902,获取当前进程的父进程的第一权限。

具体可参见步骤S805,在此不再赘述。

需要说明的是,若第一主体类型为普通用户,获取当前进程的父进程的第一权限;若第一主体类型不为普通用户,第二主体类型为普通用户,同样获取当前进程的父进程的第一权限。

S903,若第一主体类型为普通用户,第一权限不为根权限,则获取当前进程的第二权限。

具体的,若当前进程的父进程的第一权限为根权限,则结束对当前进程的检测,即由于父进程的权限已经是最高级别的权限,则当前进程无论是何种权限,都是合法的,即使当前进程的权限高于调用该进程的用户拥有的权限,该进程也是合法的。

若当前进程的父进程的第一权限不为根权限,则获取当前进程的第二权限。

S904,若第二权限为普通用户权限或根权限,则确定当前进程对应的脚本为恶意脚本。

具体的,若第二权限为根权限,则判定当前进程对应的脚本为恶意脚本,拦截恶意脚本的运行,示例性的,结束执行当前进程以及恶意脚本对应的各进程,并返回运行错误。同时,将当前进程标记为高危进程,然后基于高危进程以及高危进程对应的恶意脚本的运行情况生成安全事件报告,并将安全事件报告输出。

若第二权限为普通用户权限,则判定当前进程对应的脚本可能为恶意脚本,即当前进程存在一定的安全风险,因此,虽然还是判定了当前进程对应的脚本为恶意脚本,但此时并不会直接拦截当前进程对应的脚本的运行,也不会结束执行当前进程,只是需要将当前进程标记为低危进程,然后基于低危进程以及低危进程对应的脚本的运行情况生成安全事件报告,并将安全事件报告输出,以使相关检测人员根据安全时间报告进一步确定该低危进程的危险级别,并确定该低危进程对应的脚本是否为恶意脚本。

若第二权限为其他权限,则结束对当前进程的检测,判定当前进程为合法进程。

S905,若第一主体类型不为普通用户,第二主体类型为普通用户,第一权限为根权限或普通用户权限,则确定当前进程对应的脚本为恶意脚本。

具体的,若第一主体类型不为普通用户,第二主体类型为普通用户,根据第一权限确定当前进程以及当前进程对应的脚本是否合法。

若父进程的第一权限为根权限,则判定当前进程对应的脚本为恶意脚本,拦截恶意脚本的运行,示例性的,结束执行当前进程以及恶意脚本对应的各进程,并返回运行错误。同时,将当前进程的父进程标记为高危进程,然后基于高危进程以及高危进程对应的恶意脚本的运行情况生成安全事件报告,并将安全事件报告输出。

若父进程的第二权限为普通用户权限,则判定当前进程对应的脚本可能为恶意脚本,即当前进程存在一定的安全风险,因此,虽然还是判定了当前进程对应的脚本为恶意脚本,但此时并不会直接拦截当前进程对应的脚本的运行,也不会结束执行当前进程,只是需要将当前进程的父进程标记为低危进程,然后基于低危进程以及低危进程对应的脚本的运行情况生成安全事件报告,并将安全事件报告输出,以使相关检测人员根据安全时间报告进一步确定该低危进程的危险级别,并确定该低危进程对应的脚本是否为恶意脚本。

若第一权限为其他权限,则结束对当前进程的检测,判定当前进程为合法进程,则当前进程对应的脚本为合法脚本。

S906,确定当前进程所属进程组的组长进程,获取调用组长进程的第三主体的第三主体类型。

具体可参见步骤S807,在此不再赘述。

需要说明的是,若第一主体类型不为普通用户,第二主体类型不为普通用户,才获取调用组长进程的第三主体的第三主体类型。

S907,若第一主体类型不为普通用户,第二主体类型不为普通用户,第三主体类型为普通用户,则获取当前进程的第三权限。

具体的,若第三主体类型不为普通用户,则结束对当前进程的检测,判定当前进程为合法进程。

若第三主体类型为普通用户,则获取当前进程的第三权限。

S908,若第三权限为根权限或普通用户权限,则确定当前进程对应的脚本为恶意脚本。

具体的,若第三权限为根权限,则判定当前进程对应的脚本为恶意脚本,拦截恶意脚本的运行,示例性的,结束执行当前进程以及恶意脚本对应的各进程,并返回运行错误。同时,将当前进程标记为高危进程,然后基于高危进程以及高危进程对应的恶意脚本的运行情况生成安全事件报告,并将安全事件报告输出。

若第三权限为普通用户权限,则判定当前进程对应的脚本可能为恶意脚本,即当前进程存在一定的安全风险,因此,虽然还是判定了当前进程对应的脚本为恶意脚本,但此时并不会直接拦截当前进程对应的脚本的运行,也不会结束执行当前进程,只是需要将当前进程标记为低危进程,然后基于低危进程以及低危进程对应的脚本的运行情况生成安全事件报告,并将安全事件报告输出,以使相关检测人员根据安全时间报告进一步确定该低危进程的危险级别,并确定该低危进程对应的脚本是否为恶意脚本。

若第三权限为其他权限,则结束对当前进程的检测,判定当前进程为合法进程。

在本申请实施例中,在执行脚本时,根据被执行脚本对应的当前进程、当前进程的父进程的调用主体、当前进程的组长进程的调用主体、父进程的进程权限、当前进程的进程权限来进一步确定对应的脚本是否为恶意脚本,从而在识别出恶意脚本时,避免恶意脚本的继续执行,提高了终端设备的安全性。

可选的,终端设备在对执行脚本进行检测时,还可以获取预设文件夹中存储的脚本运行数据,需要说明的是,在第三方应用调用脚本时,将脚本运行数据存储在预设文件夹中,运行数据可以包括执行脚本对应的各进程的进程信息,如进程权限等。当执行脚本对应的当前进程被创建时,将当前进程的进程信息存储在预设文件夹中。终端设备检测到预设文件夹中存在新增进程信息时,获取进程信息中的进程权限,若该进程权限为根权限,判定根权限对应的进程存在恶意行为,该进程对应的脚本为恶意脚本,拦截恶意脚本的运行,示例性的,结束执行该进程以及恶意脚本对应的各进程,并返回运行错误。同时,将该进程标记为高危进程,然后基于高危进程的进程信息以及高危进程对应的恶意脚本的运行情况生成安全事件报告,并将安全事件报告输出。

下面将结合附图10~附图12本申请实施例提供的终端设备进行详细介绍。需要说明的是,附图10~附图12终端设备,用于执行本申请图1~图9所示实施例的方法,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请图1~图9所示的实施例。

请参见图10,为本申请实施例提供了一种终端设备的结构示意图。如图10所示,本申请实施例的终端设备1可以包括:获取模块110、确定模块120。

获取模块110,用于获取调用当前进程的第一主体的第一主体类型,并获取调用当前进程的父进程的第二主体的第二主体类型;

确定模块120,用于基于第一主体类型和第二主体类型,确定当前进程对应的脚本是否为恶意脚本。

在本申请实施例中,在执行脚本时,通过获取被执行脚本对应的当前进程以及当前进程的父进程的调用主体,根据当前进程的调用主体和父进程的调用主体来确定对应的脚本是否为恶意脚本,从而在识别出恶意脚本时,避免恶意脚本的继续执行,提高了终端设备的安全性。

可选的,确定模块120具体用于:

获取当前进程的父进程的第一权限;

基于第一主体类型、第二主体类型和第一权限,确定当前进程对应的脚本是否为恶意脚本。

可选的,确定模块120具体用于:

若第一主体类型为普通用户,第一权限不为根权限,则获取当前进程的第二权限;

若第二权限为普通用户权限或根权限,则确定当前进程对应的脚本为恶意脚本;

若第一主体类型不为普通用户,第二主体类型为普通用户,第一权限为根权限或普通用户权限,则确定当前进程对应的脚本为恶意脚本。

可选的,确定模块120具体用于:

确定当前进程所属进程组的组长进程,获取调用组长进程的第三主体的第三主体类型;

基于第一主体类型和第二主体类型和第三主体类型,确定当前进程对应的脚本是否为恶意脚本。

可选的,确定模块120具体用于:

若第一主体类型不为普通用户,第二主体类型不为普通用户,第三主体类型为普通用户,则获取当前进程的第三权限;

若第三权限为根权限或普通用户权限,则确定当前进程对应的脚本为恶意脚本。

可选的,终端设备1还可以包括:检测模块130,解释模块140,状态确定模块150。

检测模块130,用于若接收到脚本的执行指令,检测脚本的文件格式;

解释模块140,用于若文件格式满足预设格式,通过脚本解释器解释执行脚本。

状态确定模块150,用于获取执行脚本的终端设备的设备状态;

获取模块110,还用于若设备状态为锁定状态,则执行获取调用当前进程的第一主体的第一主体类型的步骤。

请参见图11,为本申请实施例提供了一种终端设备的结构示意图。如图11所示,本申请实施例的终端设备2可以包括:类型获取模块210、状态获取模块220、确定模块230。

类型获取模块210,用于获取调用当前进程的第一主体的第一主体类型,并获取当前进程的父进程的第一权限;

状态获取模块220,用于基于第一主体类型和第一权限,确定当前进程是否为合法状态;

确定模块230,用于若当前进程不是合法状态,则基于当前进程的第二权限确定当前进程对应的脚本是否为恶意脚本。

在本申请实施例中,在执行脚本时,根据被执行脚本对应的当前进程的调用主体、当前进程的父进程的进程权限以及当前进程的进程权限来确定对应的脚本是否为恶意脚本,从而在识别出恶意脚本时,避免恶意脚本的继续执行,提高了终端设备的安全性。

可选的,确定模块230具体用于:

若当前进程的第二权限为普通用户权限或根权限,则确定当前进程对应的脚本为恶意脚本。

可选的,终端设备2还可以包括:第一处理模块240、第二处理模块250。

第一处理模块240,用于若当前进程的第二权限为普通用户权限,则标记当前进程为低危进程,获取当前进程的进程信息,根据进程信息生成第一安全事件报告并输出;

第二处理模块250,用于若当前进程的第二权限为根权限,则标记当前进程为高危进程,获取当前进程的进程信息,根据进程信息生成第二安全事件报告并输出。

可选的,状态获取模块220具体用于:

若第一主体类型为普通用户,第一权限为根权限,确定当前进程是合法状态;

若第一主体类型为普通用户,第一权限不为根权限,确定当前进程不是合法状态。

可选的,状态获取模块220具体用于:

若第一主体类型不为普通用户,获取调用父进程的第二主体的第二主体类型;

第二主体类型不为普通用户,确定当前进程所属进程组的组长进程,获取调用组长进程的第三主体的第三主体类型;

若第三主体类型为普通用户,则确定当前进程不是合法状态。

可选的,终端设备2还可以包括:检测模块260,解释模块270,状态确定模块280。

检测模块260,用于若接收到脚本的执行指令,检测脚本的文件格式;

解释模块270,用于若文件格式满足预设格式,通过脚本解释器解释执行脚本。

状态确定模块280,用于获取执行脚本的终端设备的设备状态;

类型获取模块210,还用于若设备状态为锁定状态,则执行获取调用当前进程的第一主体的第一主体类型的步骤。

请参见图12,为本申请实施例提供了一种终端设备的结构示意图。如图12所示,本申请实施例的终端设备3可以包括:类型获取模块310、权限获取模块320、确定模块330。

类型获取模块310,用于获取调用当前进程的第一主体的第一主体类型,并获取调用当前进程的父进程的第二主体的第二主体类型;

权限获取模块320,用于获取父进程的第一权限;

确定模块330,用于基于第一主体类型、第二主体类型以及第一权限,确定当前进程对应的脚本是否为恶意脚本。

在本申请实施例中,在执行脚本时,根据当前进程的调用主体、父进程的调用主体以及父进程的进程权限来确定对应的脚本是否为恶意脚本,从而在识别出恶意脚本时,避免恶意脚本的继续执行,提高了终端设备的安全性。

可选的,确定模块330具体用于:

若第一主体类型不为普通用户、第二主体类型为普通用户、第一权限为普通用户权限或根权限,确定当前进程对应的脚本为恶意脚本。

可选的,终端设备3还可以包括:第一处理模块340、第二处理模块350。

第一处理模块340,用于若第一主体类型不为普通用户、第二主体类型为普通用户、第一权限为普通用户权限,则标记父进程为低危进程,获取父进程的进程信息,根据进程信息生成第一安全事件报告并输出;

第二处理模块350,用于若第一主体类型不为普通用户、第二主体类型为普通用户、第一权限为根权限,则标记父进程为高危进程,获取父进程的进程信息,根据进程信息生成第二安全事件报告并输出。

可选的,终端设备3还可以包括:检测模块360,解释模块370,状态确定模块380。

检测模块360,用于若接收到脚本的执行指令,检测脚本的文件格式;

解释模块370,用于若文件格式满足预设格式,通过脚本解释器解释执行脚本。

状态确定模块380,用于获取执行脚本的终端设备的设备状态;

类型获取模块310,还用于若设备状态为锁定状态,则执行获取调用当前进程的第一主体的第一权限的步骤。

本申请实施例还提供了一种存储介质,存储介质可以存储有多条程序指令,程序指令适于由处理器加载并执行如上述图1~图9所示实施例的方法步骤,具体执行过程可以参见图1~图9所示实施例的具体说明,在此不进行赘述。

请参见图13,为本申请实施例提供了一种计算机设备的结构示意图。如图13所示,计算机设备1000可以包括:至少一个处理器1001,至少一个存储器1002,至少一个网络接口1003,至少一个输入输出接口1004,至少一个通讯总线1005和至少一个显示单元1006。其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种接口和线路连接整个计算机设备1000内的各个部分,通过执行或执行存储在存储器1002内的指令、程序、代码集或指令集,以及调用存储在存储器1002内的数据,执行终端1000的各种功能和处理数据。存储器1002可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1002可选的还可以是至少一个位于远离前述处理器1001的存储装置。其中,网络接口1003可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。通信总线1005用于实现这些组件之间的连接通信。如图13所示,作为一种终端设备存储介质的存储器1002中可以包括操作系统、网络通信模块、输入输出接口模块以及脚本检测程序。

在图13所示的计算机设备1000中,输入输出接口1004主要用于为用户以及接入设备提供输入的接口,获取用户以及接入设备输入的数据。

在一个实施例中。

处理器1001可以用于调用存储器1002中存储的脚本检测程序,并具体执行以下操作:

获取调用当前进程的第一主体的第一主体类型,并获取调用当前进程的父进程的第二主体的第二主体类型;

基于第一主体类型和第二主体类型,确定当前进程对应的脚本是否为恶意脚本。

可选的,处理器1001在执行基于第一主体类型和第二主体类型,确定当前进程对应的脚本是否为恶意脚本时,具体执行以下操作:

获取当前进程的父进程的第一权限;

基于第一主体类型、第二主体类型和第一权限,确定当前进程对应的脚本是否为恶意脚本。

可选的,处理器1001在执行基于第一主体类型、第二主体类型和第一权限,确定当前进程对应的脚本是否为恶意脚本时,具体执行以下操作:

若第一主体类型为普通用户,第一权限不为根权限,则获取当前进程的第二权限;

若第二权限为普通用户权限或根权限,则确定当前进程对应的脚本为恶意脚本;

若第一主体类型不为普通用户,第二主体类型为普通用户,第一权限为根权限或普通用户权限,则确定当前进程对应的脚本为恶意脚本。

可选的,处理器1001在执行基于第一主体类型和第二主体类型,确定当前进程对应的脚本是否为恶意脚本时,具体执行以下操作:

确定当前进程所属进程组的组长进程,获取调用组长进程的第三主体的第三主体类型;

基于第一主体类型和第二主体类型和第三主体类型,确定当前进程对应的脚本是否为恶意脚本。

可选的,处理器1001在执行基于第一主体类型和第二主体类型和第三主体类型,确定当前进程对应的脚本是否为恶意脚本时,具体执行以下操作:

若第一主体类型不为普通用户,第二主体类型不为普通用户,第三主体类型为普通用户,则获取当前进程的第三权限;

若第三权限为根权限或普通用户权限,则确定当前进程对应的脚本为恶意脚本。

可选的,处理器1001在执行获取调用当前进程的第一主体的第一主体类型之前,还执行以下操作:

若接收到脚本的执行指令,检测脚本的文件格式;

若文件格式满足预设格式,通过脚本解释器解释执行脚本。

可选的,处理器1001在执行获取调用当前进程的第一主体的第一主体类型之前,还执行以下操作:

获取执行脚本的终端设备的设备状态;

若设备状态为锁定状态,则执行获取调用当前进程的第一主体的第一主体类型的步骤。

在本申请实施例中,在执行脚本时,通过获取被执行脚本对应的当前进程以及当前进程的父进程的调用主体,根据当前进程的调用主体和父进程的调用主体来确定对应的脚本是否为恶意脚本,从而在识别出恶意脚本时,避免恶意脚本的继续执行,提高了终端设备的安全性。

在一个实施例中。

处理器1001可以用于调用存储器1002中存储的脚本检测程序,并具体执行以下操作:

获取调用当前进程的第一主体的第一主体类型,并获取当前进程的父进程的第一权限;

基于第一主体类型和第一权限,确定当前进程是否为合法状态;

若当前进程不是合法状态,则基于当前进程的第二权限确定当前进程对应的脚本是否为恶意脚本。

可选的,处理器1001在执行基于当前进程的第二权限确定当前进程对应的脚本是否为恶意脚本时,具体执行以下操作:

若当前进程的第二权限为普通用户权限或根权限,则确定当前进程对应的脚本为恶意脚本。

可选的,处理器1001还可以用于调用存储器1002中存储的脚本检测程序,并具体执行以下操作:

若当前进程的第二权限为普通用户权限,则标记当前进程为低危进程,获取当前进程的进程信息,根据进程信息生成第一安全事件报告并输出;

若当前进程的第二权限为根权限,则标记当前进程为高危进程,获取当前进程的进程信息,根据进程信息生成第二安全事件报告并输出。

可选的,处理器1001在执行基于第一主体类型和第一权限,确定当前进程是否为合法状态时,具体执行以下操作:

若第一主体类型为普通用户,第一权限为根权限,确定当前进程是合法状态;

若第一主体类型为普通用户,第一权限不为根权限,确定当前进程不是合法状态。

可选的,处理器1001在执行基于第一主体类型和第一权限,确定当前进程是否为合法状态时,具体执行以下操作:

若第一主体类型不为普通用户,获取调用父进程的第二主体的第二主体类型;

第二主体类型不为普通用户,确定当前进程所属进程组的组长进程,获取调用组长进程的第三主体的第三主体类型;

若第三主体类型为普通用户,则确定当前进程不是合法状态。

可选的,处理器1001在执行获取调用当前进程的第一主体的第一主体类型之前,还执行以下操作:

若接收到脚本的执行指令,检测脚本的文件格式;

若文件格式满足预设格式,通过脚本解释器解释执行脚本。

可选的,处理器1001在执行获取调用当前进程的第一主体的第一主体类型之前,还执行以下操作:

获取执行脚本的终端设备的设备状态;

若设备状态为锁定状态,则执行获取调用当前进程的第一主体的第一主体类型的步骤。

在本申请实施例中,在执行脚本时,根据被执行脚本对应的当前进程的调用主体、当前进程的父进程的进程权限以及当前进程的进程权限来确定对应的脚本是否为恶意脚本,从而在识别出恶意脚本时,避免恶意脚本的继续执行,提高了终端设备的安全性。

在一个实施例中。

处理器1001可以用于调用存储器1002中存储的脚本检测程序,并具体执行以下操作:

获取调用当前进程的第一主体的第一主体类型,并获取调用当前进程的父进程的第二主体的第二主体类型;

获取父进程的第一权限;

基于第一主体类型、第二主体类型以及第一权限,确定当前进程对应的脚本是否为恶意脚本。

可选的,处理器1001在执行基于第一主体类型、第二主体类型以及第一权限,确定当前进程对应的脚本是否为恶意脚本时,具体执行以下操作:

若第一主体类型不为普通用户、第二主体类型为普通用户、第一权限为普通用户权限或根权限,确定当前进程对应的脚本为恶意脚本。

可选的,处理器1001还可以用于调用存储器1002中存储的脚本检测程序,并具体执行以下操作:

若第一主体类型不为普通用户、第二主体类型为普通用户、第一权限为普通用户权限,则标记父进程为低危进程,获取父进程的进程信息,根据进程信息生成第一安全事件报告并输出;

若第一主体类型不为普通用户、第二主体类型为普通用户、第一权限为根权限,则标记父进程为高危进程,获取父进程的进程信息,根据进程信息生成第二安全事件报告并输出。

可选的,处理器1001在执行获取调用当前进程的第一主体的第一主体类型之前,还执行以下操作:

若接收到脚本的执行指令,检测脚本的文件格式;

若文件格式满足预设格式,通过脚本解释器解释执行脚本。

可选的,处理器1001在执行获取调用当前进程的第一主体的第一主体类型之前,还执行以下操作:

获取执行脚本的终端设备的设备状态;

若设备状态为锁定状态,则执行获取调用当前进程的第一主体的第一权限的步骤。

在本申请实施例中,在执行脚本时,根据当前进程的调用主体、父进程的调用主体以及父进程的进程权限来确定对应的脚本是否为恶意脚本,从而在识别出恶意脚本时,避免恶意脚本的继续执行,提高了终端设备的安全性。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上为对本申请所提供的一种脚本检测方法、终端设备、存储介质及设备的描述,对于本领域的技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:一种边缘云节点与终端用户安全管理方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类