基于深度学习的webshell检测

admin 2021年3月23日06:30:50评论218 views字数 947阅读3分9秒阅读模式


1.背景介绍


Webshell是一种基于web应用的后门程序,是黑客在入侵过程中经常使用的一类恶意工具之一。web渗透中黑客可以利用特定的Webshell获取服务器权限,进而进行服务器文件操作、数据库操作以及盗取用户私密信息等。



业务背景:将基于AI的webshell检测引擎作为重保/护网项目的样本检出插件使用。


业务目标:建立webshell检测模型,对输入样本进行解析和识别,并输出该样本的标签。


2.数据理解及处理


Webshell脚本文件的类型有php、jsp、asp、aspx等,其中php样本占webshell样本的70%左右。


php的简单webshell:



基于深度学习的webshell检测


jsp的简单webshell:



基于深度学习的webshell检测

  

      asp的简单webshell:

                 

基于深度学习的webshell检测  


从PHP源代码层面分析复杂,不适合做一些语言处理的工作,因此无法作为深度学习模型的输入。PHP脚本代码在经过编译后,生成可以直接运行的中间代码OPCODE,也称字节码,具有时序性。


 

基于深度学习的webshell检测


基于深度学习的webshell检测


3.特征处理


获取opcode序列及其参数信息,去掉无用信息

 

基于深度学习的webshell检测 

 

4.算法方案


初始方案:TextCNN模型是使用卷积神经网络来处理NLP问题的经典模型


基于深度学习的webshell检测


改进方案:加入时序信息,在原来的基础上引入n-gram,构造双输入模型。


n-gram模型基于这样一种假设,第n个词的出现只与前面n-1个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积。当 n=2, 一个二元模型(2-gram model)即为 :



基于深度学习的webshell检测



基于n-gram的双输入TextCNN模型:

基于深度学习的webshell检测



真实场景:webshell正常页面中的比例可能不足万分之一,正负样本比例差异非常大,导致训练的模型存在一定的偏差。可使用Stacking的方式。


(1)正常样本比例作为初始训练集,训练基分类器。

(2)根据基分类器结果再训练第二个分类器;


采用上述方式可以消除真实场景样本比例差距大的问题。


5.效果展示


基于深度学习的webshell检测


基于深度学习的webshell检测
(长按二维码快速扫描关注)
该账号主要围绕智能化技术如何帮助企业提升网络安全水平展开,内容涉及机器学习、大数据处理等智能化技术在安全领域的实践经验分享,业界领先的产品和前沿趋势的解读分析等。通过分享、交流,推动安全智能的落地、应用。欢迎关注~


本文始发于微信公众号(腾讯安全智能):基于深度学习的webshell检测

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年3月23日06:30:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   基于深度学习的webshell检测http://cn-sec.com/archives/298413.html

发表评论

匿名网友 填写信息