[发明专利]一种Webshell检测方法、装置、存储介质和设备有效
申请号: | 202010296810.1 | 申请日: | 2020-04-15 |
公开(公告)号: | CN111523118B | 公开(公告)日: | 2021-04-06 |
发明(设计)人: | 陈浩;何树果;朱震;程度;张福 | 申请(专利权)人: | 北京升鑫网络科技有限公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 北京谱帆知识产权代理有限公司 11944 | 代理人: | 魏敬宣 |
地址: | 100085 北京市大兴区北京经济*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 webshell 检测 方法 装置 存储 介质 设备 | ||
1.一种Webshell检测方法,其特征在于,所述方法包括:
将匹配预设威胁输入库的待检测PHP代码中的变量和函数标识为外部输入标记后,并根据带有所述外部输入标记的所述变量和所述函数,将编译所述待检测PHP代码得到的对应的操作码Opcode执行所得到的结果标识为所述外部输入标记;
执行所述Opcode代码,并根据当前执行过程将所述外部输入标记进行传递,得到处理结果,所述处理结果包括带有所述外部输入标记的变量的值和/或函数的返回值;
若所述处理结果中的所述变量的值和/或所述函数的返回值带有所述外部输入标记,从所述处理结果中所提取的函数匹配预设威胁函数库中的威胁函数且包含威胁参数时,则判定所述待检测PHP代码是Webshell,其中,所述威胁函数包括命令执行函数、回调函数、文件操作函数和数据库操作函数,所述威胁参数包括用户输入参数、文件操作参数和数据库操作参数;
若所述处理结果中的所述变量的值和/或所述函数的返回值不带有所述外部输入标记,但所提取出的函数匹配预设威胁函数库中的威胁函数且不包含威胁参数时,则判定所述待检测PHP代码不是Webshell;
若所述处理结果中的所述变量的值和/或所述函数的返回值带有所述外部输入标记,但所提取出的函数不匹配预设威胁函数库中的威胁函数且不包含威胁参数时,则判定所述待检测PHP代码不是Webshell 。
2.根据权利要求1所述的Webshell检测方法,其特征在于,所述根据带有所述外部输入标记的所述变量和所述函数,将编译所述待检测PHP代码得到的对应的操作码Opcode得到的结果标识为所述外部输入标记,具体包括:
当所述Opcode执行字符串拼接处理时,若进行字符串拼接的其中一个字符串带有所述外部输入标记时,则将所述字符串拼接处理后得到的结果标识为外部输入标记;
或,当所述Opcode执行直接调用函数处理时,若所述被调用的函数带有所述外部输入标记时,则将被调用的函数的返回值标识为所述外部输入标记;
或,当所述Opcode执行动态调用变量处理时,若所述变量带有所述外部输入标记时,则将所述变量的返回值标识为所述外部输入标记;
或,当所述Opcode执行取出数组中值的处理时,若所述数组带有所述外部输入标记时,则将从所述数组中取出的值标识为所述外部输入标记。
3.根据权利要求1所述的Webshell检测方法,其特征在于,所述根据当前执行过程将所述外部输入标记进行传递,得到处理结果,具体包括:
判断当前所执行的Opcode中的字符串、变量或被调用的函数是否带有所述外部输入标记;
若是,则将所述外部输入标记在执行过程中进行传递,得到带有所述外部输入标记的所述变量的值和/或所述函数的返回值。
4.一种Webshell检测装置,其特征在于,所述装置包括:
标记模块,用于将匹配预设威胁输入库的待检测PHP代码中的变量和函数标识为外部输入标记后,并根据带有所述外部输入标记的所述变量和所述函数,将编译所述待检测PHP代码得到的对应的操作码Opcode得到的结果标识为所述外部输入标记;
传递模块,用于执行所述Opcode代码,并根据当前执行过程将所述外部输入标记进行传递,得到处理结果,所述处理结果包括带有所述外部输入标记的变量的值和/或函数的返回值;
判断模块,用于若所述处理结果中的所述变量的值和/或所述函数的返回值带有所述外部输入标记,从所述处理结果中所提取的函数匹配预设威胁函数库中的威胁函数且包含威胁参数时,则判定所述待检测PHP代码是Webshell;若所述处理结果中的所述变量的值和/或所述函数的返回值不带有所述外部输入标记,但所提取出的函数匹配预设威胁函数库中的威胁函数且不包含威胁参数时,则判定所述待检测PHP代码不是Webshell;若所述处理结果中的所述变量的值和/或所述函数的返回值带有所述外部输入标记,但所提取出的函数不匹配预设威胁函数库中的威胁函数且不包含威胁参数时,则判定所述待检测PHP代码不是Webshell 。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京升鑫网络科技有限公司,未经北京升鑫网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010296810.1/1.html,转载请声明来源钻瓜专利网。