安全特性

一. DHCP Snooping

 

[Huawei]dhcp snooping enable   开启DHCP-snooping功能

[Huawei-Vlanif1]vlan 1

[Huawei-vlan1]dhcp snooping enable--------在vlan1开启dhcp-snooping

[Huawei-vlan1]inter g0/0/3

[Huawei-GigabitEthernet0/0/3]dhcp snooping trusted----将G0/0/3设置为信任端口(默认为untrust端口)

1.DHCP Snooping功能:

DHCP有两个功能:

① 信任功能

② 监听功能

(1)信任功能:

管理员在部署网络时,一般将与合法DHCP服务器直接或间接连接的接口设置为信任接口,其他接口设置为非信任接口,从而保证DHCP客户端只能从合法的DHCP服务器获取IP地址,私自架设的伪DHCP服务器无法为DHCP客户端分配IP地址。

(2)监听功能:

听过监听DHCP Server的DHCP ACK报文,生成DHCP Snooping五元组表项:

MAC

IP

端口

VLAN

Age

用来防范针对DHCP的一些攻击

 

2. 防范攻击:

开启DHCP Snooping之后,可以防范以下攻击:

① 防止仿冒DHCP Server攻击

② 防止非DHCP用户攻击

③ 防止DHCP报文泛洪攻击

④ 防止仿冒DHCP报文攻击

⑤ 防止DHCP Server拒绝服务攻击

(1)防止仿冒DHCP Server攻击:

由于DHCP Server和DHCP Client之间没有认证机制,所以如果在网络上随意添加一台DHCP服务器,它就可以为客户端分配IP地址以及其他网络参数。如果该DHCP服务器为用户分配错误的IP地址和其他网络参数,将会对网络造成非常大的危害。

针对这种攻击,在配置DHCP Snooping功能之后,管理员手工将连接DHCP Server的接口设置为Trust端口,实现IP的正常下发。而后续接入的攻击者仿冒的DHCP Server默认接口类型为Untrust,从Untrust接收到的DHCP Server应答报文,交换机不会将其转发,而直接丢弃。防止仿冒DHCP Server攻击。

注:Untrust端口只拦截DHCP Server的应答报文(Offer、ACK、NAK),不会阻拦Client的请求报文(Discovery、Request)

Untrust接口只能拦截虚假DHCP Server的报文,但不能够定位DHCP Server仿冒者的位置,

使得网络中仍然存在着安全隐患。

通过配置DHCP Server探测功能,DHCP Snooping设备将会检查并在日志中记录所有DHCP

回应报文中携带的DHCP Server地址与接口等信息,此后网络管理员可根据日志来判定网络

中是否存在伪DHCP Server进而对网络进行维护。

[Huawei]dhcp server detect------使能DHCP Server探测

(2)防止非DHCP用户攻击:

非DHCP用户可以静态配置IP地址,如果此地址和当前网络中的DHCP Server或Client地址冲突,则会刷新当前交换机的表项,存在危险性,所以可以在可能存在非法用户接入的接口下执行命令关闭该接口动态学习MAC表项的能力,并使设备可以根据DHCP Snooping绑定表、ND Snooping绑定表将从该接口动态学习到的Dynamic类型MAC表项转换成Snooping类型MAC表项(也是一种静态MAC表项)或者根据静态绑定表直接生成Snooping类型MAC表项。之后,该接口收到的IP报文,只有在报文源MAC地址与静态MAC表项(包括Static类型、Snooping类型等)相匹配的情况下才能够通过该接口,否则报文会被丢弃,这样可以有效防止非法MAC地址用户的攻击。

[Huawei]port-group  group-member  g0/0/1 to g0/0/24

[Huawei-port-group]user-bind ip sticky-mac

[Huawei-port-group]mac-address learning  disable----关闭所有接口动态学习MAC表项功能

注:如果存在静态IP的合法用户,使用静态DHCP SNooping命令或静态MAC表项配置配置静态绑定表项:

[Huawei]user-bind static  ip-address 192.168.1.10 interface  g0/0/2 vlan 1

[Huawei]mac-address static 1111-1111-1111 g0/0/1 vlan  1

(3)防止DHCP报文泛洪攻击:

在DHCP网络环境中,若存在DHCP用户短时间内向设备发送大量的DHCP报文,将会对设备的性能造成巨大的冲击以致可能会导致设备无法正常工作。通过使能对DHCP报文上送DHCP报文处理单元的速率进行检测功能将能够有效防止DHCP报文泛洪攻击。

[Huawei-vlan1]dhcp snooping  check dhcp-rate enable---------使能对DHCP报文上送DHCP报文

处理单元的速率进行检测功能

[Huawei-vlan1]dhcp snooping  check dhcp-rate 100--------配置速率大小(PPS)

注:速率上限限制可以在全局、VLAN下、接口下分别配置

[Huawei]dhcp snooping alarm dhcp-rate enable—开启告警信息(只能配置在全局和接口下)

(4)防止仿冒DHCP报文攻击:

在DHCP网络环境中:

  • 若攻击者仿冒合法用户的DHCP Request报文发往DHCP Server,将会导致用户的IP地址租约到期之后不能够及时释放,以致合法用户无法使用该IP地址
  • 若攻击者仿冒合法用户的DHCP Release报文发往DHCP Server,将会导致用户异常下线。

在生成DHCP Snooping绑定表后,设备可根据绑定表项,对DHCP Request报文或DHCP Release报文进行匹配检查,只有匹配成功的报文设备才将其转发,否则将丢弃。这将能有效的防止非法用户通过发送伪造DHCP Request或DHCP Release报文冒充合法用户续租或释放IP地址。

注:默认只匹配单播Request报文(续租)和Release报文,不会匹配广播Request报文,因为广播的Request报文用于第一次IP地址分配的请求信息,此时交换机还没有生成此分配IP地址的DHCP Snooping表项,如果广播Request也进行匹配的话不会找到此DHCP Snooping表项,则认为此为DHCP攻击报文,所以在开启防止仿冒DHCP报文攻击功能后,值检测单播Request报文和Release报文

[Huawei]dhcp snooping check dhcp-request enable  vlan 1---对当前Vlan1的所有报文进行DHCP Snooping表项的匹配

注:可以在全局下、VLAN下、接口下分别配置

[Huawei-GigabitEthernet0/0/1]dhcp snooping alarm dhcp-request enable---开启告警信息(只能在接口下配置)

(5)防止DHCP Server拒绝服务攻击:

若在网络中存在DHCP用户恶意申请IP地址,将会导致IP地址池中的IP地址快速耗尽以致DHCP Server无法为其他合法用户分配IP地址。另一方面,DHCP Server通常仅根据CHADDR(client hardware address)字段来确认客户端的MAC地址。如果攻击者通过不断改变DHCP Request报文中的CHADDR字段向DHCP Server申请IP地址,将会导致DHCP Server上的地址池被耗尽,从而无法为其他正常用户提供IP地址。

