TCP/IP协议分析(网际层安全缺陷)

网际层安全缺陷

TCP/IP网际层主要包括:

  • qIP协议(Internet ProtocolIP)是网络层的主要协议,是一套由软件、程序组成的协议软件。IP协议规定了数据包的格式以及统一的地址表示方法(IP地址)。通过将来自网络接口层的各种不同“数据帧”统一转换成“IP数据包”格式,使所有各种计算机都能在网络上实现互通,即具有“开放性”的特点。
  • qInternet控制消息协议(Internet  Control  Message  Protocol , ICMP),用于与其他主机或路由器交换错误报文或其他摘要信息 。ICMP协议可以被应用层直接调用。
  • qInternet组管理协议(Internet Group Management ProtocolIGMP),用于基于TCP/IP的组播通信中的组成员管理。
  • q地址解析协议(Address Resolution ProtocolARP),将主机的IP地址翻译为物理地址(Media Access ControlMAC)。
  • q反向地址转换协议(Reverse Address Resolution ProtocolRARP),将MAC地址翻译为IP地址。

 一、IP协议及其安全缺陷

1IP报文格式

TCP/IP协议分析(网际层安全缺陷)

TCP/IP协议分析(网际层安全缺陷)

TCP/IP协议分析(网际层安全缺陷)

2IP协议的安全缺陷

从根据IP报文和尽力而为的传输特性,IP协议存在的先天安全缺陷包括:

  • qIP是一个无连接 、无可靠保证的网络协议。传输的数据包既无法保证送达也不能保证顺序。
  • q只是依靠源地址和目的地址,不能保证发送方和接收方身份的合法性。
  • q缺乏对传输数据的完整性和机密性保护的机制。

TCP/IP协议分析(网际层安全缺陷)

3IP欺骗(IP Spoofing)

TCP/IP网络中,IP地址是每个连接在网络上的主机的唯一身份标识。

IP地址欺骗是指攻击者冒充某个第三方主机的IP地址向被攻击主机发起攻击。其前提是:被冒充主机与被攻击主机有信任关系。

IP地址欺骗攻击是一种古老的、技术要求相对较高、防范比较容易的攻击行为。

如果只是将攻击主机的IP地址更改成被冒充主机的IP地址,当攻击主机与被冒充主机和被攻击主机在同一内网时,会引起IP地址冲突;

当攻击主机与被冒充主机和被攻击主机不在同一内网时,则攻击主机因为IP地址不合法而无法联网。

1)攻击原理

  • q攻击者首先选择一个被攻击主机信任的主机作为被冒充主机。
  • q攻击者通过采用诸如拒绝服务一类的攻击行为使被冒充主机瘫痪。
  • q攻击者向被攻击主机发送源IP地址为被冒充主机IP地址的连接请求报文。这是利用了路由器进行转发时不检查源地址是否合法的漏洞。
  • q攻击者在估算的时间延迟后向攻击主机发送确认报文。因为被攻击主机在收到攻击主机的请求报文后会向被冒充主机发送同步确认报文。攻击成功,即可登陆被攻击主机。

2)防范方法

这种攻击行为的防范很简单,只要在边界路由器上设置检查所有来自外网数据包的源IP地址,一旦发现有内网的IP地址,则简单将其丢弃即可。这项功能是路由器的默认功能,只要将其打开即可。

4RIP路由欺骗

路由选择欺骗是指攻击者通过技术手段诱使攻击目标主机发出的报文到达攻击者所在的网络,以实现嗅探监听,篡改等攻击目的。

路由信息协议(Routing information ProtocolRIP)是用于自治系统内传播路由信息的动态路由选择协议,最初为Xerox网络而设计,是Internet中常用的路由协议。

RIP中,每隔30秒,路由器就会更新一次路由表,并将更新结果发送给自己的邻居路由器。当网络规模较大时,频繁更新的路由信息是造成网络广播风暴的主要原因之一。

路由器在收到RIP数据报时一般不作检查。

1)攻击原理

