如何防范通过ICMP tunnel进行的数据泄漏

admin 2022年3月29日22:53:53评论79 views字数 2200阅读7分20秒阅读模式


如何防范通过ICMP tunnel进行的数据泄漏

2月28日,MITRE Engage 发布了 V1 版本(如图1), MITRE Engage 是用于规划和讨论与对手作战的框架,它帮助我们通过对手作战达到安全目标。对手作战是一种积极防御手段,它通过战略规划和分析,利用网络阻断和网络欺骗手段,达到作战的目标,相当于是以攻为防。

Engage 矩阵中的作战活动是和 MITRE ATT&CK 矩阵(如图2 )映射起来的,通过将作战活动和 ATT&CK 矩阵映射起来,可以保证我们的作战活动是攻击行为驱动的,并且能够更好地规划应当采取哪些作战活动。这将为广大的网络安全从业者带来很大的参考价值。


如何防范通过ICMP tunnel进行的数据泄漏

图1 MITRE Engage



如何防范通过ICMP tunnel进行的数据泄漏

图2 ATT&CK V10.1

随着多年来安全威胁的发展,安全解决方案也在不断进步。从防火墙、入侵检测和预防系统 (IDS & IPS) 以及安全信息和事件管理系统 (SIEM) ,到用户和实体行为分析 (UEBA)、状态协议分析和隐写术——流量监控越来越严密,攻击者被迫寻找新的方法来保持不被发现。今天我们就来分析一下黑客传送(C&C Communication)收集到的信息或进行数据泄漏(Data Exfiltration)的一种常用手段—— ICMP 隧道。


相信网络安全从业者都使用过ICMP,Internet 控制消息协议 (ICMP) 是一种 OSI 网络层协议,用于发现和控制网络中的路由问题。当网络设备检测到某些错误时,它们将生成 ICMP 数据包以通知端点发生的情况。

当我们使用Ping来向一台主机将发送一个带有一些数据的 Echo 数据包到被 Ping 的主机时, 被 Ping 的主机将使用包含相同数据的 Echo 回复进行应答。但数据可以是任意的,因为ICMP 的 RFC 没有定义严格的规范。

因此攻击者可以利用这种设计选择来混淆恶意网络行为。每个数据包都可被注入到 Echo 或 Echo Reply 数据包中,而不是在选择的协议中与机器进行显式通信。通信流似乎是一系列 Ping 操作,而不是TCP 连接之类的。

ICMP 隧道是一种常见形式的非应用层协议隧道。当通过隧道传输协议时,这种行为有助于隐藏看似无害的通信形式中的恶意流量,在两台机器之间成功创建隐蔽的 C&C 和数据泄露通道,从而有助于规避检测,攻击者可以通过这个在常规的网络环境中(特别是大型网络、内部网络中各个不同的安全域之间)允许的ICMP协议数据包中传输流量来利用这一点。ICMP 是非应用层协议,但它对于网络运维是重要的,且是一个成熟的工具,因此企业不太可能像对通常的数据泄露通讯协议(HTTP、HTTPS、TCP、IMAP)那样密切监视它。因为在许多情况下,不能完全禁用 ICMP 功能,而且运行它只需要一般的用户权限级别即可,所以它经常被攻击者所利用,并有利于隐藏攻击者的身份和利益。

我们来看一个例子:

下图是一个抓包截图(图3),它是两台机器之间的正常Ping包,包含了很多Ping包的Echo 请求/ Reply, 我们可以关注它的Length都是98bytes,正常情况下的Ping包的Length是不超过100bytes。

如何防范通过ICMP tunnel进行的数据泄漏

图3

下图也是一个抓包截图(图4),同样包含了很多Ping包的Echo 请求/ Reply,我们可以看到它的Length则是1486 bytes。

如何防范通过ICMP tunnel进行的数据泄漏

图4

虽然ICMP协议的Ping包不会包含非常大/多的信息,但是如果被感染的主机与C&C服务器之间持续使用ICMP Tunnel协议传送并泄漏数据,则非常容易绕过防火墙或IPS的规则。
我们可以对比一下这两种ICMP Ping包的Data部分,正常Ping包的Data部分如下图所示(图5)
如何防范通过ICMP tunnel进行的数据泄漏
图5

被攻击者利用的Ping包的Data部分如下图(图6)

如何防范通过ICMP tunnel进行的数据泄漏

图6

使用Base64解码工具对图6的解析得出的结果如下图(图7)

如何防范通过ICMP tunnel进行的数据泄漏

图7

如何防范通过ICMP tunnel进行的数据泄漏



通过以上的分析我们可以看出,攻击者可以轻松利用您允许的协议,绕过现有的多种检测手段将数据泄露出去,因此建议可以通过如下几种方式改进,以减少这种机率:

  • 利用安全验证工具持续在各个安全域之间模拟此种方式泄露数据,以确认在允许ICMP使用的各个安全域之间的安全手段可以发现或可以阻断大的Ping包、持续时间长的不正常的ICMP流量,进而对未发现或未能阻断的相关安全手段进行后续改进优化,也可以验证在已经构建SIEM或SOC的情况下,它们是否可以通过分析安全手段的告警日志之后告知安全运维/响应人员对此类事件进行处理。如何防范通过ICMP tunnel进行的数据泄漏

  • 关注网络取证设备是否具备自动生成关于不正常的Ping包大小的报告,并确认其是否可以还原Ping包的Data部分的内容并合成原数据,以判断泄漏了什么数据;如果数据是被加密的,则需要至少能够告警是被加密以及使用的加密算法。

  • 对防火墙的规则定期梳理,删除那样由于测试或IT变更开放ICMP但现在又不需要的策略。

  • 对IDS/IPS设备进行升级以使其能对Non-Arbitrary ICMP Payload 进行检测发现、阻断。


如何防范通过ICMP tunnel进行的数据泄漏



塞讯验证是国内领先的网络安全度量验证平台,率先提出利用真实自动化攻击剧本来持续验证安全防御有效性概念,旨在用安全验证技术来帮助客户实现365天持续评估自身网络和数据安全防御体系效果。

塞讯创始团队均曾任职于世界顶尖网络安全公司,拥有业界首屈一指的安全分析和防御能力。两大研发团队分别位于上海和成都,致力于为客户打造最优秀的产品。我们在北京、上海、深圳、成都均设有分支机构,服务可覆盖全国各个角落。

如何防范通过ICMP tunnel进行的数据泄漏


原文始发于微信公众号(安世加):如何防范通过ICMP tunnel进行的数据泄漏

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月29日22:53:53
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   如何防范通过ICMP tunnel进行的数据泄漏https://cn-sec.com/archives/852903.html

发表评论

匿名网友 填写信息