谈防火墙固有的安全与效率的矛盾
谈防火墙固有的安全与效率的矛盾,谈防火墙固有的安全与效率的矛盾
防火墙在为内部网络带来安全的同时,也产生了一定的反作用——降低网络运行效率。在传统防火墙的设计中,包过滤只是与规则表进行匹配,对符合规则的数据包进行处理,不符合规则的就丢弃。由于是基于规则的检查,同属于同一连接的不同包毫无任何联系,每个包都要依据规则顺序过滤。由于网络安全涉及领域很多,技术复杂,安全规则往往要达到数百甚至上千种。随着安全规则的增加,很多防火墙产品都会出现性能大幅度降低,网络资源衰竭等问题,从而造成网络拥塞。所以,安全与效率的两难选择成为传统防火墙面临的最大问题。此外,在这种设计中,入侵者可能会采用IP Spoofing的办法将自己的非法包伪装成属于某个合法的连接,进而侵入用户的内部网络系统。因此,传统的包过滤技术既缺乏效率又容易产生安全漏洞。
日前,具有自主核心技术的防火墙新品已产生,该产品就利用这一技术,将属于同一连接的所有包作为一个整体的数据流看待,通过规则表与连接状态表的共同配合,大大提高了系统的传输效率和安全性,从而较好地解决了防火墙固有的安全与效率的矛盾问题。
与传统包过滤的无连接检测技术不同,基于连接状态的包过滤在进行包的检查时,不仅将其看成是独立的单元,同时还要考虑它的历史关联性。例如,在基于TCP协议的连接中,每个包在传输时都包括了IP源地址、目的地址、协议的源接口和目的接口等信息,还包括了对在允许的时间间隔内是否发生了TCP握手消息的监视信息等,这些信息与每个数据包都是有关联的。换句话说,对于属于同一个连接的数据包来说并不是孤立的,它们存在内部的关联信息。无连接的包过滤规则由于忽略了这些内在的关联信息,对每个数据包都进行孤立的规则检测,所以大大降低了传输效率。
由于采用了基于连接的包过滤处理方法,该防火墙在进行规则检查的同时,可以将包的连接状态记录下来,该连接以后的包则无需再通过规则检查,而只需通过状态表里对该包所属的连接的记录来检查即可。如果有相应的状态标识,则说明该包属于已经建立的合法连接,可以接受。检查通过后该连接状态的记录将被刷新。这样就使具有相同连接状态的包避免了重复检查。同时由于规则表的排序是固定的,只能采用线性的方法进行搜索,而连接状态表内的记录是可以随意排列的,于是可采用诸如二叉树或Hash等算法进行快速搜索,这就提高了系统的传输效率。同时,采用实时的连接状态监控技术,可以在状态表中通过诸如ACK(应答响应)、NO等连接状态因素加以识别,阻止该包通过,增强了系统的安全性。
另外,对于基于UDP协议的应用来说,由于该协议本身对于顺序错误或丢失的包并不做纠缠或重传,所以很难用简单的包过滤技术对其处理。防火墙在对基于UDP协议的连接处理时,会为UDP建立虚拟连接,同样能够对连接过程状态进行监控,通过规则与连接状态的共同配合,达到包过滤的高效与安全。