常见攻击及防御技术详解——进阶篇
2023-07-25 09:10:23   来源: 威努特工控安全   评论:0 点击:

  前言

  往期回顾:继前两篇文章《常见攻击及防御技术详解,专业人士必知(基础篇)》、《常见攻击及防御技术详解——进阶篇》之后,本篇为大家带来DDoS(Distributed Denial of Service,即分布式拒绝服务)攻击及防御原理,主要是网络层的攻击防范。

  02 SYN Flood攻击

  2.1 攻击原理

  攻击者通过伪造一个源地址的SYN报文,发送给受害主机,受害主机回复SYN-ACK报文给这些地址后,不会再收到后续的ACK报文,导致受害主机保持了大量的半连接,直到超时。这些半连接可以耗尽主机资源,使受害主机无法建立正常TCP连接,从而达到攻击的目的。

  2.2 防御原理

  常用手段是源认证,从SYN报文建立连接的“行为”入手,判断是不是真实源发出的请求。根据判断方式的不同又会细分为SYN-RST防御手段和SYN-Cookie防御手段。

  对于SYN-RST防御手段可简化为以下模型:

  1)防御侧收到SYN报文后,提取相关字段计算HASH后响应一个带有错误确认号(Acknowledgment number)的SYN-ACK报文;

  2)如果SYN报文源IP是虚假源,则不会收到步骤1)的SYN-ACK报文,也就不会做出任何响应;

  3)如果SYN报文源IP是真实源,则会发送RST报文(Sequence number=步骤1)的Acknowledgment number)以中断该连接;

  4)防御侧收到RST报文,再次提取相关字段计算HASH与报文携带的Sequence number对比,若一致则丢弃该RST报文并将该源IP加入白名单后续访问直接放行,若不一致则直接丢弃该RST报文。

  对于SYN-Cookie防御手段可简化以下模型:

  1)防御侧收到SYN报文后,提取相关字段计算HASH后响应一个带有正确确认号(Acknowledgment number)的SYN-ACK报文;

  2)如果SYN报文源IP是虚假源,则不会收到步骤1)的SYN-ACK报文,也就不会做出任何响应;

  3)如果SYN报文源IP是真实源,则会发送ACK报文(Sequence number=步骤1)的Acknowledgment number)完成三次握手;

  4)防御侧收到ACK报文,再次提取相关字段计算HASH与报文携带的Sequence number对比,若一致则再回复一个RST报文以中断本地连接、并将该源IP加入白名单后续访问直接放行,若不一致则直接丢弃该ACK报文。

  03 SYN-ACK Flood攻击

  3.1 攻击原理

  通信双方通过三次握手建立一个TCP连接的过程中,SYN-ACK报文出现在第二次握手中,是用来确认第一次握手的。一方收到SYN-ACK报文后,首先会判断该报文是不是属于三次握手范畴之内的报文。如果都没有进行第一次握手就直接收到了第二次握手的报文,那么就会向对方发送RST报文,告知对方其发来报文有误,不能建立连接。

  SYN-ACK Flood攻击正是利用了这一点,攻击者利用工具或者操纵僵尸主机,向目标服务器发送大量的SYN-ACK报文,这些报文都属于凭空出现的第二次握手报文,服务器忙于回复RST报文,导致资源耗尽,无法响应正常的请求。

  3.2 防御原理

  一种方案是基于源认证思想,其防御模型可简化为:

  1)防御侧收到SYN-ACK报文后,提取相关字段计算HASH并主动发送一个目的IP是SYN-ACK报文源IP的SYN报文,主动探测一下该源IP是否真实存在;

  2)如果是虚假源IP则收不到该SYN报文,也就不会做出任何响应;

  3)如果是真实源IP则会回复一个SYN-ACK报文;

  4)防御侧收到SYN-ACK报文,再次提取相关字段计算HASH并进行比对,若比对通过则回复RST中断该连接、并将该源IP加入白名单后续访问直接放行,若比对不通过则直接丢弃该SYN-ACK报文。

  另一种方案是状态检测思想,防御侧收到SYN-ACK报文后,查找会话表项,若查到则放行、若查不到则丢弃。需要注意的是这种模式只适用于串接部署来回路径一致的场景,即保证SYN和SYN-ACK报文都会经过防御设备。

  04 ACK Flood攻击

  4.1 攻击原理

  在TCP三次握手的过程中,ACK报文出现在第三次握手中,用来确认第二次握手中的SYN-ACK报文。ACK Flood攻击指的是攻击者利用工具或者操纵僵尸主机,向目标服务器发送大量的ACK报文,服务器忙于回复这些凭空出现的第三次握手报文,导致资源耗尽,无法响应正常的请求。

  4.2 防御原理

  参照SYN-ACK状态检测思想,防御侧收到ACK报文后,查找会话表项,若查到则放行、若查不到则丢弃。对于ACK Flood防御没有来回路径一致的要求,只需要SYN和SYN-ACK报文至少有一个经过防御设备即可。

  05 FIN/RST Flood攻击

  5.1 攻击原理

  使用假冒的源地址、端口、FIN或RST标志位淹没目标。如果攻击者猜测到已有连接的序列号、端口和源地址,这条连接将被终止。由于成功猜测的可能性比较低,攻击者的目标可能是使用过量的包去压垮网络或者端主机,并且通过设置标志位去绕过可能阻止其他包类型的安全系统。

  5.2 防御原理

  参照SYN-ACK状态检测思想,防御侧收到FIN/RST报文后,查找会话表项,若查到则放行、若查不到则丢弃。对于FIN/RST Flood防御也是没有来回路径一致的要求,只需要SYN和SYN-ACK报文至少有一个经过防御设备即可。

  06 UDP Flood攻击

  6.1 攻击原理

  攻击者通过僵尸网络向目标服务器发起大量的UDP报文,这种UDP报文通常为大包,且速率非常快,攻击会造成服务器资源耗尽,无法响应正常的请求,严重时会导致链路拥塞。

  6.2 防御原理

  UDP是无连接状态的协议,不能像TCP攻击那样可以进行源认证,并且UDP应用协议五花八门,差异极大,因此针对UDP Flood的防护其实非常困难的。比较常见的是特征识别过滤,可以是手动配置的特征(如:报文长度、源端口、目的端口、负载中的部分字段值等),也可以是动态学习的特征,借助AI技术高效识别并分类汇总UDP载荷,达到一定阈值后触发限速、阻断等防御动作。

  07 ICMP Flood攻击

  7.1 攻击原理

  攻击者短时间内发送大量的ICMP报文到被攻击目标,导致依靠会话转发的网络设备会话耗尽引起网络瘫痪。

  7.2 防御原理

  一种防御思想是通过识别ICMP头部Type、Code、ID、Sequence等字段信息,只允许哪些通过、或者对某些组合进行限速或阻断等防御动作。

  另一种思想是通过状态检测,比如只有先收到了ICMP Request请求报文、再收到ICMP Response响应报文才会放行,只收到ICMP Response响应报文则直接丢弃。当然这种模式也是只适用于串接部署来回路径一致的场景,ICMP请求和ICMP响应报文都必须经过防御设备。

  08 结语

  本期内容就到这里,欢迎小伙伴多多留言,更多攻防技术下期见!

相关热词搜索:工业互联网安全 攻防演练

上一篇:WormGPT:一款专属于攻击者的AI工具
下一篇:攻防演练 | 记一次打穿某车企全过程

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306116;邮箱:aet@chinaaet.com。
分享到: 收藏