基于深度学习的webshell检测
2021-3-23 13:27:5 Author: mp.weixin.qq.com(查看原文) 阅读量:2 收藏

1.背景介绍

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

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

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

2.数据理解及处理

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

php的简单webshell:

jsp的简单webshell:

      asp的简单webshell:

  

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

3.特征处理

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

 

4.算法方案

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

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

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

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

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

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

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

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

5.效果展示


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

文章来源: https://mp.weixin.qq.com/s?__biz=MzI2NDUyMjAyOA==&mid=2247484290&idx=1&sn=a891f3db44e391aed62a7fe4fbf61cbd&chksm=eaaa13c1dddd9ad7b20cbefa74677c96d4c27b2d14294a7b51813425ed0e0773b0cc86996a09&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh