在思科网络环境中,如果网络中新接入了一台交换机或路由器设备,那么其他的网络设备是如何快速发现这个新接入设备的呢?主要是通过CDP协议来自动发现的!CDP协议是Cisco公司特有的发现协议,该协议是一种工作在数据链路层上的协议,所有Cisco设备都能运行该协议;通过该协议,网络设备可以自动获得与它直接连接的邻居信息。不过,这些邻居信息要是被非法攻击者利用,那么网络的运行就会存在安全隐患,同时会给网络管理员的管理维护操作带来麻烦。为了保护网络敏感信息安全,我们需要认清CDP协议的安全威胁,谨防非法攻击者实施CDP欺骗!

一、认识CDP协议
    CDP协议主要是用来发现与本地设备直接相连的Cisco设备,当然如果其他网络设备与本地设备不是直接相连,例如它们之间要是还有其他品牌设备中转连接的话,那么CDP协议就不能够发现Cisco设备了。每台运行了CDP协议的交换机或路由器,都会自动与邻居设备交换协议信息,具体内容包括设备名称信息、本地接口信息、硬件版本信息、IOS版本信息、IOS平台信息、工作模式信息、本地VLAN信息、连接保持信息等等,要查看这些信息时,只需要使用“show cpd neighbors”命令就可以了,如果感觉到上面的信息还不够详细,还可以在上述命令之前添加上“detail”参数。当然,“show cpd neighbors”命令只能在交换机或路由器的特权模式状态下才能运行,在其他模式下该命令运行无效;要进入特权模式也很简单,只需执行“Enable”命令就可以了。
    通过CDP协议获取的邻居交换协议信息,能对平时的网络管理操作带来不小的帮助;比方说,网络管理员可以通过这些信息,了解到局域网中相关网络设备的工作状态、描述信息,对熟悉网络的组网结构以及链路状态也有好处,日后也能对后续的网络管理与优化提供帮助。
    需要提醒大家注意的是,CDP协议位于ISO7层架构中的第二层,它是Cisco设备默认启用的、位于子网访问协议之上的一种协议,该协议连接上层的网络层协议和下层的物理介质,它独立于介质和协议;与普通的TCP/IP、TELNET等协议不同,CDP协议只属于Cisco设备,只能在Cisco设备上启用运行。

二、CDP协议的安全威胁
    前面本文曾提到,CDP协议主要是用来发现邻居设备的,那么它是如何自动发现新接入的网络设备的呢?它就是通过直接相连设备周期性发送信息的方式,来学到对应设备的交换协议信息;由于发出的所有CDP消息,都是以明文方式进行传输的,这些消息中都包含有邻居设备的隐私、敏感信息,例如发送消息的交换端口、消息发送地址、软件平台版本、硬件平台版本等等。在缺省状态下,Cisco品牌的交换机或路由器会自动在所有连接接口上发送CDP消息,这些消息由于没有采取安全加密措施,非法用户通过专业工具可以很轻松地窃取到这些敏感内容。当这些敏感信息被非法者拥有后,他们可以就能轻易了解到局域网中的组网结构,并通过相关地址对网络中的重要主机进行恶意攻击,最终造成网络不能安全、稳定运行。比方说,某一位非法用户在攻破了网络中的一台交换机后,他就能利用CDP协议间接了解到邻居设备的相关信息,有了这些信息以后,他就有了下一个攻击目标,如此循环下去,局域网中的重要网络设备都有可能被攻破,那么到时整个局域网都可能发生瘫痪现象。
    除了被动获取邻居设备的交换协议信息外,非法攻击者还可以利用专业的CDP工具程序,定制伪造的CDP数据帧,来通知局域网中的高端网络管理软件,说在网络中新发现了一台网络设备,如此一来相关网络设备就会主动尝试利用SNMP来联系“陷阱”设备,这个时候非法攻击者就会对这样的联系进行监控捕捉,从而有机会获得局域网中其他重要网络设备的名称、地址、接口等信息,日后就为攻击这些网络设备做好了准备工作。
    此外,CDP协议还能欺骗思科的IP电话;当打开IP电话后,交换机就会通过CDP协议自动和IP电话交换CDP数据,并主动通知电话来让语音流量选用哪一个虚拟工作子网;在这一过程中,非法攻击者可以通过注入CDP数据帧的方法,来欺骗IP电话,为语音流量分配一个错误的虚拟工作子网。

