CN109657467A - 一种网页后门检测方法和装置、计算机可读存储介质 - Google Patents
一种网页后门检测方法和装置、计算机可读存储介质 Download PDFInfo
- Publication number
- CN109657467A CN109657467A CN201811418384.3A CN201811418384A CN109657467A CN 109657467 A CN109657467 A CN 109657467A CN 201811418384 A CN201811418384 A CN 201811418384A CN 109657467 A CN109657467 A CN 109657467A
- Authority
- CN
- China
- Prior art keywords
- file
- character string
- feature vector
- back door
- page script
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种网页后门检测方法和装置、计算机可读存储介质,所述网页后门检测方法包括:获取网页脚本文件,去除网页脚本文件中的注释信息;提取网页脚本文件的特征向量,所述特征向量包括文件中的各字符串数组的数组元素拼接所得的字符串中最长字符串的长度及所述最长字符串的信息熵;使用预先训练好的随机森林分类器模型对提取的特征向量进行检测,以确定所述网页脚本文件是否为网页后门Webshell文件。本申请通过对文件进行特征向量提取,并通过随机森林分类器模型对提取的特征向量进行检测,能够提高对Webshell脚本文件的检测能力,提高Web服务器的安全性。
Description
技术领域
本发明涉及网络安全检测技术领域,尤其涉及一种网页后门检测方法和 装置、计算机可读存储介质。
背景技术
Webshell是以asp、php、jsp、aspx等网页脚本文件形式存在的一种命令 执行环境,也叫做网页后门。黑客可以利用Webshell来获取服务器的访问权 限,并借助服务器来执行任意的系统命令、对系统上的文件进行增删改查、 植入恶意软件或者进一步攻击内网等操作。因此,为了维护网站(Web)服 务器的安全性,有必要对Webshell进行检测。
现有的Webshell检测技术,通常通过提取脚本文件中的特征代码,通过 特征代码匹配的方式进行检测,这种检测方法只能检测已知威胁,对未知威 胁的检测能力较差,如果黑客对Webshell脚本文件进行混淆、加密处理,将 很难进行有效的检测。
发明内容
本发明实施例提供了一种网页后门检测方法和装置、计算机可读存储介 质,能够提高Webshell检测的准确率。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种网页后门检测方法,包括:
获取网页脚本文件,去除网页脚本文件中的注释信息;
提取网页脚本文件的特征向量,所述特征向量包括文件中的各字符串数 组的数组元素拼接所得的字符串中最长字符串的长度及所述最长字符串的信 息熵;
使用预先训练好的随机森林分类器模型对提取的特征向量进行检测,以 确定所述网页脚本文件是否为网页后门Webshell文件。
在一实施例中,所述特征向量还包括以下至少之一:
所述文件的信息熵、所述字符串变量长度的均值、所述字符串变量长度 的方差、所述文件长度、所述最大字符串变量长度、所述最大字符串的信息 熵、所述文件中敏感函数的频率、所述文件中匹配的特征代码段个数。
在一实施例中,所述方法之前还包括:
获取网页脚本文件样本,提取所述网页脚本文件样本中的特征向量,将 提取的特征向量划分为原始训练集和原始测试集;
使用所述原始训练集和随机森林算法训练所述随机森林分类器模型;
使用所述原始测试集对训练好的所述分类器模型进行验证,并根据预设 的评估指标,对所述随机森林分类器模型进行参数调整。
在一实施例中,所述使用所述原始训练集和随机森林算法训练所述随机 森林分类器模型,包括:
从所述原始训练集中进行k轮随机有放回采样,得到k个训练集,每个 训练集包括n个所述训练样本,k和n均为自然数;
对k个训练集,根据训练集中的训练样本以及所述训练样本的特征向量 选择分裂属性,依据分裂属性对训练集进行训练生成决策树;
将生成的多棵决策树组成所述随机森林分类器。
在一实施例中,所述决策树为分类回归树CART决策树;生成所述决策 树时,根据基尼指数选择分裂点进行分裂。
在一实施例中,所述预设的评估指标,包括:准确率、检出率、误报率、 AUC指标。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储 介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处 理器执行,以实现如以上任一项所述的网页后门检测方法的步骤。
本发明实施例还提供了一种网页后门检测装置,包括处理器及存储器, 其中:所述处理器用于执行存储器中存储的程序,以实现如以上任一项所述 的网页后门检测方法的步骤。
本发明实施例还提供了一种网页后门检测装置,包括获取单元、提取单 元和检测单元,其中:
获取单元,用于获取网页脚本文件,去除网页脚本文件中的注释信息;
提取单元,用于提取网页脚本文件的特征向量,所述特征向量包括文件 中的各字符串数组的数组元素拼接所得的字符串中最长字符串的长度及所述 最长字符串的信息熵;
检测单元,用于使用预先训练好的随机森林分类器模型对提取的特征向 量进行检测,以确定所述网页脚本文件是否为Webshell文件。
在一实施例中,所述提取单元提取的特征向量还包括以下至少之一:
所述文件的信息熵、所述字符串变量长度的均值、所述字符串变量长度 的方差、所述文件长度、所述最大字符串变量长度、所述最大字符串的信息 熵、所述文件中敏感函数的频率、所述文件中匹配的特征代码段个数。
本发明实施例的技术方案,具有如下有益效果:
本发明实施例提供的网页后门检测方法和装置、计算机可读存储介质, 通过对文件进行特征向量提取,并通过随机森林分类器模型对提取的特征向 量进行检测,能够有效地检测出混淆、加密处理后的Webshell脚本文件,提 高了Webshell检测的准确率和Web服务器的安全性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部 分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的 不当限定。在附图中:
图1为本发明实施例的一种网页后门检测方法的流程示意图;
图2为本发明实施例的一种网页后门检测装置的结构示意图;
图3为本发明实施例的另一种网页后门检测装置的结构示意图;
图4为本发明实施例的一种随机森林模型训练流程示意图;
图5为本发明实施例的一种随机森林模型检测流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图 对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申 请中的实施例及实施例中的特征可以相互任意组合。
参考图1,根据本发明实施例的一种网页后门检测方法,包括如下步骤:
步骤101:获取网页脚本文件,去除网页脚本文件中的注释信息;
在本发明的一实施例中,所述注释信息为形如“/*······*/”、“//······” 这样的无关代码。
在本发明的一实施例中,所述方法之前还包括:
获取网页脚本文件样本,提取所述网页脚本文件样本中的特征向量,将 提取的特征向量划分为原始训练集和原始测试集;
使用所述原始训练集和随机森林算法训练所述随机森林分类器模型;
使用所述原始测试集对训练好的所述随机森林分类器模型进行验证,并 根据预设的评估指标,对所述随机森林分类器模型进行参数调整。
在该实施例的一示例中,所述将提取的特征向量划分为原始训练集和原 始测试集,包括:
采用十折交叉检验法,将提取的特征向量随机分成十份,轮流将其中的 九份作为原始训练集,剩下的一份作为原始测试集。
在该实施例的一示例中,所述使用所述原始训练集和随机森林算法训练 所述随机森林分类器模型,包括:
从所述原始训练集中进行k轮随机有放回采样,得到k个训练集,每个 训练集包括n个所述训练样本,k和n均为自然数;
对k个训练集,根据训练集中的训练样本以及所述训练样本的特征向量 选择分裂属性,依据分裂属性对训练集进行训练生成决策树;
将生成的多棵决策树组成随机森林。
在该实施例的一示例中,所述决策树为分类回归树(Classification andRegression Trees,CART)决策树;生成所述决策树时,根据基尼指数选择分 裂点进行分裂。
需要说明的是,如果训练数据集D根据特征A是否取某一可能值a被分 割为D1和D2两部分,则在特征A的条件下,集合D的基尼指数Gini(D) 定义为:
基尼指数Gini(D)表示集合D的不确定性,基尼指数Gini(D,A)表示经 过A=a分割后集合D的不确定性。基尼指数越大,样本的不确定性也就越大。
在该实施例的一示例中,所述预设的评估指标,包括:准确率、检出率、 误报率、ROC曲线下面积(Area Under roc Curve,AUC)指标。
需要说明的是,受试者工作特征曲线(Receiver Operator CharacteristicCurve,ROC),又称为感受性曲线(Sensitivity Curve),是反映敏感度和特 异度连续变量的综合指标,用作图法展示两度之间的关系。ROC曲线是根据 一系列不同的二分类方式(分界值或决定阈),以真阳性率(灵敏度)为纵 坐标,假阳性率(1-特异度)为横坐标绘制的曲线。
AUC值为ROC曲线所覆盖的区域面积,显然,AUC越大,分类器分类 效果越好。AUC=1,是完美分类器;0.5<AUC<1,优于随机猜测;AUC= 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值;AUC<0.5,比 随机猜测还差,但只要总是反预测而行,就优于随机猜测。假设分类器的输 出是样本属于正类的置信度(Score),则AUC的物理意义为,任取一对(正、负)样本,正样本的score大于负样本的score的概率。
步骤102:提取网页脚本文件的特征向量,所述特征向量包括文件中的 各字符串数组的数组元素拼接所得的字符串中最长字符串的长度及所述最长 字符串的信息熵;
在该步骤中,我们首先需要遍历文件中的字符串数组,对各字符串数组 的数组元素进行拼接,得到J个字符串S1至SJ,选取S1至SJ其中最长的字符串, 计算其长度及信息熵,作为提取的特征向量。其中,J为自然数。
需要说明的是,当黑客对Webshell脚本文件进行混淆、加密处理时,经 过混淆、加密处理过的Webshell代码一般是作为一条超长的字符串进行存储 的。例如当前Webshell中经常使用的base64编码,就会产生一个没有空格 字符的超长字符串。而对于正常的业务代码,最长的字符串一般为函数名, 其长度一般也相对较短。
信息熵是一个数学上的抽象概念,它是指某个特定信息的出现概率(离 散随机事件的出现概率),也可以理解成化学里头物质的混乱程度。一个系 统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高。所 有,信息熵可以是系统有序化程度的一个度量。而经过混淆、加密处理过的 Webshell包含大量随机内容或特殊信息的字符,其会使用更多的ASCII码字 符,所以它的信息熵就会变大。并且,经过混淆、加密处理过的Webshell 代码,除了反映在文件中较长的字符串上,还有很多是代码中字符串数组拼 接所得。因此,通过提取文件中的所有字符串数组拼接所得最长字符串的长 度、文件中的所有字符串数组拼接所得最长字符串的信息熵作为所述文件的 特征向量,可以更加准确地区分出正常文件和Webshell脚本文件。
在本发明的一实施例中,所述特征向量,还包括以下至少之一:
所述文件的信息熵、所述字符串变量长度的均值、所述字符串变量长度 的方差、所述文件长度、所述最大字符串变量长度、所述最大字符串的信息 熵、所述文件中敏感函数的频率、所述文件中匹配的特征代码段个数。
在该实施例中,所述各个特征向量的计算方法如下:
(1)所述文件的信息熵:将文件作为一个大字符串S,所述文件的信息 熵H(S)通过下式进行计算:
其中,pj=文件中某个字符的个数/文件字符总 数,N为文件中的字符总数,j为1到N之间的自然数。
;(2)所述文件中字符串类型变量的长度的均值找出文件中所有字 符串类型的变量,统计该类型变量的长度l,计算平均值,如果没有字符串 类型的变量,则该项记为0,计算公式如下:
其中,n为文件中的字符串类型变量的个数,i为1到n之间 的自然数,li为第i个字符串类型变量的长度。
(3)所述文件中字符串类型变量的长度的方差(Variance):找出文件 中所有字符串类型的变量,统计该类型变量的长度l,计算方差,如果字符 串类型的变量,则该项记为0,计算公式如下:
其中,n为文件中的字符串类型变量的个数,i为1到 n之间的自然数,li为第i个字符串类型变量的长度,X2为文件中的所有字符 串类型变量的长度的均值。
(4)所述文件的长度L:即统计该文件中的字符总数m。
L=m;
(5)最大字符串变量长度:找出文件中最长的字符串类型变量,将其包 含的字符个数作为所述文件中最长的字符串类型变量的长度。
(6)最大字符串的信息熵:对字符串类型的变量中最长的字符串变量 smax求信息熵,计算方法同文件的信息熵的计算方法。
X6=H(smax)
(7)所述文件中敏感函数的频率:提取代码中执行系统指令的函数和读 写文件的函数,如eval、fopen,统计其出现频率f:
f=a/A,a为敏感函数的个数,A为总调用函数个数。
(8)所述文件中字符串数组拼接所得最长字符串的长度:遍历文件中的 字符串数组,假设文件中的字符串数组的个数为J,对各字符串数组的数组 元素进行拼接,每个字符串数组的数组元素拼接后得到一个字符串,一共得 到J个字符串{S1,…,SJ},选取S1至SJ中最长的字符串,将其包含的字符个数 作为所述文件中的所有字符串数组拼接所得最长字符串的长度。
(9)所述文件中字符串数组拼接所得最长字符串的信息熵:遍历文件中 的字符串数组,假设文件中的字符串数组的个数为J,对各字符串数组的数 组元素进行拼接,每个字符串数组的数组元素拼接后得到一个字符串,一共 得到J个字符串{S1,…,SJ},选取S1至SJ中最长的字符串,计算其信息熵,计 算方法同文件的信息熵的计算方法。
(10)所述文件中匹配的特征代码段个数
结合部分人工分析经验,预先定义一些Webshell特有的特征代码段,如:“(base64_decode\([\'"][\w\+/=]{200,}[\'"]\))”、 “(eval\(\$_(POST|GET|REQUEST)\[.{0,15}\]\))”等,形成特征匹配库。将文件 内容和特征匹配库中的特征代码段一一匹配,统计匹配到的特征代码段个数 Y。
步骤103:使用预先训练好的随机森林分类器模型对提取的特征向量进 行检测,以确定所述网页脚本文件是否为网页后门Webshell文件。
在机器学习中,随机森林是一个包含多个决策树的分类器,对新的输入 样本进行类别预测时,每一棵树都会产生一个预测结果,最终通过少数服从 多数的原则确定新输入样本的类别。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储 介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处 理器执行,以实现如以上任一项所述的网页后门检测方法的步骤。
本发明实施例还提供了一种网页后门检测装置,包括处理器及存储器, 其中:所述处理器用于执行存储器中存储的程序,以实现如以上任一项所述 的网页后门检测方法的步骤。
如图2所示,本发明实施例还提供了一种网页后门检测装置,包括获取 单元201、提取单元202和检测单元203,其中:
获取单元201,用于获取网页脚本文件,去除网页脚本文件中的注释信 息;
提取单元202,用于提取网页脚本文件的特征向量,所述特征向量包括 文件中的各字符串数组的数组元素拼接所得的字符串中最长字符串的长度及 所述最长字符串的信息熵;
检测单元203,用于使用预先训练好的随机森林分类器模型对提取的特 征向量进行检测,以确定所述网页脚本文件是否为网页后门Webshell文件。
在本发明的一实施例中,所述注释信息为形如“/*······*/”、“//······” 这样的无关代码。
如图3所示,在本发明的一实施例中,所示网页后门检测装置还包括训 练单元204,其中:
所述训练单元204,用于获取网页脚本文件样本,提取所述网页脚本文 件样本中的特征向量,将提取的特征向量划分为原始训练集和原始测试集, 使用所述原始训练集和随机森林算法训练所述随机森林分类器模型,使用所 述原始测试集对训练好的所述随机森林分类器模型进行验证,并根据预设的 评估指标,对所述随机森林分类器模型进行参数调整。
在该实施例的一示例中,所述训练单元204的将提取的特征向量划分为 原始训练集和原始测试集,包括:
采用十折交叉检验法,将提取的特征向量随机分成十份,轮流将其中的 九份作为原始训练集,剩下的一份作为原始测试集。
在该实施例的一示例中,所述训练单元204的使用所述原始训练集和随 机森林算法训练所述随机森林分类器模型,包括:
从所述原始训练集中进行k轮随机有放回采样,得到k个训练集,每个 训练集包括n个所述训练样本,k和n均为自然数;
对k个训练集,根据训练集中的训练样本以及所述训练样本的特征向量 选择分裂属性,依据分裂属性对训练集进行训练生成决策树;
将生成的多棵决策树组成随机森林。
在该实施例的一示例中,所述决策树为CART决策树;
所述训练单元204生成所述决策树时,根据基尼指数选择分裂点进行分 裂。
在该实施例的一示例中,所述预设的评估指标,包括:准确率、检出率、 误报率、AUC指标。
在本发明的一实施例中,所述提取单元202具体用于:遍历文件中的字 符串数组,对各字符串数组的数组元素进行拼接,得到J个字符串S1至SJ, 选取S1至SJ其中最长的字符串,计算其长度及信息熵,作为提取的特征向量。
在本发明的一实施例中,所述特征向量,还包括以下至少之一:
所述文件的信息熵、所述字符串变量长度的均值、所述字符串变量长度 的方差、所述文件长度、所述最大字符串变量长度、所述最大字符串的信息 熵、所述文件中敏感函数的频率、所述文件中匹配的特征代码段个数。
在该实施例中,所述各个特征向量的计算方法如前文所述,此处不再赘 述。
示例性地,本发明实施例还提供了一种基于随机森林算法的Webshell 检测方法,该方法通过统计学方法结合部分人工经验,自动化提取网页脚本 文件的特征向量,使用随机森林算法训练能够对Webshell和正常脚本文件进 行二分类的分类模型,使用分类模型实现检测Webshell的目标。具体流程分 为模型训练和文件检测两个部分:
1、模型训练流程
如图4所示,模型训练流程主要包括如下步骤:
步骤A:对搜集到的Webshell文件和正常的php、asp、jsp、aspx等脚 本文件进行预处理,去掉文件中的代码注释内容,如“/**...*/”,“/*...*/” 中的内容;
步骤B:提取特征向量,在该实施例中,所述特征向量X=[X1,X2,...X10]包 括文件的信息熵X1、字符串变量长度的均值X2、字符串变量长度的方差X3、 文件长度X4、最大字符串变量长度X5、最大字符串的信息熵X6、文件中敏感 函数的频率X7、字符串数组拼接所得最长字符串的长度X8、字符串数组拼接 所得最长字符串的信息熵、X9和特征代码段X10十个特征;
(1)文件的信息熵
文件进行预处理后作为一个大字符串S,信息熵用下式进行计算:
其中,pj=文件中某个字符的个数/文件字 符总数,N为文件中的字符总数,j为1到N之间的自然数。
(2)字符串变量长度的均值
找出文件中所有字符串类型的变量,统计该类型变量的长度l,计算平 均值,如果没有字符串类型的变量,则该项记为0。
其中,n为文件中的字符串类型变量的个数,i为1到n之间 的自然数,li为第i个字符串类型变量的长度。
(3)字符串变量长度的方差
找出文件中所有字符串类型的变量,统计该类型变量的长度l,计算方 差,如果字符串类型的变量,则该项记为0。
其中,n为文件中的字符串类型变量的个数,i为1到n 之间的自然数,li为第i个字符串类型变量的长度,X2为文件中的所有字符串 类型变量的长度的均值。
(4)文件长度
即统计该文件中的字符总数m。
X4=m。
(5)最大字符串变量长度
字符串类型的变量中最长的字符串变量长度。
X5=max({l1,...,ln})。
(6)最大字符串的信息熵
对字符串类型的变量中最长的字符串变量smax求信息熵,计算方法同文 件的信息熵的计算方法。
X6=H(smax)。
(7)文件中敏感函数的频率
提取代码中执行系统指令的函数和读写文件的函数,如eval、fopen,统 计其出现频率f:
X7=f=a/A,a为敏感函数的个数,A为总调用函数个数。
(8)字符串数组拼接所得最长字符串的长度
统计文件中的字符串数组,遍历数组,对数组元素进行拼接,得到J个 字符串S1至SJ,计算字符串中最长的字符串的长度:
X8=max(len({S1,…,SJ})),表示字符串中最长的字符串长度。
(9)字符串数组拼接所得最长字符串的信息熵
统计文件中的字符串数组,遍历数组,对数组元素进行拼接,得到J个 字符串S1至SJ,计算字符串中最长的字符串的信息熵:
X9=H(si){len(si)=X9},表示字符串中最长的字符串的信息熵。
如果文件中不存在字符串数组,则X8、X9均取0。
(10)特征代码段
结合部分人工分析经验,提出一些Webshell特有的特征代码段,如: “(base64_decode\([\'"][\w\+/=]{200,}[\'"]\))”、 “(eval\(\$_(POST|GET|REQUEST)\[.{0,15}\]\))”等,形成特征匹配库。将文 件内容和特征匹配库中的特征代码段一一匹配,统计匹配到的特征代码段个 数Y
对每个样本文件计算上述特征的值,形成一个10维的特征向量X,所有 的n个样本转化为特征向量后,就形成了一个n×10维的样本集。
步骤C:将特征向量和类别标签组成的数据集分成原始测试集和原始训 练集,这里我们采用十折交叉检验法:数据随机分成10份,轮流将其中的9 份作为原始训练集,剩下的1份作为原始测试集;
步骤D:使用随机森林算法训练分类器模型;
我们使用随机森林算法完成模型的训练和检测,随机森林属于集成学习(Ensemble Learning)中的bagging算法。算法过程如下:
(1)从原始训练集中使用Bootstraping方法随机有放回采样选出n个样 本,共进行k次采样,生成k个训练集;
(2)对于k个训练集,我们分别训练k个CART决策树模型(这k个 决策树模型可以根据具体问题而定,比如ID3、C4.5);
(3)对于单个决策树模型,假设训练样本特征的个数为M,随机地从 M个特征中选取m个特征子集,每次分裂时从这m个特征子集中根据基尼 指数选择最好的特征进行分裂(如果是ID3/C4.5则分裂原则为信息增益或信 息增益比);
(4)将生成的多棵决策树组成随机森林。对于分类问题,按多棵树分类 器投票决定最终分类结果。
步骤E:使用原始测试集对模型进行验证,通过准确率、检出率、误报 率、AUC指标对分类器模型进行参数调整,直至最优。
在该步骤中,算法优化过程具体包括:
对训练好的随机森林模型进行交叉检验,计算准确率、检出率、误报率、 AUC值;
调整随机森林模型中决策树个数n,单个决策树最大特征数m,重新训 练,计算上述指标,直到达到最优。
2、文件检测流程
如图5所示,模型训练流程主要包括如下步骤:
步骤a:对待测脚本文件进行预处理,预处理方法同模型训练流程的步 骤A;
步骤b:经过预处理后的文件计算各项特征数值,计算方法和模型训练 流程的步骤B提取特征向量的方法相同;
步骤c:使用训练好的模型进行检测。
本发明实施例提出了一种基于随机森林的Webshell检测方法,通过统计 学方法结合部分人工经验,自动化提取出php、asp等脚本文件的特征向量, 通过随机森林算法对部分已知Webshell和正常脚本文件的特征向量进行学 习,使用学习好的模型对Webshell进行检测。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序 来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读 存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用 一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用 硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任 何特定形式的硬件和软件的结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本 领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和 原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护 范围之内。
Claims (10)
1.一种网页后门检测方法,其特征在于,包括:
获取网页脚本文件,去除网页脚本文件中的注释信息;
提取网页脚本文件的特征向量,所述特征向量包括文件中的各字符串数组的数组元素拼接所得的字符串中最长字符串的长度及所述最长字符串的信息熵;
使用预先训练好的随机森林分类器模型对提取的特征向量进行检测,以确定所述网页脚本文件是否为网页后门Webshell文件。
2.根据权利要求1所述的方法,其特征在于,所述特征向量还包括以下至少之一:
所述文件的信息熵、所述字符串变量长度的均值、所述字符串变量长度的方差、所述文件长度、所述最大字符串变量长度、所述最大字符串的信息熵、所述文件中敏感函数的频率、所述文件中匹配的特征代码段个数。
3.根据权利要求1所述的方法,其特征在于,所述方法之前还包括:
获取网页脚本文件样本,提取所述网页脚本文件样本中的特征向量,将提取的特征向量划分为原始训练集和原始测试集;
使用所述原始训练集和随机森林算法训练所述随机森林分类器模型;
使用所述原始测试集对训练好的所述分类器模型进行验证,并根据预设的评估指标,对所述随机森林分类器模型进行参数调整。
4.根据权利要求3所述的方法,其特征在于,所述使用所述原始训练集和随机森林算法训练所述随机森林分类器模型,包括:
从所述原始训练集中进行k轮随机有放回采样,得到k个训练集,每个训练集包括n个所述训练样本,k和n均为自然数;
对k个训练集,根据训练集中的训练样本以及所述训练样本的特征向量选择分裂属性,依据分裂属性对训练集进行训练生成决策树;
将生成的多棵决策树组成所述随机森林分类器。
5.根据权利要求4所述的方法,其特征在于,所述决策树为分类回归树CART决策树;生成所述决策树时,根据基尼指数选择分裂点进行分裂。
6.根据权利要求3所述的方法,其特征在于,所述预设的评估指标,包括:准确率、检出率、误报率、受试者工作特征曲线ROC下面积AUC指标。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至6中任一项所述的网页后门检测方法的步骤。
8.一种网页后门检测装置,其特征在于,包括处理器及存储器,其中:所述处理器用于执行存储器中存储的程序,以实现如权利要求1至6中任一项所述的网页后门检测方法的步骤。
9.一种网页后门检测装置,其特征在于,包括获取单元、提取单元和检测单元,其中:
获取单元,用于获取网页脚本文件,去除网页脚本文件中的注释信息;
提取单元,用于提取网页脚本文件的特征向量,所述特征向量包括文件中的各字符串数组的数组元素拼接所得的字符串中最长字符串的长度及所述最长字符串的信息熵;
检测单元,用于使用预先训练好的随机森林分类器模型对提取的特征向量进行检测,以确定所述网页脚本文件是否为Webshell文件。
10.根据权利要求9所述的装置,其特征在于,所述提取单元提取的特征向量还包括以下至少之一:
所述文件的信息熵、所述字符串变量长度的均值、所述字符串变量长度的方差、所述文件长度、所述最大字符串变量长度、所述最大字符串的信息熵、所述文件中敏感函数的频率、所述文件中匹配的特征代码段个数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811418384.3A CN109657467A (zh) | 2018-11-26 | 2018-11-26 | 一种网页后门检测方法和装置、计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811418384.3A CN109657467A (zh) | 2018-11-26 | 2018-11-26 | 一种网页后门检测方法和装置、计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109657467A true CN109657467A (zh) | 2019-04-19 |
Family
ID=66111648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811418384.3A Pending CN109657467A (zh) | 2018-11-26 | 2018-11-26 | 一种网页后门检测方法和装置、计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109657467A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110210225A (zh) * | 2019-05-27 | 2019-09-06 | 四川大学 | 一种智能化的Docker容器恶意文件检测方法和装置 |
CN110232277A (zh) * | 2019-04-23 | 2019-09-13 | 平安科技(深圳)有限公司 | 网页后门的检测方法、装置和计算机设备 |
CN111324344A (zh) * | 2020-02-28 | 2020-06-23 | 深圳前海微众银行股份有限公司 | 代码语句的生成方法、装置、设备及可读存储介质 |
CN111523118A (zh) * | 2020-04-15 | 2020-08-11 | 北京升鑫网络科技有限公司 | 一种Webshell检测方法、装置、存储介质和设备 |
CN111740946A (zh) * | 2020-05-09 | 2020-10-02 | 郑州启明星辰信息安全技术有限公司 | Webshell报文的检测方法及装置 |
CN112016088A (zh) * | 2020-08-13 | 2020-12-01 | 北京兰云科技有限公司 | 生成文件检测模型的方法、装置、检测文件的方法及装置 |
CN114462033A (zh) * | 2021-12-21 | 2022-05-10 | 天翼云科技有限公司 | 一种脚本文件检测模型的构建方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106572117A (zh) * | 2016-11-11 | 2017-04-19 | 北京安普诺信息技术有限公司 | 一种WebShell文件的检测方法和装置 |
CN107092827A (zh) * | 2017-03-30 | 2017-08-25 | 中国民航大学 | 一种基于改进森林算法的Android恶意软件检测方法 |
CN107153789A (zh) * | 2017-04-24 | 2017-09-12 | 西安电子科技大学 | 利用随机森林分类器实时检测安卓恶意软件的方法 |
-
2018
- 2018-11-26 CN CN201811418384.3A patent/CN109657467A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106572117A (zh) * | 2016-11-11 | 2017-04-19 | 北京安普诺信息技术有限公司 | 一种WebShell文件的检测方法和装置 |
CN107092827A (zh) * | 2017-03-30 | 2017-08-25 | 中国民航大学 | 一种基于改进森林算法的Android恶意软件检测方法 |
CN107153789A (zh) * | 2017-04-24 | 2017-09-12 | 西安电子科技大学 | 利用随机森林分类器实时检测安卓恶意软件的方法 |
Non-Patent Citations (2)
Title |
---|
YONG FANG 等: "Detecting Webshell Based on Random Forest with Fast Text", 《PROCEEDINGS OF THE 2018 INTERNATIONAL CONFERENCE ON COMPUTING AND ARTIFICIAL INTELLIGENCE》 * |
贾文超 等: "采用随机森林改进算法的WebShell检测方法", 《计算机应用研究》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110232277A (zh) * | 2019-04-23 | 2019-09-13 | 平安科技(深圳)有限公司 | 网页后门的检测方法、装置和计算机设备 |
CN110210225A (zh) * | 2019-05-27 | 2019-09-06 | 四川大学 | 一种智能化的Docker容器恶意文件检测方法和装置 |
CN111324344A (zh) * | 2020-02-28 | 2020-06-23 | 深圳前海微众银行股份有限公司 | 代码语句的生成方法、装置、设备及可读存储介质 |
CN111523118A (zh) * | 2020-04-15 | 2020-08-11 | 北京升鑫网络科技有限公司 | 一种Webshell检测方法、装置、存储介质和设备 |
CN111523118B (zh) * | 2020-04-15 | 2021-04-06 | 北京升鑫网络科技有限公司 | 一种Webshell检测方法、装置、存储介质和设备 |
CN111740946A (zh) * | 2020-05-09 | 2020-10-02 | 郑州启明星辰信息安全技术有限公司 | Webshell报文的检测方法及装置 |
CN112016088A (zh) * | 2020-08-13 | 2020-12-01 | 北京兰云科技有限公司 | 生成文件检测模型的方法、装置、检测文件的方法及装置 |
CN114462033A (zh) * | 2021-12-21 | 2022-05-10 | 天翼云科技有限公司 | 一种脚本文件检测模型的构建方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109657467A (zh) | 一种网页后门检测方法和装置、计算机可读存储介质 | |
US11463476B2 (en) | Character string classification method and system, and character string classification device | |
CN107391569B (zh) | 数据类型的识别、模型训练、风险识别方法、装置及设备 | |
CN111027069B (zh) | 恶意软件家族检测方法、存储介质和计算设备 | |
Souza et al. | Classification of evolving data streams with infinitely delayed labels | |
TW201737118A (zh) | 網頁文本分類的方法和裝置,網頁文本識別的方法和裝置 | |
CN109547423A (zh) | 一种基于机器学习的web恶意请求深度检测系统及方法 | |
CN103577755A (zh) | 一种基于支持向量机的恶意脚本静态检测方法 | |
CN112437053B (zh) | 入侵检测方法及装置 | |
CN109598124A (zh) | 一种webshell检测方法以及装置 | |
CN104778186A (zh) | 将商品对象挂载到标准产品单元的方法及系统 | |
CN111259219A (zh) | 恶意网页识别模型、识别模型建立方法、识别方法及系统 | |
CN107895171A (zh) | 一种基于k均值与深度置信网络的入侵检测方法 | |
CN110830489A (zh) | 基于内容抽象表示的对抗式欺诈网站检测方法及系统 | |
CN113052577A (zh) | 一种区块链数字货币虚拟地址的类别推测方法及系统 | |
CN115801374A (zh) | 网络入侵数据分类方法、装置、电子设备及存储介质 | |
Liu et al. | Network log anomaly detection based on gru and svdd | |
CN110855635B (zh) | Url识别方法、装置及数据处理设备 | |
Abir et al. | Bangla handwritten character recognition with multilayer convolutional neural network | |
Ali et al. | Identification of inpainted satellite images using evalutionary artificial neural network (EANN) and k-nearest neighbor (KNN) algorithm | |
CN108717511A (zh) | 一种Android应用威胁度评估模型建立方法、评估方法及系统 | |
Sheikh et al. | An efficient transfer learning model for predicting forged (handwritten) signature | |
Khan et al. | Bengali crime news classification based on newspaper headlines using NLP | |
CN111581640A (zh) | 一种恶意软件检测方法、装置及设备、存储介质 | |
Saengkhunthod et al. | Detection of unreliable medical articles on Thai websites |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB03 | Change of inventor or designer information |
Inventor after: Zhang Ruoyu Inventor after: Hu Zhiqiang Inventor before: Hu Zhiqiang |
|
CB03 | Change of inventor or designer information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190419 |
|
RJ01 | Rejection of invention patent application after publication |