Webshell检测方法(四) - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

Webshell检测方法(四)

一叶飘零 技术 2020-02-25 09:15:47
560923
收藏

导语:最近在学习webshell检测技术,看了一些科研性的文章,所以有了这个系列的文章。

Webshell检测方法(一)

Webshell检测方法(二)

Webshell检测方法(三)

0x00 前言

本篇工作依旧使用了随机森林算法,而前一篇文章[Webshell检测方法(三)]结合的是fastText,本篇文章结合的是梯度提升迭代决策树算法。

0x01 研究方法

在前一篇文章中,对于features的提取分为两大步:

1. 分析提取文件的静态特征

2. 利用PHP-VLD获取文件的Opcode,利用fastText训练文本分类器模型

1、静态特征

而本篇文章中所用和其相似,但有所提升,在前一篇文章的基础上增加了如下文件的静态特征:

1.数据压缩比

由于base64方式压缩的webshell通常具有更均衡的特定字符分布,并且往往具有更高的数据压缩比,因此使用数据压缩比检测webshell,有一定的成效。

2.eval函数的使用

一句话木马的重要特性即eval,一般的一句话木马格式如下:

@eval ($_post[xxxxx])

因此一个文件的eval的数量是模型训练的一个重要feature。

除此之外,之前的文章利用PHP-VLD提取文件Opcode,再使用fastText训练文本分类器,而本篇文章与之不同:将获得的Opcode,使用Scikit-learn从中提取2种特征:TF-IDF向量和Hash向量。

2、TF-IDF Vector

TF即Term frequency,词频计算公式如下:

2020-01-14-10-54-31.png

其用来评估一个词语在文本中出现的频率。

IDF即inverse document frequency,逆文本频率指数如下:

2020-01-14-10-55-28.png

其用于评估该词语在所有文本中是否罕见。

故此TF-IDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。

其计算方法如下:

2020-01-14-10-58-18.png

3、Hash Vector

hash散列可以将任意长度的数据转换为固定长度的数据,同时这种这种转换通常是一对一的,我们很难找到同样的hash对应不同的数据。因此可以利用hash作为某个特征向量的索引,因此无需创建大型字典,而这个恰好是TF-IDF所缺乏的。

例如:特征 i 会被hash到索引位置j:

h(i) = j

特征 i 的词频表示为φ(i),那么公式如下:

2020-01-14-11-04-48.png

在提取特征结束后,实验尝试在仅适用6个静态特征和GBDT算法进行检测,成功率已达96.9%。

对于GBDT算法,其核心是:每棵树学的是之前所有树结论和的残差,即真实值-预测值。每一轮梯度boosting训练都会减少上一轮训练的残差,即在梯度方向上训练一个新的模型来降低上一轮训练的残差。

2020-01-14-13-52-13.png

其优点在于可以有效减少feature,降低过拟合现象,并且具有更高的鲁棒性,不太可能受到训练集规模的影响。

这也是将其与随机森林算法结合使用的一个原因。同时为了进一步提高效率,加入了PHP Opcode的特征提取,和随机森林算法:

2020-01-14-11-16-59.png

在结合前6个静态特征后,实验使用随机森林获取TF-IDF矩阵和hash矩阵的预测结果,最后结合8个feature对GBDT进行训练。

0x02 数据实验

实验从Github收集了2232个webshell,2388 CMS样本文件:

2020-01-14-11-07-23.png

但由于有些文件提取特征不成功,或者并非php文件,因此丢弃了大小超过20000的文件,并未使用。

而后从如下几个角度评估了RF-GBDT算法的性能:

2020-01-14-11-09-56.png

2020-01-14-11-10-08.png

同时进行了一些对照实验,结果如下:

2020-01-14-11-12-34.png

2020-01-14-14-13-26.png

可以看到,如果仅用6个静态features的GBDT在各方面的性能都不如使用8个features的RF-GBDT。除此之外,实验中还挑选了一些网上主流的webshell检测工具,结果如下:

2020-01-14-11-13-43.png

这同时也证明了RF-GBDT具有非常好的性能。

本文为 一叶飘零 原创稿件,授权嘶吼独家发布,如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务