[发明专利]脚本混淆检测方法、装置、计算机设备和存储介质有效
申请号: | 202010271728.3 | 申请日: | 2020-04-09 |
公开(公告)号: | CN111475809B | 公开(公告)日: | 2023-10-20 |
发明(设计)人: | 熊春霖;宋哲;王昆;陈焰;阮琳琦 | 申请(专利权)人: | 杭州奇盾信息技术有限公司;广州奇盾信息技术有限公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 杭州合信专利代理事务所(普通合伙) 33337 | 代理人: | 刘静静 |
地址: | 310000 浙江省杭*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 脚本 混淆 检测 方法 装置 计算机 设备 存储 介质 | ||
本申请涉及一种脚本混淆检测方法、装置、计算机设备和存储介质。所述脚本混淆检测方法基于对混淆本身的研究和归纳,将待检测脚本抽象为抽象语法树,然后确定顶层单独节点以及各个顶层单独节点的节点权重,并判断抽象语法树中各个顶层单独节点的混淆是否被混淆,并根据所有被混淆的顶层单独节点的节点权重计算待待检测脚本的混淆分数以判断该待检测脚本是否混淆。与现有基于机器学习的脚本混淆检测方法相比,不受学习方法和学习样本影响,能够检测未知混淆技术。
技术领域
本申请涉及信息安全技术领域,特别是涉及一种脚本混淆检测方法、装置、计算机设备和存储介质。
背景技术
在网络安全领域,脚本攻击是常见的攻击手段之一。包括JavaScript、VBScript、PowerShell(三种脚本语言的名称)在内的多种脚本语言具有功能强大、易于执行等优点,被广泛用于各式网络攻击中。近91%的成功攻击都涉及攻击脚本。为了应对此类威胁,静态检测方法被广泛采用。静态特征多通过手工或者机器学习的方法提取。
然而这些脚本语言都有动态执行的能力,即真实代码可以在被执行的过程中动态生成。该特点致使攻击脚本的静态特征容易改变,针对静态特征的检测手段容易被绕过,使得利用脚本的攻击难以被识别和防御,而这种单纯改变静态特征的方法被称为字符层混淆(区别于逻辑混淆,且下文简称字符层混淆为混淆)。同时,合法脚本多不会采用混淆方法;而解除脚本混淆的首步就是检测混淆。因此,检测脚本是否被混淆成为亟需解决的问题。
PSDEM人工地分析了多种PowerShell混淆方法,并针对不同的混淆方法提出了对应的检测方案,但该方法不具备普适性,且检测的误报率较高;JSDES针对JavaScript提出了面向函数的混淆检测方法,显然其不具备检测函数内混淆的能力,因此同样不具备普适性;公开号为CN110750789A的专利申请提出了基于抽象语法树的混淆检测方法,然而其方法依赖于机器学习,具有样本量局限且无法适用于未知混淆检测的问题。
如上所述,提供一种普适性高、检测可靠性高的脚本混淆检测方法成为亟待解决的问题。
在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
针对现有的脚本混淆方法普适性差、检测效率低的问题,本发明提供了一种解混淆方法、装置、计算机设备和存储介质。
一种脚本混淆检测方法,包括如下步骤:
生成待检测脚本的抽象语法树;
计算所述抽象语法树中各个节点的权重;
确定抽象语法树中顶层单独节点,所述顶层单独节点为父节点和祖节点均对应程序片段且自身不对应程序片段的节点;
根据各个顶层单独节点的子节点是否对应动态执行命令以及子树中节点的类型判断各个顶层单独节点是否被混淆;
根据所有被混淆的顶层单独节点的节点权重计算待检测脚本的混淆分数,并根据计算得到的混淆分数判断所述待检测脚本是否混淆。
另一种脚本混淆检测方法,包括如下步骤:
生成待检测脚本的抽象语法树;
遍历所述的抽象语法树,在遍历过程中,针对每一个被遍历的节点进行如下操作:
计算该节点在所述抽象语法树中的权重;
根据该节点的父节点和祖节点对应的语句类型判断当前节点是否为顶层单独节点,所述顶层单独节点为父节点和祖节点均对应程序片段且自身不对应程序片段的节点;
根据判断结果进行如下操作:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州奇盾信息技术有限公司;广州奇盾信息技术有限公司,未经杭州奇盾信息技术有限公司;广州奇盾信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010271728.3/2.html,转载请声明来源钻瓜专利网。