RIP路由欺骗攻击的实现非常简单,只需要攻击者能够控制离攻击主机最近的路由器即可。

  • q攻击者以管理员身份登陆其可以控制的路由器(如路由器G);
  • q攻击者更改G中的路由表,声称可以最快的到达其想攻击的主机(如A),诱使发往A的数据包由G中转。
  • q攻击者监听所有经由G发往A的数据包,从而达到侦听、篡改数据的目的。

2)防范方法

  • q路由器在接受新路由前先验证其是否可达,或者实际跳数是否与声称的跳数相符合。这可以大大降低受此类攻击的概率。
  • q所有路由信息在网上的传播都会被记录,网络管理员只要经常检查日志文件即可发现虚假路由。 

 

5IP路由欺骗

IP路由欺骗的过程稍微复杂,主要是利用了IP包首部中的源路由选项。

一般情况下,IP包是无连接传输方式,路由器根据IP包中的目的地址以及当前网络的状况自主的选择传输路径。在这种情况下,IP包的传输路径是事先不可知的。

但是,有时为了某种目的(如希望避开某些不稳定路径等),发送方可以事先指定一个传输路径。这一功能可以在IP包首部的可选项中加以说明,并且相应的回包也会按照指定的路径反方向传输。

IP路由欺骗就是利用了IP包可选项的这一功能(也可以称为漏洞),设法让被攻击主机将数据包传输到指定的节点。

1)攻击原理

假设:主机A是攻击的目标主机,主机B是主机A的信任主机,主机X是攻击主机,并且攻击者可以控制离其最近的路由器G

  • q攻击者登陆路由器G,并在其中添加路由信息,使所有发往主机B的数据包都转发到攻击主机X所在的网络。
  • q攻击者冒充主机B向主机A发送数据包,即在IP包首部的源IP地址中填上主机BIP地址,并在可选项中填写好精心设计的传输路径,使往返数据包都会经过路由器G
  • q路由器G在收到目的地址为主机B的数据包后,根据被更改过的路由信息,将数据包转发到攻击主机X所在的网络。 

2)防范方法

  • q在边界路由器上配置丢弃所有来自外网又声称自己是内部主机的数据包
  • q关闭主机和路由器上的源路由选项 

二、ARP协议及其安全缺陷

1、为什么要有ARP协议

地址解析协议(Address Resolution ProtocolARP)是IP协议最重要的配套协议之一,其目的就是是将IP地址转化成MAC(物理或硬件)地址。

当有IP数据包需要发送时:

  • q发送方是主机,要把IP数据报发送到本网络上的另一个主机。这时用ARP找到目的主机的MAC地址。
  • q发送方是主机,要把IP数据报发送到另一个网路上的一个主机。这时用ARP找到本网路上的一个路由器的MAC地址。剩下的工作由这个路由器来完成。
  • q发送方是路由器,要把IP数据报转发到本网路上的一个主机。这时用ARP找到目的主机的MAC地址。
  • q发送方是路由器,要把IP数据报转发到另一个网络上的一个主机。这时通过查找路由表或通过路由协议找到下一个路由器,剩下的工作由这个下一个路由器来完成。  

在每个联网的主机和路由器中都维护着一张ARP表(称为ARP Cache),登记着本局域网内所有主机IP地址和MAC地址的对应关系。

TCP/IP协议分析(网际层安全缺陷)

当本机或本路由器需要发送IP数据包时,首先检索本地的ARP表,并根据检索结果决定发送方式。

ARP协议的目的就是填写和维护ARP表。

 

2ARP协议工作原理

当主机A有信息向主机B发送时:

  • q主机A查找本地ARP表,若表中有主机BIP地址,则按照对应的MAC地址,将要发送的IP包封装成以太帧,并向主机B发送。
  • qARP表中没有主机B的数据项,则以广播方式发出ARP请求包,在本网段内寻找与主机BMAC地址。

TCP/IP协议分析(网际层安全缺陷)

 

  • q主机B收到主机AARP请求报文后,向主机A发出单播的ARP响应包,并将主机AIP地址和MAC地址填入自己的ARP表中。
  • 主机A在收到响应报文后,将主机BMAC地址填写到自己的ARP表中,按照获得的MAC地址将IP包封装到以太帧,并向主机B发送。 

TCP/IP协议分析(网际层安全缺陷)

3ARP报文格式

ARP协议和RARP协议有一致的数据包格式。

TCP/IP协议分析(网际层安全缺陷)

TCP/IP协议分析(网际层安全缺陷)

根据报文中地址项的填写内容,ARP分为标准(也称有偿)和无偿(gratuitous,也称免费)两种类型:

1)标准ARP

ARP请求报文的各相关地址项:源IP和源MAC为发出ARP请求的主机的IP地址和MAC地址,目标IP为希望获得其MAC地址的主机的IP地址,目标MAC为全“0”。

2)无偿ARP 

一种特殊的ARP请求报文,当一个ARP请求报文满足以下条件时:

IP地址和目标IP地址都是发出这个ARP报文的主机的IP地址。

IP地址和目标IP地址都是发出这个ARP报文的主机的IP地址。

目的MAC地址是广播地址。

4ARP的安全缺陷

ARP协议的缺陷与生俱来,其主要原因在于:

  • TCP/IP的其他协议一样,ARP协议也是假设在一个可信任的环境中运行的协议。既检查ARP请求和应答报文的合法性,也没有对发出请求或应答报文的主机身份进行确认。
  • qARP是一个无状态协议,即不管有没有发送过ARP请求,只要有发往本地的ARP应答包,计算机都会不加验证的接受,并更新自己的ARP缓存。
  • ARP表不能一劳永逸的建立,需要定时更新。

ARP的上述特性成为各种利用ARP进行攻击的基础。

5、基于ARP的攻击—ARP欺骗

1ARP攻击原理

ARP攻击主要是指利用ARP协议漏洞进行的ARP欺骗(冒充),即利用ARP协议的无状态特性,攻击者向目标主机或目标网络发送精心准备的ARP应答报文,诱使目标主机或目标网络更新其ARP缓存,从而达到攻击的目的。

2ARP攻击分类、

根据攻击目的,ARP攻击可以大致分为:

干扰(中断)通信

窃听秘密

3)干扰(中断)通信

攻击者向目标主机或目标网络发送包含某个IP地址主机的虚假MAC地址ARP应答报文,从而阻止目标主机或目标网络与该IP地址的主机进行通信。

有以下几种方式:

阻止某个主机正常通信,可向其发送ARP回应报文,其中源IP地址为网关(或另一个主机)的IP,源MAC地址为一不存在地址;

以广播方式发送ARP回应报文,冒充网关,阻止网络中的主机与真正的网关通信,即报文中的源IP地址为网关IP,源MAC地址为一不存在地址。

向网关不断发送伪造IP地址的ARP请求和回应报文,一方面大量消耗网关CPU资源,另一方面致使网关不断更新自己的ARP表,导致网关ARP表溢出,真实主机的IP-MAC项被移除,网关无法与网络内主机通信。

TCP/IP协议分析(网际层安全缺陷)

TCP/IP协议分析(网际层安全缺陷)

4)窃听秘密

攻击者向被窃听的通信双方发送包含攻击者自己MAC地址和通信对方主机IP地址的ARP应答报文,在被窃听通信双方之间充当中间人,截获并转发被窃听通信双方的通信报文。

攻击过程如下:

如果主机A和主机B为正常通信的主机,攻击者向主机发送ARP回应报文,宣称自己是主机B,即ARP回应报文中的源IP地址为主机B,源MAC地址为攻击者。同样地,攻击者也向主机B发送类似的ARP报文,宣称自己是主机A,即ARP回应报文中的源IP地址为主机A,源MAC地址为攻击者。

主机A和主机B收到相应ARP回应报文后更新各自的ARP表。当主机A有报文向主机B发送时,实际上发送给了攻击者。同样地,主机B发送给主机A的报文也发送给了攻击者。因此,攻击者截获了主机A和主机B之间的通信信息。

为了不让主机A和主机B发现通信被窃听,攻击者在截获主机A和主机B的报文后,还会将报文转发,使主机A和主机B依然能够收到报文。

ARP中间人攻击

TCP/IP协议分析(网际层安全缺陷)

6ARP欺骗的防范

