一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

Webshell文件检测方法及系统与流程

2021-12-07 21:00:00 来源:中国专利 TAG:

webshell文件检测方法及系统
技术领域
1.本发明涉及计算机数据处理技术领域,具体地,涉及一种webshell文件检测方法及系统,尤其是一种基于tf

idf的webshell文件检测及系统。


背景技术:

2.随着internet的普及,网络上的共享资源成为黑客们攻击的主要目标。鉴于网络攻击的急剧增多及其所带来的恶劣影响,信息安全问题成为人们日益关注的焦点。
3.webshell是以php或者jsp等网页文件形式存在的一种命令执行环境。当攻击者入侵一个网站后,会把这些asp、php木马的后门文件放在该网站的web目录中,和正常的网页文件混杂,其命名可能和正常的文件命名很类似,让人无法第一眼通过文件名判断其为后门文件。然后入侵者就可以利用web请求的方式,用asp或者php木马后门对网站的服务器进行控制行为。
4.机器学习核心是通过对先验知识的学习从而获取经验,自动分析数据并获取规律,然后推论出某种模型,对未来进行预测,其相关应用非常广泛。机器学习技术也为解决入侵检测领域的问题提供了许多新兴的研究方向。现有的检测方法有以下几种:(1)、wenke等人在1999年首次将机器学习方法应用到入侵检测模型中,其方案通过采集网络数据流量与对审计数据进行分析,得到一个异常检测模型;(2)、2015年,叶飞提出了一种基于支撑向量机的webshell黑盒检测方案,根据html文档的信息对webshell进行检测检测,准确率达到75%;(3)、2018年,傅建明提出一种基于cnn的webshell检测方案,对php类型文件设计相应的机器学习检测方案,检测准确率较传统机器学习算法准确率有了一定的性能提升,但仍存在着模型易过拟合调参复杂等问题。
5.虽然将机器方法应用到入侵检测系统中已经取得了一定的效果,但是由于网络数据量的日益剧增和新的攻击层出不穷,入侵检测研究已经到达了一个瓶颈期,出现了众多较难解决的问题,如特征提取不合适,检测准确率较低,以及算法的复杂度较高等,同时,当前研究建立的webshell检测模型大多均仅适用于对php类型webshell文件进行检测,未对jsp类型webshell文件建立科学可行的方案进行检测。
6.公开号为cn106572117a的专利文献公开了一种webshell检测方法和装置,所述检测方法基于变量回溯和抽象语法树,针对目录中的多个文件进行webshell检测,包括可疑文件筛选过程、特征匹配检测过程、抽象语法树分析检测过程、无关代码剔除过程和数学公式检测过程,输出确定的webshell文件。检测装置包括:可疑文件筛选单元、特征匹配单元、抽象语法树检测分析单元、剔除无关代码单元和数学公式检测单元;通过这些单元实现对webshell文件的检测。但是该专利文献仍然存在特征提取不合适,检测准确率较低,以及算法的复杂度较高的缺陷。


技术实现要素:

7.针对现有技术中的缺陷,本发明的目的是提供一种webshell文件检测方法及系
统。
8.根据本发明提供的一种webshell文件检测方法,包括如下步骤:
9.步骤1:对文件进行预处理;
10.步骤2:利用预处理后的文件建立词袋模型,在词频基础上使用加权处理技术降低高频无意义词汇的干扰,形成数据集;
11.步骤3:用数据集对模型进行学习训练,得到训练后的模型,并利用训练后的模型来检测出webshell文件。
12.优选的,所述步骤1中,预处理包括分类、去重、转码及特征提取。
13.优选的,所述分类具体为,通过判别文件的类型将数据样本分为jsp类型文件和php类型文件。
14.优选的,所述去重具体为,通过md5校验去除文件里的重复样本。
15.优选的,所述转码具体为,根据文件的类型不同将jsp文件内容转为java汇编码,php文件内容转为opcode码。
16.优选的,jsp文件内容转为java汇编码包括如下步骤:
17.步骤1.1:将jsp文件使用tomcat作为容器,将jsp转换为servlet类的.java文件;
18.步骤1.2:将servlet类的.java文件编译相应为servlet类的.class文件;
19.步骤1.3:使用java命令将servlet类的.class文件转化为java汇编码进行特征提取。
20.优选的,所述特征提取均使用tf

idf算法。
21.优选的,对于jsp类型的webshell文件的特征提取为将jsp代码转换为最后的java汇编码,使用tf

idf算法提取相应的训练特征;
22.对于php类型的webshell文件的特征提取为将php代码转换为中间层次的opcode码,使用tf

