webshell检测预提取特征分析

预热:有图可知,7和8很明显不是很合群。节点8的出度和入度均为0,属于孤立节点,是webshell的可能性比较大。节点5和节点7的出度入度都为1,但是节点7属于自回路,是webshell的可能性比较大。


9370451-b7a4384a5254c9f2.png

1.webshell 的访问特征(主要特征)

(1)少量的IP对其发起访问

(2)总的访问次数少

(3)网页文件的访问频率

访问频率指的是一个网页文件在单位时间内的访问次数,通常正常的网站页面由于向访客提供服务因此受众较广,所以访问频率相对较高。而Webshell是由攻击者植入,通常只有攻击者清楚访问路径,因此访问频率相对较低。值得注意的是,网站开始运营时就会存在一定数量的正常页面,而Webshell通常在一段时间后才会出现,因此统计和计算页面访问频率的时候,针对某一页面,要采用该页面第一次被访问到最后一次被访问的时间段作为统计区间,然后计算单位时间内的访问次数,得到访问频率。需要说明的是,单凭访问频率特征,只能找出异常文件,无法确定一定是Webshell,一些正常页面的访问频率也会较低,比如后台管理页面或者网站建设初期技术人员留下的测试页面访问频率也较低。这里用f(A) 表示计算后的网站页面A的访问频率,Tfirst(A)表示网站页面A首次被访问的时间,Tend(A) 表示网站页面A最后一次被访问的时间,COUNTFE(A)表示网站页面A在时间Tfirst(A)到Tend(A)期间的被访问次数。因此,网站页面A的访问频率计算如下:

9370451-9adbf36ce8ace950.jpg

时间单位可根据需要选择小时、天、星期、月等

结论:

a.在目录深度一致,和起始时间段较长的情况下(以大于30天为判断依据),正常网页文件的访问频率明显高于Webshell文件。

b.目录深度较高的正常网页文件,/bbs/zW7/index.asp在三级目录下,访问频率也会较低,因此判断是否为Webshell文件时,要把访问频率和目录深度结合起来进行考虑。

c.单从Webshell文件的访问频率来看,有的数据特征呈现访问频率较高,仔细分析日志发现,该类Webshell往往是被攻击者当做一次性后门使用,起始阶段只有1天,而且访客单一,且有时攻击者会对自己上传的Webshell文件进行自动化的利用和扫描,导致较短时间内出现大量访问行为,呈现高频访问特征,如bg.asp;.jpg。在这种情况下,仅凭借访问频率难以判断。经过分析和思考,为了准确判断此类Webshell,需要再结合文件的起始时间段和单位时间的独立访客数进行综合判断,当某个网页文件的呈现起始时间段较短,单位时间独立访客数较少的特征时,可首先判定为异常文件,再结合访问频率进行分析。这样便能有效解决误报问题。

(4) 该页面属于孤立页面

其中孤立页面这个特征已产生误报,比如正常的扫描器行为,常见漏洞扫描,PoC扫描,Webshell扫描(日志中经常可以看到常见webshell路径加一句话payload的扫描),这是最主要的干扰数据,需要剔除。对于这种情况建议加白名单。

2.webshell的path、文本特征(辅助特征)

除了weshell特有的访问特征,我们也可以用path、文本特征来辅助提取,我们来看一批真实的webshell:


9370451-67448437f2d0e876.png

发现不同手段植入的webshell路径各有特征,例如上传的webshell,如果上传组件有保护措施的会进行文件名重写(示例中的32位的十六进制的名字),并在路径中还有日期特征,这类webshell还极易出现在静态资源目录(图片,样式、配置)下。但是把访问频率和path深度结合起来进行考虑。

3.webshell的时间特征(辅助特征)

将新增的页面视为异常页面,但这种方案的缺陷非常明显

(1) 会漏掉已存在页面写马的情况

(2) 会误判正常的站点更新

于是将该特征当做辅助特征,用来还原webshell植入的过程,如果接入了例如WAF这种防御产品,还可以探究是不是绕过了防御

4.webshell Payload特征(辅助特征)

WAF、IDS等基于流量的安全检测防御工具,会把网络通信中的payload特征(特别是攻击特征)当成主要的检测手段


9370451-7c988913a0c5b2ec.jpg

猜你喜欢

转载自blog.csdn.net/weixin_34259159/article/details/87232942