本发明专利技术公开了一种基于深度学习的Webshell流量检测方法,属于网络安全技术领域,包括以下步骤:获取流量数据包并进行预处理,获得预设格式的HTTP报文;对HTTP报文中正常文件与Webshell之间的差异字段进行特征提取后进行拼接,获得特征值;基于BERT模型对特征值进行编码,获得对应的特征向量;将特征向量输入到设计优化后的多维空间TextCNN检测模型中进行二分类任务,检测流量数据包中的Webshell。本发明专利技术结合设计优化的多维空间TextCNN检测模型学习不同空间维度的特征信息,能够从时间维度找到关联,能够从空间维度上挖掘信息,最终实现更高的检测精确度。最终实现更高的检测精确度。最终实现更高的检测精确度。
【技术实现步骤摘要】
一种基于深度学习的Webshell流量检测方法
[0001]本专利技术属于网络安全
,特别是涉及一种基于深度学习的Webshell流量检测方法。
技术介绍
[0002]Webshell是一种由编程语言如PHP、JSP和ASP等写成的程序,该程序拥有获取服务器基本信息,操作文件和数据库,执行系统命令等功能。攻击者通常通过Web服务的漏洞如sql注入、文件上传、命令执行等将Webshell代码以独立文件或追加到已有文件的方式保存到服务器中,然后通过直接或间接的方式来访问该Webshell,从而实现对服务器的控制。因此,对Web服务器可能存在的Webshell进行有效地检测,能够保障服务器的稳定运行,避免受到黑客的攻击破坏,更好地维护网络空间安全。
[0003]目前检测Webshell的检测技术大致可以分为三大类:基于文件的检测、基于日志的检测和基于流量的检测。
[0004]基于文件的检测通常是分析文件的文本特征和统计特征,类似白盒测试,需要拿到文件的源码。基于日志的检测根据服务器日志文件中的网站访问信息,具有轻量化的特点。基于流量的检测方法即通过攻击者和Webshell通信时产生的流量特征来进行检测。流量与日志的检测类似于黑盒测试,无需获取文件源码,可保证用户的隐私。
[0005]以上三类检测方法都在一定程度上存在不足:基于文件的检测方法在检测时往往需要消耗大量的计算资源和时间,同时由于涉及到源码的扫描行为,存在一定程度上的隐私问题,并且无法应对新型无文件落地的内存马。基于日志的检测方法依赖于所提供的日志文件信息的丰富度,而通常服务器日志所能提供的信息较少,实际检测效果有限,并且在面对攻击者在获取系统权限之后可以删除修改日志文件的情况无能为力。基于流量的检测方法通常是对流量中存在的统计特征进行检测,存在较高的误报率,而近年来出现的使用机器学习的检测方法仍存在优化的空间。
[0006]因此,针对Webshell检测存在的特征选择欠妥,特征提取不充分,特征向量难以贴切描述特征,导致的检测效果不佳等问题,亟需提出一种Webshell的检测方法,实现对Webshell流量更高的检测精确度。
技术实现思路
[0007]本专利技术提供一种基于深度学习的Webshell流量检测方法,该方法在全面分析HTTP报文后针对其中存在Webshell信息的字段进行特征提取,引入BERT模型进行编码,使用设计优化的TextCNN检测模型进行检测,实现对Webshell流量更高的检测精确度,以解决上述现有技术存在的问题。
[0008]为实现上述目的,本专利技术提供了一种基于深度学习的Webshell流量检测方法,包括以下步骤:获取流量数据包并进行预处理,获得预设格式的HTTP报文;
对所述HTTP报文中正常文件与Webshell之间的差异字段进行特征提取后进行拼接,获得特征值;基于BERT模型对所述特征值进行编码,获得对应的特征向量;构建多维空间TextCNN检测模型,将所述特征向量输入到设计优化后的多维空间TextCNN检测模型中进行二分类任务,检测所述流量数据包中的Webshell。
[0009]可选的,所述流量数据包为pcap格式,对流量数据包进行预处理的过程包括:对所述流量数据包进行解析,提取出每一条HTTP请求报文,基于请求方法,将所述HTTP请求报文中的字段保存为CSV格式。
[0010]可选的,将所述HTTP请求报文中的字段保存为CSV格式的过程还包括:在数据传输过程中,基于HTTP协议对所述HTTP请求报文内容中的特殊字符进行URL解码的处理。
[0011]可选的,所述HTTP报文中正常文件与Webshell之间的差异字段包括:请求方法、请求载荷、请求载荷的长度、User
‑
Agent、Cookie、Accept
‑
Language。
[0012]可选的,对所述特征值进行编码的过程包括:对所述特征值进行分词处理,获得单词序列;基于预设长度,对所述单词序列的长度进行截断和填充的处理,并添加标志位,获得目标单词序列;对所述目标单词序列进行词嵌入处理,获得词嵌入向量;基于多头注意力机制对若干个词嵌入向量进行处理,获得对应的特征向量。
[0013]可选的,所述设计优化后的多维空间TextCNN检测模型包括依次连接的输入层、若干个不同维度的一维卷积层以及对应的最大池化层、融合层、Dropout层和全连接层。
[0014]可选的,基于所述设计优化后的多维空间TextCNN检测模型进行二分类任务的过程包括:输入特征向量,分别基于所述若干个不同维度的一维卷积层提取所述特征向量在不同维度上的局部特征值,并基于所述若干个不同维度的一维卷积层对应的最大池化层突出所述局部特征值中的重点特征进行传输;然后通过融合层将若干个不同维度中学习到的重点特征进行融合;同时连接所述Dropout层随机屏蔽节点避免过拟合;最后基于所述全连接层接收所述融合层与Dropout层处理后的特征向量并进行降维处理后,输入到激活函数中进行分类。
[0015]本专利技术的技术效果为:本专利技术实现了对Webshell流量的检测,在全面分析HTTP报文后针对其中存在webshell信息的字段进行特征提取,引入BERT模型,利用BERT模型双向深度的特点生成更符合语境的特征向量,并结合设计优化的多维空间TextCNN检测模型能够学习不同空间维度的特征信息特点,能够从时间维度找到关联,又能够从空间维度上挖掘信息,最终实现了更高的检测精确度。
[0016]本专利技术中设计优化的多维空间TextCNN检测模型与传统的CNN模型相比,能够在不增加模型层数的情况下通过融合层对不同空间维度的卷积层进行并联,使模型有效学习到不同维度的特征,其中的最大池化层能让模型能够抓住特征中的重点信息,而Dropout层的加入则使模型不会过分陷入到某些奇异点中导致过拟合,因此相对于传统的CNN模型有更优秀的效果。
附图说明
[0017]构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实
施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为本专利技术实施例中的基于BERT
‑
TextCNN的Webshell流量检测系统的结构示意图;图2为本专利技术实施例中的BERT编码过程的流程图;图3为本专利技术实施例中的设计优化后的多维空间TextCNN检测模型的结构示意图。
实施方式
[0018]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0019]需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤.
[0020]实施例一 本实施例中提供一种基于深度学习的Webshell流量检测方法,其中,基于BERT本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于深度学习的Webshell流量检测方法,其特征在于,包括以下步骤:获取流量数据包并进行预处理,获得预设格式的HTTP报文;对所述HTTP报文中正常文件与Webshell之间的差异字段进行特征提取后进行拼接,获得特征值;基于BERT模型对所述特征值进行编码,获得对应的特征向量;构建多维空间TextCNN检测模型,将所述特征向量输入到设计优化后的多维空间TextCNN检测模型中进行二分类任务,检测所述流量数据包中的Webshell。2.根据权利要求1所述的基于深度学习的Webshell流量检测方法,其特征在于,所述流量数据包为pcap格式,对流量数据包进行预处理的过程包括:对所述流量数据包进行解析,提取出每一条HTTP请求报文,基于请求方法,将所述HTTP请求报文中的字段保存为CSV格式。3.根据权利要求2所述的基于深度学习的Webshell流量检测方法,其特征在于,将所述HTTP请求报文中的字段保存为CSV格式的过程还包括:在数据传输过程中,基于HTTP协议对所述HTTP请求报文中的特殊字符进行URL解码的处理。4.根据权利要求1所述的基于深度学习的Webshell流量检测方法,其特征在于,所述HTTP报文中正常文件与Webshell之间的差异字段包括:请求方法、请求载荷、请求载荷的长度、User
‑
Agent、Cookie、Accept
...
【专利技术属性】
技术研发人员:江魁,余志航,
申请(专利权)人:深圳大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。