恶意脚本的检测方法、设备、介质及产品技术

技术编号:34746365 阅读:14 留言:0更新日期:2022-08-31 18:40
本申请提供恶意脚本的检测方法、设备、介质及产品,该方法包括:获取待检测的目标脚本;确定运行目标脚本所需要的线程,并创建与线程相对应的协程;采用协程模拟线程的技术执行目标脚本,并确定目标脚本的执行结果;根据执行结果确定目标脚本是否为恶意脚本。可以应用于检测虚拟云服务中的恶意脚本,由于创建与运行目标脚本所需要线程相对应的协程,并采用协程模拟线程去执行目标脚本,而协程的执行由用户态控制,且协程的创建及切换过程占用的内存和计算资源大幅度减少,所以有效提高了对目标脚本的执行效率,进而可以有效减少对目标脚本进行检测占用的内存和计算资源并提高检测效率。行检测占用的内存和计算资源并提高检测效率。行检测占用的内存和计算资源并提高检测效率。

【技术实现步骤摘要】
恶意脚本的检测方法、设备、介质及产品


[0001]本申请涉及云计算技术,尤其涉及一种恶意脚本的检测方法、设备、介质及产品。

技术介绍

[0002]恶意脚本是指在云端、终端或其他计算机设备上执行恶意操作的脚本,例如典型的恶意脚本Webshell,能够获得服务器的执行操作权限,最终达到控制服务器的目的。恶意脚本在运行后还会影响到数据或程序的安全性,所以恶意脚本的检测是十分必要的。
[0003]为了在对恶意脚本进行检测时保证数据或程序的安全性,采用模拟执行技术来执行待检测的目标脚本的目标脚本,以达到检测的目的。
[0004]但在现有技术中,通常通过运行执行所述目标脚本所需要的线程来模拟目标脚本的执行效果。但是由于线程的创建,切换过程都需要在操作系统内核态完成,所以执行目标脚本所需要的线程会导致占用的内存和计算资源较高,且执行效率较低,进而导致对恶意脚本进行检测时占用的内存和计算资源较高,且检测效率较低。

技术实现思路

