WebShell检测方法及装置制造方法及图纸

技术编号:15749903 阅读:251 留言:0更新日期:2017-07-03 15:46
本申请提供一种WebShell检测方法及装置,该方法包括:在获得目标脚本文件后,获得所述目标脚本文件的信息熵;生成所述目标脚本文件的抽象语法树AST;获得所述AST中危险函数的占比值;对所述信息熵及所述危险函数的占比值进行加权求和,得到所述目标脚本文件的第一权值;在所述第一权值大于预设第一阈值的情况下,确定所述目标脚本文件为WebShell。由此可见,本申请技术方案可以对脚本文件进行语法分析,得到该脚本文件的信息熵及危险函数的占比值,之后通过信息熵及占比值来检测该脚本文件是否为WebShell,对于未知的WebShell,仍可以识别出,因此提高了检测的准确率。

【技术实现步骤摘要】
WebShell检测方法及装置
本申请实施例涉及信息安全
,特别涉及一种WebShell检测方法及装置。
技术介绍
WebShell是一种以asp、php、jsp或者cgi等网页文件形式存在的命令执行环境,也可以将WebShell称作一种网页后门,它是黑客入侵网站服务器的脚本攻击工具。目前,黑客在入侵了一个网站后,通常会将这些asp或php等后门文件与网站服务器Web目录下正常的网页文件混在一起,然后通过浏览器来访问这些asp或php等后门文件,得到一个命令执行环境,以达到控制网站服务器的目的。因此,检测WebShell对于保证网站安全十分重要。现有的WebShell检测技术中,是通过检测脚本文件中是否存在预先定义的攻击特征,来判断该脚本文件是否为WebShell,但是现有的WebShell检测技术仅能识别已知的WebShell,对于未知的WebShell,则无法识别,导致检测准确率较低。
技术实现思路
为了解决上述问题,本申请实施例提供一种WebShell检测方法及装置。具体地,本申请实施例是通过如下技术方案实现的:根据本申请实施例的第一方面,提供一种WebShell检测方法,所述方法包括:在获得目标脚本文件后,获得所述目标脚本文件的信息熵;生成所述目标脚本文件的抽象语法树AST;获得所述AST中危险函数的占比值,其中,所述危险函数至少包括:用于代码执行的函数表达式或函数语句块、用于文件操作的函数表达式或函数语句块,及用于系统调用的函数表达式及函数语句块;对所述信息熵及所述危险函数的占比值进行加权求和,得到所述目标脚本文件的第一权值;在所述第一权值大于预设第一阈值的情况下,确定所述目标脚本文件为WebShell。本申请实施例中,所述生成所述目标脚本文件的抽象语法树AST,包括:对所述目标脚本文件进行词法分析和语法分析,得到包含所述目标脚本文件的完整信息的AST。本申请实施例中,所述生成所述目标脚本文件的抽象语法树AST,包括:对所述目标脚本文件进行词法分析和语法分析,得到包含所述目标脚本文件的完整信息的AST;使用预设的消除AST中冗余信息的算法,对所述包含所述目标脚本文件的完整信息的AST进行处理,得到消除冗余信息后的AST。本申请实施例中,所述方法还包括:在所述第一权值大于预设第二阈值且小于所述预设第一阈值的情况下,将所述目标脚本文件放入沙盘运行,得到所述目标脚本文件中所有函数的运行行为,其中,所述预设第一阈值大于所述预设第二阈值;根据预设的危险行为确定规则,确定所述运行行为中的危险行为,并计算所述危险行为的占比值;对所述第一权值及所述危险行为的占比值进行加权求和,得到所述目标脚本文件的第二权值;在所述第二权值大于所述预设第一阈值的情况下,确定所述目标脚本文件为WebShell。本申请实施例中,在所述获得所述目标脚本文件的信息熵之前,还包括:判断所述目标脚本文件中是否包含预设的攻击特征;若所述目标脚本文件中包含预设的攻击特征,则确定所述目标脚本文件为WebShell;若所述目标脚本文件中不包含预设的攻击特征,则执行所述获得所述目标脚本文件的信息熵的步骤。根据本申请实施例的第二方面,提供一种WebShell检测装置,所述装置包括:信息熵获得模块,用于在获得目标脚本文件后,获得所述目标脚本文件的信息熵;AST生成模块,用于生成所述目标脚本文件的抽象语法树AST;危险函数占比值获得模块,用于获得所述AST生成模块生成的AST中危险函数的占比值,其中,所述危险函数至少包括:用于代码执行的函数表达式或函数语句块、用于文件操作的函数表达式或函数语句块,及用于系统调用的函数表达式及函数语句块;第一权值获得模块,用于对所述信息熵获得模块获得的信息熵及所述危险函数占比值获得模块获得的危险函数的占比值进行加权求和,得到所述目标脚本文件的第一权值;第一确定模块,用于在所述第一权值获得模块获得的第一权值大于预设第一阈值的情况下,确定所述目标脚本文件为WebShell。本申请实施例中,所述AST生成模块,包括:第一AST生成子模块,用于对所述目标脚本文件进行词法分析和语法分析,得到包含所述目标脚本文件的完整信息的AST。本申请实施例中,所述AST生成模块,包括:第二AST生成子模块,用于对所述目标脚本文件进行词法分析和语法分析,得到包含所述目标脚本文件的完整信息的AST;第三AST生成子模块,用于使用预设的消除AST中冗余信息的算法,对所述第二AST生成子模块生成的包含所述目标脚本文件的完整信息的AST进行处理,得到消除冗余信息后的AST。本申请实施例中,所述装置还包括:运行行为获得模块,用于在所述第一权值获得模块获得的第一权值大于预设第二阈值且小于所述预设第一阈值的情况下,将所述目标脚本文件放入沙盘运行,得到所述目标脚本文件中所有函数的运行行为,其中,所述预设第一阈值大于所述预设第二阈值;危险行为占比值获得模块,用于根据预设的危险行为确定规则,确定所述运行行为中的危险行为,并计算所述危险行为的占比值;第二权值获得模块,用于对所述第一权值获得模块获得的第一权值及所述危险行为占比值获得模块获得的危险行为的占比值进行加权求和,得到所述目标脚本文件的第二权值;第一确定模块,用于在所述第二权值获得模块获得的第二权值大于所述预设第一阈值的情况下,确定所述目标脚本文件为WebShell。本申请实施例中,所述装置还包括:判断模块,用于在获得目标脚本文件后,判断所述目标脚本文件中是否包含预设的攻击特征,并在判断结果为否的情况下,触发所述信息熵获得模块执行所述获得所述目标脚本文件的信息熵的操作;第三确定模块,用于在所述判断模块的判断结果为是的情况下,确定所述目标脚本文件为WebShell。本申请实施例可以对脚本文件进行语法分析,得到该脚本文件的信息熵及危险函数的占比值,之后通过信息熵及占比值来检测该脚本文件是否为WebShell,对于未知的WebShell,仍可以识别出,因此提高了检测的准确率。应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请实施例。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请实施例,并与说明书一起用于解释本专利技术的原理。图1是本申请根据一示例性实施例示出的一种WebShell检测方法的流程图;图2是本申请根据一示例性实施例示出的另一种WebShell检测方法的流程图;图3是本申请根据一示例性实施例示出的另一种WebShell检测方法的流程图;图4是本申请根据一示例性实施例示出的一种WebShell检测装置的框图;图5是本申请根据一示例性实施例示出的另一种WebShell检测装置的框图;图6是本申请根据一示例性实施例示出的另一种WebShell检测装置的框图;图7是本申请根据一示例性实施例示出的另一种WebShell检测装置的框图;图8是本申请根据一示例性实施例示出的另一种WebShell检测装置的框图;图9为本申请根据一示例性实施例示出的一种WebShell检测装置所在网络设备的一种硬件结构图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例本文档来自技高网...
WebShell检测方法及装置

