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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值