ARP欺骗是一种非常恶劣的网络攻击行为,严重时可以导致整个局域网都不能正常使用,合法用户无法正常通信和上网。

因为ARP协议是IP协议中的一个重要协议,如果简单的采用禁止ARP的方式加以防范,其结果是在防止被ARP欺骗攻击的同时也使得自己无法使用网络。

ARP欺骗曾经困扰了厂商、网络维护人员和普通用户很长时间,尽管设想很多方法,但还是很难实现既能从根本上解决ARP欺骗又不影响方便灵活的使用网络。

IP-MAC绑定法

在主机和网关上绑定“IP-MAC”。这是一种针对ARP欺骗原理进行的防范措施,最早被采用,实现简单,对付基本ARP攻击比较有效。

  • q在主机端,将ARP表中网关的IP-MAC绑定,防止被假冒网关欺骗。
  • q在网关端,收集局域网内所有主机的MAC,并将主机的IPMAC一一绑定,防止出现主机欺骗。 

存在的问题

  • q除非在每个主机的ARP表中都预先保存本局域网内所有主机的MAC,否则无法防止对主机的ARP欺骗。然而,这是一件几乎无法完成的任务,除非在每个主机中安装一个开机自动运行的程序和一个本局域网内所有主机MAC的数据库。
  • q即使进行了IP-MAC绑定,ARP欺骗程序也可以轻而易举的将其解除,如在Windows中执行arp –d,即可删除本机的ARP表项。
  • q在网关处绑定IP-MAC是一项繁琐的维护工作。换个网卡或更换IP,都需要重新配置路由。特别是对于移动主机,需要随时进行的绑定,网络维护的巨大负担,几乎无法完成。另外,对于采用DHCP的网络,还需要在DHCP服务器上进行相应的绑定,以确保主机-IP的一致性。
  • q绑定只是解决了主机和网关不接收相关ARP更新信息,但是大量的ARP攻击依然存在于局域网内,消耗网络带宽和交换机的能力。

 

ARP防火墙法

ARP防火墙是在主机上完成网关IP-MAC的绑定和维护,拦截本机发出的虚假ARP报文,并且向网关报告本机正确的IPMAC

存在的问题

  • q无法保证网关的正确性。如果局域网内已经有主机在假冒网关,则ARP防火墙就会绑定这个假冒的网关,从而导致信息泄露或者无法上网。
  • q依然没有解决大量ARP包在局域网出现,消耗局域网带宽和交换机资源,从而造成网络响应迟缓甚至无法使用的问题。 

交换机端口绑定法

在可网管的交换机中,都有一个端口-MAC对应表,登记了每个端口及连接在这个端口上主机的MAC地址,并且交换机具有自学习能力,可以根据连接主机的MAC地址自动的填写这个表。

正常情况下,当有数据帧到达某端口时,交换机会根据到达数据帧的源MAC查看MAC表,若表中没有相应的端口-MAC项,则自动将这个端口-MAC关系填写到表中(学习能力)。同时,查看目的MAC是否在这个表中,若存在则将该数据帧转发到目的MAC对应的端口上;若不存在则向所有端口广播这个数据帧。

交换机端口绑定是指在经过一段时间学习后关闭学习功能,从而防止假冒MAC占据MAC表。这种方法在一定程度上可以防止ARP的主机欺骗。

存在的问题:

  • q绑定后,完全限制了主机的移动能力,每个主机都只能固定在一个交换机端口上。若需要移动到另外一个端口,需要解除绑定和学习。
  • q在禁止学习前,所有主机都必须连接在交换机端口上,并主动的发送过数据包。否则,禁止学习后联网的主机只能通过广播方式交换数据,从而加重了局域网内的广播流量。
  • q端口-MAC的绑定只是解决了假冒主机的问题,对于ARP攻击造成的其他问题(交换机资源和带宽的消耗)仍然无能为力。 

VLAN划分法

虚拟局域网(Virtual Local Area NetworkVLAN)是一种将局域网设备从逻辑上划分成一个个网段,从而实现虚拟工作组的数据交换技术。

VLAN和真实的LAN有相同的属性,可以实现内部的广播和单播。

利用VLAN的划分防范ARP欺骗的原理是将VLAN划分的足够小,使得ARP广播报文只在一个很小的范围传播。即使出现了ARP攻击也不会影响到VLAN之外。

存在的问题:

  • q无法保护网关不受攻击。一旦网关瘫痪,所有VLAN都会瘫痪。
  • q大量的ARP泛洪,仍然可以消耗网络带宽和交换机资源。 

PPPoE

PPPoEPPP over Ethernet)是一种将PPP帧进行二次封装并在以太网上进行传输的协议。其中,PPPPoint to Point Protocol)协议是点对点通信协议,通常用于拨号模式。采用PPP通信时,IP数据包被封装在PPP帧中,从一个节点传输到另一个节点。

利用PPP传输IP包,可以绕开ARP协议,从这个意义上来说,任何形式的ARP攻击都无法对PPPoE形成影响。因此,PPPoE曾被认为是终结ARP攻击的最终解决方案。

存在的问题:

  • qPPPoE使得每台主机变成了一个局域网,无法实现资源共享。
  • q如果每台主机直接接入PPPoE服务器,对服务器性能要求会变得很高,因此价格极为昂贵(电信级)。 

三、ICMP协议及其安全缺陷

1ICMP协议的作用

IP协议提供了以无连接为特征的“尽力而为”的数据通信服务,并不能解决数据报丢失、重复、延迟或乱序等问题。

Internet控制报文协议(Internet Control Message ProtocolICMP)的目的就是希望对IP包无法传输时提供报告,这些差错报告帮助发送方了解网络中发生了什么问题,以确定应用程序后续操作。

ICMP的主要功能包括:

通告网络错误
通告网络拥塞
协助解决故障
通告超时
 

ICMP是少数几个可以直接从应用层操作的协议,不经过传输层的封装。

另一方面,ICMP本身就是一个网际层协议,但却需要利用另一个网际层协议

--IP协议进行封装,因此是一种需要两次封装的网际层协议。

首先由网络层的IP协议对ICMP协议报文进行封装,其次再由数据链路层协议对相应的IP报文进行封装。经过两次封装后的ICMP报文才能被传输。

 

TCP/IP协议分析(网际层安全缺陷)

ICMP报文是由IP协议封装,因此其发送是不可靠的,主机不能依靠接收ICMP包解决任何网络问题。

2ICMP报文格式

ICMP数据包格式如下:

TCP/IP协议分析(网际层安全缺陷)

ICMP报文类型由类型字段和代码字段共同决定

类型

代码

描述

查询

差错

0

0

响应应答

 

3

0

网络不可达

 

1

主机不可达

 

2

协议不可达

 

3

端口不可达

 

4

需要进行分片但设置了不分片

 

5

源站选路失败

 

6

目的网络不认识

 

7

目的主机不认识

 

8

源主机被隔离(已废止)

 

9

目的网络被强制禁止

 

10

目的主机被强制禁止

 

11

由于服务类型(TOS),网络不可达

 

 

类型

代码

描述

查询

差错

3

12

由于服务类型(TOS),主机不可达

 

13

因为过滤,通信被强制禁止

 

14

主机越权

 

15

优先级终止生效

 

4

0

源端被关闭

 

5

0

对网络重定向

 

1

对主机重定向

 

2

对服务类型和网络重定向

 

3

对服务类型和主机重定向

 

8

0

请求响应(Ping

 

9

0

路由器通告

 

10

0

路由器请求

 

11

0

传输期间生成时间为零

 

1

数据包组装生成时间为零

 

 

类型

代码

描述

查询

差错

12

0

坏的IP包首部

 

1

缺少必须的选项

 

13

0

时间戳请求(已废止)

 

14

0

时间戳应答(已废止)

 

15

0

信息请求(已废止)

 

16

0

信息应答(已废止)

 

17

0

地址掩码请求

 

18

0

地址掩码应答

 

 

3ICMP协议的安全缺陷

IP协议一样,ICMP协议同样没有可信的验证机制,既无法确认发送者身份的合法性,也无法确认发送数据的合法性。

利用ICMP协议的缺陷,可以发动包括DOS攻击、重定向攻击等。

预防基于ICMP协议攻击的最简单方法是关闭ICMP协议,丢弃所有接受到的ICMP报文。

1)死亡之Ping

