基于深度学习和半监督学习的webshell检测方法及装置制造方法及图纸

技术编号:19486823 阅读:26 留言:0更新日期:2018-11-17 11:31
基于深度学习和半监督学习的webshell检测方法及装置,获取原始的训练样本,选取有标记样本进行分词处理,通过卡方检验分析特征词与标签之间的相关性,选择相关性最强的前K个特征词作为筛选特征词;采用筛选特征词对未标记样本进行特征词筛选,作为未标记样本特征;对获取的未标记样本特征使用神经网络算法训练,获得各个未标记样本的文本向量;使用无监督方法训练单分类SVDD模型,优化超球面半径最小化,最大情况包含未标记样本;对于新的标记样本,运用在线学习方式增量训练SVDD模型,修正单分类SVDD模型;将最新模型用于新样本的预测。本发明专利技术能够有效改善传统webshell检测的漏报率和误报率。

【技术实现步骤摘要】
基于深度学习和半监督学习的webshell检测方法及装置
本专利技术涉及webshell检测
,具体涉及一种基于深度学习和半监督学习的webshell检测方法及装置。
技术介绍
随着互联网的发展,基于B/S架构的Web应用迅速普及,包括应用在政府、银行、运营商、电商,以及各大门户网站。由于不同的Web系统研发人员水平差异,在设计过程中难免对安全问题欠缺考虑,造成Web安全问题频发。常见的安全威胁有:SQL注入漏洞、上传文件漏洞、提交表单漏洞、跨站脚本攻击等。入侵者在获得Web系统漏洞后,会通过上传Webshell来获得Web服务器的操作权限。对于入侵者来说,Webshell就是一个后门程序,通常是ASP、PHP、JSP等网页脚本,入侵实施后,首先在网页服务器的Web目录下面放置脚本文件,然后可以通过Web页面对网站服务器进行控制。由于Webshell操作不会在系统安全日志中留下记录,并且与正常网页文件混在一起,一般管理员很难看出入侵痕迹。在Web安全检测领域,由于缺少样本,很难建立精准的监督学习模型,而无监督学习会造成误报率高的问题,需要大量的安全工程师分析过滤机器学习的警告,分析结果存在人工误差。由于Web攻击方式多变,传统的预测方式难以应对复杂的真实环境。在机器学习领域,学者公认“数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已”。公知的,卡方检验是一种常见的特征选择方法,是用途非常广的一种假设检验方法,它在分类资料统计推断中的应用包括:两个率或两个构成比比较的卡方检验;多个率或多个构成比比较的卡方检验以及分类资料的相关分析等。卡方检验就是统计样本的实际观测值与理论推断值之间的偏离程度,实际观测值与理论推断值之间的偏离程度就决定卡方值的大小,卡方值越大,偏差越大;卡方值越小,偏差越小;当两个值完全相等时,卡方值就为0,表明理论值完全符合实际值。其基本思想是根据样本数据推断总体的分布与期望分布是否有显著差异,或者推断两个分类变量是否相互独立。公知的,深度学习是机器学习的重要分支,目前深度学习在图像、语音、自然语言等取得巨大突破。在文本分析领域,Word2vec和Doc2vec是深度学习的重要研究成果,Doc2vec与Word2vec相似,只是在Word2vec基于词的语义分析基础上,添加基于上下文的语义分析能力。Doc2vec是将词表征为实数值向量的一种高效的算法模型,利用深度学习的思想,构建两层神经网络,即输入层-隐藏层-输出层,通过训练,把对文本内容的处理简化为K维向量空间中的向量运算。公知的,传统的机器学习通常分为有监督学习和无监督学习。有监督学习是通过训练有标记的样本,尽可能正确的对训练集之外的未标记样本进行预测;无监督学习是通过训练无标记的样本,以发现未标记样本之间的内部特征。半监督学习是介于有监督学习和无监督学习之间的机器学习方式,同时运用标记样本和无标记样本,训练机器学习模型。在实际应用中,有标记的webshell样本数量极少,人为手动标记代价大,少量有标记的webshell样本极其珍贵,而webshell样本中未标记的样本大量存在。公知的,SVDD(SupportVectorDomainDescription)即支持向量数据描述,是由Tax和David提出并发展起来的一种单值分类算法,标准的SVDD模型属于无监督学习,把要描述的对象作为一个整体,建立一个封闭而紧凑的超球体,使得描述对象全部或尽可能多的包在这个球体内。
技术实现思路
本专利技术的目的在于提供一种基于深度学习和半监督学习的webshell检测方法及装置,先使用卡方检验和深度学习方法获取样本的文本向量,然后分别使用单分类和增量学习方式进行训练,提高分类性能。使用公开数据集进行训练和测试,实验结果证实该方法能够有效改善webshell检测的漏报率和误报率。为实现上述目的,本专利技术的技术方案为:基于深度学习和半监督学习的webshell检测方法,所述检测方法包括以下步骤:步骤一:获取包含有标记和无标记的样本,选取有标记样本进行分词处理,并通过卡方检验分析特征词与标签之间的相关性,选择相关性最大的前K个特征词作为筛选特征词;步骤二:采用筛选特征词对未标记样本进行特征词筛选,作为未标记样本特征;步骤三:对获取的未标记样本特征使用神经网络算法Doc2vec训练,获得各个未标记样本的文本向量;步骤四:对未标记样本的文本向量使用无监督学习方法训练单分类SVDD模型,优化超球面半径最小化,最大情况包含未标记样本;步骤五:对于新的标记样本,运用在线学习方式增量训练SVDD模型,修正单分类SVDD模型;步骤六:使用经过修正的单分类SVDD模型,对新样本进行预测。如上所述的基于深度学习和半监督学习的webshell检测方法,所述步骤一中,收集webshell样本和正常样本,使用卡方检验剔除与区分是不是webshell攻击相关性较小的词。如上所述的基于深度学习和半监督学习的webshell检测方法,所述步骤一中,选取有标记样本作为卡方检验样本,卡方检验样本包括有标记的正常数据和webshell数据。如上所述的基于深度学习和半监督学习的webshell检测方法,所述步骤二中,未标记样本作为初始训练集,包含大量的正常样本,可能存在少量webshell样本,所述筛选特征词是通过卡方检验选择的与标签相关性高的特征词,再次使用卡方检验获取的筛选特征词过滤初始训练集,所述步骤三中,使用神经网络算法Doc2vec训练过滤后的样本,获取训练样本的文本向量。如上所述的基于深度学习和半监督学习的webshell检测方法,所述步骤四中,在无监督学习阶段,使用初始训练集W0的文本向量,训练单分类SVDD模型M0;在有监督学习阶段,首先在单分类SVDD模型M0的基础上,使用增量训练集W1增量训练SVDD模型M1;然后在增量SVDD模型M1的基础上,使用增量训练集W2增量训练得到SVDD模型M2,使用漏报率和误报率验证模型分类效果。本专利技术还提供一种基于深度学习和半监督学习的webshell检测装置,所述检测装置包括:训练样本获取模块,用于获取原始的训练样本;相关性检测模块,用于通过卡方检验分析特征词与标签之间的相关性;特征词筛选模块,用于选择若干个相关性高的特征词作为筛选特征词;样本筛选模块,用于采用筛选特征词对样本进行特征词筛选,获得样本特征;训练模块,用于对获取的未标记样本特征使用神经网络算法训练,获得各个未标记样本的文本向量;SVDD模块,用于训练单分类SVDD模型,优化超球面半径最小化,最大情况包含未标记样本;增量学习模块,用于对于新的标记样本,运用在线学习方式增量训练SVDD模型。预测模块,用于对新样本的预测,判断是否是webshell。如上所述的基于深度学习和半监督学习的webshell检测装置,所述训练样本获取模块在Github上下载webshell脚本文件和正常脚本文件获取原始的训练样本。如上所述的基于深度学习和半监督学习的webshell检测装置,特征词筛选模块通过卡方检验获取与标签相关性高的特征词,使用卡方检验获取的筛选特征词过滤初始训练集。如上所述的基于深度学习和半监督学习的webshell检测装置,使用初始训练集W0的文本向量,本文档来自技高网
...

