![常见攻击及防御技术详解——高手篇 常见攻击及防御技术详解——高手篇]()
攻击者通过伪造一个源地址的SYN报文,发送给受害主机,受害主机回复SYN-ACK报文给这些地址后,不会再收到后续的ACK报文,导致受害主机保持了大量的半连接,直到超时。这些半连接可以耗尽主机资源,使受害主机无法建立正常TCP连接,从而达到攻击的目的。
常用手段是源认证,从SYN报文建立连接的“行为”入手,判断是不是真实源发出的请求。根据判断方式的不同又会细分为SYN-RST防御手段和SYN-Cookie防御手段。
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报文。
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报文。
通信双方通过三次握手建立一个TCP连接的过程中,SYN-ACK报文出现在第二次握手中,是用来确认第一次握手的。一方收到SYN-ACK报文后,首先会判断该报文是不是属于三次握手范畴之内的报文。如果都没有进行第一次握手就直接收到了第二次握手的报文,那么就会向对方发送RST报文,告知对方其发来报文有误,不能建立连接。
SYN-ACK Flood攻击正是利用了这一点,攻击者利用工具或者操纵僵尸主机,向目标服务器发送大量的SYN-ACK报文,这些报文都属于凭空出现的第二次握手报文,服务器忙于回复RST报文,导致资源耗尽,无法响应正常的请求。
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报文都会经过防御设备。
在TCP三次握手的过程中,ACK报文出现在第三次握手中,用来确认第二次握手中的SYN-ACK报文。ACK Flood攻击指的是攻击者利用工具或者操纵僵尸主机,向目标服务器发送大量的ACK报文,服务器忙于回复这些凭空出现的第三次握手报文,导致资源耗尽,无法响应正常的请求。
参照SYN-ACK状态检测思想,防御侧收到ACK报文后,查找会话表项,若查到则放行、若查不到则丢弃。对于ACK Flood防御没有来回路径一致的要求,只需要SYN和SYN-ACK报文至少有一个经过防御设备即可。
使用假冒的源地址、端口、FIN或RST标志位淹没目标。如果攻击者猜测到已有连接的序列号、端口和源地址,这条连接将被终止。由于成功猜测的可能性比较低,攻击者的目标可能是使用过量的包去压垮网络或者端主机,并且通过设置标志位去绕过可能阻止其他包类型的安全系统。
参照SYN-ACK状态检测思想,防御侧收到FIN/RST报文后,查找会话表项,若查到则放行、若查不到则丢弃。对于FIN/RST Flood防御也是没有来回路径一致的要求,只需要SYN和SYN-ACK报文至少有一个经过防御设备即可。
攻击者通过僵尸网络向目标服务器发起大量的UDP报文,这种UDP报文通常为大包,且速率非常快,攻击会造成服务器资源耗尽,无法响应正常的请求,严重时会导致链路拥塞。
UDP是无连接状态的协议,不能像TCP攻击那样可以进行源认证,并且UDP应用协议五花八门,差异极大,因此针对UDP Flood的防护其实非常困难的。比较常见的是特征识别过滤,可以是手动配置的特征(如:报文长度、源端口、目的端口、负载中的部分字段值等),也可以是动态学习的特征,借助AI技术高效识别并分类汇总UDP载荷,达到一定阈值后触发限速、阻断等防御动作。
攻击者短时间内发送大量的ICMP报文到被攻击目标,导致依靠会话转发的网络设备会话耗尽引起网络瘫痪。
一种防御思想是通过识别ICMP头部Type、Code、ID、Sequence等字段信息,只允许哪些通过、或者对某些组合进行限速或阻断等防御动作。
另一种思想是通过状态检测,比如只有先收到了ICMP Request请求报文、再收到ICMP Response响应报文才会放行,只收到ICMP Response响应报文则直接丢弃。当然这种模式也是只适用于串接部署来回路径一致的场景,ICMP请求和ICMP响应报文都必须经过防御设备。
本期内容就到这里,欢迎小伙伴多多留言,更多攻防技术下期见!
北京威努特技术有限公司(简称:威努特)是国内工控安全行业领军者,是中国国有资本风险投资基金旗下企业。凭借卓越的技术创新能力成为全球六家荣获国际自动化协会ISASecure 认证企业之一和首批国家级专精特新“小巨人”企业。
威努特依托率先独创的工业网络“白环境”核心技术理念,以自主研发的全系列工控安全产品为基础,为电力、轨道交通、石油石化、市政、烟草、智能制造、军工等国家重要行业用户提供全生命周期纵深防御解决方案和专业化的安全服务,迄今已为国内及“一带一路”沿线国家的4000多家行业客户实现了业务安全合规运行。
作为中国工控安全国家队,威努特积极推动产业集群建设构建生态圈发展,牵头和参与工控安全领域国家、行业标准制定和重大活动网络安全保障工作,始终以保护我国关键信息基础设施安全为己任,致力成为建设网络强国的中坚力量!
渠道合作咨询 田先生 15611262709
稿件合作 微信:shushu12121
原文始发于微信公众号(威努特工控安全):常见攻击及防御技术详解——高手篇
评论