为了防止某些端口的DHCP用户恶意申请IP地址,可配置接口允许学习的DHCP Snooping绑定表项的最大个数来控制上线用户的个数,当用户数达到该值时,则任何用户将无法通过此接口成功申请到IP地址。为了防止攻击者不断改变DHCP Request报文中的CHADDR字段进行攻击,可使能检测DHCP Request报文帧头MAC地址与DHCP数据区中CHADDR字段是否相同的功能,相同则转发报文,否则丢弃。

① 针对攻击者发送大量的虚假DHCP Discovery报文请求IP地址,在交换机上开启检查CHADDR字段和源MAC是否相同,不相同则为拒绝服务攻击报文,直接丢弃

   [Huawei]dhcp snooping  check dhcp-chaddr enable  vlan  1

    注:可配置在全局、接口、VLAN下

② 如果攻击者发送的虚假DHCP Discovery报文源MAC和CHADDR相同,则无法检测出是否为攻击报文,可以在接入层交换机配置最大申请的IP地址数量(可为1)

[Huawei]dhcp snooping  max-user-number  1

注:可配置在全局、接口、VLAN下

3. 联动功能:

(1)联动ARP:

DHCP Snooping设备在收到DHCP用户发出的DHCP Release报文时将会删除该用户对应的绑定表项,但若用户发生了异常下线而无法发出DHCP Release报文时,DHCP Snooping设备将不能够及时的删除该DHCP用户对应的绑定表。

使能ARP与DHCP Snooping的联动功能,如果DHCP Snooping表项中的IP地址对应的ARP表项达到老化时间,则DHCP Snooping设备会对该IP地址进行ARP探测,如果在规定的探测次数内探测不到用户,设备将删除用户对应的ARP表项。之后,设备将会再次按规定的探测次数对该IP地址进行ARP探测,如果最后仍不能够探测到用户,则设备将会删除该用户对应的绑定表项。

注:只有设备作为DHCP Relay时,才支持ARP与DHCP Snooping的联动功能

[Huawei]arp dhcp-snooping-detect enable

(2)联动IPSG:

IP源防攻击IPSG(IP Source Guard)是一种基于二层接口的源IP地址过滤技术,它能够防止恶意主机伪造合法主机的IP地址来仿冒合法主机,还能确保非授权主机不能通过自己指定IP地址的方式来访问网络或攻击网络。所以可以联动IPSG(IP Source Grade)生成MAC转发表项,对当前网络中的报文进行检测,不符合DHCP Snooping表项的数据包会被丢弃。

 [Huawei]vlan 1

[Huawei-vlan1]ip source check user-bind enable------------使能IP报文检查功能

注:如果存在静态IP的合法用户,使用静态DHCP SNooping命令配置静态绑定表项:

[Huawei]user-bind static  ip-address 192.168.1.10 interface  g0/0/2 vlan 1

二. ARP安全:

ARP(Address Resolution Protocol)安全是针对ARP攻击的一种安全特性,它通过一系列对ARP表项学习和ARP报文处理的限制、检查等措施来保证网络设备的安全性。ARP安全特性不仅能够防范针对ARP协议的攻击,还可以防范网段扫描攻击等基于ARP协议的攻击。

1. ARP攻击:

ARP协议有简单、易用的优点,但是也因为其没有任何安全机制,容易被攻击者利用。在网络中,常见的ARP攻击方式主要包括:

(1)ARP泛洪攻击:

也叫拒绝服务攻击DoS(Denial of Service),主要存在这样两种场景:

① 设备处理ARP报文和维护ARP表项都需要消耗系统资源,同时为了满足ARP表项查询效率的要求,一般设备都会对ARP表项规模有规格限制。攻击者就利用这一点,通过伪造大量源IP地址变化的ARP报文,使得设备ARP表资源被无效的ARP条目耗尽,合法用户的ARP报文不能继续生成ARP条目,导致正常通信中断。

② 攻击者利用工具扫描本网段主机或者进行跨网段扫描时,会向设备发送大量目标IP地址不能解析的IP报文,导致设备触发大量ARP Miss消息,生成并下发大量临时ARP表项,并广播大量ARP请求报文以对目标IP地址进行解析,从而造成CPU(Central Processing Unit)负荷过重。

(2)ARP欺骗攻击:

是指攻击者通过发送伪造的ARP报文,恶意修改设备或网络内其他用户主机的ARP表项,

造成用户或网络的报文通信异常。

2. ARP攻击危害:

ARP攻击行为存在以下危害:

① 会造成网络连接不稳定,引发用户通信中断,导致严重的经济损失。

② 利用ARP欺骗截取用户报文,进而非法获取游戏、网银、文件服务等系统的帐号和口令,造成被攻击者重大利益损失。

3. ARP安全手段:

(1)针对ARP泛洪攻击解决方案:

① ARP报文限速:

如果设备对收到的大量ARP报文全部进行处理,可能导致CPU负荷过重而无法处理其他业务。因此,在处理之前,设备需要对ARP报文进行限速,以保护CPU资源。

设备提供了如下几类针对ARP报文的限速功能:

a)     根据源MAC地址或源IP地址进行ARP报文限速

b)     针对全局、VLAN和接口的ARP报文限速

a)      根据源MAC地址或源IP地址进行ARP报文限速:

当设备检测到某一个用户在短时间内发送大量的ARP报文,可以针对该用户配置基于源MAC地址或源IP地址的ARP报文限速。在1秒时间内,如果该用户的ARP报文数目超过设定阈值(ARP报文限速值),则丢弃超出阈值部分的ARP报文。

  • 根据源MAC地址进行ARP报文限速:

如果指定MAC地址,则针对指定源MAC地址的ARP报文根据限速值进行限速;如果不指定MAC地址,则针对每一个源MAC地址的ARP报文根据限速值进行限速。

  • 根据源IP地址进行ARP报文限速:

如果指定IP地址,则针对指定源IP地址的ARP报文根据限速值进行限速;如果不指定IP地址,则针对每一个源IP地址的ARP报文根据限速值进行限速。

b)     针对全局、VLAN和接口的ARP报文限速:

设备支持在全局、VLAN和接口下配置ARP报文的限速值和限速时间,当同时在全局、VLAN和接口下配置ARP报文的限速值和限速时间时,设备会先按照接口进行限速,再按照VLAN进行限速,最后按照全局进行限速。

