基于机器学习的WebShell检测技术的研究与应用.pdf
中文摘要
WebShell作为黑客常用的入侵工具,黑客利用WebShell获取服务器操作权限执
行命令,从而窃取用户数据。随着网络技术的发展,黑客为了提高WebShell逃避检
测的能力,对WebShell代码进行混淆加密,依赖危险函数识别的传统WebShell文本
检测方法对新型WebShell检测准确率低。另一方面,流量特征提取工具对WebShell
流量特征提取不充分,WebShell流量检测效果不佳。针对以上问题,本文的主要研
究工作如下:
(1)为了解决WebShell代码混淆导致文本检测准确率低的问题,提出一种基于
多特征融合的WebShell文本检测方法。该方法将WebShell的动态特征与静态特征相
融合作为WebShell文本检测的训练特征,动态特征为PHPWebShell的Opcode,对
Opcode使用N-gram和TF-IDF算法进行特征处理,静态特征为WebShell文件名或
者文件内容是否包含WebShell特殊关键词、最长语句占文本内容的比值、是否使用
编码函数对文本编码混淆、文本的信息熵、文本的压缩比、文本的重合指数。使用
XGBoost算法进行训练,通过实验验证了基于多特征融合的WebShell文本检测方法
对WebShell有着较好检测效果。
(2)为了解决流量特征提取工具特征提取不完善的问题,提出一种WebShell
流量特征提取方法,构建流量检测数据集。首先,搭建CMS平台收集用户正常访问
流量和WebShell攻击流量。然后,从流量中提取出HTTP报文。接下来,对冰蝎、
蚁剑和哥斯拉WebShell流量进行分析,总结出WebShell流量特征,对HTTP报文进
行特征提取。最后,构建WebShell流量检测数据集,使用机器学习算法在此数据集
上进行训练,通过实验证明了本文提出的流量特征提取方法可以更有效的检测出
WebShell流量。
(3)为了提高WebShell流量检测的准确率,提出一种基于Stacking模型融合的
WebShell流量检测方法。该方法使用GBDT算法、XGBoost算法和LightGBM算法
作为基学习器,将基学习器中检测效果最好的XGBoost算法作为元学习器,构建
GXL-Stacking模型。将GXL-Stacking模型在WebShell流量检测数据集上进行训练,
通过实验验证了基于Stacking模型融合的WebShell流量检测方法提升了流量检测效
果,可以更好的检测出WebShell流量。
(4)基于上述WebShell文本检测方法和流量检测方法设计并实现了WebShell
I
检测系统。系统检测模块包含文本检测模块、流量检测模块和综合检测模块,综合
检测模块根据用户上传的PHP文件和PCAP文件进行综合分析,结合文本检测结果
和流量检测结果判定是否为WebShell。系统将不同模块的检测结果展示给用户。
关键词:机器学习;WebShell检测;文本检测;流量检测
II
ABSTRACT
WebShell,asacommonlyusedhackingtool,isutilizedbyhackerstogain
operationalprivilegesandexecutecommandsonservers,therebystealinguserdata.With
theadvancementofnetworktechnology,hackershavebeenobfuscatingandencrypting
WebShellcodetoenhanceitsabilitytoevadedetection.TraditionalWebShelltext
detec