【技术保护点】
一种WebShell检测方法,其特征在于,所述方法包括:在获得目标脚本文件后,获得所述目标脚本文件的信息熵;生成所述目标脚本文件的抽象语法树AST;获得所述AST中危险函数的占比值,其中,所述危险函数至少包括:用于代码执行的函数表达式或函数语句块、用于文件操作的函数表达式或函数语句块,及用于系统调用的函数表达式及函数语句块;对所述信息熵及所述危险函数的占比值进行加权求和,得到所述目标脚本文件的第一权值;在所述第一权值大于预设第一阈值的情况下,确定所述目标脚本文件为WebShell。

【技术特征摘要】
1.一种WebShell检测方法,其特征在于,所述方法包括:在获得目标脚本文件后,获得所述目标脚本文件的信息熵;生成所述目标脚本文件的抽象语法树AST;获得所述AST中危险函数的占比值,其中,所述危险函数至少包括:用于代码执行的函数表达式或函数语句块、用于文件操作的函数表达式或函数语句块,及用于系统调用的函数表达式及函数语句块;对所述信息熵及所述危险函数的占比值进行加权求和,得到所述目标脚本文件的第一权值;在所述第一权值大于预设第一阈值的情况下,确定所述目标脚本文件为WebShell。2.根据权利要求1所述的方法,其特征在于,所述生成所述目标脚本文件的抽象语法树AST,包括:对所述目标脚本文件进行词法分析和语法分析,得到包含所述目标脚本文件的完整信息的AST。3.根据权利要求1所述的方法,其特征在于,所述生成所述目标脚本文件的抽象语法树AST,包括:对所述目标脚本文件进行词法分析和语法分析,得到包含所述目标脚本文件的完整信息的AST;使用预设的消除AST中冗余信息的算法,对所述包含所述目标脚本文件的完整信息的AST进行处理,得到消除冗余信息后的AST。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述第一权值大于预设第二阈值且小于所述预设第一阈值的情况下,将所述目标脚本文件放入沙盘运行,得到所述目标脚本文件中所有函数的运行行为,其中,所述预设第一阈值大于所述预设第二阈值;根据预设的危险行为确定规则,确定所述运行行为中的危险行为,并计算所述危险行为的占比值;对所述第一权值及所述危险行为的占比值进行加权求和,得到所述目标脚本文件的第二权值;在所述第二权值大于所述预设第一阈值的情况下,确定所述目标脚本文件为WebShell。5.根据权利要求1所述的方法,其特征在于,在所述获得所述目标脚本文件的信息熵之前,还包括:判断所述目标脚本文件中是否包含预设的攻击特征;若所述目标脚本文件中包含预设的攻击特征,则确定所述目标脚本文件为WebShell;若所述目标脚本文件中不包含预设的攻击特征,则执行所述获得所述目标脚本文件的信息熵的步骤。6.一种WebShell检测装置,其特征在于,所述装置包括:信息熵获得模块,用于在获得目标脚本文件后,获得所述目标脚本文件的信息熵;AST生成模块,用于生成所述目标脚本文件的抽象语法树AST;危险函数占比值获得模块,用于获得所述A...

【专利技术属性】
技术研发人员:陈文忠
申请(专利权)人:杭州迪普科技股份有限公司
类型:发明
国别省市:浙江,33

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

1