另外,在接口下还可以指定阻塞ARP报文的时间段。如果设备的某个接口在ARP报文限速时间内接收到的ARP报文数目超过了设定阈值(ARP报文限速值),则丢弃超出阈值部分的ARP报文,并在接下来的一段时间内(即阻塞ARP报文时间段)持续丢弃该接口下收到的所有ARP报文。

  • 针对全局的ARP报文限速:在设备出现ARP攻击时,限制全局处理的ARP报文数量。
  • 针对VLAN的ARP报文限速:在某个VLAN内的所有接口出现ARP攻击时,限制处理收到的该VLAN内的ARP报文数量,配置本功能可以保证不影响其他VLAN内所有接口的ARP学习。
  • 针对接口的ARP报文限速:在某个接口出现ARP攻击时,限制处理该接口收到的ARP报文数量,配置本功能可以保证不影响其他接口的ARP学习。

 

② ARP Miss消息限速:

如果网络中有用户向设备发送大量目标IP地址不能解析的IP报文(即路由表中存在该IP报文的目的IP对应的路由表项,但设备上没有该路由表项中下一跳对应的ARP表项),将导致设备触发大量的ARP Miss消息。这种触发ARP Miss消息的IP报文(即ARP Miss报文)会被上送到CPU进行处理,设备会根据ARP Miss消息生成和下发大量临时ARP表项并向目的网络发送大量ARP请求报文,这样就增加了设备CPU的负担,同时严重消耗目的网络的带宽资源。

为了避免这种IP报文攻击所带来的危害,设备提供了如下几类针对ARP Miss消息的限速功能:

a)       根据源IP地址进行ARP Miss消息限速

b)       针对全局、VLAN和接口的ARP Miss消息限速

c)        通过设定临时ARP表项的老化时间控制ARP Miss消息的触发频率

a)      根据源IP地址进行ARP Miss消息限速:

当设备检测到某一源IP地址的IP报文在1秒内触发的ARP Miss消息数量超过了ARP Miss消息限速值,就认为此源IP地址存在攻击。

此时如果设备对ARP Miss报文的处理方式是block方式,设备会丢弃超出限速值部分的ARP Miss消息,即丢弃触发这些ARP Miss消息的ARP Miss报文,并下发一条ACL来丢弃该源IP地址的后续所有ARP Miss报文;如果是none-block方式,设备只会通过软件限速的方式丢弃超出限速值部分的ARP Miss消息,即丢弃触发这些ARP Miss消息的ARP Miss报文。

如果指定了IP地址,则针对指定源IP址的ARP Miss消息根据限速值进行限速;如果不指定IP地址,则针对每一个IP地址的ARP Miss消息根据限速值进行限速。

b)     针对全局、VLAN和接口的ARP Miss消息限速

设备支持在全局、VLAN和接口下配置ARP Miss消息限速,有效顺序为接口优先,VLAN其次,最后为全局。

  • 针对全局的ARP Miss消息限速:在设备出现目标IP地址不能解析的IP报文攻击时,限制全局处理的ARP Miss消息数量。
  • 针对VLAN的ARP Miss消息限速:在某个VLAN内的所有接口出现目标IP地址不能解析的IP报文攻击时,限制处理该VLAN内报文触发的ARP Miss消息数量,配置本功能可以保证不影响其他VLAN内所有接口的IP报文转发。
  • 针对接口的ARP Miss消息限速:在某个接口出现目标IP地址不能解析的IP报文攻击时,限制处理该接口收到的报文触发的ARP Miss消息数量,配置本功能可以保证不影响其他接口的IP报文转发。
c)      通过设定临时ARP表项的老化时间控制ARP Miss消息的触发频率

当IP报文触发ARP Miss消息时,设备会根据ARP Miss消息生成临时ARP表项,并且向目的网段发送ARP请求报文。

  • 在临时ARP表项老化时间范围内:

         i.            设备收到ARP应答报文前,匹配临时ARP表项的IP报文将被丢弃并且不会触发ARP Miss消息。

        ii.            设备收到ARP应答报文后,则生成正确的ARP表项来替换临时ARP表项。

  • 当老化时间超时后,设备会清除临时ARP表项。此时如果设备转发IP报文匹配不到对应的ARP表项,则会重新触发ARP Miss消息并生成临时ARP表项,如此循环重复。
  • 当判断设备受到攻击时,可以增大临时ARP表项的老化时间,减小设备ARP Miss消息的触发频率,从而减小攻击对设备的影响。
③ ARP表项严格学习:

如果大量用户在同一时间段内向设备发送大量ARP报文,或者攻击者伪造正常用户的ARP报文发送给设备,则会造成下面的危害:

a)       设备因处理大量ARP报文而导致CPU负荷过重,同时设备学习大量的ARP报文可能导致设备ARP表项资源被无效的ARP条目耗尽,造成合法用户的ARP报文不能继续生成ARP条目,进而导致用户无法正常通信。

b)       伪造的ARP报文将错误地更新设备的ARP表项,导致用户无法正常通信。

为避免上述危害,可以在网关设备上部署ARP表项严格学习功能。ARP表项严格学习是指只有本设备主动发送的ARP请求报文的应答报文才能触发本设备学习ARP,其他设备主动向本设备发送的ARP报文不能触发本设备学习ARP,这样,可以拒绝大部分的ARP报文攻击。

 

通常情况下,当UserA向Gateway发送ARP请求报文后,Gateway会向UserA回应ARP应答报文,并且添加或更新UserA对应的ARP表项。当Gateway配置ARP表项严格学习功能以后:

a)       对于Gateway收到UserA发送来的ARP请求报文,Gateway不添加也不更新UserA对应的ARP表项。如果该请求报文请求的是Gateway的MAC地址,那么Gateway会向UserA回应ARP应答报文。

b)       如果Gateway向UserB发送ARP请求报文,待收到与该请求对应的ARP应答报文后,Gateway会添加或更新UserB对应的ARP表项。

④ ARP表项限制:

ARP表项限制功能应用在网关设备上,可以限制设备的某个接口学习动态ARP表项的数目。默认状态下,接口可以学习的动态ARP表项数目规格与全局的ARP表项规格保持一致。当部署完ARP表项限制功能后,如果指定接口下的动态ARP表项达到了允许学习的最大数目,将不再允许该接口继续学习动态ARP表项,以保证当一个接口所接入的某一用户主机发起ARP攻击时不会导致整个设备的ARP表资源都被耗尽。

⑤ 禁止接口学习ARP表项:

当某接口下学习了大量动态ARP表项时,出于安全考虑可以配置禁止该接口的动态ARP表项学习功能,以防止该接口下所接入的用户主机发起ARP攻击使整个设备的ARP表资源都被耗尽。

禁止接口学习ARP表项功能和ARP表项严格学习功能配合起来使用,可以使设备对接口下动态ARP的学习进行更加细致的控制。