【技术保护点】
1.基于深度学习和半监督学习的webshell检测方法,其特征在于:所述检测方法包括以下步骤:步骤一:获取包含有标记和无标记的样本,选取有标记样本进行分词处理,并通过卡方检验分析特征词与标签之间的相关性,选择相关性最大的前K个特征词作为筛选特征词;步骤二:采用筛选特征词对未标记样本进行特征词筛选,作为未标记样本特征;步骤三:对获取的未标记样本特征使用神经网络算法Doc2vec训练,获得各个未标记样本的文本向量;步骤四:对未标记样本的文本向量使用无监督学习方法训练单分类SVDD模型,优化超球面半径最小化,最大情况包含未标记样本;步骤五:对于新的标记样本,运用在线学习方式增量训练SVDD模型,修正单分类SVDD模型;步骤六:使用经过修正的单分类SVDD模型,对新样本进行预测。

【技术特征摘要】
1.基于深度学习和半监督学习的webshell检测方法,其特征在于:所述检测方法包括以下步骤:步骤一:获取包含有标记和无标记的样本,选取有标记样本进行分词处理,并通过卡方检验分析特征词与标签之间的相关性,选择相关性最大的前K个特征词作为筛选特征词;步骤二:采用筛选特征词对未标记样本进行特征词筛选,作为未标记样本特征;步骤三:对获取的未标记样本特征使用神经网络算法Doc2vec训练,获得各个未标记样本的文本向量;步骤四:对未标记样本的文本向量使用无监督学习方法训练单分类SVDD模型,优化超球面半径最小化,最大情况包含未标记样本;步骤五:对于新的标记样本,运用在线学习方式增量训练SVDD模型,修正单分类SVDD模型;步骤六:使用经过修正的单分类SVDD模型,对新样本进行预测。2.根据权利要求1所述的基于深度学习和半监督学习的webshell检测方法,其特征在于:所述步骤一中,收集webshell样本和正常样本,使用卡方检验剔除与区分是不是webshell攻击相关性较小的词。3.根据权利要求1所述的基于深度学习和半监督学习的webshell检测方法,其特征在于:所述步骤一中,选取有标记样本作为卡方检验样本,卡方检验样本包括有标记的正常数据和webshell数据。4.根据权利要求1所述的基于深度学习和半监督学习的webshell检测方法,其特征在于:所述步骤二中,未标记样本作为初始训练集,包含大量的正常样本,可能存在少量webshell样本,所述筛选特征词是通过卡方检验选择的与标签相关性高的特征词,再次使用卡方检验获取的筛选特征词过滤初始训练集,所述步骤三中,使用神经网络算法Doc2vec训练过滤后的样本,获取训练样本的文本向量。5.根据权利要求1所述的基于深度学习和半监督学习的webshell检测方法,其特征在于:所述步骤四中,在无监督学习阶段,使用初始训练集W0的文本向...

【专利技术属性】
技术研发人员:吴斌赵力朱和稳韩传富
申请(专利权)人:北京网思科平科技有限公司
类型:发明
国别省市:北京,11

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

1