idf算法提取相应的训练特征。
23.优选的,所述步骤3中,模型采用xgboost算法模型。
24.本发明还提供一种webshell文件检测系统,包括如下模块;
25.预处理模块:对文件进行预处理;
26.数据集模块:利用预处理后的文件建立词袋模型,在词频基础上使用加权处理技术降低高频无意义词汇的干扰,形成数据集;
27.训练判断模块:用数据集对模型进行学习训练,得到训练后的模型,并利用训练后的模型来检测出webshell文件。
28.与现有技术相比,本发明具有如下的有益效果:
29.1、本实施方法适用于实际的应用的场景,解决了特征提取不合适,检测准确率较低,以及算法的复杂度较高等问题;
30.2、本发明用tf

idf算法预处理后结合xgboost算法的webshell文件检测模型性能出色,检测效果相较于传统检测方法在准确率、精确率、召回率等方面均有所提高,同时具备更强的鲁棒性与泛化能力;
31.3、本发明对php类型文件检测准确率达到98.09%,对jsp类型文件检测准确率达到97.09%。
附图说明
32.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
33.图1为本发明实现tf

idf的webshell文件检测流程图;
34.图2为jsp类型特征提取流程图;
35.图3为php类型特征提取流程图。
具体实施方式
36.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
37.实施例1:
38.如图1~3所示,本发明提供的一种webshell文件检测方法,包括如下步骤:
39.步骤3:用数据集对模型进行学习训练,得到训练后的模型,并利用训练后的模型来检测出webshell文件。
40.步骤1:对文件进行预处理,预处理包括分类、去重、转码及特征提取;
41.分类具体为,通过判别文件的类型将数据样本分为jsp类型文件和php类型文件;去重具体为,通过md5校验去除文件里的重复样本;特征提取均使用tf

idf算法,对于jsp类型的webshell文件的特征提取为将jsp代码转换为最后的java汇编码,使用tf

idf算法提取相应的训练特征,对于php类型的webshell文件的特征提取为将php代码转换为中间层次的opcode码,使用tf

idf算法提取相应的训练特征;
42.转码具体为,根据文件的类型不同将jsp文件内容转为java汇编码,php文件内容转为opcode码,jsp文件内容转为java汇编码包括如下步骤:
43.步骤1.1:将jsp文件使用tomcat作为容器,将jsp转换为servlet类的.java文件;
44.步骤1.2:将servlet类的.java文件编译相应为servlet类的.class文件;
45.步骤1.3:使用java命令将servlet类的.class文件转化为java汇编码进行特征提取。
46.步骤2:利用预处理后的文件建立词袋模型,在词频基础上使用加权处理技术降低高频无意义词汇的干扰,形成数据集,采用tf

idf算法;
47.步骤3:用数据集对模型进行学习训练,得到训练后的模型,并利用训练后的模型来检测出webshell文件,模型采用xgboost算法模型。
48.实施例2:
49.预处理模块:对文件进行预处理;
50.数据集模块:利用预处理后的文件建立词袋模型,在词频基础上使用加权处理技术降低高频无意义词汇的干扰,形成数据集;
51.训练判断模块:用数据集对模型进行学习训练,得到训练后的模型,并利用训练后的模型来检测出webshell文件。
52.实施例3:
53.本领域技术人员可以将本实施例理解为实施例1、实施例2的更为具体的说明。
54.本实施例实现的平台,处理器为intel core i5

8259u@2.3ghz,内存为16gb,操作系统为ubuntu 18.04,使用python 2.7语言实现,编译器环境为jdk 1.8和tomcat8.0,扩展程序库为numpy 1.16.3,机器学习库为scikit

learn。
55.本实施例webshell样本数据均主要来源于github中公开的webshell收集项目并进行相应的md5校验去重处理,php正常页面样本主要来源于wordpress、phpcms、yii等开源的php内容管理系统(cms)。cms系统在某些功能表现上类似于webshell,所以选取这类php文件作为白样本,可以使检测更加准确、有效。
56.图1是本发明实现tf

idf的webshell文件检测流程图。
57.如图1所示,本实施例的基于tf

idf的webshell文件检测模型的搭建包括如下步骤:
58.步骤s1,对不同类型的webshell文件分类并使用相应的方法进行预处理。预处理工作主要分为文件分类、去重、转码、特征提取四个部分进行。
59.其中文件分类通过判别文件类型将数据样本分为jsp、php类型文件。去重通过md5校验去除重复样本,降低重复样本对训练效果的影响。转码根据文件类型不同将jsp文件内容转为java汇编码,php文件内容转为opcode码,以此大幅降低绕过混淆等技术对检测性能的影响。特征提取均使用tf

