本发明涉及网络安全,尤其涉及一种webshell检测方法、装置、设备和存储介质。
背景技术:
1、网络后台管理脚本(webshell)是以网页文件形式存在的一种代码执行环境,主要用于网站管理、服务器管理、权限管理等操作。由于webshell的便利性和其强大的功能,被修改后的webshell也被当作网站后门工具使用,以达到控制网站服务器的目的,严重威胁到网络服务的正常运行。
2、相关技术中,当webshell被当作网站后门工具使用时,容易被识别成正常的代码程序而威胁到网络安全;因此,如何准确地进行webshell的检测,以提高网络服务的安全性,是本领域技术人员亟需解决的问题。
技术实现思路
1、针对现有技术中的问题,本发明实施例提供一种webshell检测方法、装置、设备和存储介质。
2、具体地,本发明实施例提供了以下技术方案:
3、第一方面,本发明实施例提供了一种webshell检测方法,包括:
4、提取待检测的网络数据的特征信息;
5、根据所述网络数据的特征信息,确定所述网络数据是否为异常webshell;
6、若确定所述网络数据不是异常webshell,则利用检测模型确定所述网络数据是否为异常webshell;所述检测模型用于检测所述网络数据是否为异常webshell。
7、进一步地,所述特征信息包括以下至少一项:恶意函数信息、通信状态、请求方式或统一资源定位符url;所述根据所述网络数据的特征信息,确定所述网络数据是否为异常webshell,包括:
8、将所述网络数据的特征信息与异常webshell规则库中的特征进行匹配,获取匹配结果;
9、若所述匹配结果为匹配成功,则确定所述网络数据是异常webshell。
10、进一步地,所述提取待检测的网络数据的特征信息,包括:
11、生成所述网络数据所对应的语法树;
12、根据所述网络数据所对应的语法树,提取所述网络数据的语法特征;所述语法特征包括以下至少一项:自定义类型、函数调用信息;
13、所述根据所述网络数据的特征信息,确定所述网络数据是否为异常webshell,包括:
14、基于所述网络数据的语法特征和预设的语法特征库,确定所述网络数据是否为异常webshell。
15、进一步地,所述基于所述网络数据的语法特征和预设的语法特征库,确定所述网络数据是否为异常webshell,包括:
16、根据所述语法特征和所述语法特征库,确定所述语法特征的权重值;
17、若所述语法特征的权重值大于或等于预设阈值,则确定所述网络数据是异常webshell。
18、进一步地,所述利用检测模型确定所述网络数据是否为异常webshell之前,还包括:
19、将所述网络数据与历史攻击者的攻击信息进行匹配,获取匹配结果;
20、若所述匹配结果为匹配成功,则执行利用检测模型确定所述网络数据是否为异常webshell的步骤。
21、进一步地,所述利用检测模型确定所述网络数据是否为异常webshell,包括:
22、根据所述网络数据的特征信息,确定所述特征信息对应的词向量;
23、将所述特征信息对应的词向量输入所述检测模型,获取检测结果,所述检测结果用于表示所述网络数据是否为异常webshell。
24、进一步地,所述利用检测模型确定所述网络数据是否为异常webshell之前,还包括:
25、根据贝叶斯算法构建第一模型;
26、利用训练数据对所述第一模型进行训练,得到所述检测模型;所述训练数据包括:网络数据以及网络数据对应的词向量。
27、进一步地,若确定所述网络数据是异常webshell,则根据预设的语法特征库,确定所述网络数据中的异常函数;
28、根据所述网络数据中的异常函数,更新所述异常webshell规则库。
29、进一步地,所述提取待检测的网络数据的特征信息之前,还包括:
30、将所述待检测的网络数据输入训练得到的数据识别模型;所述数据识别模型用于过滤异常的网络数据。
31、进一步地,所述数据识别模型是通过以下步骤训练得到的:
32、根据随机森林算法构建第二模型;
33、利用训练数据对所述第二模型进行训练,得到所述数据识别模型;所述训练数据包括:多个网络数据以及各个所述网络数据是否为异常网络数据的标签。
34、进一步地,所述提取待检测的网络数据的特征信息之前,还包括:
35、确定所述网络数据中是否调用解码函数;
36、若是,则确定所述网络数据为经过编码的网络数据,则对所述网络数据进行解码。
37、第二方面,本发明实施例还提供了一种webshell检测装置,包括:
38、提取模块,用于提取待检测的网络数据的特征信息;
39、确定模块,用于根据所述网络数据的特征信息,确定所述网络数据是否为异常webshell;
40、检测模块,用于若确定所述网络数据不是异常webshell,利用检测模型确定所述网络数据是否为异常webshell;所述检测模型用于检测所述网络数据是否为异常webshell。
41、第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述webshell检测方法。
42、第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述webshell检测方法。
43、第五方面,本发明实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如第一方面所述webshell检测方法。
44、本发明实施例提供的webshell检测方法、装置、设备和存储介质,通过提取待检测的网络数据的特征信息,也就获得了网络数据的结构信息和用户行为信息,通过对网络数据特征信息的分析,就可以准确地确定网络数据是否为异常webshell;进一步地,对于新型及变形的webshell,若通过对网络数据特征信息的分析无法检测出来,还可以通过机器学习的方式,基于训练后的检测模型,对待检测的网络数据进行检测,从而完成webshell的智能自动化检测,获取网络数据的检测结果;根据检测结果,就可以准确地确定网络数据是否为异常webshell。
1.一种网络后台管理脚本webshell检测方法,其特征在于,包括:
2.根据权利要求1所述的webshell检测方法,其特征在于,所述特征信息包括以下至少一项:恶意函数信息、通信状态、请求方式或统一资源定位符url;所述根据所述网络数据的特征信息,确定所述网络数据是否为异常webshell,包括:
3.根据权利要求1或2所述的webshell检测方法,其特征在于,所述提取待检测的网络数据的特征信息,包括:
4.根据权利要求3所述的webshell检测方法,其特征在于,所述基于所述网络数据的语法特征和预设的语法特征库,确定所述网络数据是否为异常webshell,包括:
5.根据权利要求1或2所述的webshell检测方法,其特征在于,所述利用检测模型确定所述网络数据是否为异常webshell之前,还包括:
6.根据权利要求1或2所述的webshell检测方法,其特征在于,所述利用检测模型确定所述网络数据是否为异常webshell,包括:
7.根据权利要求1或2所述的webshell检测方法,其特征在于,所述利用检测模型确定所述网络数据是否为异常webshell之前,还包括:
8.根据权利要求1或2所述的webshell检测方法,其特征在于,所述方法还包括:
9.根据权利要求1或2所述的webshell检测方法,其特征在于,所述提取待检测的网络数据的特征信息之前,还包括:
10.根据权利要求9所述的webshell检测方法,其特征在于,所述数据识别模型是通过以下步骤训练得到的:
11.根据权利要求1或2所述的webshell检测方法,其特征在于,所述提取待检测的网络数据的特征信息之前,还包括:
12.一种webshell检测装置,其特征在于,包括:
13.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至11任一项所述的webshell检测方法。
14.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至11任一项所述的webshell检测方法。
15.一种计算机程序产品,其上存储有可执行指令,其特征在于,该指令被处理器执行时使处理器实现如权利要求1至11中任一项所述的webshell检测方法。