(2)针对ARP欺骗攻击解决方案:

① ARP表项固化:

如图1所示,Attacker仿冒UserA向Gateway发送伪造的ARP报文,导致Gateway的ARP表中记录了错误的UserA地址映射关系,造成UserA接收不到正常的数据报文。

 

为了防御这种欺骗网关攻击,可以在网关设备上部署ARP表项固化功能。网关设备在第一次学习到ARP以后,不再允许用户更新此ARP表项或只能更新此ARP表项的部分信息,或者通过发送单播ARP请求报文的方式对更新ARP条目的报文进行合法性确认。

设备提供的三种ARP表项固化模式:

a)      fixed-all模式:

如果设备收到的ARP报文中的MAC地址、接口或VLAN信息和ARP表中的信息不匹配,则直接丢弃该ARP报文。此模式适用于用户MAC地址固定,并且用户接入位置相对固定的场景。

b)     fixed-mac模式:

如果设备收到的ARP报文中的MAC地址与ARP表中对应条目的MAC地址不匹配,则直接丢弃该ARP报文;如果匹配,但是收到报文的接口或VLAN信息与ARP表中对应条目不匹配,则可以更新对应ARP条目中的接口和VLAN信息。此模式适用于用户MAC地址固定,但用户接入位置频繁变动的场景。

c)      send-ack模式:

如果设备收到的ARP报文A涉及ARP表项MAC地址、接口或VLAN信息的修改,设备不会立即更新ARP表项,而是先向待更新的ARP表项现有MAC地址对应的用户发送一个单播的ARP请求报文进行确认。

  • 如果在随后的3秒内设备收到ARP应答报文B,且当前ARP条目中的IP地址、MAC地址、接口和VLAN信息与ARP应答报文B的一致,则认为ARP报文A为攻击报文,不更新该ARP条目。
  • 如果在随后的3秒内设备未收到ARP应答报文,或者收到ARP应答报文B与当前ARP条目中的IP地址、MAC地址、接口和VLAN信息不一致,设备会再向刚才收到的ARP报文A对应的源MAC发送一个单播ARP请求报文。

         i.            如果在随后的3秒内收到ARP应答报文C,且ARP报文A与ARP应答报文C的源IP地址、源MAC地址、接口和VLAN信息一致,则认为现有ARP条目已经无效且ARP报文A是可以更新该ARP条目的合法报文,并根据ARP报文A来更新该ARP条目。

        ii.            如果在随后的3秒内未收到ARP应答报文,或者ARP报文A与收到的ARP应答报文C的源IP地址、源MAC地址、接口和VLAN信息不一致,则认为ARP报文A为攻击报文,设备会忽略收到的ARP报文A,ARP条目不会更新。

此模式适用于用户的MAC地址和接入位置均频繁变动的场景。

② 动态ARP检测:

网络中针对ARP的攻击层出不穷,中间人攻击是常见的ARP欺骗攻击方式之一。

如图1所示,是中间人攻击的一个场景。攻击者主动向UserA发送伪造UserB的ARP报文,导致UserA的ARP表中记录了错误的UserB地址映射关系,攻击者可以轻易获取到UserA原本要发往UserB的数据;同样,攻击者也可以轻易获取到UserB原本要发往UserA的数据。这样,UserA与UserB间的信息安全无法得到保障。

 

为了防御中间人攻击,可以在Switch上部署动态ARP检测DAI(Dynamic ARP Inspection)功能。

动态ARP检测是利用绑定表来防御中间人攻击的。当设备收到ARP报文时,将此ARP报文对应的源IP、源MAC、VLAN以及接口信息和绑定表的信息进行比较,如果信息匹配,说明发送该ARP报文的用户是合法用户,允许此用户的ARP报文通过,否则就认为是攻击,丢弃该ARP报文。

注:动态ARP检测功能仅适用于DHCP Snooping场景。设备使能DHCP Snooping功能后,当DHCP用户上线时,设备会自动生成DHCP Snooping绑定表;对于静态配置IP地址的用户,设备不会生成DHCP Snooping绑定表,所以需要手动添加静态绑定表。

当Switch上部署动态ARP检测功能后,如果攻击者连接到Switch并试图发送伪造的ARP报文,Switch会根据绑定表检测到这种攻击行为,对该ARP报文进行丢弃处理。如果Switch上同时使能了动态ARP检测丢弃报文告警功能,则当ARP报文因不匹配绑定表而被丢弃的数量超过了告警阈值时,Switch会发出告警通知管理员。

③ ARP防网关冲突:

如图1所示,用户主机直接接入网关,Attacker将伪造网关的ARP报文发送给UserA和UserB,使UserA和UserB误以为攻击者即为网关。UserA和UserB的ARP表中会记录错误的网关地址映射关系,这样就会把发往网关的流量均发送给了攻击者,攻击者可轻易窃听到UserA和UserB发送的数据内容。

 

为了防范攻击者仿冒网关,可以在网关设备上使能ARP防网关冲突功能。当设备收到的ARP报文存在下列情况之一:

a)       ARP报文的源IP地址与报文入接口对应的VLANIF接口的IP地址相同

b)       ARP报文的源IP地址是入接口的虚拟IP地址,但ARP报文源MAC地址不是VRRP虚MAC

注:一个VRRP备份组,被当作一个共享局域网内主机的缺省网关,即虚拟交换机。一个虚拟交换机拥有一个VRRP虚MAC,VRRP虚MAC根据虚拟交换机ID生成,格式为:00-00-5E-00-01-{VRID}(VRRP)。当虚拟交换机回应ARP请求时,使用的是VRRP虚MAC地址,而不是接口的真实MAC地址。

设备就认为该ARP报文是与网关地址冲突的ARP报文,设备将生成ARP防攻击表项,并在

后续一段时间内丢弃该接口收到的同VLAN以及同源MAC地址的ARP报文,这样可以防止

与网关地址冲突的ARP报文在VLAN内广播。此时,还可以在设备上使能发送免费ARP报文

功能,通过广播发送正确的免费ARP报文到所有用户,迅速将已经被攻击的用户记录的错

误网关地址映射关系修改正确。

④ 发送免费ARP报文:

如图1所示,Attacker仿冒网关向UserA发送了伪造的ARP报文,导致UserA的ARP表中记录了错误的网关地址映射关系,从而正常的数据不能被网关接收。

 

为了避免上述危害,可以在网关设备上部署发送免费ARP报文功能,定期更新用户的ARP表项,使得用户ARP表项中记录的是正确的网关MAC地址。

⑤ ARP报文内MAC地址一致性检查:

ARP报文内MAC地址一致性检查功能主要应用于网关设备上,可以防御以太网数据帧首部中的源/目的MAC地址和ARP报文中的源/目的MAC地址不同的ARP攻击。

