[客座日记] 以干扰分析为乐的攻防博弈
分布式拒绝服务(DDoS)攻击是一种网络攻击方式,攻击者通过向目标发送大量请求来淹没系统资源,阻止合法流量访问服务。从今年3月31日到4月20日,我的蜜罐持续遭受通过443端口发送的TCP SYN数据包轰炸。本文旨在分析这次攻击并分享观察结果,证明表象可能具有欺骗性。
这次攻击总共从6039个主机发送了2389339个数据包。攻击分为三波,除了目标端口和设置的标志外没有其他关联。从第一波攻击中抽取了样本,发现每个数据包都具有以下特性:
- 总长度为60字节
- 使用TCP协议目标端口443
- 设置了SYN标志,未设置其他标志
- 窗口大小为32768
- 最大段大小为1460字节
- 以太网头部包含2字节填充的尾部
图1. 显示第一波攻击数据包样本的Wireshark输出
第一波攻击
第一波攻击发生在3月31日至4月4日,从743个主机发送了647069个数据包。此波攻击中前10个主机为:
主机 | 数据包数量 |
---|---|
103.15.246.198 | 1030 |
103.15.247.87 | 1028 |
103.15.247.17 | 1028 |
103.15.247.111 | 1028 |
103.15.245.80 | 1028 |
103.15.245.249 | 1028 |
103.15.245.239 | 1028 |
103.15.245.169 | 1028 |
103.15.245.0 | 1028 |
103.15.247.93 | 1027 |
总计 | 10281 |
图2. 第一波攻击按发送数据包数量排名的前10个主机
绝大多数主机(86%)位于IP地址范围103.15.245.0-103.15.247.99内。其中36个主机有域名条目。所有这些主机都分配给位于孟加拉的ISP Summit Communications。在这36个主机中,Shodan情报显示由于过时软件可能存在多个漏洞:
- dropband[.]summitiig[.]net运行Apache 2.4.18版本,可能容易受到缓冲区溢出攻击和远程代码执行攻击等关键漏洞影响
- mrtg[.]summitiig[.]net运行更旧版本的Apache 2.2.15,可能容易受到缓冲区溢出和读取进程内存等漏洞影响
伪造的数据包?
这可能是僵尸网络的结果。然而,由于只有少数主机有域名或明确暴露的服务,另一种可能的解释是连接被伪造。数据包的一致大小和属性(包括窗口大小和最大段大小)表明这可能是因为使用Scapy等工具进行数据包伪造。数据包伪造是向目标发送带有自定义字段的假数据包的过程。
假设我使用以下命令构造数据包发送到我的环回地址。填充可以是任何值,因为每个数据包末尾可以找到两个随机字节:
|
|
我们在另一端发现以下内容:
图3. 在Wireshark中捕获的伪造数据包截图
与观察到的活动惊人地相似!这证明数据包伪造可能在此次攻击中发挥了作用。
第二波攻击
第二波攻击发生在4月7日至4月14日,从1054个主机发送了885209个数据包。此波攻击中前10个主机为:
主机 | 数据包数量 |
---|---|
86.105.145.100 | 8375 |
86.105.144.104 | 8373 |
86.105.145.254 | 8372 |
86.105.145.205 | 8371 |
86.105.145.135 | 8371 |
86.105.145.37 | 8370 |
86.105.145.16 | 8370 |
86.105.144.83 | 8370 |
86.105.144.167 | 8370 |
86.105.144.132 | 8370 |
总计 | 83712 |
图4. 第二波攻击按发送数据包数量排名的前10个主机
这一波攻击有更多主机,每个主机发送了更多数据包,表明数据包发送速率略有增加。大多数主机(60%)来自IP范围85.194.196.1-85.194.198.99。所有这些主机都分配给位于伊拉克的ISP ScopeSky。CloudFlare报告在此期间来自ScopeSky自治系统号的第7层攻击激增,表明相对于前几个时期,涉及应用层的攻击(如Web应用防火墙绕过和DDoS攻击)在此期间来自该自治系统号。
图5. 来自AS50597: ScopeSky的应用层攻击量相对于前期的变化
这是新的僵尸网络吗?
这些是合法来源的可能性很低。考虑到它构成了分配给ScopeSky地址空间的三分之一,这对公司来说将是一个重大事件,并会成为新闻。这证明威胁行为者可以伪造其流量,使其看起来来自另一个来源,但1800%的增长对于看起来像合法威胁来说非常不现实。
第三波攻击
第三波攻击发生在4月16日至4月20日,从4242个主机发送了857061个数据包。此波攻击中前10个主机为:
主机 | 数据包数量 |
---|---|
176.241.82.245 | 262 |
176.241.89.194 | 261 |
176.241.82.87 | 261 |
176.241.87.173 | 259 |
176.241.85.61 | 257 |
176.241.85.40 | 256 |
176.241.84.153 | 256 |
176.241.88.35 | 254 |
176.241.82.90 | 254 |
176.241.91.89 | 253 |
总计 | 2573 |
图6. 第三波攻击按发送数据包数量排名的前10个主机
绝大多数主机(96%)来自IP范围176.241.80.0-176.241.95.99。这些范围由两个自治系统号覆盖:AS57588(由伊拉克的另一家ISP Hayat for Internet & communication LLC管理)和AS57000 LinkiWay DMCC(一家阿联酋ISP)。这一波攻击有更多主机,但每个主机的数据包数量少得多,这可能会增加数据包发送速率,但影响总体量。GreyNoise报告此波攻击中有44个已知恶意主机。这些主机被观察到进行各种可疑活动,如Telnet/SSH暴力破解尝试、网络爬虫、默认密码猜测,以及部署各种蠕虫,如WannaCry和TrickBot的变种。
查看与识别出的ASN相关的Shodan数据,大约有150个系统在外部暴露了SSH,这是一种非常糟糕的安全实践。已知的恶意系统可能已被威胁行为者暴力破解以获得更多受控系统。结合欺骗,这可能解释了为什么总主机数相对于其他波次如此之高。
这真的是DDoS吗?
虽然蜜罐总共接收了2389339个数据包,但这可能不足以中断现代服务。对于DDoS攻击,它们通常以每秒数据包数(或就HTTP而言的请求数)表示。CloudFlare报告他们缓解了每秒超过7100万次请求的DDoS攻击。在此次攻击中,数据包量远没有那么高,我们从第一波攻击收集的样本仅达到每秒12.1个数据包。
图7. 从数据包捕获中得到的平均每秒数据包数
即使由于主机数量较多,第三波攻击的速率显著提高,它也永远不会达到足够高的速度来有可能使服务宕机。那么,如果不是为了关闭服务,这次攻击的目的是什么?虽然SYN标志可用于扫描网络中的开放端口(监听端口会以SYN-ACK响应),但相对于我的常规流量这是一个峰值,不太可能有这么多主机决定同时扫描蜜罐。
图8. 蜜罐从4月14日到7月14日接收的数据包数量
还有像nmap这样的工具可以使用-sS选项执行SYN扫描,但数据包不具有与我们样本数据相同的属性:
图9. nmap SYN扫描的Wireshark捕获。注意窗口大小和长度
总之,如果这是DDoS攻击,它极不可能对任何现代系统有效。使用TCP SYN标志的扫描也极不可能,这为此次攻击留下了很少的解释。
经验教训
通过分析此次攻击的每一波,我们可以得出一些结论。首先,可能使用了数据包伪造来掩盖攻击者的真实IP地址。其次,合法的SYN洪水攻击在这里似乎极不可能,因为数据包量和速率都太低了。最后,流量来自不太可能的来源,没有成为新闻或在威胁情报中出现(除了极少数流量),强烈表明流量不合法。
另一种可能性是所有这些流量都是为另一次攻击设置的烟幕弹。分析师可能会浪费大量时间查看似乎相关的网络日志,而真正的攻击可能正在使用另一种似乎不相关的方法进行。Scapy的演示表明,伪造网络流量并将其发送到目标主机以创建非常嘈杂的网络日志是相当容易的。你甚至可以创建一个IP地址列表,如波次中发现的主机,以创建我的发现中描述的轻微相关性。简而言之,这构成了极好的干扰。至于攻击计划是什么,蜜罐没有记录到任何重要的攻击,除了日常流量的典型情况。在4月1日,有一些也在第一波攻击中记录的主机尝试从Web蜜罐访问以下URL:
- /
- /.git/config
- /.git/index
- /.env
总结来说,数据包量不足以使此次攻击被视为有效的DDoS攻击,它似乎也不是对Web服务的访问攻击,但如果威胁行为者希望执行更复杂的攻击,小的SYN洪水构成了极好的干扰。理解SYN洪水在什么量级下构成威胁对于避免作为分析师陷入干扰很重要。