本公开涉及网络安全,尤其提供一种webshell检测模型训练方法、webshell检测方法及装置。
背景技术:
1、webshell是一种黑客常用的入侵工具,是以php、asp、jsp、perl、cgi、py等网页文件形式存在的一种命令执行环境。黑客通过web访问webshell后门进行文件上传下载、访问数据库、系统命令调用等各种高危操作,达到非法控制网站服务器的目的,甚至可以以此为突破口,攻占网络中其它机器,具备威胁程度高,隐蔽性极强等特点。
2、静态webshell检测,做法简单,但检出率和准确率都不高,只能检出已知的webshell,且很容易被绕过。
3、基于文件特征的检测,容易被绕过;机器学习的webshell检测准确率高,但是误报率也很高,这一缺点让其无法应用于真实环境中。
4、基于http流量分析和日志分析等方式,需要大量流量数据或日志作为学习的基础,存在误报的可能。
技术实现思路
1、本公开提供了一种webshell检测模型训练方法、webshell检测方法及装置。
2、根据本公开的第一方面,提供了一种webshell检测模型训练方法,该方法包括:
3、对样本数据是否为webshell进行标记,生成训练样本;
4、将训练样本分为训练集和测试集;
5、提取训练样本的静态特征及动态特征;
6、根据训练集样本的静态特征对fnn模型进行训练,根据训练集样本的动态特征对lstm模型进行训练;
7、加载训练后的fnn+lstm模型,得到webshell检测模型;
8、将测试集样本的静态特征及动态特征输入webshell检测模型,将webshell检测模型输出的结果与测试集样本对应的标记进行对比,判断webshell检测模型是否满足webshell检测需求,若满足,则模型训练成功,若不满足,则重复训练直至达到预设准确率阈值。
9、在第一方面的一些实现方式中,方法还包括:对样本数据进行去重。
10、在第一方面的一些实现方式中,提取训练样本的静态特征包括:
11、采集训练样本的静态数据,对静态数据进行归一化处理,得到静态特征。
12、在第一方面的一些实现方式中,静态数据包括最长字符串长度、执行相关字符串个数、文件操作相关字符串个数、base64相关字符串个数、压缩相关字符串个数、字符操作相关字符串个数、替换相关字符串个数、create_function、pack字符的字符串个数、信息熵中的一个或多个。
13、在第一方面的一些实现方式中,提取训练样本的动态特征包括:
14、将各训练样本生成操作码,采用word2vec将操作码转换为定长的数值向量,得到动态特征。
15、在第一方面的一些实现方式中,方法还包括,fnn+lstm模型为并列结构,还包括relu层、隐藏层和输出层,
16、将fnn与lstm的输出作为relu层的输入,得到激活的融合输出;经隐藏层计算对应的概率信息;经过输出层根据计算出的概率信息,作为分类判断。
17、根据本公开的第二方面,提供了一种webshell检测方法,该方法包括:将待检测样本提取静态特征及动态特征,并将待检测样本的静态特征及动态特征输入本公开第一方面webshell检测模型训练方法训练得到的webshell检测模型,根据webshell检测模型的输出结果判断待检测样本是否为webshell。
18、在第二方面的一些实现方式中,还包括更新训练集样本,包括:当webshell检测模型无法检测是否为webshell时,对待检测样本进行标记,并将对应的静态特征及动态特征存入训练集。
19、根据本公开的第三方面,提供了一种webshell检测模型训练装置,该装置包括:
20、标记单元,用于对样本数据是否为webshell进行标记,生成训练样本;
21、分组单元,用于将训练样本分为训练集和测试集;
22、特征提取单元,用于提取训练样本的静态特征及动态特征;
23、训练单元,用于根据训练集样本的静态特征对fnn模型进行训练,根据训练集样本的动态特征对lstm模型进行训练;
24、模型加载单元,用于加载训练后的fnn+lstm模型,得到webshell检测模型;
25、检测单元,用于将测试集样本的静态特征及动态特征输入webshell检测模型,将webshell检测模型输出的结果与测试集样本对应的特征进行对比,判断webshell检测模型是否满足webshell检测需求,若满足,则模型训练成功,若不满足,则重复训练直至达到预设准确率阈值。
26、根据本公开的第四方面,提供了一种webshell检测装置,该装置包括:
27、特征单元,用于对待检测样本提取静态特征及动态特征;
28、输入单元,用于将待检测样本的静态特征及动态特征输入本公开第一方面的webshell检测模型训练方法训练得到的webshell检测模型;
29、输出单元,用于根据webshell检测模型的输出结果判断待检测样本是否为webshell。
30、本公开基于fnn+lstm神经网络的webshell检测算法,用于识别是否是webshell文件。使用fnn模型训练静态特征,使用lstm模型训练动态特征,最后合并两个模型,有效提高了模型的准确率和召回率。此算法可广泛应用于端点安全检测与响应的产品中,用于入侵检测。
31、应当理解,
技术实现要素:
部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
1.一种webshell检测模型训练方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:对样本数据进行去重。
3.根据权利要求1所述的方法,其特征在于,提取所述训练样本的静态特征包括:
4.根据权利要求3所述的方法,其特征在于,所述静态数据包括最长字符串长度、执行相关字符串个数、文件操作相关字符串个数、base64相关字符串个数、压缩相关字符串个数、字符操作相关字符串个数、替换相关字符串个数、create_function、pack字符的字符串个数、信息熵中的一个或多个。
5.根据权利要求1所述的方法,其特征在于,提取所述训练样本的动态特征包括:
6.根据权利要求1所述的方法,其特征在于,所述方法还包括,所述fnn+lstm模型为并列结构,还包括relu层、隐藏层和输出层,
7.一种webshell检测方法,其特征在于,包括:将待检测样本提取静态特征及动态特征,并将待检测样本的静态特征及动态特征输入权利要求1-6任一项所述的webshell检测模型训练方法训练得到的webshell检测模型,根据webshell检测模型的输出结果判断待检测样本是否为webshell。
8.根据权利要求7所述的方法,其特征在于,还包括更新训练集样本,包括:当webshell检测模型无法检测是否为webshell时,对待检测样本进行标记,并将对应的静态特征及动态特征存入训练集。
9.一种webshell检测模型训练装置,其特征在于,包括:
10.一种webshell检测装置,其特征在于,包括: