郑州大学学报(理学版)  2019, Vol. 51 Issue (2): 1-8  DOI: 10.13705/j.issn.1671-6841.2018263

引用本文  

傅建明, 黎琳, 王应军. 基于CNN的Webshell文件检测[J]. 郑州大学学报(理学版), 2019, 51(2): 1-8.
FU Jianming, LI Lin, WANG Yingjun. Webshell Detection Based on Convolutional Neural Network[J]. Journal of Zhengzhou University(Natural Science Edition), 2019, 51(2): 1-8.

基金项目

国家自然科学基金项目(61373168, U1636107);中国科学院信息工程研究所中国科学院网络测评技术重点实验室开放课题

作者简介

傅建明(1969—),男,湖南宁乡人,教授,主要从事系统安全和网络安全研究,E-mail:jmfu@whu.edu.cn

文章历史

收稿日期:2018-10-27
基于CNN的Webshell文件检测
傅建明1,2 , 黎琳1,2 , 王应军1     
1. 武汉大学 国家网络安全学院  湖北 武汉 430072;
2. 武汉大学 空天信息安全与可信计算教育部重点实验室  湖北 武汉 430072
摘要:Webshell是一种以ASP、PHP和JSP等网页文件形式存在的命令执行环境,可以用于Web服务器的远程访问控制.Webshell采用混淆和加密,增加了分析难度和检测难度.基于特征值匹配的Webshell检测方法难以有效对抗混淆加密,且无法检测未知的Webshell,为此提出了一种基于CNN的Webshell检测方法.该方法首先编译PHP文件获取opcode,再利用词汇表模型提取词序特征,最后训练得到CNN检测模型.实验结果表明,该方法在精确率、召回率、F1值都优于传统的机器学习算法, 且检测率也高于现有的安全工具,证明了该方法的有效性.
关键词Webshell    opcode    词汇表模型    深度学习    
Webshell Detection Based on Convolutional Neural Network
FU Jianming1,2 , LI Lin1,2 , WANG Yingjun1     
1. School of Cyber Science and Engineering, Wuhan University, Wuhan 430072, China;
2. Key Laboratory of Aerospace Information Security and Trusted Computing, Wuhan University, Wuhan 430072, China
Abstract: Webshell was a command execution environment in the form of Web file such as ASP, PHP, and JSP, which was used for remote access control of Web servers. It often disguised itself through obfuscation and encryption, which increased the difficulty of analysis and detection. Based on the feature value matching, the existing Webshell detection methods couldn't effectively prevent obfuscation and encryption, and couldn't detect unknown Webshell neither. Therefore, a novel Webshell detection method based on CNN was proposed. Firstly, this method compiled PHP files to obtain opcodes, then vocabulary model was used to extract word order features, and finally the CNN detection model was established based on the extracted feature vectors. Experiment results showed that the accuracy, recall rate and F1 score of this method were better than the traditional machine learning algorithms, and the detection rate was higher than the existing security tools, which proved the effectiveness of the proposed method.
Key words: Webshell    opcode    vocabulary model    deep learning    
0 引言

Web服务是企业对外服务的接口, 因其后台企业数据和消费者数据的巨大价值, 吸引了大量的攻击者.根据Internet Live Status 2018年1月的数据[1],全球每天大概有100 618个网站被攻击.并且根据《2018年全球风险报告》[2],网络攻击的次数正在逐步增多,仅2016年就有3.75亿个新型恶意软件和木马程序出现在被攻破的Web服务器上.为了便于攻击者对破袭后的Web服务器进行长期的控守,攻击者会上传一个远程访问工具到Web服务器,该Web服务器上的远程访问控制工具俗称为Webshell.

Webshell本质上是一个采用ASP、JSP或PHP编写的脚本程序文件,驻留在Web服务器的公开访问目录中,攻击者利用浏览器或者定制的客户端软件可以对其直接访问.Webshell提供了对各种关键功能的远程访问,例如执行任意命令、遍历文件目录、查看和修改任意文件、提升访问权限、发送垃圾邮件和钓鱼邮件[3].2018年5月的统计数据[4]指出,PHP在网站服务器编程语言中占据了83.4%;同时,已有的研究主要关注PHP编写的Webshell.因此, 本文只关注PHP Webshell,如China Chopper、WSO、C99和B374K等[5-6].当然,其检测方法也可以推广到其他脚本的Webshell.

学术界和安全公司都研究检测Webshell的方法,包括Webshell日志的检测[7]、Webshell流量的检测[8-9]、Webshell文件的检测[10-12].从网页访问的日志中容易检测Webshell,这归因于访问Webshell的IP比较单一、访问次数少、Webshell网页比较孤立,这是一种攻击事后溯源的方式.利用启发式规则或者统计模型从网络流量中检出Webshell流量一直是安全界和企业界常用的方式,Webshell的正则表达式大量用于Web服务器边界的WAF(web application firewall)中,但正则表达式容易被混淆绕过[13],且只能检测已知的Webshell.而Webshell的统计模型一般采用人工构建的特征作为输入参数,这些特征一旦被攻击者感知到,则攻击者可以绕过这种模型[14].

Webshell是一种恶意代码,传统基于特征值匹配的恶意代码检测方法同样适应于Webshell文件的检测[10-12], 其优点是检测速度快、检测精准,但变形和混淆会引发漏报,且对未知的Webshell缺乏感知能力.同时,传统机器学习模型检测Webshell文件也需要人工构建的特征作为输入参数,而攻击者可构造绕过模型的Webshell文件.但是,Webshell文件检测非常重要,入侵检测系统在Web服务的边界捕获到可疑文件,需要快速得到检测结果;同时,攻击者在上传Webshell到Web服务器之前,也会测试该Webshell是否能被安全工具和各种公开的Webshell沙箱检出.

Webshell是由脚本语言编写的一种语言文本.因此,可以采用自然语言的语言模型例如N-gram模型、马尔可夫模型处理Webshell,把Webshell看作是不同语言符号构建的、有特殊含义的文本.为了对抗混淆和加密,本文把Webshell转换为脚本编译后的操作码(operation code,opcode),从而把Webshell文件的检测转化为Webshell opcode序列的检测.与此同时,深度学习已经广泛应用于图像识别、声音识别、自然语言处理中[15-18].本文引入深度学习,用以对抗传统机器学习中Webshell的绕过人工特征,同时也希望深度学习模型可以记忆混淆操作和加密操作,从而提高检测的泛化能力.

本文关注Webshell文件检测,提出了基于词汇表模型和深度学习算法卷积神经网络(convolutional neural network,CNN)的检测方法,具体工作包括3个方面:

a) 为了降低Webshell混淆和加密操作对检测的干扰,将对文件的检测转化为对opcode序列的检测, 并通过实验证明基于opcode的检测相较于基于原始文本的检测,能够提高检测精度.

b) 分别利用词袋模型和词汇表模型对opcode序列提取词频特征和词序特征,实验证明词序特征对Webshell检测的影响优于词频特征,能够提高检测的精确率.

c) 将改进后的CNN模型应用到Webshell文本检测这个二分类问题,并通过实验证明优于传统的机器学习算法和现有安全工具.

1 相关工作介绍 1.1 Webshell流量检测

攻击者利用SQL注入漏洞或者文件上传漏洞等把Webshell文件上传到Web服务的文件目录中,然后像正常使用Web服务一样利用Webshell.攻击者在利用Webshell时,会在网络中产生网络流量,也会在Web服务器中产生Web日志.利用已知的正常网络流量(日志)和Webshell流量(日志),就可以构建识别Webshell的模型.

文献[7]统计Web日志的分布发现,Webshell的URI资源和URI查询字符比较简短、随意、杂乱,甚至出现畸形字符,Webshell文件的单位时间窗口的访问次数较少,Webshell文件访问的入度和出度比较小,甚至接近于0.这些启发式知识有利于从大量Web日志中发现Webshell的使用痕迹,属于攻击事后的取证.文献[19]把Web流量的每一个记录分为URI资源和URI查询, 分别对这两部分以4-gram分割,建立各自修正的TF-IDF权值,最后根据累计的权值识别恶意Web流量,包括Webshell流量.这种加权累加的结果也是一种启发式知识,可以用于在线检测.利用启发式知识识别Webshell的好处是检测速度快,但其对混淆和加密比较敏感.

文献[9]把HTTP请求转换为一个带统计特性的符号序列,采用变阶的马尔科夫模型(variable-order Markov model, VMM)描述该变长的符号序列,然后根据模型出现的概率识别恶意流量,其中包括Webshell流量.该模型可以缓解概念漂移、变长符号、高熵带来的识别干扰.CNN-Webshell[6]引入Word2Vec和CNN[20-21]识别网络流量中Webshell的请求,其检测结果优于朴素贝叶斯、支持向量机、K邻近、随机森林等传统的机器学习算法,其检测准确率比SVM提高了2.6%.

1.2 Webshell文件检测

Webshell文件属于恶意代码的一种,传统恶意代码分析和检测技术同样适用于Webshell文件的检测.理解Webshell文件的结构、内容、特性,可以更好地服务于检测.

文献[18]指出,Webshell习惯性地使用混淆技术逃避特征值的检测,并使用去混淆操作还原Webshell中混淆代码,最后采用一种上下文触发的片断哈希(context-trigger piecewise hashing)对去混淆的Webshell聚类,样本间的聚类关系有助于识别未知Webshell.文献[22]通过静态和动态分析已有的Webshell,发现其可见的特性,如口令的暴力破解、SQL数据库的访问、端口扫描、安全工具的检测等;也发现许多不可见的特性,如一半的Webshell有认证机制,且其中1/3可以绕过,1/3 Webshell执行时会通知某个第三方(不是攻击者),泄漏安装Webshell的Web服务器.如果注册被弃用的第三方域名,则可以捕获感染Webshell主机.该研究揭示了Webshell的生态系统,包括攻击者、感染的Web服务器以及Webshell内置的后门代码,这些后门代码会泄漏攻击者的信息和感染的Web服务器的信息.

文献[23]利用污点分析获取Webshell文件的模式,该模式可以识别未知的Webshell.从已有的Webshell文件中抽取可以标识Webshell的特征.Linux恶意软件探测扫描器[10]、PHP Webshell Detector[11]、D盾[12]等都是利用这些特征的正则表达式检测Webshell.同时,NeoPI[24]通过文件信息熵、文件可压缩比、文件重合指数、单词最大长度、恶意代码片断等统计特征识别Webshell,该统计特征可以对抗部分混淆和加密,提高对未知Webshell的感知能力,但检测阈值是人为经验设定,会出现误报和漏报.文献[25]分析敏感函数和敏感字符串在正常PHP文件和Webshell文件中的使用分布,提出了一种打分机制识别可疑的Webshell,但没有解释如何确定阈值.

文献[26]选取文档属性(如单词数量、分割符数量)、字符串操作函数、命令执行函数(如eval, exec, system)、加解密函数、系统调用函数(如文件操作、数据库操作)等作为特征集,其基于决策树的检测模型取得了较好的检测结果.基于类似的特征集,文献[27]采用了基于SVM的检测模型,其准确性优于决策树模型.文献[28]首先采用NN(nearest neighbor)剔除样本中的可疑噪声,选取NeoPI[24]中特征集,然后应用SVM识别Webshell,其准确性比传统的SVM高2.1%.

2 检测框架

CNN是深度学习中一种被广泛应用的网络,常用于图像识别领域,由于其方便性、可靠性等特点,已经成为图像识别领域的主要研究方法.近些年来,研究者将CNN引入自然语言处理领域用于处理文本分类问题,而Webshell检测也属于文本二分类问题,所以本文将其应用于对Webshell的检测.

本文基于CNN的Webshell检测框架如图 1所示,主要包括数据预处理、特征提取和表示以及检测模型3个模块.

图 1 检测框架 Fig. 1 Framework of detection
2.1 数据预处理

数据预处理的工作包括文件去重和opcode获取,本文基于MD5值哈希以去除重复文件.

MD5去重是根据文件内容计算每个文件的MD5值,如果MD5相同,则认为文件相同进行去重.opcode是PHP脚本编译之后的中间语言, 其和PHP的关系就类比于jvm字节码和JAVA的关系,它包括操作符、操作数、指令格式及规范以及保存指令及相关信息的数据结构.PHP脚本执行包括4个阶段:词法分析、语法解析、opcode编译、opcode执行.编译器在第3阶段会将opcode与相应的参数或函数调用绑定,即使对Webshell危险函数进行混淆加密,在编译时依然会出现与正常文件编译结果不同的opcode语句.因此可以根据这一特点,利用opcode区分Webshell和正常文件,把对文件的检测转换为对opcode序列的检测,本文利用PHP插件逻辑扩展模块(Vulcan logic dumper,VLD)编译获取PHP文件opcode.

2.2 特征提取及表示

无论是机器学习还是深度学习都无法直接应用于文本,因此需要将2.1节获得的opcode特征向量转变成算法所能处理的数学形式.鉴于本文研究的对象是静态PHP文件,因此在opcode的基础上,通过词袋模型 & TF-IDF和词汇表模型分别提取词频和词序特征.

2.2.1 词袋模型 & TF-IDF

词袋模型是应用于NLP领域的特征提取模型,该模型不考虑词法、语法和语序关系,将文档看作是一袋子独立的单词,基于单词构建字典(dictionary),并根据字典将文档表述为向量.该模型假设存在一个包含正常文件和Webshell文件的文档集合D,里面共有M个文档,提取文档里的所有单词构成包含N个opcode单词的字典(N可根据实际情况进行选择),利用字典将每个文档表示成一个N维向量,向量每一维的值代表该单词在该文档中出现的次数.

但仅凭词频无法反映词的重要性,为了寻找到能更好地概括特征、区分正常文件与Webshell的opcode单词,本文在词袋模型处理之后引入TF-IDF进一步处理.TF-IDF算法利用词的逆文档频率(inverse document frequency,IDF)修正仅仅用词频表示的词特征值,基于词的TF-IDF值过滤掉区分能力较小的单词而保留重要的词语.图 2是词袋模型的处理示例.

图 2 词袋模型处理示例 Fig. 2 Example of bag-of-words model
2.2.2 词汇表模型

由2.2.1节可知,词袋模型在构建文档向量时,并没有保留单词词序特征,而词序往往包含更多的语义信息,因此本文采用词汇表模型提取PHP脚本opcode序列的词序特征.

词汇表模型假设存在一个包含正常文件和Webshell文件的文档集合D,里面共有M个文档,提取文档里的所有单词构成带有词序序号的N个单词的字典(序号是单词出现的顺序),利用字典将每一个文档表示成一个P维向量(P即代表所选取的最大文档长度),P维向量的每一维的值即是该文档中的单词出现在词典里的序号,而不是单词出现在文档里的次数.图 3是词汇表模型的处理示例.

图 3 词汇表模型处理示例 Fig. 3 Example of vocabulary model
2.3 检测模型

传统的用于文本分类问题的CNN结构主要都源于文献[15]一文中的结构,而考虑到数据的稀疏性,本文所用CNN模型结构增加了一层卷积层,并改变原先池化卷积层输出后再合并的方法, 而采用先合并卷积层输出再池化的方式.模型结构如图 4所示,由两层一维卷积层、全局池化层、softmax层构成.

图 4 CNN模型结构 Fig. 4 Architecture of CNN model

卷积层共有两层,每层包含3个卷积核数量为128、长度分别为3、4、5的一维卷积神经网络,通过卷积运算抽取局部特征.给定输入矩阵n*k, n为文档个数,k为特征维数,该卷积层进行卷积时只对列进行卷积.在给定矩阵的位置i,卷积结果为Ci=f(W·Xi:i+h-1+b)∈Rh为卷积核长度,b是偏移量,而f是非线性修正函数,经过实验对比relutanh激活函数,发现tanh对准确率、精确率和召回率的影响都优于relu,因此最终f选用了tanh.整个矩阵的卷积结果被表示成一个特征向量C=[C1, C2, …, Cn-h+1]∈Rn-h+1.

由卷积的运算定义可知,卷积得到的特征向量个数与卷积核的个数相等,因此需要对多个特征向量进行融合,本文采用串接方式将多个向量进行连接,形成固定长度的融合特征向量.而后全局池化层对融合特征向量提取最大值,即C(h, m)=max{C(h, m)},降低特征维数,避免过拟合现象发生.

池化层之后是softmax层,池化层的输出通过全连接的方式连接一个softmax层,根据本文工作需要输出两类概率分布,即Webshell和正常文件的概率分布.

在训练中,本文采用Adam算法对参数进行训练.为了提高模型的准确度,本文采用Dropout策略使得部分神经网络单元失效,防止模型过拟合.

3 实验设计与评估 3.1 数据来源

Webshell文件样本主要通过使用“Webshell”关键字搜索下载github公开项目得到,由于本文只关注PHP语言编写的Webshell,所以经过筛选后一共有188个公开项目,例如tennc/webshell、ysrc/webshell-sample、xl7dev/WebShell、tdifg/WebShell、bartblaze/PHP-backdoors等.

正常PHP样本主要使用互联网常见的基于PHP开发的开源软件样本,主要包括WordPress、PHPCMS、phpMyAdmin、Smarty和Yii.

经过MD5文件排重处理后共获得777个Webshell样本和2 437个正常PHP样本.

3.2 实验设置 3.2.1 实验条件

本文实验基于python实现,python版本为3.6.4.实验环境是Win10 64bit操作系统,处理器为Intel Core i7-8700K@3.70 GHz,内存为32 GB.

3.2.2 实验参数

对数据样本所得opcode个数统计分析如图 5所示.大多数文件的opcode个数都在4~50之间,但92%的Webshell文件和73%的正常文件的opcode个数分布在4~300之间.选取50、100、150、200、300作为词汇表模型的最大文档长度参数进行实验验证,最终选择300作为最大文档长度参数.

图 5 opcode个数分析 Fig. 5 Analysis of opcode

CNN模型的丢弃率设置为0.5,学习速率为0.001,批处理大小为100,训练周期为5轮,测试集与训练集比例为40%和60%.

3.3 评价标准

Webshell的检测是一个二分类问题,本文选取精确率、召回率以及F1值这3个评估指标用以评估方法性能.实验模型对数据检测分类的所有可能情况如表 1所示.精确率(P)、召回率(R)、F1值计算如下:

表 1 分类情况 Tab. 1 Classification
$ P = \frac{{TP}}{{TP + FP}}, R = \frac{{TP}}{{TP + FN}}, F1 = \frac{{2RP}}{{R + P}}. $
3.4 实验结果与分析 3.4.1 方法性能评估

实验从算法和特征两个角度评估本文方法性能,实验结果如表 2所示.

表 2 实验结果比较 Tab. 2 Comparison of experimental results

在特征方面,本文比较了词汇表模型和词袋模型.由表 2可知,前3个算法对于特征的改变并不敏感,但对于CNN和RNN算法来说,基于词序特征的词汇表模型提高了精确率和F1值,其中CNN的精确率和F1值分别提高了1.1%和0.1%.

3.4.2 同类工具比较

本文选取对比了现有的4个安全工具:D盾、河马在线查杀[33]、OpenRASP[34]以及深信服[35],这4个工具都支持PHP脚本上传检测.

实验将777个样本上传至4类工具检测,检测结果如表 3所示,D盾检测率最高达到了87.4%,但依然低于本文方法的97.1%.

表 3 同类工具比较 Tab. 3 Comparison of similar tools
3.4.3 opcode有效性

为了评估opcode的有效性,采用词汇表模型进行特征提取,在原始数据集和opcode数据集上分别进行了实验,实验结果如表 4所示.由表 4可知,采用PHP opcode作为数据集时,能够提高检测的精度,其中CNN的3个评估指标分别提高了1.2%、1.4%、1.2%.

表 4 opcode有效性实验结果 Tab. 4 Effectiveness of opcode
4 结论

本文提出了一种基于CNN的Webshell检测方法,该方法基于PHP opcode序列,利用词汇表模型提取其词序特征,基于特征向量训练构建CNN检测模型.实验证明该方法无论在精确率、召回率还是F1值,都优于传统的机器学习算法;其次,实验还对比了两类特征模型,证明词序特征相较于词频特征更有助于Webshell检测;此外,通过对比在opcode和原始文本数据集上的实验结果,证明opcode比原始文本更加利于检测;最后,本文还比较了现有安全工具,现有安全工具大多是基于特征匹配的方法,而实验结果表明本文方法检测率优于安全工具,证明了本文检测方法的有效性.与文献[6]相比,本文方法关注的是Webshell文本而非Webshell网络流量,是长文本而非短文本,但两者都使用了CNN来处理检测这个二分类问题,并且实验也证明了CNN解决此类问题的有效性.

同时,本文的工作也存在一定的局限性.首先,Webshell样本收集难度大,样本收集数量少,导致检测模型会出现过拟合.其次,检测模型的输入长度是固定的,而样本的长度并非固定,这种长度的不一致会影响模型的检测率.以上两个问题是下一步需要研究和解决的问题.

参考文献
[1]
INTERNET LIVE STATS. Websites hacked today[EB/OL].[2018-05-29]. http://www.internetlivestats.com/. (0)
[2]
世界经济论坛.2018年全球风险报告[R/OL]. (2017-12-12)[2018-05-29]. https://www.mmc.com/content/dam/mmc-web/Global-Risk-Center/Files/The-Global-Risks-Report-2018-Simplified-Chinese-version.pdf. (0)
[3]
KIM J, YOO D H, JANG H, et al. WebSHArk 1.0: a benchmark collection for malicious web shell detection[J]. JIPS, 2015, 11(2): 229-238. (0)
[4]
WEB TECHNOLOGY SURVEYS. Usage of server-side programmign languages for websites[EB/OL].[2018-05-23]. https://w3techs.com/technologies/overview/programming_language/all. (0)
[5]
NEW JERSEY CYBERSECURITY AND COMMUNICATIONS INTEGRATION CELL.China-chopper[EB/OL]. [2018-05-29]. https://www.cyber.nj.gov/threat-profiles/trojan-variants/china-chopper. (0)
[6]
TIAN Y, WANG J, ZHOU Z, et al. CNN-webshell: malicious web shell detection with convolutional neural network[C]//Proceedings of the 2017 VI International Conference on Network, Communication and Computing. Kunming, 2017: 75-79. (0)
[7]
石刘洋. 基于Web日志的Webshell检测方法研究[J]. 信息安全研究, 2016, 2(1): 66-73. (0)
[8]
ZHANG J, JANG J, GU G, et al. Error-sensor: mining information from HTTP error traffic for malware intelligence[C]//International Symposium on Research in Attacks, Intrusions, and Defenses. Heraklion, 2018: 467-489. (0)
[9]
LAMPESBERGER H, WINTER P, ZEILINGER M, et al. An on-line learning statistical model to detect malicious web requests[C]//International Conference on Security and Privacy in Communication Systems. Heidelberg, 2011: 19-38. (0)
[10]
LINUX SOFTWARE AND BLOG. R-fx networks linuz malware detect[EB/OL].[2018-05-29]. https://www.rfxn.com/projects/linux-malware-detect/. (0)
[11]
EMPOSHA.PHP shell detector: web shell detection tool[EB/OL]. (2011-07-17)[2018-05-29]. https://www.emposha.com/category/security. (0)
[12]
深圳迪元素科技有限公司.D盾[EB/OL].[2018-05-29]. http://www.d99net.net/. (0)
[13]
ARGYROS G, STAIS I, KIAYIAS A, et al. Back in black: towards formal, black box analysis of sanitizers and filters[C]//IEEE Symposium on Security and Privacy. San Jose, 2016: 91-109. (0)
[14]
LANDGREY.PHP一句话木马检测绕过研究[EB/OL].[2018-05-29]. https://xz.aliyun.com/t/2335. (0)
[15]
KIM Y. Convolutional neural networks for sentence classification[C]//Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP). Doha, 2014: 1746-1751. (0)
[16]
彭玉青, 刘帆, 高晴晴, 等. 基于微调优化的深度学习在语音识别中的应用[J]. 郑州大学学报(理学版), 2016, 48(4): 30-35. (0)
[17]
廖健, 王素格, 李德玉, 等. 基于增强字向量的微博观点句情感极性分类方法[J]. 郑州大学学报(理学版), 2017, 49(1): 39-44. (0)
[18]
毛晓波, 程志远, 周晓东. 基于特征图叠加的脱机手写体汉字识别[J]. 郑州大学学报(理学版), 2018, 50(3): 78-82. (0)
[19]
YANG J, WANG L, XU Z. A novel semantic-aware approach for detecting malicious web traffic[C]//International Conference on Information and Communications Security. Beijing, 2017: 633-645. (0)
[20]
ZHANG X, ZHAO J, YANN L C. Character-level convolutional networks for text classification[C]//Advances in Neural Information Processing Systems. Montreal, 2015: 649-657. (0)
[21]
WRENCH P M, IRWIN B V W. Towards a PHP webshell taxonomy using deobfuscation-assisted similarity analysis[C]//Information Security for South Africa (ISSA), IEEE. Johannesburg, 2015: 1-8. (0)
[22]
STAROV O, DAHSE J, AHMAD S S, et al. No honor among thieves: a large-scale analysis of malicious web shells[C]//Proceedings of the 25th International Conference on World Wide Web. Montreal, 2016: 1021-1032. (0)
[23]
LE V G, NGUYEN H T, LU D N, et al. A solution for automatically malicious web shell and web application vulnerability detection[C]//International Conference on Computational Collective Intelligence. Halkidiki, 2016: 367-378. (0)
[24]
TU T D, GUANG C, GUO X J, et al. Webshell detection techniques in web applications[C]//International Conference on Computing, Communication and Networking Technologies. Hefei, 2014: 1-7. (0)
[25]
XU M K, CHEN X, HU Y. Design of software to search ASP webshell[J]. Procedia engineering, 2012, 29(12): 123-127. (0)
[26]
胡建康, 徐震, 马多贺, 等. 基于决策树的Webshell检测方法研究[J]. 网络新媒体技术, 2012, 1(6): 15-19. DOI:10.3969/j.issn.2095-347X.2012.06.004 (0)
[27]
孟正, 梅瑞, 张涛, 等. Linux下基于SVM分类器的WebShell检测方法研究[J]. 信息网络安全, 2014, 5(5): 5-9. DOI:10.3969/j.issn.1671-1122.2014.05.002 (0)
[28]
朱魏魏, 胡勇. 基于NN-SVM的Webshell检测方法[J]. 通信与信息技术, 2015, 37(2): 55-58. (0)
[29]
ZHAO Z, XU S, KANG B H, et al. Investigation and improvement of multi-layer perceptron neural networks for credit scoring[J]. Expert systems with applications, 2015, 42(7): 3508-3516. DOI:10.1016/j.eswa.2014.12.006 (0)
[30]
MCCALLUM A, NIGAM K. A comparison of event models for naive bayes text classification[C]//AAAI-98 workshop on learning for text categorization. Madison, 1998: 41-48. (0)
[31]
HEARST M A, DUMAIS S T, OSUNA E, et al. Support vector machines[J]. IEEE intelligent systems and their applications, 1998, 13(4): 18-28. DOI:10.1109/5254.708428 (0)
[32]
GROSSBERG S. Recurrent neural networks[J]. Scholarpedia, 2013, 8(2): 1888. DOI:10.4249/scholarpedia.1888 (0)
[33]
WEBSHELL PUB.河马在线查杀[EB/OL].[2018-05-29]. http://n.shellpub.com/. (0)
[34]
百度安全.OpenRASP[EB/OL]. (2018-07-10)[2018-05-29]. https://rasp.baidu.com/#section-intro. (0)
[35]
EDR安全软件中心.深信服[EB/OL].[2018-05-29]. http://edr.sangfor.com.cn/backdoor_detection.html. (0)