三、安全防范措施
    既然CDP协议存在如此大的安全隐患,那么我们该采取什么措施进行安全防范,保证网络中的敏感信息不外泄呢?

1、关闭发现功能
    由于交换机或路由器设备默认会在所有端口上发送CDP消息,这些消息包含了不少敏感信息,非法攻击者通过类似网络嗅探器工具能轻松窃取到这些敏感、隐私信息。因此,对于一些交换端口来说,如果它们下面连接的是安全性要求比较高的网段的话,我们就有必要关闭这些交换端口上的CDP发现功能,那么如何关闭该协议功能呢?
    在关闭CDP发现协议功能之前,我们有必要先了解一下Cisco设备的配置模式,因为在不同配置模式状态下,关闭CDP发现协议功能的操作命令不同。一般来说,Cisco设备的配置模式包含两种,一种是全局配置模式,一种是接口配置模式;在全局配置模式状态下,只要执行“no cdp run”命令就可以了,该命令执行完毕后,局域网中交换机或路由器上所有端口的CDP协议都将被自动关闭掉,很显然该命令会同时影响到局域网中的多个网络设备,所有我们在使用该命令时必须要慎重。
    由于简单地使用“no cdp run”命令,将无法充分发挥CDP发现功能的作用。为此,我们应该根据实际组网情况,选择以交换端口为基础来有针对性地关闭CDP发现协议功能;倘若要关闭某个特定交换端口上的CDP协议功能时,我们只要先进入到交换机或路由器设备的接口配置模式状态,在该状态下执行“no cdp enable”命令就可以了,该命令执行成功后,只会影响到其中个别端口,而不会影响其他端口。另外,需要提醒大家注意的是,当我们在全局配置模式状态下关闭了CDP发现功能后,那么日后就不能特定交换端口上启用该功能了;而且在默认状态下,交换机或路由器的全局配置模式是启用CDP发现功能的,接口配置模式是关闭CDP发现功能的。

2、限制使用场合
    尽管CDP协议的启用会给局域网的安全带来麻烦,但不可否认的是,该协议的启用在很多时候会对网络管理员的管理维护工作,带来很大的帮助,所以在一些足够安全的工作场合下,我们建议还是启用CDP发现功能,以便充分发挥该协议的价值,提高网络管理员的工作效率。例如,在单位内网环境中,只要部署好了网络防火墙和网络防病毒软件,就可以将网络中交换机或路由器上的CDP发现功能启用起来,以便为日后的网络维护与优化提供方便,因为内网环境在多项安全措施的保护下,CDP发现协议存在的安全威胁会大大下降。此外,在一些安全性要求不高的网络环境中,也可以通过启用CDP发现协议,来提高网络故障的排查效率;例如,在普通的网吧工作环境中,由于不存在多少重要的敏感、隐私信息,通过开启CDP发现协议,可以方便平时的管理、维护操作。
    在一些安全性要求比较高的网络环境中,或者是单位网络的边缘网络设备上,尽量不要使用CDP协议,毕竟CDP协议或多或少地会带来一些麻烦;比方说,在银行、证券等金融网络中,应该慎重使用CDP协议,因为这个网络中包含的敏感、隐私信息特别多,要是被非法用户发现的话,就相当于暴露了许多攻击目标。
 

文章如转载,请注明转载自:http://www.5iadmin.com/post/853.html