[0005]本申请提供一种恶意脚本的检测方法、设备、介质及产品,用以解决现有技术中通过执行目标脚本所需要的线程来模拟目标脚本的目标脚本的执行效果,导致对恶意脚本进行检测时占用的内存和计算资源较高,且检测效率较低的问题。
[0006]第一方面,本申请实施例提供一种恶意脚本的检测方法,包括:
[0007]获取待检测的目标脚本;
[0008]确定运行所述目标脚本所需要的线程,并创建与所述线程相对应的协程;
[0009]采用协程模拟线程的技术执行所述目标脚本,并确定目标脚本的执行结果;
[0010]根据所述执行结果确定所述目标脚本是否为恶意脚本。
[0011]第二方面,本申请实施例提供一种恶意脚本的检测装置,包括:
[0012]获取模块,用于获取待检测的目标脚本;
[0013]创建模块,用于确定运行所述目标脚本所需要的线程,并创建与所述线程相对应的协程;
[0014]模拟执行模块,用于采用协程模拟线程的技术执行所述目标脚本,并确定目标脚本的执行结果;
[0015]检测模块,用于根据所述执行结果确定所述目标脚本是否为恶意脚本。
[0016]第三方面,本申请实施例提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
[0017]所述存储器存储计算机执行指令;
[0018]所述处理器执行所述存储器存储的计算机执行指令,以实现如第一方面所述的方法。
[0019]第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介
质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面所述的方法。
[0020]第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的方法。
[0021]本申请提供一种恶意脚本的检测方法、设备、介质及产品,获取待检测的目标脚本;确定运行目标脚本所需要的线程,并创建与线程相对应的协程;采用协程模拟线程的技术执行目标脚本,并确定目标脚本的执行结果;根据执行结果确定目标脚本是否为恶意脚本。由于创建与运行目标脚本所需要线程相对应的协程,并采用协程模拟线程去执行目标脚本,而协程的执行由用户态控制,且协程的创建及切换过程相对于线程的创建及切换过程占用的内存和计算资源大幅度减少,所以有效提高了对目标脚本的执行效率,进而可以有效减少对目标脚本进行检测占用的内存和计算资源,并提高检测效率。
附图说明
[0022]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
[0023]图1为本申请实施例提供的应用场景示意图;
[0024]图2为本申请实施例一提供的一种恶意脚本的检测方法的流程图;
[0025]图3为本申请实施例三提供的一种恶意脚本的检测方法的流程图;
[0026]图4为本申请实施例四提供的一种恶意脚本的检测方法的流程图;
[0027]图5为本申请实施例提供的协程切换示意图;
[0028]图6为本申请实施例六提供的恶意脚本的检测装置的结构示意图;
[0029]图7为本申请实施例七提供的电子设备的结构示意图。
[0030]通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
[0031]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的元素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与本申请的一些方面相一致的装置和方法的例子。
[0032]术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
[0033]为了清楚理解本申请的技术方案,首先对现有技术的方案进行详细介绍。
[0034]目前,黑客常使用恶意脚本Webshell获得对服务器的执行操作权限,比如执行系统命令、窃取用户数据、删除web页面、修改主页等。
[0035]具体地,黑客在系统中上传一个起到连接外界的作用的Webshell,使黑客可以插入更加精准的恶意脚本,执行他们所需要的指令。或者,Webshell可以带有数据库或文件浏
览器,使黑客可以查看入侵系统的代码和数据。
[0036]恶意脚本在运行后会影响到数据或程序的安全性,所以恶意脚本的检测是十分必要的。由于线程被操作系统内核所管理,因此运行目标脚本所需要的线程占用的内存和计算资源较高且效率较低,进一步地,在现有技术中通过运行执行目标脚本所需要的线程来模拟目标脚本的执行效果,导致对目标脚本进行检测占用的内存和计算资源较高,且执行效率较低的问题。
[0037]示例性地,若执行目标脚本中的目标脚本需要多线程来执行,那么为了能够准确检测出目标脚本是否为恶意脚本,需要采用模拟执行技术创建多线程并在执行目标脚本时通过多线程进行切换去执行该目标脚本。由于线程的创建,切换过程都需要在操作系统的内核态完成,线程的调度需要在内核态与用户态之间的频繁切入切出,因此采用多线程去执行该目标脚本的效率较低。而每个线程需要在内存中分配栈空间,一般为1兆到8兆左右,并且创建一个线程时中央处理器(简称:CPU)需要执行大量用于切换的函数,会占用大量内存和计算资源,所以导致对目标脚本进行检测占用的内存和计算资源较高,且执行效率较低。
[0038]而协程是一种用户态的轻量级线程,协程的调度完全由用户控制,协程中不存在同时写变量冲突,也就不需要用来守卫关键区块的同步性原语,比如互斥锁、信号量等,并且不需要来自操作本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种恶意脚本的检测方法,其特征在于,包括:获取待检测的目标脚本;确定运行所述目标脚本所需要的线程,并创建与所述线程相对应的协程;采用协程模拟线程的技术执行所述目标脚本,并确定目标脚本的执行结果;根据所述执行结果确定所述目标脚本是否为恶意脚本。2.根据权利要求1所述的方法,其特征在于,线程数量为一个,所述创建与所述线程相对应的协程,包括:获取恶意脚本检测引擎对应的线程;在所述对应的线程中创建主协程对应的主协程结构,并将所述对应的线程的栈空间分配给所述主协程,以完成所述主协程的创建。3.根据权利要求2所述的方法,其特征在于,线程数量为多个,所述创建与所述线程相对应的协程,还包括:在所述对应的线程中创建至少一个子协程对应的子协程结构,并为各所述子协程分配对应的栈空间,以完成各所述子协程的创建。4.根据权利要求1所述的方法,其特征在于,所述采用协程模拟线程的技术执行所述目标脚本,包括:采用主协程模拟主线程执行所述目标脚本;若监测到目标脚本执行到通过主子线程切换采用至少一个子线程继续执行后续目标脚本,则采用主子协程切换模拟主子线程切换,将主协程切换到当前目标子协程,并采用至少当前目标子协程继续执行后续目标脚本。5.根据权利要求4所述的方法,其特征在于,所述主协程切换到当前目标子协程,包括:在用户态将主协程对应的上下文信息切换到当前目标子协程对应的上下文信息,以完成主协程到当前目标子协程的切换。6.根据权利要求4所述的方法,其特征在于,所述采用至少当前目标子协程继续执行后续目标脚本,包括:采用当前目标子协程模拟当前目标子线程执行所述目标脚本;若监测到目标脚本执行到通过子线程之间切换采用下一目标子线程继续执行后续目标脚本,则采用子协程之间切换模拟子线程之间切换,将当前目标子协程切换到下一目标子协程,并采用下一目标子协程继续执行后续目标脚本;将下一目标子协程更新为当前目标子协程,并继续监测目标脚本是否执行到通过子线程之间切换采用下一目标子线程继续执行后续目标脚本;若是,则执行采用子协程之间切换模拟子线程之间切换的步骤;若否,则继续执行目标脚本,直到执行到通过子主线程切换采用主线程继续执行后续...

【专利技术属性】
技术研发人员:杨健雄
申请(专利权)人:阿里云计算有限公司
类型:发明
国别省市:

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

1