赞
踩
原文链接:https://ieeexplore.ieee.org/document/9343056
特征提取方法:对PHP文件使用AST,对JSP文件使用字节码。
成果:一种基于TF-IDF和Word2vec两种文本处理方法的检测模型。
评价:结合了不同种类的机器学习算法进行综合控制实验,从中选择了性能最好的检测机器学习模型XGBoost,对PHP web shell的检测准确率为98.82%,对JSP web shell的检测准确率为98.51%。
webshell是用Web脚本语言编写的,包括PHP、ASP、JSP 等。本文使用AST进行webshell检测。与静态检测、动态检测、操作码检测都不同:①由于定向混淆、加密等绕过手段,使得依赖静态文本特征检测的简单方法的检出率下降。本文的AST方法直接分析了运行过程,可以有效地避免这类问题;②动态监测方法的部署成本过高,本文的AST方法消耗的系统资源较少,但缺乏实时检测能力;③在使用操作码时,只考虑一行一行操作码指令,忽略与操作码对应的参数,会丢失一些相关联的有效信息。本文的AST方法是一种具有强相关性的结构化文本模型,更适合于二分类模型。
检测系统包括文件分类、特征提取和机器学习模型三个主要部分。系统是用Python编写的,可以检测单个文件,也支持批处理文件检测,具有80Mb/1000s的高测试速度。
首先,本系统的输入是页面文件的源代码。当系统接收到文件后,它将检查文件的类别。有些攻击者通过更改文件后缀来绕过文件上传的类型检查规则,例如将PHP文件的后缀改为’ PHP .txt ‘或’ PHP .jpg '。我们使用Python脚本检查代码文件名。
其次,对PHP文件提取AST,使用Word2vec算法获取对应的词向量,并输入到机器学习模型中。 分类器将确定样本是否为web shell。对于JSP文件,我们使用tomcat服务器将文件转换为servlet类的Java文件,然后编译读取类文件中的字节码。 在此之后,操作步骤类似于处理PHP文件的方法。
最后,通过机器学习算法模型的判断,检测系统将输出0或1。0表示该文件为普通文件,1表示该文件为web shell文件。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。