PingICMP协议最常用的应用(请求响应),可以通过Ping获得包括网络连通性在内的许多信息。

不同操作系统在实现ICMP协议时,均会对ICMP报文的最大尺寸作出规定,一般不会超过64K字节。利用Ping,将一个尺寸超过64K字节的ICMP报文发送到目标主机,则可以导致目标系统缓冲区溢出,从而使系统瘫痪。

预防措施:

目前很多操作系统都对此有相应的防范措施,即当接收到多个封装ICMP报文的IP分片,并且拼装后超过最大尺寸时,系统丢弃这些ICMP报文。

2ICMP DOS

ICMP DOS是指利用ICMP协议向目标主机发送大量报文,挤占目标系统带宽、消耗目标系统CPU和缓存资源,使其无法为正常请求提供服务。

DOS攻击比拼的是资源能力。如果能让多个系统同时向目标系统发送报文,可以很容易的将目标系统攻击至瘫痪。

攻击原理:

ICMP DOS采用的是一种反弹式攻击,利用了ICMP的请求响应报文进行攻击,并能够很好的隐藏攻击者的行踪。

首先,攻击者选择一个有足够多主机的网络,并向这个网络的网关发送一个源地址是目标系统的ICMP请求响应广播报文。

其次,被选定的网关在收到广播报文后向其管辖范围内的所有主机系统发送该请求响应报文。

最后,所有接收到请求响应报文的主机向报文中的源地址发送响应应答报文。目标主机因为资源耗尽而瘫痪。

最初采用如此发动攻击的程序名“Smurf”,因此这种攻击被命名为“Smurf

TCP/IP协议分析(网际层安全缺陷)

防御的方法:

一种是网关路由器不转发请求响应报文的广播包;另一种方法是在目标主机的网络边界路由器上设置策略,丢弃来自外部的响应应答报文。

3ICMP 路由欺骗

在几乎所有操作系统中都保持一张路由器列表,路由表的第一个项目就是这个主机的缺省网关。一般地,缺省网关由人工配置或者自动获得。

设置缺省网关的目的是为了帮助主机将访问未知路由站点的数据包转发出去。

当主机访问某个站点时,如果主机路由表中有相应的路由信息,则会按照相应的路由进行转发,如果没有相应的路由信息,则将数据包转发给缺省网关,由缺省网关决定相应的路由。

当收到来自主机的转发数据后,缺省网关一方面会继续转发数据包,另一方面会检测检测路由,如果发现这个路由并非最优路由时,缺省网关就会向主机发出一个ICMP路由重定向报文,告诉主机去往相应信宿的最优路由。

这样主机经不断积累便能掌握越来越多的最优路由信息。ICMP重定向报文的优点是保证主机拥有一个动态的既小且优的寻径表。网络中所有主机都无条件的服从ICMP重定向。

攻击原理:

如果攻击者伪装成目标主机的默认路由器向网络中的目标主机发送一个ICMP重定向报文,目标主机收到报文后即更新自己的路由表,从而实现了对目标主机路由破坏。如果攻击者在ICMP重定向报文中将自己设置为路由的一跳,则攻击者即可对目标主机的窃听。

攻击者还可以通过在发出的ICMP报文中设置IP源路由选项,并在其中将一个目的地设置为防火墙,并将目标地址设置为目标主机。即使目标主机藏在防火墙后面不允许与外界直接通信,但是当报文到达防火墙时因为其中一个目的地址指向防火墙而不是目标主机,防火墙会允许其通过,并且会在将报文按照源路由选项发送到内部网上,报文就这样到达了不可到达的即可到达目标主机。

防御方法:

避免ICMP重定向欺骗的最简单方法是将主机配置成不处理ICMP重定向消息,在Linux下可以利用firewall明确指定屏蔽ICMP重定向包。

验证ICMP的重定向消息的来源是否合法则是一种更加有吸引力的方法。例如检查ICMP重定向消息是否来自当前正在使用的路由器。这要检查重定向消息发送者的IP地址与ARP高速缓存中保留的硬件地址是否匹配。