05.01 防火墙是怎样的网络硬件
构建安全网络体系而需要遵循的 CIA 基本理念。CIA 是机密性 (Confidentiality) 、 完整性(Integrity) 、 可用性(Availability)。
防火墙硬件作为防范装置能够同时实现CIA 中3个条目的相应对策。在20世纪90年代中期,普通企业一般都会在网关(LAN 与互联网的边界)中设置防火墙。
防火墙这个装置原本用于防范外部网络,也就是拥有多个不特定用户的公共网络对内部网络 (企业的Intranet) 进行的 DoS 攻击或不法访问(Hacking,黑客行为),但现在也开始需要防范从内部网络向互联网泄露信息或将内部网络作为攻击跳板等行为。
05.03 防火墙如何分类
05.03.01 软件型防火墙
-
个人防火墙
个人防火墙运行于个人计算机上,用于监控个人计算机与外部网络之间的通信信息,主要功能如表5-3所示。在 Windows 操作系统中集成了Windows 防火墙。一般拥有杀毒软件产品的厂商会以综合安全软件套件的形式销售个人防火墙(表5-4)。
-
网关型防火墙
在计算机网络的网关中设置类似防火墙设备的功能,从而对网络中通信流量进行策略控制,这种类型的防火墙即为网关型防火墙。
网关型防火墙分为两类, 一类是在Windows 、Linux 等通用操作系统上安装并运行FireWall-1 软件的软件型网关防火墙, 一类是使用专用设备的硬件型网关防火墙。个人防火墙主要监控所有到达个人计算机的通信流量,而网关型防火墙则需要监控来自多数不特定终端设备的通信流量,并在它们通过网关时实施策略控制。
05.05 什么是防火墙的网络接口模式
L1~L3 模式如图5-8所示,是将需要防火墙控制的 链路进行"串行"连接,这样的拓扑结构称为内联(inline) 连接。TAP模式正如图5-9所示,该模式仅有一条来自交换机的链路构成,这样的链路组成结构也称为单臂(one-arm) 拓扑。
接口模式 | 说明 |
---|---|
L3模式 | 也称为NAT模式,是与路由器接口一样拥有IP地址的接口。在进行路由选择、NAT以及连接IPSec-VPN或SSL-VPN时,必须使用L3模式的接口可以通过网络管理人员输入静态配置IP地址,也可以通过PPPoE、DHCP客户端动态分配来获取接口的IP地址。在L3模式下进行路由时,需要使用虚拟路由器 |
L2模式 | 也称为透传模式或者透明模式(L2透明模式),是与交换机接口一样拥有同样MAC地址、可进行桥接的接口。进行IP地址分配时需要使用VLAN |
L1模式 | 把两对儿网络接口组成一组,流量在其中一方的接口上输入并在另一块接口处输出。该模式下无法进行路由和桥接 |
TAP模式 | 与交换机镜像端口(SPAN端口)相连接的模式。通过对交换机转发的数据帧进行复制并收集,可以将通信内容可视化并检测恶意软件。由于不是内联结构,因此该模式无法阻止那些没有必要的通信过程 |
05.06 防火墙能够预防的威胁
- 威胁安全的人
安全威胁一般分为人为因素和非人为因素(自然灾害等),防火墙面临的威胁一般来自于人为因素。表5-11列出了安全威胁人(攻击者)的几个类型。
05.07 防火墙中搭载的各种功能
05.07.01 会话管理
-
会话与数据流
会话(session) 是指两个系统之间通信的逻辑连接从开始到结束的过程。在 TCP中某个服务器与客户端成对进行通信时,会完成3次握手来确认建立1个TCP 连 接,在从连接建立开始至连接结束的时间里,客户端发送请求(request) 和服务器进行应答(response) 这一交互过程即可称为进行了1个会话。在UDP 中,客户端与服务器之间只要发送源的端口和目的地端口的配对一致,随后的一系
列通信均可以称为会话。在ICMP中,例如 Echo 和对应的 Echo reply的组合就可以称为会话。一个会话存在"客户端→服务器"(c2s 或client to server) 和"服务器→客户端"(s2c 或server to client)两个数据流(flow)。数据流是指发往通信对方的多个分组序列。
-
TCP 连接管理
一个 TCP 的连接需要通过3次握手来确认建立。最初由客户端发送 SYN 消息,即发送首部中SYN 比特信息设置为"1"的TCP 数据段。 SYN 读 作 /sin/, 表示同步的意思,取自Synchronization 这个单词的前三个字母。SYN 相当于一个开始信号,与打电话时先拨号码的行为类似。当服务器收到来自客户端的 SYN 消息后,将返回表示确认的 ACK 消息,同时也会发送一个SYN 消息至客户端。ACK 表示确认的意思,取自Acknowledgement 这个单词的前三个字母。TCP 连接使用端口号表示不同的网络服务(应用程序)。例如, HTTP 使用80号端口, TELNET 使用23号端口。提供HTTP 服务的服务器必须接收和处理客户端发送至80号端 口的TCP 数据段。能够处理分组的状态一般表示为listen 状态(listen 意为"侦听",也称为listening)。
序列号分为两类, 一类用于从客户端发往服务器端(c2s) 的上行TCP 数据段,另一类用于 从服务器端发往客户端(s2c) 的下行TCP 数据段。上行和下行两种数据流在建立时,各自使用不同的随机数作为初始序列号 ISN(Initial Sequence Number)。
2.1. SYN 检查
TCP 会话开始时客户端必会发送一个 SYN 消息。如果是没有附带会话信息(或尚未建立会话),即非 SYN 消息的 TCP 数据段到达防火墙,防火墙就会将其视作非法而整个丢弃。但也可 以根据不同的情形(双活冗余或会话超时等)关闭(OFF) 防火墙的这个功能,使不带有会话信息的、非 SYN 消息的 TCP 数据段也能够通过防火墙。
2.2. ACK 检查
在根据 SYN Cookie(参考表5-27)信息防范SYN Flood攻击时,通过对SYN-ACK 的 ACK消息进行检查,能够确认进行中的3次握手是否为非法尝试。
2.3. 同一数据段检查
终端再次发送 TCP 数据段时,对于和之前收到的TCP 数据段含有相同序列号或数据的 TCP 数据段,可以指定防火墙的处理方式,即指定是使用新接收到的重复数据段还是丢弃该重复数据段。
2.4. 窗口检查
检查TCP 首部内的序列号和滑动窗口大小(Window Size), 拦截超过滑动窗口容量数据的序列号。
2.5. 数据段重组
即使各数据段的顺序出现变化,TCP 数据段也能根据序列号调整为正确顺序。在防火墙进行这一工作,可以验证TCP 数据段序列号是否完整。
- 会话建立的处理
防火墙按照以下步骤处理从网络接口接收到的分组,从而完成会话建立。
3.1. 检索会话表,确认表内是否存在相同会话(若存在相同会话,则禁止会话建立的后续流程)。
3.2. 若不存在相同会话,则检查该分组是否可以通过L3 路由选择或 L2 转发来输出。如果可以输出,确定对应的网络输出接口和目的地区域(若不能输出,则丢弃该分组)。
3.3. 分组转发时,如果目的地址需要进行NAT则先完成NAT, 确定NAT后的网络输出接口和目的地区域。
3.4. 根据分组的发送源信息(发送源网络接口、发送源区域和发送源地址)以及经过3.2、3.3步 骤后得到的目的地信息(目的地网络接口、目的地区域、目的地址)进行安全策略检查, 发现有符合的安全策略时,则根据该策略(允许通信或拒绝通信)决定是继续转发还是丢弃分组。如果没有符合的安全策略,则根据"默认拒绝"的设定丢弃该分组。
3.5. 当分组被允许通信时,会话表中就会生成该会话的相关信息。
- 会话的生存时间
会话表中记录的会话信息有一定的生存时间。会话建立后,如果在一定时间内一直处于无通 信状态,防火墙将会判断该会话的生存时间已到,进而将该会话记录项从会话表内删除。如果无 条件地任由会话记录留在会话表中,这些会话信息则很有可能会被用于恶意攻击等行为。另外, 由于会话表的记录项在数量上也有一定的限制,因此长期保留会话记录也会导致资源的长期占用,从而影响新会话记录的生成。会话时间能够根据 TCP 、UDP 或其他IP 协议的不同分别进行设置。对于TCP 而言,会话的超时时间一般为30分钟~1小时, UDP 则为30秒左右。例如,某 Telnet 会话通过防火墙完成了连接,若在1个小时内没有进行任何通信,防火墙会自动将该会话 记录从会话表中删除。此后,客户端想要继续该 Telnet 会话时,也会被防火墙拒绝(图5-12),因此客户端需要重新建立 Telnet 会话。会话生存时间的调整可以参考本书07.04节。
- 会话终止处理
TCP 连接一般通过下面的步骤终止会话。
5.1. 客户端在完成收发数据后,会发送 FIN标志位设置为On 的 TCP 数据段(FIN)。
5.2. 服务器接收到 FIN 消息后,会在回复消息中将 FIN与 ACK 标志位设置为On, 并将 Ack
编号设置为"接收的 Seq 编号+1"。
5.3. 客户端同样在回复的TCP 消息中将ACK标志位设为On, 将 Ack 编号设置为"接收的
Seq编号+1",连接就此结束。
5.4. 这时,客户端会进入TIME WAIT的 TCP 状态。 一定时间后本次连接所使用的TCP 端 口号(来自客户端的通信发送源端口号)将会禁用。这一时间段称为2MSL(Maximum Segment Lifetime,MSL的2 倍),根据实现的不同,大约在1分钟到几分钟之间不等。
如果客户端或服务器在确认连接建立时发生了故障,那么将只有能够通信的一方进入侦听 状态,这种情形称为半侦听或是半关闭。如果这时通信的故障方从故障中恢复,并接收到故障前 交互的 TCP数据段,便会向通信对方回复一条TCP 响应数据段,该数据段中RST标志位设为ON, 通过这条响应消息强制终止TCP 连接。终止连接有时会通过FIN 和RST 两个标志位来完成,不过当防火墙接收到来自通信方 的 FIN 或 RST 时,还可以启动另一个30秒左右的定时器。如果在该时间段内FIN→FIN-ACK →ACK 的终止过程仍未完成,防火墙中的会话表项会被强制删除(图5-13)。
- UDP 数据流的管理
在 UDP 中没有像TCP 这样的3次握手过程,客户端和服务器之间直接使用带有应用程序分组的UDP 分组进行交互。UDP 数据流是指发送源IP 地址、发送源端口号、目的地IP 地址和目的地端口号这4个参数都相同的一系列UDP 分组(图5-14)。
DNS 和 SNMP 这种管理类应用程序一般只需1个UDP 分组便能完成1个数据流程。进行音频和视频数据交互的 RTP(Real Time Protocol),则需要通过多个由流数据(streaming data) 构成的 UDP 分组来完成1个数据流。
-
管理 ICMP 和 IP 数据流
在进行ICMP 和 TCP/UDP 以外的 IP 通信时,由于不存在端口号这个概念,因此需要直接根据 IP 首部的协议号来生成会话信息。
如 ICMP 中的 Echo 消息对应 Echo Reply 消息那样,防火墙需要自动识别不同的请求消息和与之对应响应消息,并综合判断这些消息序列是否属于同一个会话(图5-15)。
-
会话同步
支持会话同步功能的防火墙能够对冗余结构中(HA 结构①)主设备和副设备之间的会话信息 进行同步。为了准确地同步会话信息,需要使用专用的 HA 链路将两台防火墙连接,然后在该链路上完成会话信息的交互。在采用了主备方式的冗余结构中,活跃设备负责建立用户通信的会话,并将会话信息记录在会话表中,同时还会将信息通过HA 专用链路转发到备用设备中。
-
利用会话数目受限的特性
有的防火墙产品拥有限制通过防火墙会话数目的功能,也有些产品将该功能作为DoS 防御功能的一部分提供给用户。防火墙可以以TCPSYN 、UDP 、ICMP 以及其他IP 等协议为单位,通过指定发送源与目的 地的组合来限制该类会话的数目。当指定的发送源为ANY 、 指定的目的地址为某特定地址时,就能够限制该服务器上的会话数目,这样做不仅可以控制服务器的负载,还可以防范 DoS 攻击。
另外,限制会话的数目就相当于限制了防火墙内会话表中会话记录的数目,这也能够在一定程度上提高防火墙的性能。
05.07.02 分组结构解析
为了防止非法分组的流入和流出,防火墙会对分组的首部和有效载荷进行结构解析,解析的主要项目如下所示。
- IP 首部解析
IPv4首部格式如图5-16所示,其中成为防火墙解析对象的部分如表5-13所示。
-
TCP 首部解析
TCP首部格式如图5-17所示,其中成为防火墙解析对象的部分如表5-14所示。
-
UDP 首部解析
UDP 首部解析的对象如表5-15所示。
05.07.03 安全区域
大多数的防火墙中都有安全区域(Security Zone,简称为区域)的概念,即将防火墙上物理 接口以及逻辑接口分配至不同的区域中,也就是将与防火墙连接的网段分别划分到不同的区域中。其中, 一个网络接口不能属于多个区域(图5-18)。在同一区域内可以自由进行基本通信,但跨区域的通信必须符合安全策略才能完成。防火墙也能够通过安全策略设置发送源或发送目的地等条件,根据是否符合这些条件来判断位于同一区域内的通信是否可行。
05.07.04 安全策略
防火墙的主要功能是访问控制,即判断是否允许特定发送源与特定目的地之间进行特定的通 信。访问控制通过设置"规则"来实现,每一条规则都指定了需要控制的发送源、目的地以及通 信内容等信息。在路由器中,这类访问控制的规则集合称为"访问控制列表",而在防火墙中则一般称为"安全策略"或"安全规则。
-
路由器的访问控制列表
访问控制列表以行为单位定义规则, 一般一个规则整体会使用多行来定义,每一行的规则称为"表项"。
一个表项一般由触发对象(trigger object)、行为(action) 、 可选项(option) 这3个要素组成。
例如,以 CiscoIOS 中为标准的访问控制列表表项只允许发送源IP 地址作为触发对象,而行为则是在也只许可(permit) 和拒绝(deny) 之间二选一。
-
防火墙的安全策略
防火墙的安全策略与路由器的访问控制列表最大的不同点在于是否拥有区域的概念。大多数防火墙将区域作为触发对象。另外,新一代防火墙中的触发对象还包括了应用程序名称和用户名称等信息。
访问控制列表和安全策略都是按照表中由上往下的顺序依次进行评估。例如在表5-18所示 的范例中,从信任区域向不信任区域的192.168.2.1地址通信时,防火墙首先评估第1条安全策 略,检测出发送源地址和该策略中定义的不同,因此未执行Allow 行为。接着评估第2条安全策 略,发送源地址和策略定义相匹配,因此执行 Deny行为,也就是拒绝该通信。防火墙的这种安全策略评估行为也可称为安全策略查找(policy lookup)。
- 内容安全策略
区域、IP 地址、端口号、应用程序等都可以作为防火墙判断是否允许进行通信的安全策略依据。另外,在UTM以及新一代防火墙中,还可以使用内容安全策略规则完成对特定通信的控制。具体而言,该策略使用了反病毒、IPS (入侵防御系统)、URL 过滤、DLP (数据泄露防护)等基于内容的安全机制,能够拦截非法通信和避免不必要的通信流量。另外,通过该策略防火墙还也可以对这些通信不实施拦截,而是将其记录到告警日志中后放行。
安全设备(OS) 的初始设置一般都设置成拦截(drop) 严重程度(Severity) 高的攻击,严重程度低的攻击只记录到告警日志中。当然,用户也能够通过修改设置拦截严重程度低的攻击。另外,反病毒以及IPS 可能会发生误判。误判分为假阳性(false-positive) 错误和假阴性
(false-negative) 错误两类。
假阳性错误是指明明没有攻击行为(或病毒入侵),却被网络安全装置判断为存在攻击行为 (或病毒入侵),并将该行为记录到日志中,或者之间将通信拦截。 一般这类错误容易被用户或管理员察觉。
假阴性错误是指明明存在攻击行为,却判断为没有攻击行为。结果不仅完成了通信,也没 有将通信该行为记录到日志中,导致管理员即使查看安全设备的日志信息也无法察觉这一严重后 果。只有检查作为客户端的个人计算机上安装的反病毒软件或个人防火墙,才能找到这些没有被 安全设备防范的通信的信息。总之,假阴性错误一般都是由于数字签名本身不存在,或误认为数字签名存在而导致的检测失败。
05.07.05 NAT
使用私有 IP 地址、位于内部网络的客户端向位于外部网络(互联网)的服务器进行通信时,可以通过路由器或防火墙将发送源的私有IP 地址转换为全局IP 地址,这一转换过程称为NAT。NAT 原本是由为路由器提供的功能,不过现在位于网络边界处的防火墙也常常使用该项功能为用户服务。路由器和以及防火墙等运行NAT功能的装置在后文都将统称为网关(gateway)。
-
静态 NAT
静态NAT(Static NAT)是指将NAT 之前的地址和 NAT 之后的地址进行1对1的分配,由 管理员将信息设置到网关中。管理员根据转换前的地址在网关中设置一个指定地址,该指定地址 即成为转换后的地址信息。静态NAT在进行目的地NAT时经常使用,能够对外部网络屏蔽内部服务器的地址,从而避免内部网络受到攻击。
-
动态 NAT
-
NAPT/IP 伪装/PAT
当只能使用1个全局地址同外部网络进行通信,或者可用的全局地址少于内部网络的客户端数量时,网关无法完成私有地址和全局地址的1对1分配。这种情况下,网关需要结合使用TCP 或 UDP 端口号,完成将多个私有地址映射成1个全局地址的转换(图5-23)。
05.07.06 VPN
VPN(Virtual Private Network)的意思是虚拟私有网络。
所谓的私有网络是指使用私有 IP地址、位于组织内部的网络,即 Intranet。
而 VPN 则是使用公共互联网或者电信运营商提供的公共网络,廉价构建 Intranet的技术。
位于Intranet 中的管理数据、人事信息、技术信息等对于外部而言属于机密的信息,必须在 组织内部封闭地进行数据传输。当组织只有1个办公场所时,可以通过LAN 完成 Intranet 的构 建。但如果有类似于东京总部和大阪分部这类跨地理位置的分支机构时,就不得不在这些地理位 置不同的办公场所之间完成 Intranet 的构建与连接。对于这类情况,在上世纪90年代之前,是 通过签约、租用电信运营商提供的"专线"服务来完成 Intranet构建的。顾名思义,这个"专线" 是属于租用方单独使用的线路,因此在专线内不会出现其他公司的数据,也无需担心第三方对 该专线中的数据进行窃听,通信质量也能得到保障。但是专线的月租费用很高,尤其是带宽为几Mbit/s 以上的广域网线路,租用费用更是不菲。
1995年左右,与互联网的连接开始通过使用廉价终端适配器的ISDN 进行。2000年左右, 随着 ADSL 这种互联网接入服务的普及,使用广域网接入互联网的成本越来越低,利用互联网来构建组织内部 Intranet 节点的做法也开始体现出很强的成本优势。
这一时期,路由器、防火墙、VPN 专用装置都可以支持IPsec-VPN 功能,在各个节点之间使用这些设备创建IPsec 隧道并进行连接,就可以完成VPN 的构建(这一时期将支持IPsec-VPN的设备统称为VPN 装置)。
- 根据拓扑对 VPN 分类
1.1. 站点间VPN
站点间VPN(site-to-site VPN)是在两个网络之间通过IPsec 隧道进行连接的拓扑结构。在每 个网络的网关中都设有路由器或防火墙等VPN 装置,二者之间也建有 IPsec 隧道。两个VPN 装置之间使用的是点对点的拓扑结构(图5-24)。
1.2. 中心辐射型 VPN
中心辐射型 VPN(hub and spoke VPN)是星形拓扑结构,即将1个中心站点的硬件同多个远 程站点的硬件连接而构成的结构(图5-25)。中心站点(centersite) 放置总部的网络与数据中心, 成为整个组织的核心站点。该拓扑结构同自行车的飞轮和辐条组成的结构类似,因此命名为hub and spoke VPN。该类型VPN一般用于服务供应商提供的VPN 业务,以服务供应商的基础设施为中心站点,通过VPN 连接整个组织的其他站点。
1.3. 远程接入型 VPN
用户使用个人计算机上的软件,在家中或在外出时经由互联网与公司的 VPN 装置建立 IPsec隧道,进而访问公司内部服务器的拓扑结构称为远程接入型VPN(图5-26)。远程接入型的IPsec-VPN 子类型需要实现中,个人计算机安装VPN 客户端软件,而SSL- VPN 子类型则是通过Web 浏览器使用SSL 连接至公司的VPN, 通过SSL(HTTPS) 连接与公司内部服务器进行交互。
- IPsec-VPN
IPsec-VPN 是使用IPsec 协议的VPN 连接,主要用于在站点间VPN 以及中心辐射型VPN 中 提供经由互联网连接到站点的安全连接。表5-20中总结了在IPsec-VPN 中所使用的协议及其重要功能。
2.1. IPsec-VPN 连接
在建立 IPsec 隧道的通信双方中,发起协商的一方称为发起者(initiator), 另一方称为应答者 (responder).
发起者是最先发出通过IPsec 隧道分组的网络装置。在阶段1使用aggressive 模式时,如果远程站点装置使用动态 IP 地址、通过 PPPoE 连接互 联网的话,由于中央站点装置无法预知远程站点装置的IP 地址,因此远程站点装置将成为发起者。这种情况下,需要由远程站点一侧的客户端开始整个通信过程。
2.2. 站点间 VPN 的通信处理
以网络 A 与网络B 为例,网络 A 与网络B 之间通过IPsec 隧道完成连接,位于网络A 内的PC-A 想要向位于网络B 内的PC-B 进行通信。
PC-A 发起通信请求后,通过路由器或交换机将分组发送到网关------VPN 装置A 处,这时该 分组尚未加密,处于明文(clear text)状态。分组通过VPN 装置A 进行加密,并添加 ESP首部与在隧道内通信用的IP 首部(称为外部IP 地址(outer IP))后,通过 IPsec 隧道发送出去。网络B 中的VPN 装置B 通过 IPsec 隧道接收到加密的分组后,会校验检查 ESP 首部与 AH 首部。虽然根据设置可能会有所不同,但一般来说如果 ESP 序列号不正确,VPN 装置B 就 会将该分组判定为重放攻击并输出错误信息,SPI 值如果不正确则会输出 "Bad SPI" 的错误通知信息。如果加密分组一切正常,则开始执行解密操作,去除外部IP 、ESP 、AH 等首部,并对原来IP首部(称为内部IP 首部)中的目的地址进行路由,从而到达PC-B 处。PC-B向 PC-A 回复的消息由 VPN 装置 B 进行加密处理, VPN 装置 A 进行解密处理。另外,中心辐射型 VPN 中远程站点客户端和中央站点服务器之间的 VPN 通信也可以参照上述流程模式。
反向代理方式:
内部客户端访问互联网时进行中继的代理服务器称为转发代理服务器。如果访问方向相 反,即在互联网上的客户端访问内部网络服务器时进行中继的代理服务器则称为反向代理服务器。使用代理服务器和代理服务器专用硬件都可以组成相同的结构。
SSL会话:
05.07.07 DoS 防御
- 什么是 DoS 攻击?
DoS 是 Denial of Service 的简称,也就是无法继续提供服务的意思。这里的服务是指服务器 提供的应用程序服务,如客户端发起HTTP 请求时,服务器如果能够做出HTTP 响应就表明能够 完成 HTTP 服务。DoS 攻击是针对服务器以及网络硬件发起的攻击,使服务器以及网络硬件无法 完成正常的应答响应,从而使应用服务程序无法继续提供服务。因此, DoS 攻击也称为"停止服务攻击"或"服务障碍攻击"。
在 DoS 中,通过僵尸网络的多个跳板(即僵尸),对服务器发起攻击的方式称为 DDoS(Distributed Denial of Service)攻击。由于服务器以及网络硬件的处理能力总归是有上限的,如果在某一时刻出现大量访问请求, 则会造成服务器或网络硬件因瞬间繁忙而无法处理。由于这类突发状况在正常业务状态下也有可能发生,因此在设计时往往会根据预计的访问数量来配备相应的处理能力。DDoS 攻击能够制造出远超于预先设计的访问量(通信量),从而使得被攻击的系统进入无法提供服务的状态。
- DoS 攻击的种类:
防火墙会针对各类不同的 DoS 攻击做出防范对策。表5-27列出了主要的 DoS攻击种类。
名称 | 说明 |
---|---|
Syn Flood | 向攻击对象发送大量的TCP SYN分组,从而造成服务器资源过度消耗, 一段时间内不能提供服务的状态。在防火墙内定义每秒允许通过防火墙的SYN分组数量,当防火墙遇到网络中SYN分组超过该域时,便会执行一种称为SYN Cookie的策略来应对。SYN Cookie策略中当服务器收到来自客户端的SYN分组时,并不建立TCP连接,而是将TCP首部内容的散列值作为序列号放入SYN-ACK消息中返回。随后收到来自客户端包含正确响应编号的ACK消息时,才将会话信息存储在内存中。因此,能够有效防止修改了首部内容的分组攻击对服务器内存的消耗 |
ICMP Flood | 也称为ping flood,该攻击向攻击对象发送大量的ICMP echo request分组来消耗服务器内存,使得服务器进入暂时无法提供服务的状态。防火墙通过定义1秒内能够允许的最大ICMP分组数量,对于超过该值的ICMP分组暂时不予处理 |
UDP Flood | 该攻击向攻击对象发送大量的UDP分组来消耗服务器内存,使得服务器进入暂时无法提供服务的 状态。防火墙通过定义1秒内能够允许的最大UDP分组数量,对于超过该值的UDP分组暂时不予处理 |
IP Flood | 该攻击向攻击对象发送大量的IP分组来消耗服务器内存,使得服务器进入暂时无法提供服务的状 态。防火墙通过定义1秒内能够允许的最大IP分组数量,对于超过该值的IP分组暂时不予处理 |
Tear Drop | 该攻击向攻击对象发送经过伪造的,含有重叠偏移量(offset)的非法IP分组碎片。这类攻击对于 较为脆弱的硬件而言,会发生无法重新生成分组的现象发生,导致当机的状态。防火墙对于收到这类分组时, 一律丢弃 |
Connection Flood | 反复生成大量长时间为open状态的连接,从而占据攻击对象的套接字(socket)资源。如果服务器端没有最大连接数目的限制,就会发生系统崩溃。该攻击也称为Unix进程控制表(Unix processtable )攻击 |
Reload | 该攻击在Web浏览器中连续按下F5键,使得Web页面反复执行刷新操作,因此也称为F5攻击。在Web通信较大时,会让服务器负载加剧 |
- DoS 防御功能
DoS 的防御功能也就是限制被判定为DoS 攻击的异常高速率通信流量的功能, 一般通过设置区域、网络接口、网络等单位来实现。另外, DoS 防御也可以拦截具有非法内容或低安全性的分组,这类分组交由防火墙或下游路 由器处理的话,会导致额外资源的浪费(CPU 以及内存使用率上升),因此需要使用专门的DoS防御功能来阻挡该类攻击。
3.1. 端口扫描防御
攻击者在发起攻击前,会对攻击对象的硬件情况进行调查,这时最为基础也最为惯用的伎 俩便是端口扫描(portscan), 也称为 port sweep。端口扫描大致分为 TCP端口扫描以及UDP 端 口扫描两大类,对TCP 端口以及UDP 端口顺序发送分组进行通信,从而探测目标机器是否开 启了对应的服务。例如某台设备的扫描结果为开启了23号端口,攻击者便会得知该设备开启了Telnet 服务,从而可以利用Telnet服务访问该设备并发起后续攻击。这类在发起攻击前进行的信息搜集行为也称为"侦查"(Reconnaissance)。防火墙能够探测出端口扫描行为的存在从而阻断该行为。表5-28总结了主要的端口扫描类型。
05.07.08 防范基于分组的攻击
防火墙同样能够防范使用非法分组这类基于分组的 DoS 攻击和非法入侵。表5-29汇总了防火墙能够防范的非法分组攻击的主要类型。