脚本检测方法、装置及计算机程序产品制造方法及图纸

技术编号:33121535 阅读:10 留言:0更新日期:2022-04-17 00:21
本公开实施例公开了一种脚本检测方法、装置及计算机程序产品,所述方法包括:执行被检测脚本;检测所述被检测脚本在执行过程中函数的创建及调用信息;在所述被检测脚本执行完成后,基于所述函数的创建及调用信息确定被创建后未被调用过的函数;调用未被调用过的所述函数,以便基于所述被检测脚本的执行行为确定所述被检测脚本是否为恶意脚本。该技术方案能够保证被检测脚本中的所有函数都会被调用执行,能够更加全面的检测整个脚本,防止被检测脚本中隐藏包含恶意代码的函数从而绕过脚本检测的情况发生。的情况发生。的情况发生。

【技术实现步骤摘要】
脚本检测方法、装置及计算机程序产品


[0001]本公开涉及安全
,具体涉及一种脚本检测方法、装置及计算机程序产品。

技术介绍

[0002]脚本(Script)是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,更具体来说,脚本是不需要编译、在运行时通过解释器解释执行的程序。在黑灰色产业链中,黑客可以在服务器系统上通过执行恶意脚本来损害服务器系统的安全性,如下载并安装木马病毒、监听用户数据、侵占系统资源等,导致服务器系统的安全性较差。
[0003]鉴于此,在脚本运行之前,服务器系统通常会对脚本进行检测。然后,由于脚本语言构造较为灵活,黑客可以构造恶意代码并将其隐藏脚本的部分函数中,并且在动态检测此类脚本的时候,不触发包含该恶意代码的函数的执行,从而导致脚本的动态检测无法获取该脚本中恶意代码的行为特征。
[0004]针对上述的问题,需要提出一种解决方案,以便能够检测出包含上述恶意代码的脚本,提高恶意脚本检测的准确率。

技术实现思路

