当前位置:   article > 正文

论文阅读 基于机器学习文本处理的PHP和JSP Web shell检测系统(上海交大)_php word2vec

php word2vec

原文链接: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文件。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/855457
推荐阅读
相关标签
  

闽ICP备14008679号