旁路阻断技术

背景

旁路阻断是通过旁路监听通信数据,然后进行协议还原,根据内容进行阻断。这类技术的优点是不影响互联网访问的速度,并且对用户没有特殊的设置要求。通俗讲是并联在互联网的出口上,不会影响原来网络的稳定性,部署也很方便。

采用旁路的方式管理网络并阻断非法连接的方法可以分为三类:

  • 通过与网关产品联动,建立临时规则

  • 进行基于ARP的阻断方式

  • 发送TCP Reset包

与网关产品联动

通过与网关产品的联动方式主要是向防火墙发送临时规则,以及路由器或交换机发送临时ACL列表,阻断当前这个会话。

这种方式存在着这么几个方面的问题:

1、首先是联动协议问题。“联动”一直是网络安全界中的一个很时髦的概念,虽然已经有五六年的历史,但是到目前为止,还远远没有得到充分的发展。现在联动得实现是以现有得某个厂家为核心,其他厂家的产品在一些半公开的SDK的支持下实现与核心厂家的某个产品实现互联。这样导致现有和多产品有联动功能,但是没有联动得实际效果。

2、联动信息的滞后。即使产品与防火墙有着优良的联动相应方式,IDS产品在检测得过程中发现了非法得连接,生成一条临时规则发送到防火墙,防火墙应用这条规则阻断这个连接;在这一个过程中存在着三个延时,一、IDS发现非法连接,生成临时规则;二、规则传输给防火墙;三、防火墙应用规则。这三个演示得总时间最好情况下是小于两秒,而且这个过程当中IDS的检测是滞后IDS检测到非法连接时,这个连接已经建立了,如果这个连接时蠕虫,或木马,两秒的延时足够成功攻击了。

3、当遇到大规模的非法连接的时候,IDS会针对每一条会话向防火墙添加临时规则,这样势必造成防火墙临时规则增大,降低防火墙的效率,引起防火墙包转发延时,严重造成防火墙瘫痪,网络中断。

基于ARP的阻断

基于arp的阻断共有三种方式:ARP 欺骗、ARP 投毒和 ARP 攻击。

先了解ARP的原理。ARP 用于将 IP 地址匹配到或解析至恰当的 MAC 地址,所有的网络设备都有一张 ARP 表,里面临时记忆着该设备已经匹配起来的所有的 IP 地址和 MAC 地址。ARP 表能够确保该设备不需要向已经与自己进行过通信的计算机重复 ARP 询问。当有人在未获得授权时就企图更改 MAC 和 IP 地址的 ARP 表格中的信息时,就发生了 ARP 攻击。通过这种方式我们可以伪造ARP应答包,使得非法连接主机的ARP表错误,无法连接到网关,从而阻断连接。

这种阻断方式从效果上讲是很强力,但是同时也造成了一个问题,其不但阻止了非法连接,而且也阻断了合法连接,这对于网络中的正常应用有着很大的影响。

TCP Reset

以IDS为例,IDS设备是一个典型的旁路监听并通过TCP Reset进行阻断的网络安全设备。IDS TCP Reset实现方法,当IDS发现一条非法的连接IDS将会向通信的两端各发送一个TCP RESET包,从而实现主动切断连接的目的,此时通信双方的堆栈将会把这个RESET包解释为另一端的回应,然后停止整个通信过程,释放缓冲区并撤销所有TCP状态信息。这个时候,攻击数据包可能还在目标主机操作系统TCP/IP堆栈缓冲区中,没有被提交给应用程序,由于缓冲区被清空了,所以攻击不会发生。

对于RESET包来说,IDS发出的RESET包的前提是知道整个会话当前的序列号和确认号,否则这个RESET包将会被忽略。我们假定一个会话得确认号必须为152如果你发送的RESET包的确认号为142,那么堆栈将会认为这是一个无效的数据包或者被破坏的数据包而将它忽略掉。

从另一方面讲所有的IDS在响应攻击时都有延迟时间,因为IDS从抓取数据包,监测攻击,产生RESET包,到最后发出RESET整个过程都要消耗一定的时间。很多的IDS使用libpcap库来抓包,大部分IDS构建在类BSD的系统上,BSD系统下是利用BPF(Berkeley Packet Filters)进行抓包,BPF默认将会开一个很大的缓冲区,在一个典型的网络中,IDS发出RESET包的过程大约会延迟半秒。在Linux和Solaris平台上,性能要稍微好一点,但是肯定也有延迟时间。

而且TCP Reset对于网络应用来说也有着很大的局限性,其只能针对通常得标准TCP连接发送阻断信息,对于UDP会话无能为力。再则目前得一些网络应用软件在会话连接保持上都很强得能力,TCP Reset包对于他们的效果基本可以忽略。

总结

综上所述,想要实现旁路阻断,与网关产品联动和TCP Reset包是两种比较靠谱的方法。但是同时两种方法都存在自己的问题,目前最常用的是TCP Reset包技术实现TCP旁路阻断,且文中提到的主要缺陷也是可以解决的。

文章作者: ColdSnap
文章链接: https://coldwave96.github.io/2019/12/02/SideBlock/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ColdSnap の Blog