Webshell系列(5)- webshell之“看见”的能力分析

1 webshell的典型攻击序列图

下图是一个典型的webshell的攻击序列图,利用web的漏洞,获取web权限,上传小马,安装大马,然后远程调用webshell,执行各种命令,以达到获取数据等恶意目的。

2 从kill chain来分析各阶段“看见”能力

从kill chain来看,靠采集系统自身的流量的技术手段,在前两个阶段Reconnaissance、Weaponise这两个阶段是很难看到行为。(结合威胁情报可以更大范围的看到这两个阶段的信息),基于流量的payload分析技术可以在Delivery、Exploit、Installation、Command &Control (C2)、Action这几个阶段都能看到攻击行为。

Rsa的一段分析材料,对看见能力做了便利的说明。并针对基于流量的分析手段与传统的IDS\IPS\SIEM做了对比。

3 从防护方的“安全对抗”能力视角看

安全防护能力分几个等级

  • 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的安全防护能力手段总结如下图:

阶段 Detec Deny Disrupt Degrade Deceive Destroy
web相关防护手段 webshell分析引擎 NIDS WAF云防护 WAF 主动防御/流量重定向 honeypot 反制攻击者

4 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安全检测篇(4)-基于流量的Webshell分析样例》《Webshell检测-日志分析

[via@守望者实验室]