部署本功能后,网关设备在进行ARP学习前将对ARP报文进行检查。如果以太网数据帧首部中的源/目的MAC地址和ARP报文中的源/目的MAC地址不同,则认为是攻击报文,将其丢弃;否则,继续进行ARP学习。

⑥ ARP报文合法性检查:

ARP报文合法性检查功能可以部署在接入设备或网关设备上,用来对MAC地址和IP地址不合法的报文进行过滤。设备支持以下三种可以任意组合的检查。

a)      源MAC地址检查:

设备会检查ARP报文中的源MAC地址和以太网数据帧首部中的源MAC地址是否一致,一致则认为合法,否则丢弃报文;

b)     目的MAC地址检查:

设备会检查ARP应答报文中的目的MAC地址是否和以太网数据帧首部中的目的MAC地址一致,一致则认为合法,否则丢弃报文;

c)      IP地址检查:

设备会检查ARP报文中的源IP和目的IP地址,全0、全1、或者组播IP地址都是不合法的,需要丢弃。对于ARP应答报文,源IP和目的IP地址都进行检查;对于ARP请求报文,只检查源IP地址。

⑦ DHCP触发ARP学习:

在DHCP用户场景下,当DHCP用户数目很多时,设备进行大规模ARP表项的学习和老化会对设备性能和网络环境形成冲击。

为了避免此问题, 可以在网关设备上部署DHCP触发ARP学习功能。当DHCP服务器给用户分配了IP地址,网关设备会根据VLANIF接口上收到的DHCP ACK报文直接生成该用户的ARP表项。该功能生效的前提是使能DHCP Snooping功能。

网关设备上还可同时部署动态ARP检测功能,防止DHCP用户的ARP表项被伪造的ARP报文恶意修改。

三. AAA:

1. 接入问题:

(1)传统接入问题:

① 传统接入问题:

在用户接入网络的时候,运营商就不得不面临以下的问题。

a)       如何确定用户是否有权限进入网络。运营商需要防止非法用户访问网络,以保

护自身和合法用户的权益。

b)       如何确定用户使用服务的范围。

c)        如何对上线的用户进行准确的计费。

② 传统接入解决方案:

可以使用AAA 解决以上问题。AAA 提供对用户进行认证、授权和计费三种安全功

能,能够比较全面的处理上述问题。如图1-1 所示。

 

(2)多用户接入问题:

① 多用户接入问题:

大量用户接入网络时,如果由路由器负责对其进行处理的话,首先,路由器需要维

护一个比较大的数据库。其次,路由器需要对接入的用户进行控制,防止非法访

问。显然,对大量不同类型的用户进行实时控制,会让路由器消耗大量的资源。

如果多用户接入的业务完全由路由器来承担的话,路由器上的负担就会过重,甚至

影响其它业务的正常运行。

② 多用户接入解决方案:

对用户采用域管理,所有用户都属于某个域。一个域中的所有用户都具有类似的属

性。采用RADIUS/TACACS 服务器对域下的用户进行认证、授权和计费,而不使

用路由器对用户的上下线进行管理。如图1-2 所示。

 

③ AAA针对多用户接入的优点:

a)       路由器上的压力减轻,不需要建立一个较大的数据库,更加专注于报文的转发。

b)       支持的用户数量较多,同时用户的请求能够得到实时的响应。

c)        用户的安全性得到了较大的保障。

2. AAA框架:

AAA 是Authentication(认证)、Authorization(授权)和Accounting(计费)的简称。

它提供对用户进行认证、授权和计费三种安全功能

AAA 通常采用“客户端—服务器”结构。这种结构既具有良好的可扩展性,又便于用

户信息的集中管理。如图1-3 所示。

 

(1)认证(Authentication):

验证用户是否可以获得访问权,确定哪些用户可以访问网络。

AAA 支持以下认证方式:

① 不认证:

对用户非常信任,不对其进行合法检查,一般情况下不采用这种方式。

② 本地认证:

将用户信息(包括本地用户的用户名、密码和各种属性)配置在网络接入服务器上。本地认证的优点是速度快,可以为运营降低成本;缺点是存储信息量受设备硬件条件限制。

③ 远端认证:

将用户信息(包括本地用户的用户名、密码和各种属性)配置在认证服务器上。支持通过RADIUS(Remote Authentication Dial In User Service)协议或HWTACACS (HuaWei Terminal Access Controller Access Control System)协议进行远端认证,由网络接入服务器NAS(Network Access Server)做为客户端,与RADIUS 服务器或TACACS 服务器通信。对于RADIUS 协议,可以采用标准RADIUS 协议或华为公司的扩展RADIUS 协议,与iTELLIN/CAMS(Comprehensive Access Management Server)等设备配合完成认证。

(2)授权(Authorization):

① 不授权:

不对用户进行授权处理。

② 直接授权:

对用户非常信任,直接授权通过。

③ 本地授权:

根据网络接入服务器上为本地用户帐号配置的相关属性进行授权。

④ HWTACACS 授权:

由TACACS 服务器对用户进行授权。

⑤ if-authenticated 授权:

如果用户通过了认证,而且使用的认证模式不是不认证,则用户授权通过。

⑥ RADIUS 认证成功后授权:

RADIUS 协议的认证和授权是绑定在一起的,不能单独使用RADIUS 进行授权。

(3)计费(Accounting):

记录用户使用网络资源的情况。

① 不计费:

不对用户计费。

② 本地计费:

本地计费主要实现对用户话单的备份和管理,是对远端计费的一种保护

性措施,也可以代替远端服务器在本地实现对用户的计费功能。

③ 远端计费:

支持通过RADIUS 服务器或TACACS 服务器进行远端计费。

④ 本地和远端同时计费:

支持同时向本地和RADIUS 服务器发送计费报文,或同时向

本地和TACACS 服务器发送计费报文。采用本地和远端同时计费可以提高计费的

可靠性。

3. RADIUS/HWRACACS:

(1)RADIUS:

① 描述:

AAA 可以用多种协议来实现,最常用的是RADIUS 协议。RADIUS 最初用来管理使用

串口和调制解调器的大量分散用户,后来广泛应用于网络接入服务器NAS(Network

Access Server)系统。

当用户想要通过某个网络(如电话网络)与NAS 建立连接从而取得访问其他网络的权

利或取得使用某些网络资源的权利时,NAS 起到了认证用户或对应连接的作用。

NAS 负责把用户的认证、授权和计费信息传递给RADIUS 服务器。RADIUS 协议规定

了NAS 与RADIUS 服务器之间如何传递用户信息和计费信息。RADIUS 服务器负责接

收用户的连接请求,完成认证,并把用户所需的配置信息返回给NAS。

