说到网络攻击,除了应用层面的病毒、蠕虫、木马之外,还有OSI模型中第二、三、四层的攻击方式。针对前者,应对手段较为复杂,不仅需要强大的防护体系,还得配备出色的杀毒工具,而且未必能彻底解决,这部分内容后续再和大家探讨。
本期咱们先来讨论三、四层的攻击方式以及防火墙怎样抵御这些攻击。
OSI模型里的第三、四层分别是网络层与传输层,这两层涉及的协议主要包括IP、TCP/UDP、ICMP、IGMP等,其中围绕IP地址的攻击与基于TCP/UDP协议的攻击最为常见。
针对IP地址的攻击主要有以下几种:IP伪造攻击、smurf攻击、ICMP重定向攻击、IP地址探测攻击等。
基于TCP/UDP协议的攻击又可细分为:TCP伪造、TCP/UDP拒绝服务攻击、端口探测攻击、TCP/UDP侦测攻击、非标准报文绕过等。
下面列举一些IP地址相关的攻击以及防火墙的防御策略:
IP欺骗攻击
IP欺骗攻击是指攻击者利用相同的IP来冒充合法主机与目标主机建立连接,在中间没有任何安全设备过滤的情况下,攻击者能够非常轻易地达成这一攻击,可以毫不费力地接入目标主机。

攻击者在连接过程中需要推测连接的序列号及其增长规律,只要在序列号的有效误差区间内,连接就不会受到干扰。
倘若中间部署了防火墙,这类攻击将失效,防火墙借助随机序列号打乱的方式能够有效阻止攻击者推测序列号。(没理解的话继续往下看,稍后会详细说明随机序列号打乱机制)
IP地址扫描攻击
扫描攻击可以说是攻击类型中危害最小且最容易实施的攻击手段,探测本身其实不具备任何破坏性,严格来说算不上攻击,但如果网络中出现了探测行为,则可能暗藏攻击者。

攻击者通过IP地址探测操作,获取目标网络的拓扑结构和存活主机,为执行下一步攻击做铺垫。
通常情况下,探测攻击的报文发送速度较快,可能一秒内发出上百个探测包。如果网络中间部署一个防火墙,可以有效削弱探测攻击。
防火墙可以设定一个源IP地址在限定时间内访问的目标端口数量或目标IP地址数量,例如规定一个源IP地址在2秒内可访问的不同目标IP地址数量为2个,或者目标端口号不超过5个。一般正常用户不太可能一秒内访问多个不同端口或多个不同目标IP。
TCP欺骗攻击
TCP欺骗大多发生在TCP连接建立的过程中,利用主机之间某种网络服务的信任关系建立虚假的TCP连接,可能冒充受害者从服务器端获取数据。具体流程与IP欺骗类似。

过程:
1、A信任B,C是攻击者,想冒充B和A之间建立连接;
2、C先瘫痪掉B,例如使用floogin、redirect、crashing等手段;
3、C用B的地址作为源地址给A发送TCP SYN报文。
a. A回复TCP SYN/ACK报文,从A发往B,携带序列码S;
b. C收不到该序列码S,但为了完成握手必须用S+1作为序列码进行回应,此时C可以通过以下两种途径获取序列码S:
i. C 监听SYN/ACK报文,根据捕获的值进行推算
ii. C 依据A操作系统的特征等,进行猜测
c. C使用获取到的序列码S回复A,握手完成,虚假连接建立。
如果在AB之间部署防火墙,则攻击者将再无机会欺骗成功。
攻击者连接成功的核心就在于序列号问题,如果攻击者推测正确则连接成功,否则失败。
在TCP连接中,序列号来源于主机系统的一个递增值,每个主机启动后会自动开始计数,举个例子,XP操作系统启动后计数从0开始,每隔一毫秒增加10,最大值到2³²,如果计数达到最大值则回到0重新计数。
当需要建立一个TCP连接时,系统会在当前时刻截取一个值,以此充当TCP连接的初始序列号。
不同操作系统的递增值各不相同,而且有规律可循,并且对方主机在回应时序列号允许存在一定偏差,偏差值在5000以内被视为合法。因此黑客利用了这一漏洞实施TCP欺骗攻击。
那防火墙怎样防御?
前面提到了随机序列号打乱,下面来看它的实现方式:

如图所示,经过防火墙的报文序列号都被修改,被增加或减小了10000,请注意,这个值是随机的,而且每次报文的随机值都不相同。通过修改序列号可以有效抵御TCP伪造攻击。
防火墙除了以上这些攻击外还有大量防御手段,总而言之,为了保障网络安全,防火墙是一个极其关键的安全防护产品。
原创文章,作者:余初云,如若转载,请注明出处:https://blog.jidcy.com/jsjc/2826.html
