防火墙技术基础知识大全
什么是防火墙?防火墙是一个或一组在两个网络之间执行访问控制策略的系统,包括硬件和软件,目的是保护网络不被可疑的人侵扰。本质上,它遵从的是一种允许或阻止业务来往的网络通信安全机制,也就是提供可控的过滤网络通信,只允许授权的通讯。下面就让小编带你去看看防火墙基础知识运用大全,希望对你有所帮助吧
网络安全中的防火墙技术?
网络安全与防火墙的关系是目标和手段的关系,保障网络及业务系统的安全是目标,使用防火墙执行访问控制拦截不该访问的请求是手段。要达成安全的目标,手段多种多样,需要组合使用,仅有防火墙是远远不够的。
狭义的防火墙通常指网络层的硬件防火墙设备,或主机层的防火墙软件,一般基于五元组(源IP、源端口、目标IP、目标端口、传输协议)中的部分要素进行访问控制(放行或阻断)。
广义的防火墙,还包括Web应用防火墙(Web Application Firewall,简称WAF),主要功能是拦截针对WEB应用的攻击,如SQL注入、跨站脚本、命令注入、WEBSHELL等,产品形态多种多样。
此外,还有NGFW(下一代防火墙),但这个下一代的主要特性(比如往应用层检测方向发展等)基本没有大规模使用,暂不展开。
在笔者看来,在当前防火墙基础上扩展的下一代防火墙,未必就是合理的发展方向,主要原因之一就是HTTPS的普及,让网络层设备不再具备应用层的检测与访问控制能力。也正是基于这个考虑,Janusec打造的WAF网关,可用于HTTPS的安全防御、负载均衡、私钥加密等。
网络安全之最全防火墙技术详解
一、安全域
防火墙的安全域包括安全区域和安全域间。
安全区域
在防火墙中,安全区域(Security Zone),简称为区域(zone),是一个或多个接口的组合,这些接口所包含的用户具有相同的安全属性。每个安全区域具有全局唯一的安全优先级,即不存在两个具有相同优先级的安全区域。
设备认为在同一安全区域内部发生的数据流动是可信的,不需要实施任何安全策略。只有当不同安全区域之间发生数据流动时,才会触发防火墙的安全检查,并实施相应的安全策略。
安全域间
任何两个安全区域都构成一个安全域间(Interzone),并具有单独的安全域间视图,大部分的防火墙配置都在安全域间视图下配置。
例如:配置了安全区域 zone1 和 zone2,则在 zone1 和 zone2 的安全域间视图中,可以配置 ACL 包过滤功能,表示对 zone1 和 zone2 之间发生的数据流动实施 ACL 包过滤。
在安全域间使能防火墙功能后,当高优先级的用户访问低优先级区域时,防火墙会记录报文的 IP、 v__ 等信息,生成一个流表。当报文返回时,设备会查看报文的 IP、 v__ 等信息,因为流表里记录有发出报文的信息,所以有对应的表项,返回的报文能通过。低优先级的用户访问高优先级用户时,默认是不允许访问的。因此,把内网设置为高优先级区域,外网设置为低优先级区域,内网用户可以主动访问外网,外网用户则不能主动访问内网。
基于安全域的防火墙的优点
传统的交换机/路由器的策略配置通常都是围绕报文入接口、出接口展开的,随着防火墙的不断发展,已经逐渐摆脱了只连接外网和内网的角色,出现了内网/外网/DMZ(Demilitarized Zone)的模式,并且向着提供高端口密度的方向发展。在这种组网环境中,传统基于接口的策略配置方式给网络管理员带来了极大的负担,安全策略的维护工作量成倍增加,从而也增加了因为配置引入安全风险的概率。
除了复杂的基于接口的安全策略配置,某些防火墙支持全局的策略配置,全局策略配置的缺点是配置粒度过粗,一台设备只能配置同样的安全策略,满足不了用户在不同安全区域或者不同接口上实施不同安全策略的要求,使用上具有明显的局限性。
基于安全域的防火墙支持基于安全区域的配置方式,所有攻击检测策略均配置在安全区域上,配置简洁又不失灵活性,既降低网络管理员配置负担,又能满足复杂组网情况下针对安全区域实施不同攻击防范策略的要求。
二、防火墙工作模式
为了增加防火墙组网的灵活性,设备不再定义整个设备的工作模式,而是定义接口的工作模式,接口的工作模式如下:
路由模式:如果设备接口具有 IP 地址通过三层与外连接,则认为该接口工作在路由模式下。
透明模式:如果设备接口无 IP 地址通过二层对外连接,则认为该接口工作在透明模式下。
如果设备既存在工作在路由模式的接口(接口具有 IP 地址),又存在工作在透明模式的接口(接口无 IP 地址),则认为该设备工作在混合模式下。
1、路由模式
当设备位于内部网络和外部网络之间,同时为设备与内部网络、外部网络相连的接口分别配置不同网段的 IP 地址,并重新规划原有的网络拓扑结构。
如图所示,规划了 2 个安全区域:Trust 区域和 Untrust 区域,设备的 Trust 区域接口与公司内部网络相连, Untrust区域接口与外部网络相连。
需要注意的是, Trust 区域接口和 Untrust 区域接口分别处于两个不同的子网中。
当报文在三层区域的接口间进行转发时,根据报文的 IP 地址来查找路由表。此时设备表现为一个路由器。但是,与路由器不同的是,设备转发的 IP 报文还需要进行过滤等相关处理,通过检查会话表或 ACL 规则以确定是否允许该报文通过。除此之外,防火墙还需要完成其它攻击防范检查。
采用路由模式时,可以完成 ACL(Access Control List)包过滤、 ASPF 动态过滤等功能。然而,路由模式需要对网络拓扑结构进行修改,例如,内部网络用户需要更改网关,路由器需要更改路由配置等。进行网络改造前,请权衡利弊。
2、透明模式
如果设备工作在透明模式,则可以避免改变拓扑结构。此时,设备对于子网用户来说是完全透明的,即用户感觉不到设备的存在。
设备透明模式的典型组网方式如图所示。设备的 Trust 区域接口与公司内部网络相连, Untrust 区域接口与外部网络相连。需要注意的是, Trust 区域接口和 Untrust 区域接口必须处于同一个子网中。
采用透明模式时,只需在网络中像放置网桥(bridge)一样插入设备即可,无需修改任何已有的配置。IP 报文同样会经过相关的过滤检查,内部网络用户依旧受到防火墙的保护。
如图所示,安全区域 A 和 B 在同一网段且有数据交互,连接安全区域 A 和 B 的接口分别加入 VLAN A 和 VLAN B,且必须加入 VLAN A 和 VLAN B 的组成的桥接组,当防火墙在这两个透明模式的接口间转发报文时,需要先进行 VLAN 桥接,将报文入 VLAN 变换为出 VLAN,再根据报文的 MAC 地址查 MAC 表找到出接口。此时设备表现为一个透明网桥。但是,设备与网桥不同,设备转发的 IP 报文还需要送到上层进行过滤等相关处理,通过检查会话表或 ACL 规则以确定是否允许该报文通过。此外,防火墙还需要完成其它攻击防范检查。
说明:
要求两个工作在透明模式且有数据交互的接口,必须加入到不同的 VLAN 中;同时,这两个接口必须加入同一个 VLAN 桥接组中,而且只能加入一个桥接组。
设备在透明模式的接口上进行 MAC 地址学习,在透明模式的接口间转发报文时,通过查 MAC 表进行二层转发。
3、设备的混合模式
如果设备既存在工作在路由模式的接口(接口具有 IP 地址),又存在工作在透明模式的接口(接口无 IP 地址),则认为设备工作在混合模式下。
网络 A 和 B 是不同的网段,设备连接网络 A 和 B 的接口是三层接口,对 A 和 B 之间的报文要进行路由转发;网络 C 和 D 是相同网段,设备连接网络 C 和 D 的接口是二层接口, 对 C 和 D 之间的报文要进行 VLAN 桥接和二层转发。
三、包过滤防火墙
包过滤防火墙的基本原理是:
通过配置 ACL 实施数据包的过滤。实施过滤主要是基于数据包中的 IP 层所承载的上层协议的协议号、源/目的 IP 地址、源/目的端口号和报文传递的方向等信息。透明防火墙模式下,还可以根据报文的源/目的 MAC 地址、以太类型等进行过滤。
包过滤应用在防火墙中,对需要转发的数据包,先获取数据包的包头信息,然后和设定的 ACL 规则进行比较,根据比较的结果决定对数据包进行转发或者丢弃。
设备对包过滤防火墙的支持
? 普通 IP 报文过滤:防火墙基于访问控制列表 ACL 对报文进行检查和过滤。防火墙检查报文的源/目的 IP 地址、源/目的端口号、协议类型号,根据访问控制列表允许符合条件的报文通过,拒绝不符合匹配条件的报文。防火墙所检查的信息来源于 IP、 TCP 或 UDP 包头。
? 二层报文过滤:透明防火墙可以基于访问控制列表 ACL 对二层报文进行检查和过滤。防火墙检查报文的源/目的 MAC、以太类型字段,根据访问控制列表允许符合条件的报文通过,拒绝不符合匹配条件的报文。防火墙所检查的信息来源于 MAC 头。
? 分片报文过滤:包过滤提供了对分片报文进行检测过滤的支持。包过滤防火墙将识别报文类型,如:非分片报文、首片分片报文、后续分片报文, 对所有类型的报文都做过滤。对于首片分片报文,设备根据报文的三层信息及四层信息,与 ACL 规则进行匹配,如果允许通过,则记录首片分片报文的状态信息,建立后续分片的匹配信息表。当后续分片报文到达时,防火墙不再进行 ACL 规则的匹配,而是根据首片分片报文的 ACL 匹配结果进行转发。另外,对于不匹配 ACL 规则的报文,防火墙还可以配置缺省处理方式。
四、状态防火墙
包过滤防火墙属于静态防火墙,目前存在的问题如下:
? 对于多通道的应用层协议(如 FTP、 SIP 等),部分安全策略配置无法预知。
? 无法检测某些来自传输层和应用层的攻击行为(如 TCP SYN、 Java Applets 等)。
? 无法识别来自网络中伪造的 ICMP 差错报文,从而无法避免 ICMP 的恶意攻击。
? 对于 TCP 连接均要求其首报文为 SYN 报文,非 SYN 报文的 TCP 首包将被丢弃。在这种处理方式下,当设备首次加入网络时,网络中原有 TCP 连接的非首包在经过新加入的防火墙设备时均被丢弃,这会对中断已有的连接。
因此,提出了状态防火墙——ASPF(Application Specific Packet Filter)的概念。ASPF 能够实现的检测有:
? 应用层协议检测,包括 FTP、 HTTP、 SMTP、 RTSP、 H.323(Q.931、 H.245、 RTP/RTCP)检测;
? 传输层协议检测,包括 TCP 和 UDP 检测,即通用 TCP/UDP 检测。
ASPF 的功能
ASPF 的主要功能如下:
? 能够检查应用层协议信息,如报文的协议类型和端口号等信息,并且监控基于连接的应用层协议状态。对于所有连接,每一个连接状态信息都将被 ASPF 维护,并用于动态地决定数据包是否被允许通过防火墙进入内部网络,以阻止恶意的入侵。
? 能够检测传输层协议信息(即通用 TCP/UDP 检测),能够根据源、目的地址及端口号决定 TCP 或 UDP 报文是否可以通过防火墙进入内部网络。
ASPF 的其它功能有:
? ASPF 不仅能够根据连接的状态对报文进行过滤,还能够对应用层报文的内容加以检测,提供对不可信站点的 Java Blocking 功能,用于保护网络不受有害的 Java Applets 的破坏。
? 支持 TCP 连接首包检测。对 TCP 连接的首报文进行检测,查看是否为 SYN 报文,如果不是 SYN 报文则根据当前配置决定是否丢弃该报文。
? 支持 ICMP 差错报文检测。正常 ICMP 差错报文中均携带有本报文对应连接的相关信息,根据这些信息可以匹配到相应的连接。如果匹配失败,则根据当前配置决定是否丢弃该 ICMP 报文。
在网络边界, ASPF 和包过滤防火墙协同工作,能够为企业内部网络提供更全面的、更符合实际需求的安全策略。
ASPF 基本概念
Java Blocking
Java Blocking 是对通过 HTTP 协议传输的 Java Applets 程序进行阻断。当配置了 Java Blocking 后,用户为试图在 Web 页面中获取包含 Java Applets 程序而发送的请求指令将会被阻断。
单通道协议和多通道协议
单通道协议:从会话建立到删除的全过程中,只有一个通道参与数据交互,如 SMTP、 HTTP。
多通道协议:包含一个控制通道和若干其它控制或数据通道,即控制信息的交互和数据的传送是在不同的通道上完成的,如 FTP、 RTSP。
应用层协议检测基本原理
如图所示,为了保护内部网络,一般情况下需要在路由器上配置访问控制列表,以允许内部网的主机访问外部网络,同时拒绝外部网络的主机访问内部网络。但访问控制列表会将用户发起连接后返回的报文过滤掉,导致连接无法正常建立。
当在设备上配置了应用层协议检测后, ASPF 可以检测每一个应用层的会话,并创建一个状态表项和一个临时访问控制列表(Temporary Access Control List, TACL):
1. 状态表项在 ASPF 检测到第一个向外发送的报文时创建,用于维护一次会话中某一时刻会话所处的状态,并检测会话状态的转换是否正确。
2. 临时访问控制列表的表项在创建状态表项的同时创建,会话结束后删除,它相当于一个扩展 ACL 的 permit项。TACL 主要用于匹配一个会话中的所有返回的报文,可以为某一应用返回的报文在防火墙的外部接口上建立一个临时的返回通道。
下面以 FTP 检测为例说明多通道应用层协议检测的过程。
如图所示, FTP 连接的建立过程如下:假设 FTP client 以 1333 端口向 FTP server 的 21 端口发起 FTP 控制通道的连接,通过协商决定由 FTP server 的 20 端口向 FTP Client 的 1600 端口发起数据通道的连接,数据传输超时或结束后连接删除。
FTP 检测在 FTP 连接建立到拆除过程中的处理如下:
1. 检查从出接口上向外发送的 IP 报文,确认为基于 TCP 的 FTP 报文。
2. 检查端口号确认连接为控制连接,建立返回报文的 TACL 和状态表项。
3. 检查 FTP 控制连接报文,解析 FTP 指令,根据指令更新状态表项。如果包含数据通道建立指令,则创建数据连接的 TACL;对于数据连接,不进行状态检测。
4. 对于返回报文,根据协议类型做相应匹配检查,检查将根据相应协议的状态表项和 TACL 决定报文是否允许通过。
5. FTP 连接删除时,状态表及 TACL 随之删除。
单通道应用层协议(如 SMTP、 HTTP)的检测过程比较简单,当发起连接时建立 TACL,连接删除时随之删除TACL 即可。
传输层协议检测基本原理
这里的传输层协议检测是指通用 TCP/UDP 检测。通用 TCP/UDP 检测与应用层协议检测不同,是对报文的传输层信息进行的检测,如源、目的地址及端口号等。通用 TCP/UDP 检测要求返回到 ASPF 外部接口的报文要与前面从 ASPF 外部接口发出去的报文完全匹配,即源、目的地址及端口号恰好对应,否则返回的报文将被阻塞。因此对于 FTP、 H.323 这样的多通道应用层协议,在不配置应用层检测而直接配置 TCP 检测的情况下会导致数据连接无法建立。
五、黑名单
黑名单,指根据报文的源 v__ 和源 IP 地址进行过滤的一种方式。同 ACL 相比,由于进行匹配的域非常简单,可以以很高的速度实现报文的过滤,从而有效地将特定 IP 地址发送来的报文屏蔽,同时支持用户静态配置黑名单和防火墙动态生成黑名单。
设备对黑名单的支持
除了用户可以静态配置黑名单外,当设备发现特定 IP 地址在进行 IP 扫描攻击或端口扫描攻击时,会将发起攻击的 IP 主动插入到黑名单中。如果黑名单已使能的话,在此后的一定时间内,来自这个 IP 地址的任何报文,都可以被黑名单过滤掉。
用户可以配置静态和动态黑名单的老化时间。
无论命中了黑名单的数据包是否为 ACL 规则允许的访问,防火墙对此类数据包予以丢弃。
用户可以将黑名单配置信息导出到文件中,也可以通过文件导入黑名单配置。
六、白名单
在防火墙上加入白名单的主机不会再被加入动态和静态黑名单,使用源 v__ 和 IP 地址来表示一个白名单项。白名单主要用在网络上的特定设备发出的合法业务报文具备 IP 扫描攻击和端口扫描攻击特性的场合,防止该特定设备被防火墙加入黑名单。
白名单只有静态的。
白名单的特点
如果用户将某个主机的 v__ 和 IP 地址加入防火墙白名单,防火墙就不会对该主机发出的报文进行 IP 扫描攻击和端口扫描攻击检查,也不会将其 IP 地址生成动态黑名单,也不允许用户将白名单主机添加到静态黑名单中。
设备对白名单的支持
当设备收到一个报文后,就会检查是否是来自于白名单项的报文。如果是,设备对该报文就不会进行 IP 扫描攻击和端口扫描攻击检查,也不会将源 IP 生成动态黑名单,但是其他安全过滤功能,比如 ACL 包过滤、 ASPF、流量统计和监控等,还是要进行,以达到防火墙的最大安全过滤效果。
用户可以配置白名单的老化时间。
用户可以将白名单配置信息导出到文件中,也可以通过文件导入白名单配置。
端口映射
应用层协议通常使用知名端口号进行通信。端口映射允许用户对不同的应用层协议定义一组新的端口号,还可以指定使用非知名端口的主机范围。
端口映射只有和 ASPF、 NAT 等针对业务敏感的特性联合使用的时候才具有实际意义。例如在一个企业私网中,内部 FTP 服务器 10.10.10.10 通过 2121 端口提供 FTP 服务。用户通过 NAT 服务器访问 FTP 服务器时,只能使用2121 做为端口号。
由于默认情况下 FTP 报文的端口号是 21,这时 FTP 服务器无法将 21 端口的报文识别为 FTP应用。在这样的场合则需要使用端口映射功能把 2121 端口映射成 FTP 协议,则 NAT 服务器就把 2121 端口的报文识别为 FTP 协议报文转发给 FTP 服务器,实现用户对 FTP 服务器的访问。
设备对端口映射的支持
设备对端口映射的支持都是通过 ACL 来实现的,只有匹配某条 ACL 的报文,才会实施端口映射。端口映射使用基本 ACL(编号 2000~2999)。端口映射在使用 ACL 过滤报文时,使用报文的目的 IP 地址去匹配基本 ACL 规则中配置的 IP 地址。
如图所示,外部 PC 通过 Router 访问内部 WWW 服务器(端口号为 8080),在外部 PC 的报文通过 Router 时,命中 ACL 的报文会进行端口映射,只有目的地址是 129.38.2.4 的报文才可以通过 Router 进行端口映射访问 WWW服务器。
八、攻击防范
网络攻击的种类
网络攻击一般分为拒绝服务型攻击、扫描窥探攻击和畸形报文攻击三大类:
1、拒绝服务型攻击
拒绝服务型 DoS(Denial of Service)攻击是使用大量的数据包攻击系统,使系统无法接受正常用户的求,或者主机挂起不能正常的工作。主要 DoS 攻击有 SYN Flood、 Fraggle 等。
拒绝服务攻击和其他类型的攻击不同之处在于:攻击者并不是去寻找进入内部网络的入口,而是阻止合法用户访问资源或防火墙。
2、扫描窥探攻击
扫描窥探攻击是利用 ping 扫描(包括 ICMP 和 TCP)来标识网络上存活着的系统,从而准确地指出潜在的目标。利用 TCP 和 UDP 等进行端口扫描,就能检测出操作系统的种类和潜在的服务种类。
攻击者通过扫描窥探就能大致了解目标系统提供的服务种类,为进一步侵入系统做好准备。
3、畸形报文攻击
畸形报文攻击是通过向目标系统发送有缺陷的 IP 报文,使得目标系统在处理这样的 IP 包时会出现崩溃,给目标系统带来损失。主要的畸形报文攻击有 Ping of Death、 Teardrop 等。
设备对攻击防范的支持:
Land 攻击
Land 攻击,就是把 TCP 的 SYN 包的源地址和目的地址都设置为目标计算机的 IP 地址。这将导致目标计算机向它自己发送 SYN-ACK 报文,目标计算机又向自己发回 ACK 报文并创建一个空连接,每一个这样的连接都将保留直到超时。
各种类型的主机对 Land 攻击反应不同,许多 UNI__ 主机将崩溃, Windows NT 主机会变得极其缓慢。
Smurf 攻击
简单的 Smurf 攻击,用来攻击一个网络。攻击者向目标网络发送 ICMP 应答请求报文,该报文的目标地址设置为目标网络的广播地址,这样,目标网络的所有主机都对此 ICMP 应答请求作出答复,导致网络阻塞。如图所示。
高级的 Smurf 攻击,主要用来攻击目标主机。攻击者向目标主机所在的网络发送 ICMP 应答请求报文,该报文的源地址设置为目标主机的地址,这样,所有的应答报文都将发送给目标主机。最终导致目标主机处理速度缓慢,甚至崩溃。
Smurf 攻击报文的发送需要一定的流量和持续时间,才能真正构成攻击。理论上讲,目标网络的主机越多,攻击的效果越明显。
WinNuke 攻击
NetBIOS 作为一种基本的网络资源访问接口,广泛的应用于文件共享,打印共享,进程间通信(IPC),以及不同操作系统之间的数据交换。一般情况下, NetBIOS 是运行在 LLC2 链路协议之上的,是一种基于组播的网络访问接口。
为了在 TCP/IP 协议栈上实现 NetBIOS, RFC 规定了一系列交互标准,以及几个常用的 TCP/UDP 端口,如下。
? 139:NetBIOS 会话服务的 TCP 端口。
? 137:NetBIOS 名字服务的 UDP 端口。
? 136:NetBIOS 数据报服务的 UDP 端口。
Windows 操作系统实现了 NetBIOS over TCP/IP 功能,并开放了 139 端口。
WinNuke 攻击就是利用了 Windows 操作系统的一个漏洞,向这个 139 端口发送一些携带 TCP 带外(OOB)数据报文,但这些攻击报文与正常携带 OOB 数据报文不同的是,其指针字段与数据的实际位置不符,即存在重叠,Windows 操作系统在处理这些数据的时候,就会崩溃。
SYN Flood 攻击
SYN Flood 攻击利用 TCP 三次握手的一个漏洞向目标计算机发动攻击。攻击者向目标计算机发送 TCP 连接请求(SYN 报文),然后对于目标返回的 SYN-ACK 报文不作回应。目标计算机如果没有收到攻击者的 ACK 回应,就会一直等待,形成半连接,直到连接超时才释放。
攻击者利用这种方式发送大量 TCP SYN 报文,让目标计算机上生成大量的半连接,迫使其大量资源浪费在这些半连接上。目标计算机一旦资源耗尽,就会出现速度极慢、正常的用户不能接入等情况。
攻击者还可以伪造 SYN 报文,其源地址是伪造的或者不存在的地址,向目标计算机发起攻击。
ICMP Flood 攻击
通常情况下,网络管理员会用 PING 程序对网络进行监控和故障排除,大概过程如下:
1. 源计算机向接收计算机发出 ICMP 响应请求报文(ICMP ECHO)。
2. 接收计算机接收到 ICMP 响应请求报文后,会向源计算机回应一个 ICMP 应答报文(ECHO Reply)。
这个过程是需要 CPU 处理的,在有些情况下还可能消耗掉大量的资源。
如果攻击者向目标计算机发送大量的 ICMP ECHO 报文(产生 ICMP 洪水),则目标计算机会忙于处理这些 ECHO报文,而无法继续处理其它的数据报文。
UDP Flood 攻击
UDP Flood 攻击的原理与 ICMP Flood 攻击类似,攻击者通过发送大量的 UDP 报文给目标计算机,导致目标计算机忙于处理这些 UDP 报文而无法继续处理正常的报文。
地址扫描与端口扫描攻击攻击者运用扫描工具探测目标地址和端口,目标地址会对这些探测作出响应,攻击者根据这些响应用来确定哪些目标系统是存活着并且连接在网络上、目标主机开放或者关闭了哪些端口。
Ping of Death 攻击
所谓 Ping of Death,就是利用一些尺寸超大的 ICMP 报文对系统进行的一种攻击。
IP 报文的长度字段为 16 位,这表明一个 IP 报文的最大长度为 65535。对于 ICMP 回应请求报文,如果数据长度大于 65507,就会使 ICMP 数据+IP 头长度(20)+ICMP 头长度(8) > 65535。对于有些防火墙或系统,在接收到一个这样的报文后,由于处理不当,会造成系统崩溃、死机或重启。
Large-ICMP 攻击
同 ping of death 类似, Large-ICMP 也是利用一些大尺寸的 ICMP 报文对系统进行的一种攻击,与 ping of death 不同的是, Large-ICMP 报文的长度不会超过 IP 报文的最大长度 65535,但是对一些操作系统也会造成破环。
需要在防火墙上配置允许通过的 ICMP 报文的最大长度。
ICMP-Unreachable 攻击
某些系统在收到网络(报文类型字段为 3,代码字段为 0)或主机(报文类型字段为 3,代码字段为 1)不可达的ICMP 报文后,对于后续发往此目的地的报文直接认为不可达。
攻击者利用这种机制,向目标主机发送虚假的 ICMP-Unreachable 报文,干扰了目标主机的路由信息,影响了报文发送。
ICMP-Redirect 攻击
ICMP-Redirect 攻击和 ICMP-Unreachable 攻击类似。
网络设备可以向同一个子网的主机发送 ICMP 重定向报文,请求主机修改路由。
攻击者利用这个原理,跨越网段向另外一个网络的目标主机发送虚假的重定向报文,以改变目标主机的路由表。
这种攻击干扰了目标主机的路由信息,影响了报文发送。
IP-fragment 攻击
IP 报文中有几个字段与分片有关:DF(Don’ t Fragmentate)位、 MF 位、 Fragment Offset、 Length。
如果上述字段的值出现矛盾,而设备处理不当,会对设备造成一定的影响,甚至瘫痪。矛盾的情况有:
? DF 位被置位,而 MF 位同时被置位或 Fragment Offset 不为 0。
? DF 位为 0,而 Fragment Offset + Length > 65535。
另外,由于分片报文可以增加目的设备缓冲和重组的负担,应直接丢弃目的地址为设备本身的分片报文。
Teardrop 攻击
在网络传输的过程中,如果 IP 报文的长度超过链路层的 MTU(最大传输单元),就会进行分片。在 IP 报头中有一个偏移字段(OFFSET)和一个分片标志(MF),如果 MF 标志设置为 1,则表明这个 IP 报文是一个大 IP包的分片,其中偏移字段指出了这个片断在整个 IP 包中的位置。接收端可以根据报文头中的这些信息还原该 IP包。
比如,一个较大的报文在 MTU 较小的链路上传输的时候,被分成了两个 IP 报文,这两个 IP 报文将在目的端进行组装,还原为原始的 IP 报文。
如果一个攻击者打破这种正常情况,把偏移字段设置成不正确的值,即可能出现重合或断开的情况。某些 TCP/IP协议栈在收到类似这种含有重叠偏移的伪造分段时会崩溃,这就是所谓的 Teardrop 攻击。
Fraggle 攻击
Fraggle 攻击的原理与 Smurf 攻击的原理类似,不过, Fraggle 攻击发送的是 UDP 报文而非 ICMP 报文。因为发送的是 UDP 报文, Fraggle 攻击可以穿过一些阻止 ICMP 报文进入的防火墙。
Fraggle 攻击利用的原理是:UDP 端口 7(ECHO)和端口 19(Chargen)在收到 UDP 报文后,都会产生回应。如下:
? UDP 的 7 号端口收到报文后,会象 ICMP Echo Reply 一样回应收到的内容。
? UDP 的 19 号端口在收到报文后,会产生一串字符流。
这两个 UDP 端口都会产生大量应答报文,挤占网络带宽。
攻击者可以向目标主机所在的网络发送源地址为被攻击主机、而目的地址为其所在子网的广播地址或子网网络地址的 UDP 报文,目的端口号为 7(ECHO)或 19(Chargen)。子网中启用了此功能的每个系统都会向受害主机发送回应报文,从而产生大量的流量,导致受害网络的阻塞或受害主机崩溃。
如果目标主机所在网络上的主机没有启动这些功能,这些主机将产生一个 ICMP 不可达消息,仍然消耗带宽。也可将源端口改为端口 19(Chargen) ,目的端口为 7(ECHO),这样会自动不停地产生回应报文,其危害性更大。
Tracert 攻击
Tracert 是利用 TTL(Time To Live)为 0 时返回的 ICMP 超时报文,和达到目的地时返回的 ICMP 端口不可达报文来发现报文到达目的地所经过的路径。
攻击者可以利用 Tracert 窥探网络的结构。对网络造成潜在的危险。
畸形 TCP 报文攻击
畸形 TCP 报文是通过故意错误设置 TCP 头中的 6 个标记位,造成接收方 TCP 协议栈的处理错误,达到攻击的目的。
九、流量统计及监控
防火墙不仅要对数据流量进行监控,还要对内外部网络之间的连接发起情况进行检测,进行大量的统计计算与分析。防火墙的统计分析一方面可以通过专门的分析软件对日志信息进行事后分析,另一方面,防火墙系统本身可以完成一部分分析功能,具有一定的实时性。
比如,通过分析外部网络向内部网络发起的 TCP/UDP 连接数是否超过设定阈值,可以确定是否需要限制该方向发起新连接,或者限制向内部网络某一 IP 地址发起新连接。
图是防火墙的一个典型应用示例,当启动了外部网络到内部网络的基于 IP 地址的统计分析功能时,如果外部网络对 Web 服务器 129.1.9.1 发起的 TCP 连接数超过了设定的阈值,将限制外部网络向该服务器发起新连接,直到连接数降到正常范围。
设备支持的流量统计及监控方法如下:
系统级的流量统计和监控
系统级的流量统计和监控,对系统中所有启用了防火墙功能的安全域间的数据流生效,即设备统计所有安全域间的 ICMP、 TCP、 UDP 等连接数。当连接数超过配置阈值时,设备采取限制连接措施,直至连接数降至阈值以下。
基于安全区域的流量统计和监控
基于安全区域的流量统计和监控,对本安全区域和其他安全区域之间的数据流生效,即设备会统计本安全区域和其他所有安全域间建立的 TCP、 UDP 等连接总数。当本安全区域和其他所有安全域间建立的连接总数或者某个方向的连接总数超过配置的阈值时,设备采取限制连接数措施,直至连接数降至阈值以下。
基于 IP 地址的流量统计和监控
基于 IP 地址的流量统计和监控,用于统计和监控安全区域中单个 IP 地址所建立的 TCP/UDP 连接。设备通过分析源 IP 地址发起或目的地址接收的 TCP 或 UDP 连接总数是否超过设定的阈值,可以确定是否需要限制该方向的新的连接的发起,以防止系统受到恶意的攻击或因系统太忙而发生拒绝服务的情况。
当 TCP/UDP 连接数降至阈值以下后,源 IP 地址或目的地址可以重新发起或者接受 TCP 或 UDP 连接。
十、防火墙日志
防火墙可以实时记录防火墙的动作和状态(例如实施了某种防火墙措施、检测到某种网络攻击等),并将信息记录到日志中。
对日志内容的分析和归档,能够使管理员检查防火墙的安全漏洞、何时何人试图违背安全策略、网络攻击的类型,实时的日志记录还可以用来检测正在进行的入侵。
当需要对防火墙的动作和状态进行记录,以便检查防火墙的安全漏洞、检测网络攻击和入侵等,可以配置防火墙日志功能。
设备对防火墙日志的支持
黑名单日志
设备在发现有地址扫瞄、端口扫瞄等攻击的时候,在黑名单使能的情况下会动态生成黑名单日志。
手动加入的黑名单同样也会生成黑名单日志。
动态生成的黑名单、手动加入的静态黑名单到老化时间之后,会生成解除黑名单日志。
攻击日志
设备发现各种攻击类型后,会生成攻击日志,记录攻击类型和参数。
流量监控日志
当系统全局、区域出入的会话数超过所配置的连接数阈值上限时,设备会生成流量监控日志,当会话数低于所配置的连接数阈值下限时,设备会生成流量恢复日志。
流日志
设备的流日志是在会话表老化的情况下,封装流日志信息,发送到日志服务器。
十一、虚拟防火墙
近年来小型私有网络不断增加,这些网络一般对应小型企业。此类用户有如下特点:
? 有较强的安全防范需求。
? 经济上无法负担一台专有安全设备。
设备支持从逻辑上划分为多台虚拟防火墙,分别为多个小型私有网络提供独立的安全保障。
每台虚拟防火墙都是 v__(Virtual Private Network)实例(v__-Instance)、安全实例的综合体。它能够为虚拟防火墙用户提供私有的路由转发平面、安全服务
v__ 实例
v__ 实例为虚拟防火墙用户提供相互隔离的 v__ 路由,与虚拟防火墙一一对应。这些 v__ 路由将为各虚拟防火墙接收的报文提供路由支持。
安全实例
安全实例为虚拟防火墙用户提供相互隔离的安全服务,与虚拟防火墙一一对应。这些安全实例具备私有的接口、安全区域、安全域间、 ACL 和 NAT 规则,并能为虚拟防火墙用户提供黑名单、包过滤、流量统计和监控、攻击防范、 ASPF 和 NAT 等私有的安全服务。
十二、防火墙主备
防火墙设备是所有信息流都必须通过的单一点,一旦出现故障所有信息流都会中断。保障信息流不中断至关重要,这就需要解决防火墙设备单点故障问题。
为了解决这一问题,可以由两台防火墙实现冗余路由备份,其中一台为主用(Master)防火墙,另一台为备用(Backup)防火墙。主用和备用防火墙各接口分别连接相应的安全区域。防火墙主备状态由 VRRP 协议协商确定,通过 HSB 协议实现防火墙会话表项的同步。
防火墙主备
防火墙是状态防火墙,只检查会话流的首包,并动态生成会话表项。对于每一个动态生成的会话连接,防火墙上都有一个会话表项与之对应,会话表项中记录了用户会话的状态信息,后续报文(包括返回报文)只有匹配会话表项才能通过防火墙。
如图所示, Firewall A 作为 Master 设备并承担所有数据传输任务,其上创建了很多动态会话表项;而 Firewall B则处于备份状态,没有任何流量经过。
如果 Firewall A 出现故障或相关链路出现问题, Firewall B 将会切换状态变成新的 Master,并开始承担传输任务。
如果状态切换前,会话表项没有备份到 Firewall B,则先前经过 Firewall A 的所有会话都会因为无法匹配 Firewall B 的会话表而无法通信,导致业务中断。
为了实现 Master 防火墙出现故障时能由 Backup 防火墙平滑地接替工作,在 Master 和 Backup 的防火墙之间实时备份会话表和状态信息;当前防火墙主备通过 HSB 机制实现在 Master 和 Backup 防火墙之间进行会话表和状态信息的备份和同步。
防火墙主备的状态要求
防火墙的 VRRP 状态需要保持一致,这样表示防火墙上和各安全区域相连的若干接口状态相同,即同时处于主用状态或同时处于备用状态。
?假设 Firewall A 和 Firewall B 的 VRRP 状态一致,即 Firewall A 的所有接口均为主用状态, Firewall B 的所有接口均为备用状态。此时, Trust 区域的 PC1 访问 Untrust 区域的 PC2,报文的转发路线为(1)-(2)-(3)-(4)。Firewall A 转发访问报文时,动态生成会话表项。当 PC2 的返回报文经过(5)-(6)-(7)-(8)到达 Firewall A 时,则由于能够匹配会话表项,从而顺利返回,通信顺畅。
? 假设 Firewall A 和 Firewall B 的 VRRP 状态不一致,例如, Firewall B 与 Trust 区域相连的接口为备用状态,但与 Untrust 区域的接口为主用状态,则 PC1 的报文通过 Firewall A 设备到达 PC2 后,在 Firewall A 上动态生成会话表项。PC2 的返回报文通过路线(5)-(9)返回。此时由于 Firewall B 上没有相应数据流的会话表项,在没有其他报文过滤规则允许通过的情况下, Firewall B 将丢弃该报文,导致会话中断。
另外,下行与交换机相连的链路可以通过交换机的 SmartLink 确保链路的可靠性,同时在两台防火墙设备间通过直连链路确保下行链路故障时能够通过此链路将相应流量转发到对端防火墙。
了解防火墙
当今市场上有两类主导性的防火墙:应有代理(application pro__y)和包过滤网关(packet filtering gateway)。尽管应有代理被广泛地认定比包过滤网关安全,他们的限制特性和对性能的影响却使得它们的应有场合局限于从因特网上其它公司外的分组流动,而不是从本公司的Web服务器外出的分组流动。相反,包过滤网关或者更尖端的有状态分组过滤网关则能在许多具有高性能要求的较大机构中找到。
防火墙自诞生以来以保护无数的网络或计算机多过了窥视的眼睛和邪恶的破坏者,然而他们还远远不是治理安全的万灵丹。市场上每个防火墙产品几乎每年都有安全脆弱点被发现。更糟糕的是,大多数防火墙往往配置不当且无人维护和监视,从而把它们转化成了电子制门器(保持大门敞开着)。而黑客的责任就是攻克这些脆弱的或无人看管的防火墙,然后告诉它的主人,你的门烂了,还是再换个更好的吧!这次是个警告,如果下次进来的人没有良心,你就惨了。
那防火墙的工作原理又是什么呢?
防火墙常常就是一个具备包过滤功能的简单路由器,支持Internet安全。这是使Internet连接更加安全的一种简单方法,因为包过滤是路由器的固有属性。
包是网络上信息流动的单位。网络上传输的文件一般在发出端被划分成一个一个的IP包,经过网上的中间站,最终传到目的地,然后这些IP包中的数据又重新组成原来的文件。
每个IP包有两个部分:数据部分和包头。包头中含有源地址和目标地址等信息。(这一部分的内容要有TCP/IP的基础)
IP包的过滤一直是一种简单而有效的方法,它通过件包头信息和管理员设定的规则表比较,读出并拒绝那些不符合标准的包,过滤掉不应入站的信息。
IP包过滤规则一般基于部分的或全部的IP包信息,例如对于TCP包头信息为:
1. IP协议类型
2. IP源地址
3. IP目标地址
4. IP选择域的内容
5. TCP源端口号
6. TCP目标端口号
7. TCP ACK标识,指出这个包是否是联接中的第一个包,是否是对另一个包的响应
IP包过滤的一个重要的局限是它不能分辨好的和坏的用户,只能区分好的饱和坏的包。包过滤只能工作在由黑白分明安全策略的网中,即内部是好的,外部是可疑的。对于FTP协议,IP包过滤就不十分有效。FTP允许联接外部服务器并使联接返回到端口20,这几乎毫不费力的通过那些过滤器。
防火墙/应用网关(Application Gateways)还有一种常见的防火墙是应用代理防火墙(有时也称为应用网关)。这些防火墙的工作方式和过滤数据报的防火墙、以路由器为基础的防火墙的工作方式稍有不同。它是基于软件的;当某远程用户想和一个运行应用网关的网络建立联系时,此应用网关会阻塞这个远程联接,然后对联接请求的各个域进行检查。如果此联接请求符合预定的规则,网关便会在远程主机和内部主机之间建立一个”桥”,”桥”是指两种协议之间的转换器。例如,一个典型的网关一般不将IP数据报转发给内部网络,而是自己作为转换器和解释器进行转换过程。这种方式的时被称之为man-in-the-middle configuration。这种应用网关代理模型的长处是不进行IP报文转发,更为重要的是可以在”桥”上设置更多的控制,而且这种工具还能提供非常成熟的日志功能。然而所有的这些优点都是通过牺牲速度换取的,因为每次联接请求和所有发往内部网的报文在网关上经历接受、分析、转换和再转发等几个过程,完成这些过程所需时间显然比完成以路由器为基础的数据报过滤的时间长得多。
IP转发(IP forwarding)是指收到一个外部请求的服务器将此请求信息以IP报文的格式转发给内部网。让IP转交功能有效是一个严重的错误:如果你允许IP转发,那么入侵者便能从外部进入你的内部网络并访问其上的工作站。
透明性是代理服务器的主要优点。用户端,代理服务给用户的假象是:用户是直接与真正的服务器连接;而在服务器端代理服务给用户的假象是:服务器是直接面对连在代理服务器上的用户。要注意的是,代理服务器只有在需要严格控制内部与外部主机直接联接的场合才是一个比较有效的机制。而双宿主主机与包过滤也是具有这种特性的另外两种机制。如果内、外部主机能够直接相互通信,那么用户就没有必要使用代理服务,在这种情况下,代理服务也不可能起作用。而这种由旁路的拓扑与网络的信息安全是相矛盾的。
最常见的防火墙是按照基本概念工作的逻辑设备,用于在公共网上保护私人网络。配置一堵防火墙是很简单的,步骤如下:
1. 选择一台具有路由能力的PC
2. 加上两块接口卡,例如以太网卡或串行卡等
3. 禁止IP转发
4. 打开一个网卡通向Internet
5. 打开另一个网卡通向内部网
现在,两个不同的网络被这个防火墙分割开来。由于内部网不能再访问Internet,所以访问网际空间就必须经过防火墙。欲进入内部网络,必须先通过防火墙。
而且,若站点正处于防火墙保护之下,对它的访问也是被禁止的,用户不得不先登陆防火墙后在进入Internet,这时便需要代理服务器了。因此,为了使防火墙有效,必须超越其概念设计。
防火墙的设计列有好几种,但都可分为两类:网络级防火墙及应用级防火墙。它们采用不同的方式提供相同的功能,任何一种都能适合站点防火墙的保护需要。而且现在有些防火墙产品具有双重性能。
1. 网络级防火墙
这一类型的防火墙,通常使用简单的路由器,采用包过滤技术,检查个人的IP包并决定允许或不允许基于资源的服务、目的地址及时用端口。
最新式的防火墙较之以前更为复杂,它能监控通过防火墙的联接状态等等。这是一类快速且透明的防火墙,易于实现。
2. 应用级防火墙
应用级防火墙通常是运行在防火墙上的软件部分。这一类的设备也称为应用网关。它是运行代理服务器软件的计算机。由于代理服务器在同一级上运行,所以它对采集访问信息并加以控制是非常有用的。因此,此类防火墙能提供关于出入站访问的详细信息,从而较之网络级防火墙,安全性更强。
若打算将服务器安在内部网内,由于代理服务器将阻塞大多数连结,因此与服务器的连结受到很大限制。但这是一个高度安全的设计,适用于内部网上高水平的保护。
若站点上已实现了类似的防火墙,也许想将Web服务器至于防火墙之外(Web A),并且可能通过一个代理服务器在内部网与Web服务器之间建立联接。但这很可能使站点出现安全漏洞。
还有许多种类的防火墙,它们都有自己的特色:
1. 隔离式过滤器
2. 堡垒主机
3. 双宿主机网关
4. 安全IP通道
5. IP过滤
6. Circuit网关
防火墙可以极大的增强Web站点的安全。根据不同的需要,防火墙在网络中配置有很多方式。根据防火墙和Web服务器所处的位置,总可以分为3种配置:Web服务器置于防火墙之内、Web服务器置于防火墙之外和Web服务器置于防火墙之上。
将Web服务器装在防火墙内的好处是它得到了安全保护,不容易被黑客闯入,但不易被外界所用。当Web站点主要用于宣传企业形象时,显然这不是好的配置,这时应当将Web服务器放在防火墙之外。
事实上,为了保证组织内部网络的安全,将Web服务器完全置于防火墙之外使比较合适的。在这种模式中,Web服务器不受保护,但内部网则处于保护之下,即使黑客进入了你的Web站点,内部网仍是安全的。代理支持在此十分重要,特别是在这种配置中,防火墙对Web站点的保护几乎不起作用。
一些管理员试图在防火墙机器上运行Web服务器,以此增强Web站点的安全性。这种配置的缺点是,一旦服务器有一点毛病,整个系统全处于危险之中。
这种基本配置有多种变化,包括利用代理服务器、双重防火墙、利用成对的”入”、”出”服务器提供对公众信息的访问及内部网络的私人文档的访问。
有一些防火墙的结构不允许将Web服务器设置其外。在这种情况下将不得不打通防火墙。可以这样作:
1. 允许防火墙传递对端口80的请求,访问请求或被限制到Web站点或从Web站点返回(假定你正使用”screened host”型防火墙;
2. 可以在防火墙机器上安装代理服务器,但需一个”双宿主网关”类型的防火墙。来自Web服务器的所有访问请求在被代理服务器截获之后才传给服务器。对访问请求的回答直接返回给请求者。
现实世界要想绕过配置得当的防火墙可能难以置信的困难。然而使用诸如traceroute、hping 和nmap之类信息汇集工具,共记者可以发现(或者至少能够推断)经由目标网点的路由器和防火墙的访问通路,并确定所用防火墙的类型。当前发现的许多脆弱点的根源在于防火墙的误配置和缺乏管理性监视,然而这两种条件一旦被发掘,所导致的后果可能是毁灭性的。
代理和包过滤这两种防火墙中都存在一些特定的脆弱点,包括未加认证的Web和telnet访问以及本地主机登录。对于其中大多数脆弱点,可采取相应的对策防止对它们的发掘,然而有些脆弱点却只能监测是否有人在发掘它们而已。
许多人深信防火墙不可逆转的将来是应用代理和有状态分组包过滤技术的有机结合,这种结合提供了限制误配置的一些技巧。反应性特性也将成为下一代防火墙的部分内容。NAI已在他们的Active Security体系结构上实现了某种形式的反应性特性。它允许一个被检测到的入侵活动引发受影响防火墙的预想设计好的变动。举例来说,如果某个IDS系统检测到了ICMP隧道攻击,它就会接着指导防火墙关闭对进入ICMP回射请求分组的响应。这样的情形总是存在拒绝服务性攻击的机会,这也是需要知识丰富的所谓安全人员的原因。