NAS 和RADIUS 之间的验证信息的传递是通过密钥的参与来完成的,以避免用户的密

码在不安全的网络上传输时被窃取。

 

a)       用户登录路由器或接入服务器等网络设备时,会将用户名和密码发送给该网络设备

b)       该网络设备中的RADIUS 客户端(路由器或接入服务器)接收用户名和密码,并向RADIUS 服务器发送认证请求

c)        RADIUS 服务器接收到合法的请求后,完成认证,并把所需的用户授权信息返回给客户端。

注:客户端和RADIUS 服务器之间的用户密码信息经过加密以后才在网络上传递,以避免用

户密码在不安全的网络上被窃取。

② 特性:

a)       RADIUS 使用UDP(User Datagram Protocol)作为传输协议,具有良好的实时性;同时

也支持重传机制和备用服务器机制,从而具有较好的可靠性。

RADIUS 的实现比较简单,适用于大用户量时服务器端的多线程结构。

网络接入服务器作为RADIUS 协议的客户端,实现以下功能:

  • 标准RADIUS 协议及扩充属性,包括RFC2865、RFC2866。
  • 华为扩展的RADIUS+1.1 协议。
  • 对RADIUS 服务器状态的主动探测功能:收到AAA 的认证或计费消息后,如果当前服务器的状态为DOWN,启动服务器探测处理,将消息转换为报文后向当前服务器发送,该报文作为服务器的探测报文,如果收到RADIUS 服务器的回应,则认

为该服务器重新可用。

  • 计费结束报文的本地缓存重传功能:计费结束报文在重传发送失败次数超过配置次

数后,将计费结束报文保存到计费结束报文缓存队列;系统定时器周期扫描该队列,如果存在计费结束缓存报文,则取出报文内容,向指定的服务器发送并启动定时器等待,如果发送失败或在超时时间内没有收到服务器回应,则重新入缓存队列。

  • RADIUS 服务器的自动切换功能:如果当前发送的服务器的状态为不可发送,或者发送次数超过当前服务器的最大重传次数,则需要在配置的服务器组中选择另外的

服务器发送报文。

(2)HWTACACS:

HWTACACS 是在TACACS(RFC1492)基础上进行了功能增强的一种安全协议。该协

议与RADIUS 协议类似,主要是通过“客户端—服务器”模式与TACACS 服务器通信

来实现多种用户的AAA 功能,可用于PPP、VPDN(Virtual Private Dial Network)接入

用户和login 用户的认证、授权和计费。

① 描述:

HWTACACS 协议的消息流程和RADIUS 协议的消息流程类似。不同在于HWTACACS

协议当用户认证通过之后,服务器返回的是认证回应,而不返回用户的权限,只有当授

权流程完成后才会返回用户的权限。

HWTACACS 支持VPN 实例转发,当运营商的TACACS 服务器部署在私网,而路由器

位于公网时,HWTACACS 支持通过VPN 实例与TACACS 服务器进行交互,实现对用

户的认证、授权和计费。

② 特性:
a)      HWTACACS 协议支持按命令行授权:

用户通过Telnet 或者SSH 登录到路由器上后,如果该用户需要进行命令行授权,可以

将该级别用户的命令行授权方法设置为HWTACACS,该用户输入的每一条命令都要通

过HWTACACS 服务器授权。如果授权通过,命令就可以被执行。否则,HWTACACS

服务器输出信息,通知用户该命令的授权失败,不能执行。

命令行授权可以使用本地授权的方法作为备选方法,这样,如果因为服务器的问题导致

命令行授权失败时,可以将命令行授权转入本地授权处理。

如果在用户配置的超时时间内,路由器没有接收到HWTACACS 服务器的授权结果,则

授权超时,该命令不能被执行。

用户还可以配置服务器无响应或本地未配置用户时命令授权失败的策略:

  • 选择让用户继续在线。
  • 选择授权失败次数超过阈值后下线。

注:按命令授权失败的策略仅仅使用于因HWTACACS 服务器不可用或本地未配置用户而导致的按命

令行授权失败情况。下面的两种情况不能触发命令行授权失败时的策略:

  1. 服务器正常时,所执行的命令行未能通过在HWTACACS 服务器端的授权;
  2. 服务器不可用后,按命令行授权转入本地授权后,因执行的命令级别高于本地配置的级别而授权失败。

 

b)     HWTACACS 协议支持对用户级别提升进行认证:

用户通过Telnet 或者SSH 登录到路由器后,可以通过在用户模式下使用super 命令来提

升或降低自己的级别。这时,路由器对用户的密码进行验证。

HWTACACS 可以对用户级别的提升进行认证,其执行流程如图1-7 所示。路由器将用

户的密码发送到HWTACACS 服务器上进行认证,如果认证通过,用户的权限就可以得

到提升,否则,用户的权限不能提升。特权等级更改的结果只影响本次登录。

 

如果在用户配置的超时时间内,路由器没有接收到HWTACACS 服务器用户级别提升的认证结果,则认证超时,用户不能提升权限。

注:当路由器对用户级别提升进行验证的时候,各级别的密码可以不同;在用HWTACACS 对用户级别提升进行验证时,各级别密码是相同的。

c)      HWTACACS 协议支持用户修改密码:

HWTACACS 用户登录设备时,需要输入用户名和密码向TACACS 服务器进行认证,TACACS 服

务器管理所有HWTACACS 用户密码。HWTACACS 是客户端/服务器模式,发起密码修改的可

以有两方:客户端和服务器端。

用户可以通过命令行在客户端主动发送修改请求,进行密码修改;也可以在服务器上配置密

码老化策略,在用户登录设备时由服务器提醒用户密码修改密码。

注:用户进行Telnet 登录时,如果输入的密码为空,服务器也会提醒用户修改密码。

(3)HWTACACS 协议和RADIUS 协议的比较:

与RADIUS 相比,HWTACACS 具有更加可靠的传输和加密特性,更加适合于安全控

制。HWTACACS 协议与RADIUS 协议的主要区别如表1-1 所示。

 

4. 基于域的用户管理:

(1)概述:

在目前AAA 的实现中,所有用户都属于某个域。用户属于哪个域是由用户名中带的“@”后的字符串来决定的,比如“user@hua”,就属于“hua”域;如果用户名中没有带“@”,就属于系统缺省的default 域。除了系统缺省的default 域外,AAA 允许用户最多创建254 个域。

(2)路由器对接入用户的管理:

路由器通过域来进行用户管理,域下可以进行缺省授权配置、RADIUS/HWTACACS 模板配置、认证和计费方案的配置等。

所有对于接入用户的认证、授权、计费都是在域视图下应用认证方案、授权方案、计费方案来实现的,在AAA 视图下分别预先配置相应的认证模式、授权模式、计费模式。