[0005]本公开实施例提供一种脚本检测方法、装置及计算机程序产品。
[0006]第一方面,本公开实施例中提供了一种脚本检测方法,其中,包括:
[0007]执行被检测脚本;
[0008]检测所述被检测脚本在执行过程中函数的创建及调用信息;
[0009]在所述被检测脚本执行完成后,基于所述函数的创建及调用信息确定被创建后未被调用过的函数;
[0010]调用未被调用过的所述函数,以便基于所述被检测脚本的执行行为确定所述被检测脚本是否为恶意脚本。
[0011]进一步地,检测所述被检测脚本在执行过程中函数的创建及调用信息,包括:
[0012]在检测到所述被检测脚本在运行过程中新创建了函数后,将新创建的函数信息加入未调用函数列表;
[0013]在检测到所述未调用函数列表中的函数被调用后,将被调用的函数信息从所述未调用函数列表中删除。
[0014]进一步地,所述方法还包括:
[0015]在检测到所述被检测脚本在运行过程中新创建了函数后,增加新创建的所述函数在所述被检测脚本的执行环境中的被引用计数。
[0016]进一步地,调用未被调用过的所述函数,以便基于所述被检测脚本的执行行为确定所述被检测脚本是否为恶意脚本,包括:
[0017]构建创建后未被调用函数所对应的函数参数;
[0018]基于所有构建的函数参数在所述被检测脚本的执行环境中调用所述创建后未被
调用函数。
[0019]进一步地,所述构建创建后未被调用函数所对应的函数参数,包括:
[0020]基于所述创建后未被调用函数的声明信息确定所述创建后未被调用函数对应的函数参数的个数以及数据类型;
[0021]基于与所述函数参数的个数以及数据类型对应的参数默认值构建所述函数参数。
[0022]进一步地,所述方法还包括:
[0023]检测所述被检测脚本中的函数在执行过程中的执行行为;
[0024]基于所述执行行为确定所述被检测脚本是否为恶意脚本。
[0025]进一步地,检测所述被检测脚本在执行过程中函数的创建及调用信息,包括:
[0026]通过对运行所述被检测脚本的解释器进行修改,以便所述解释器在运行所述被检测脚本的过程中,检测所述函数的创建及调用信息。
[0027]第二方面,本公开实施例中提供了一种脚本检测方法,其中,包括:
[0028]获取被检测脚本;
[0029]调用预先部署的脚本检测接口,以检测所述被检测脚本;其中,该脚本检测接口在虚拟机环境中执行所述被检测脚本,并检测所述被检测脚本在执行过程中函数的创建及调用信息,在所述被检测脚本执行完成后,基于所述函数的创建及调用信息确定被创建后未被调用过的函数,以及调用未被调用过的所述函数,以便基于所述被检测脚本的执行行为确定所述被检测脚本是否为恶意脚本;
[0030]输出所述被检测脚本的检测结果。
[0031]第三方面,本公开实施例中提供了一种脚本检测装置,其中,包括:
[0032]执行模块,被配置为执行被检测脚本;
[0033]第一检测模块,被配置为检测所述被检测脚本在执行过程中函数的创建及调用信息;
[0034]第一确定模块,被配置为在所述被检测脚本执行完成后,基于所述函数的创建及调用信息确定被创建后未被调用过的函数;
[0035]第一调用模块,被配置为调用未被调用过的所述函数,以便基于所述被检测脚本的执行行为确定所述被检测脚本是否为恶意脚本。
[0036]所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
[0037]在一个可能的设计中,上述装置的结构中包括存储器和处理器,所述存储器用于存储一条或多条支持上述装置执行上述对应方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。上述装置还可以包括通信接口,用于上述装置与其他设备或通信网络通信。
[0038]第四方面,本公开实施例提供了一种电子设备,包括存储器、处理器以及存储在存储器上的计算机程序,其中,所述处理器执行所述计算机程序以实现上述任一方面所述的方法。
[0039]第五方面,本公开实施例提供了一种计算机可读存储介质,用于存储上述任一装置所用的计算机指令,该计算机指令被处理器执行时用于实现上述任一方面所述的方法。
[0040]第六方面,本公开实施例提供了一种计算机程序产品,其包含计算机指令,该计算
机指令被处理器执行时用于实现上述任一方面所述的方法。
[0041]本公开实施例提供的技术方案可以包括以下有益效果:
[0042]本公开实施例针对恶意脚本的动态检测过程,在执行被检测脚本时检测所创建的函数以及函数的调用信息,并在被检测脚本执行完成后,基于所创建的函数以及函数的调用信息判断被检测脚本中是否存在未被调用过的函数,并调用至少一次未被调用的函数,从而基于被检测脚本中每个函数的执行行为确定该被检测脚本是否为恶意脚本。通过本公开实施例,可以保证被检测脚本中的所有函数都会被调用执行,能够更加全面的检测整个脚本,防止被检测脚本中隐藏包含恶意代码的函数从而绕过脚本检测的情况发生。
[0043]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
[0044]结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。在附图中:
[0045]图1示出根据本公开一实施方式的脚本检测方法的流程图;
[0046]图2示出根据本公开一实施方式中脚本检测的实现流程示意图;
[0047]图3示出根据本公开另一实施方式的脚本检测方法的流程图;
[0048]图4示出根据本公开一实施方式中脚本检测的应用场景示意图;
[0049]图5示出根据本公开一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种脚本检测方法,其中,包括:执行被检测脚本;检测所述被检测脚本在执行过程中函数的创建及调用信息;在所述被检测脚本执行完成后,基于所述函数的创建及调用信息确定被创建后未被调用过的函数;调用未被调用过的所述函数,以便基于所述被检测脚本的执行行为确定所述被检测脚本是否为恶意脚本。2.根据权利要求1所述的方法,其中,检测所述被检测脚本在执行过程中函数的创建及调用信息,包括:在检测到所述被检测脚本在运行过程中新创建了函数后,将新创建的函数信息加入未调用函数列表;在检测到所述未调用函数列表中的函数被调用后,将被调用的函数信息从所述未调用函数列表中删除。3.根据权利要求2所述的方法,其中,所述方法还包括:在检测到所述被检测脚本在运行过程中新创建了函数后,增加新创建的所述函数在所述被检测脚本的执行环境中的被引用计数。4.根据权利要求1

3任一项所述的方法,其中,调用未被调用过的所述函数,以便基于所述被检测脚本的执行行为确定所述被检测脚本是否为恶意脚本,包括:构建创建后未被调用函数所对应的函数参数;基于所有构建的函数参数在所述被检测脚本的执行环境中调用所述创建后未被调用函数。5.根据权利要求4所述的方法,其中,所述构建创建后未被调用函数所对应的函数参数,包括:基于所述创建后未被调用函数的声明信息确定所述创建后未被调用函数对应的函数参数的个数以及数据类型;基于与所述函数参数的个数以及数据类型对应的参数默认值构建所述函数参数。6.根据权利要求1

3、5任一项所述的方法...

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

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

1