idf算法进行,较传统词频提取方法具备更加有效的性能表现。
60.步骤s2,建立词袋模型,采用tf

idf算法在词频基础上使用加权处理技术降低高频无意义词汇的干扰,提升数据质量。
61.webshell的特征提取大多使用词频的方法,然而词频特征提取方法只考虑到了相关词汇在整表中出现的频率,无法消减高频无意义的词汇对整体性能带来的影响,为了进一步提升模型性能本研究采用tf

idf词频特征提取方法对jsp与php文件特征进行提取。
62.图2是本发明实施例中jsp类型特征提取流程图。
63.如图2所示,以本实施例的案例为例,上述文件分类特征提取对jsp文件过程为:首先将jsp文件使用tomcat作为容器,先将jsp转换为servlet类源文件(.java),再将该源文件编译相应为servlet类的.class文件,最后直接使用java命令将.class文件转化为java汇编码进行特征提取。
64.图3是本发明实施例中php类型特征提取流程图。
65.如图3所示,以本实施例的案例为例,上述文件分类特征提取对对php文件过程为:使用php插件vld进行php文件的opcode转换。
66.步骤s3,用xgboost算法模型对数据集进行学习训练。
67.xgboost算法是一种通过弱分类器的迭代过程来进行并行计算并实现准确的分类效果,是基于梯度boosting的集成学习算法。其学习的方法是使用参数设置一样或稍有不同的基本学习器来自适应地拟合数据。xgboost的性能在随机森林算法的基础上有一步提升,xgboost算法的优点非常的显而易见,对各个类型的数据进行灵活的处理。xgboost的训练速度大约是传统的gbdt的10倍量级,其速度快、准确率高使得它在众多机器学习算法中尤为出彩。同时,即使在调参时间相对较少的情况下,采用其算法模型进行预测的准确度也非常高。
68.以本实施例的案例为例,为了得到适合本系统的最佳算法性能,对xgboost算法进
行了一定的参数调试。测试中选择数据集中70%数据样本进行训练,30%数据样本进行测试,对不同树深度进行测试。首先对jsp样本进行调参训练,根据训练结果可知在训练深度为1到5时,由于欠拟合的情况准确率不如深度为6时表现理想,当训练深度为6时准确率达到最高的96.90%。随后对php样本进行相应的调参测试,与之前结果类似,在训练深度为6时,算法准确率达到98.41%。
69.根据本实施例提供的一种基于tf

idf的webshell文件检测,由于当前研究建立的webshell检测模型大多均仅适用于对php类型webshell文件进行检测,未对jsp类型webshell文件建立科学可行的方案进行检测,本发明将对上述问题进行解决。
70.本实施例中,在模型建立后,选择不一样的参数必然导致分类器产生性能的差异。为了增强方案验证的可靠性,采用使用sklearn的cross_val_score10折交叉验证方法进行实验测试。10折交叉验证是通过将原始数据均分成为10组后,数据的验证集是其中的每一个子集,训练集则是剩下的9组子集数据,这样会得到10个验证集生成的分类准确率,此分类器的性能指标是用这10个分类准确率的平均数体现。通过比较不同webshell检测算法在十折交叉验证下的性能表现,对结果进行相应分析。
71.本实施例中,进行tf

idf预处理后的算法模型均能够较好的学习webshell文件特征进行检测,同时xgboost算法较支持向量机与随机森林算法在webshell文件检测中各项性能指标均有更为优秀的表现,其中在php类型webshell文件检测中准确率高达98.09%,在jsp类型webshell文件检测中准确率高达97.09%。值得一提的是xgboost算法在设计时借鉴了随机森林的做法,支持列抽样,不仅防止过拟合,还能进一步的减少计算,在数据集的适应性方面无疑有着更加优秀的能力。综合来看,xgboost是这三个算法中最适合用于webshell检测的算法。
72.本实施例中,主要对三种机器学习算法在webshell检测方面进行各项性能比较,所以使用准确率、精确率、召回率三个指标进行相应性能评估。
73.本发明用tf

idf算法预处理后结合xgboost算法的webshell文件检测模型性能出色,检测效果相较于传统检测方法在准确率、精确率、召回率等方面均有所提高,同时具备更强的鲁棒性与泛化能力,其中对php类型文件检测准确率达到98.09%,对jsp类型文件检测准确率达到97.09%。所以,本实施方法适用于实际的应用的场景,解决了特征提取不合适,检测准确率较低,以及算法的复杂度较高等问题。
74.本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
75.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献