AAA 有缺省的认证方案、授权方案、计费方案,分别采用本地认证、本地授权、不计费。如果新创建一个域,没有在域下应用认证方案、授权方案、计费方案,那么AAA对该域将采用缺省的认证方案、授权方案和计费方案。此外,如果要对用户采用RADIUS/HWTACACS 方案,必须预先在系统视图下配置RADIUS/HWTACACS 服务器模板,然后在用户所属域的视图下应用该服务器模板。

当域和域下的用户同时配置了某一属性时,基于用户的配置优先级高于域的配置优先级。域下配置的授权信息较AAA 服务器的授权信息优先级低,即,优先使用AAA 服务器下发的授权属性,在AAA 服务器无该项授权或不支持该项授权时,域的授权属性生效。这样处理的优点是:可以凭借域管理灵活增加业务,而不必受限于AAA 服务器提供的属性。

(3)AAA 对PPP 用户的地址分配原则:

采用PPP 方式接入的用户,可以利用PPP 地址协商功能从网络接入服务器获得本端接

口的IP 地址。在网络接入服务器上,AAA 对PPP 用户的地址分配原则如下:

① 对于不认证的用户:

a)       如果接口下配置为对端分配IP 地址,直接把该地址分配给对端。

b)       如果接口下配置从地址池中为对端分配地址,则从指定的全局地址池中为对端分配地址。

② 对于认证通过的default 域用户:

注:包括两种:不加@的,如“aaa”;用户名后加@default,如“aaa@default”

a)       如果服务器下发了IP 地址,则直接把该地址分配给对端。

b)       如果服务器下发了地址池号,则用该地址池号通过域地址池或者全局地址池给对端分配地址。

c)        在服务器既没有下发IP 地址,也没有下发地址池号的情况下,如果接口下配置了给对端的IP 地址,直接把该地址分配给对端。如果接口下配置了从地址池中为对端分配地址,则从指定的全局地址池中为对端分配地址。

③ 对于认证通过的普通域用户:

a)       如果服务器下发了IP 地址,直接把该地址分配给对端。

b)       如果服务器下发了地址池号,则用该地址池号通过域地址池给对端分配地址。

c)        在服务器既没有下发IP 地址,也没有下发地址池号的情况下,从域下的第一个地址池开始遍历分配。

注:以上从地址池中分配地址的情况,全局地址池和域地址池都只遍历一遍。当指定的全局

地址池或域地址池分配完后,直接返回无效地址0,不去全局地址池遍历查找可用地址。

在配置地址池的时候,A 类地址中的XXX.255.255.255 和XXX.0.0.0,B 类地址中的XXX.XXX.255.255 和XXX.XXX.0.0,C 类地址中的XXX.XXX.XXX.255 和XXX.XXX.XXX.0 都不能够作为合法的地址池起始、结束地址。如果地址池里面含有这些地址,这些地址也不会被分配。

注:IP 地址协商的配置需要在客户端与服务器端分别进行。

(4)AAA 及用户管理的应用:

① 使用RADIUS 对接入用户进行管理:

 

使用RADIUS 对接入用户进行管理,如图1-9 所示。用户A、B、C 都属于某个域下的

用户,通过路由器接入Internet。路由器根据用户所属的域,选择具体的RADIUS 服务

器对其进行认证,如果认证通过,用户就可以访问Internet。

②使用HWTACACS 对接入用户进行管理:

 

使用HWTACACS 对接入用户进行管理,如图1-10 所示。用户A、C 属于某个域下的

用户,通过路由器接入Internet。路由器根据用户所属的域,选择具体的TACACS 服务

器对其进行认证,如果认证通过,用户A、C 就可以访问Internet。

用户B 是管理型用户,需要登录路由器对其进行配置。使用HWTACACS 对其进行管

理,以获得较高的安全性。可以使用HWTACACS 对用户B 在路由器上配置的每一条命

令进行授权,同时,如果用户B 需要提升自己的用户权限,HWTACACS 也可以对其进

行认证。

四. 攻击防范:

1. 网络攻击的种类:

网络攻击一般分为拒绝服务型攻击、扫描窥探攻击和畸形报文攻击三大类:

(1)拒绝服务型攻击:

拒绝服务型DoS(Denial of Service)攻击是使用大量的数据包攻击系统,使系统无法接受正常用户的请求,或者主机挂起不能正常的工作。主要DoS攻击有SYN Flood、Fraggle等。

拒绝服务攻击和其他类型的攻击不同之处在于:攻击者并不是去寻找进入内部网络的入口,而是阻止合法用户访问资源或防火墙。

解决方案:

执行命令system-view,进入系统视图。

执行命令firewall defend icmp-flood { ip ip-address [ vpn-instance vpn-instance-name ] | zone zone-name } [ max-rate rate-value ] ,配置ICMP Flood攻击防范参数。

执行命令firewall defend syn-flood { ip ip-address [ vpn-instance vpn-instance-name ] | zone zone-name } [ max-rate rate-value ] [ tcp-proxy { auto | off | on } ],配置SYN Flood攻击防范参数。

执行命令firewall defend udp-flood { ip ip-address [ vpn-instance vpn-instance-name ] | zone zone-name } [ max-rate rate-value ],配置UDP Flood攻击防范参数。

缺省情况下,Flood类攻击防范的最大连接速率均为1000pps,SYN Flood攻击防范中的TCP代理功能自动启用。

① SYN Flood攻击:

SYN Flood攻击利用TCP三次握手的一个漏洞向目标计算机发动攻击。攻击者向目标计算机发送TCP连接请求(SYN报文),然后对于目标返回的SYN-ACK报文不作回应。目标计算机如果没有收到攻击者的ACK回应,就会一直等待,形成半连接,直到连接超时才释放。如图4所示。

 

攻击者利用这种方式发送大量TCP SYN报文,让目标计算机上生成大量的半连接,迫使其大量资源浪费在这些半连接上。目标计算机一旦资源耗尽,就会出现速度极慢、正常的用户不能接入等情况。

攻击者还可以伪造SYN报文,其源地址是伪造的或者不存在的地址,向目标计算机发起攻击。

② 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),这样会自动不停地产生回应报文,其危害性更大。

③ ICMP Flood攻击:

通常情况下,网络管理员会用PING程序对网络进行监控和故障排除,大概过程如下:

① 源计算机向接收计算机发出ICMP响应请求报文(ICMP ECHO)。

② 接收计算机接收到ICMP响应请求报文后,会向源计算机回应一个ICMP 应答报文(ECHO Reply)。

这个过程是需要CPU处理的,在有些情况下还可能消耗掉大量的资源。如果攻击者向目标计算机发送大量的ICMP ECHO报文(产生ICMP洪水),则目标计算机会忙于处理这些ECHO报文,而无法继续处理其它的数据报文。

 

UDP Flood攻击

UDP Flood攻击的原理与ICMP Flood攻击类似,攻击者通过发送大量的UDP报文给目标计算机,导致目标计算机忙于处理这些UDP报文而无法继续处理正常的报文。

(2)扫描窥探攻击:

扫描窥探攻击是利用ping扫描(包括ICMP和TCP)来标识网络上存活着的系统,从而准确地指出潜在的目标。利用TCP和UDP等进行端口扫描,就能检测出操作系统的种类和潜在的服务种类。

攻击者通过扫描窥探就能大致了解目标系统提供的服务种类,为进一步侵入系统做好准备。

解决方案:

执行命令system-view,进入系统视图。

执行命令firewall defend ip-sweep { blacklist-expire-time interval | max-rate rate-value } ,配置地址扫描攻击防范参数。

执行命令firewall defend port-scan { blacklist-expire-time interval | max-rate rate-value },配置端口扫描攻击防范参数。

① 地址扫描与端口扫描攻击:

攻击者运用扫描工具探测目标地址和端口,目标地址会对这些探测作出响应,攻击者根据这些响应用来确定哪些目标系统是存活着并且连接在网络上、目标主机开放或者关闭了哪些端口。

② Tracert攻击:

Tracert是利用TTL(Time To Live)为0时返回的ICMP超时报文,和达到目的地时返回的ICMP端口不可达报文来发现报文到达目的地所经过的路径。

攻击者可以利用Tracert窥探网络的结构。对网络造成潜在的危险。

(3)畸形报文攻击:

畸形报文攻击是通过向目标系统发送有缺陷的IP报文,使得目标系统在处理这样的IP包时会出现崩溃,给目标系统带来损失。主要的畸形报文攻击有Ping of Death、Teardrop等。

① Teardrop攻击:

在网络传输的过程中,如果IP报文的长度超过链路层的MTU(最大传输单元),就会进行分片。在IP报头中有一个偏移字段(OFFSET)和一个分片标志(MF),如果MF标志设置为1,则表明这个IP报文是一个大IP包的分片,其中偏移字段指出了这个片断在整个IP包中的位置。接收端可以根据报文头中的这些信息还原该IP包。:

比如,一个较大的报文在MTU较小的链路上传输的时候,被分成了两个IP报文,这两个IP报文将在目的端进行组装,还原为原始的IP报文。

 

如果一个攻击者打破这种正常情况,把偏移字段设置成不正确的值,即可能出现重合或断开的情况。某些TCP/IP协议栈在收到类似这种含有重叠偏移的伪造分段时会崩溃,这就是所谓的Teardrop攻击。

 

② Ping of Death攻击:

所谓Ping of Death,就是利用一些尺寸超大的ICMP报文对系统进行的一种攻击。

IP报文的长度字段为16位,这表明一个IP报文的最大长度为65535。对于ICMP回应请求报文,如果数据长度大于65507,就会使ICMP数据+IP头长度(20)+ICMP头长度(8)> 65535。对于有些防火墙或系统,在接收到一个这样的报文后,由于处理不当,会造成系统崩溃、死机或重启。

 

③ ICMP-Unreachable攻击:

某些系统在收到网络(报文类型字段为3,代码字段为0)或主机(报文类型字段为3,代码字段为1)不可达的ICMP报文后,对于后续发往此目的地的报文直接认为不可达。如图7所示。

 

攻击者利用这种机制,向目标主机发送虚假的ICMP-Unreachable报文,干扰了目标主机的路由信息,影响了报文发送。

④ ICMP-Redirect攻击:

ICMP-Redirect攻击和ICMP-Unreachable攻击类似。:

网络设备可以向同一个子网的主机发送ICMP重定向报文,请求主机修改路由。

攻击者利用这个原理,跨越网段向另外一个网络的目标主机发送虚假的重定向报文,以改变目标主机的路由表。这种攻击干扰了目标主机的路由信息,影响了报文发送。

 

⑤ Large-ICMP攻击:

同ping of death类似,Large-ICMP也是利用一些大尺寸的ICMP报文对系统进行的一种攻击,与ping of death不同的是,Large-ICMP报文的长度不会超过IP报文的最大长度65535,但是对一些操作系统也会造成破环。

需要在防火墙上配置允许通过的ICMP报文的最大长度。

解决方案:

执行命令system-view,进入系统视图。

执行命令firewall defend large-icmp max-length length,配置超大ICMP报文攻击防范参数。

注:缺省情况下,ICMP报文的最大长度为4000字节。

⑥ Land攻击:

Land攻击,就是把TCP的SYN包的源地址和目的地址都设置为目标计算机的IP地址。这将导致目标计算机向它自己发送SYN-ACK报文,目标计算机又向自己发回ACK报文并创建一个空连接,每一个这样的连接都将保留直到超时。如图1所示。

 

各种类型的主机对Land攻击反应不同,许多UNIX主机将崩溃,Windows NT主机会变得极其缓慢。

⑦ Smurf攻击:
a)      简单的Smurf攻击:

用来攻击一个网络。攻击者向目标网络发送ICMP应答请求报文,该报文的目标地址设置为目标网络的广播地址,这样,目标网络的所有主机都对此ICMP应答请求作出答复,导致网络阻塞。

 

b)     高级的Smurf攻击:

主要用来攻击目标主机。攻击者向目标主机所在的网络发送ICMP应答请求报文,该报文的源地址设置为目标主机的地址,这样,所有的应答报文都将发送给目标主机。最终导致目标主机处理速度缓慢,甚至崩溃

 

Smurf攻击报文的发送需要一定的流量和持续时间,才能真正构成攻击。理论上讲,目标网络的主机越多,攻击的效果越明显。

⑧ 畸形TCP报文攻击:

畸形TCP报文是通过故意错误设置TCP头中的6个标记位,造成接收方TCP协议栈的处理错误,达到攻击的目的。

⑨ IP-fragment攻击:

IP报文中有几个字段与分片有关:DF(Don’t Fragmentate)位、MF位、Fragment Offset、Length。

如果上述字段的值出现矛盾,而设备处理不当,会对设备造成一定的影响,甚至瘫痪。矛盾的情况有:

DF位被置位,而MF位同时被置位或Fragment Offset不为0。

DF位为0,而Fragment Offset + Length > 65535。

另外,由于分片报文可以增加目的设备缓冲和重组的负担,应直接丢弃目的地址为设备本身的分片报文。

⑩ 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操作系统在处理这些数据的时候,就会崩溃。

posted @ 2019-10-01 15:21  SR丶  阅读(1088)  评论(0编辑  收藏  举报