一 webshell的典型攻击序列图
下图是一个典型的webshell的攻击序列图,利用web的漏洞,获取web权限,上传小马,安装大马,然后远程调用webshell,执行各种命令,以达到获取数据等恶意目的。
二 从killchain来分析各阶段“看见”能力
从kill chain来看,靠采集系统自身的流量的技术手段,在前两个阶段Reconnaissance、Weaponise这两个阶段是很难看到行为。(结合威胁情报可以更大范围的看到这两个阶段的信息),基于流量的payload分析技术可以在Delivery、Exploit、Installation、Command &Control (C2)、Action这几个阶段都能看到攻击行为。
Rsa的一段分析材料,对看见能力做了便利的说明。并针对基于流量的分析手段与传统的IDSIPSSIEM做了对比。
三 从防护方的“安全对抗”能力视角看
安全防护能力分几个等级
-
Detect: Can you see/find it?(能否检测到攻击)
-
Deny: Can you stop it from happening? (能否避免遭受攻击)
-
Disrupt: Can you stop it while it’s happening?(能否阻止正在进行的攻击)
-
Degrade: Can you make it not worth it?(能否让攻击者觉得攻击不值得,降低其攻击级别)
-
Deceive: Can you trick them [the adversary]?(能否诱骗或重定向攻行为)
-
Destroy: Can you blow it up? (能否摧毁攻击者)
针对web的安全防护能力手段总结如下图:
阶段 |
Detect |
Deny |
Disrupt |
Degrade |
Deceive |
Destroy |
web相关防护手段 |
webshell分析引擎 |
WAF |
WAF |
主动防御/ 流量重定向 |
honeypot |
反制攻击者 |
四 Webshell的检测的三种手段
从安全防护能力看,检测是第一位的能力,webshell的检测主要有以下几种方式:
(1)基于流量的webshell检测引擎
-
方便部署,通过流量镜像直接分析原始信息。
-
基于payload的行为分析,不仅对已知webshell进行检测,还能识别出未知的、伪装性强的webshell。
-
对webshell的访问特征(IP/UA/Cookie)、payload特征、path特征、时间特征等进行关联分析,以时间为索引,还原攻击事件。
(2)基于文件的webshell分析引擎
-
检测是否包含webshell特征,例如常用的各种函数。
-
检测是否加密(混淆处理)来判断是否为webshell
-
文件hash检测,创建webshell样本hashing库,进行对比分析可疑文件。
-
对文件的创建时间、修改时间、文件权限等进行检测,以确认是否为webshell
-
沙箱技术,根据动态语言沙箱运行时的行为特征进行判断
(3)基于日志的webshell分析引擎
-
支持常见的多种日志格式。
-
对网站的访问行为进行建模,可有效识别webshell的上传等行为
-
对日志进行综合分析,回溯整个攻击过程。
三种检测方式,基于文件的检测,很多时候获取样本的部署成本比较高,同时仅仅靠样本无法看到整个攻击过程。基于日志的有些行为信息在日志中看不到,总体来说还是基于“流量”的看到的信息最多,也能更充分的还原整个攻击过程。
笔者后续会专门就最近分析的一些webshell的整个攻击过程,挑一些典型实例进行总结。
原文始发于微信公众号(守望者实验室):Webshell系列(5)- webshell之“看见”的能力分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论