网络设备的工作原理与安全威胁
- 格式:docx
- 大小:2.30 MB
- 文档页数:31
--
-- 1. 网络设备的工作工作原理与安全威胁
1.1. 集线器的工作原理与安全威胁
集线器又称HUB,是一种用于组建物理结构、形状为星型的网络设备。它具备中继器的信号放大功能,所以它有延长物理线路距离的特性。但是集线器在放大正常信号的同时也放大了噪声信号,噪声信号是网络上的干扰信号,它将对正常的网络通信造成影响。集线器的端口比中继器密集,所以在某种情况下人们把集线器叫做“多端口的中继器”。集线器转发数据的原理如图1.1所示:当主机A要给主机D发送数据时,主机A会把数据广播到除原端口以外的所有端口上。此时主机B解开广播包,看到目标的IP地址不是B主机NIC(网卡)上的IP地址,所以将数据帧丢弃。C主机解开广播包,看到目标的IP不是C主机的NIC上的IP地址,也将数据帧丢弃。D主机解开广播包,看到目标的IP是D主机NIC上的IP地址,它会将数据帧从NIC复制到内存中,然后内存在将其交给CPU处理。
集线器的特性:集线器是一个半双工冲突设备。如图所示:集线器所有端口连接的主机全部处于一个冲突域内,不能有多个主机同时发送数据。集线器不能隔离广播,如图所示1.2:--
-- 所以不能将集线器连接成环状,否则广播会在环路上一直循环,直到TTL值被减为0。集线器属于共享带宽式设备。如果集线器的总体带宽是10MB,共有4个端口,那么每个端口的理论带宽是2.5MB。集线器的安全性很差,因为集线器的数据发送是利用广播数据报文到所有端口的,而且这个广播是带上真实的负荷(用户数据)的广播,容易被他人监听。所以安全性得不到保障。如图所示1.3
--
-- --
--
注意:集线器安全威胁的重要提示:只要在集线器的任意端口接入协议分析器或安装了协议分析软件的计算机都可以成功的监听集线器上其他端口的流入和流出的数据。当然这些数据中也包括比较重要和敏感的机密信息,如密码、账号等。
1.1.1. 演示集线器的入侵与防御
演示目标:分析集线器的工作过程造成数据泄密事件
演示环境:如下图所示: --
--
背景说明:通过该演示过程证明集线器的工作原理是将数据包广播到设备的每一个端口上(除发送端口)外,如果远程管理主机(192.168.2.4)telnet思科路由器192.168.2.5,那么192.168.2.6的协议分析器应该能够成功的捕获到telnet的密码
防御方案:由于集线器的安全威胁是设备工作原理上的天生缺陷,无法避免。所以没有更有效的防御措施,唯一的办法是选用智能的设备,可以用二层交换机去替代集线器。
1.2. 网桥、二层交换机的工作原理与安全威胁
学习网桥工作原理之前必须先理解的一个重要的网络理论:“星型结构的网络“。虽然前面提到集线器组织的是一个”星型结构的网络“,但是这个所谓的”星型网络“实际上只是一个物理连接环境的星型,并不是访问介质协议(以太网的访问介质协议CSMA/CD)上的星型。从访问介质的逻辑角度理解:所有利用集线器组织的网络都应该是冲突型的网络。如下图所示:
--
--
1. 理解冲突域(碰撞域)
冲突域是一种基于以太制式算法产生的问题。只要是以太网,不管是10mb/s、100mb/s、1000mb/s,甚至是万兆以太网都会有冲突的存在。那是因为只要是以太网都必须遵循CSMA/CD(载波侦听协议)。它是以太网的访问介质协议,载波侦听协议的工作原理如图1.7所示:如果A,B,C,D这四个主机都处于一个冲突域内,且都连接在一个集线器上,如果B主机要给C主机发送数据,那么B主机会在正式发送数据之前向网络中发送一个载波侦听信号,查看网络总线是否繁忙。如果繁忙,如A主机正在给D主机发送数据,B主机就不能发送数据给C主机,否则就会产生一个冲突。因此得出一个结论:以太网上的多个主机在一个冲突域内,同一时刻只能有一个主机向另一个主机发送数据,如果违反了该原则就会有冲突产生。 --
--
注意:使用过集线器后会发现,在集线器上连接4个主机后,在同一时间内所有计算机都可以互相复制文件,并没有等待某个主机将文件传递完成后,另外的主机在传递数据,视觉上多台连接到一台集线器的主机是同时发送数据,所以会质疑对CSMA/CD的定义。
事实上这是因为人类的视觉器官对真相的理解永远是有限的,在”同一时间“只有一台主机向另外一台主机发送数据。如图1.8所示,当主机A发送数据给主机C时,如果该数据报文很大,发送的延时就会很大,占用以太总线的时间就很长。而其他的主机比如:主机B与主机D等待发送的时间就会很长,如果主机A要利用10分钟来完成与主机C的数据传递,那么主机B与主机D之间发送数据之前需要等待10分钟才能进行,这显然是一种不科学的方法。所以OSI传输层将主机A发送给主机C的较大的数据报文分割成若干个小块的数据报文进行发送。主机B给主机D发送数据时也使用相同的方式。所以真实的情况是:主机A发送一小块数据报文,主机B再发送一小块报文,然后如此交替进行。而这一小块数据报文发送延时是基于微秒级别进行计算的。所以人们的视觉感觉是主机A与主机B同时进行发送。但事实上在同一时刻只有一个主机发送数据报文。 --
--
现在开始介绍网桥:网桥工作在OSI的第二层,能够划分或减少冲突域,性能比集线器良好;能够基于Mac地址进行数据链路层选路;能够基于自学习构建Mac地址表;不能隔离广播,所以不能让网桥形成环路。网桥的工作原理如图1.9所示:如果主机A发送数据给主机D,当数据从网桥的1号接口进入时,网桥不会像集线器那样将数据广播到所有接口上。因为在网桥内部有一张MAC表,该表记录着网桥物理接口所连接的主机MAC地址。当数据进入网桥时,网桥通过查询Mac地址表得知主机D对应的物理接口是4号接口,所以网桥就将数据直接转发到4号接口,而不再需要将数据广播到所有接口。此时网桥的2和3号接口就没有受到冲突的影响,所以主机A在发送数据给主机D时,主机B可以同时发送数据给主机C。这样得出一个结论:网桥将冲突域划分得更小,转发性能比集线器更高,可以形象的理解成网桥的每个接口是一个冲突域,而集线器的所有接口在一个冲突域。集线器与网桥的性能对照如图2.10所示: --
--
网桥能够基于自学习构建Mac地址表
网桥的转发性能比集线器更高,是因为网桥内部的Mac地址表可以进行第二层的选路。--
-- 但是网桥在刚刚被部署到网络中使用时,一定不知道网桥的某个接口记录的是网络中的某个主机的Mac,如图2.11所示:此时他就需要通过一种叫做”Mac地址自学习“的方式来完成Mac表的构造。网桥“Mac地址自学习”技术的原则是在接口上记录“数据报文的源Mac地址”,如图所示: --
--
当网桥的Mac地址表项不完整时,网桥不能利用Mac地址表进行选路转发,所以网桥只能效仿集线器将数据帧广播到所有接口(除源端口外)。
注意:网桥的这个广播与集线器的广播有很大的区别,网桥的这个广播只是一个单纯的ARP广播,它并不携带真实数据,所以很小,而且在某种情况下,这种广播报文的大小可以被忽略不计。它只广播一次,这次广播的目的是为了构造Mac表。利用网桥的Mac表自学习功能记录计算机的源Mac地址对应的网桥端口,如图2.13所示:当Mac表被成功构建后,网桥将不再进行广播,而是利用Mac表进行快速选路并转发。而集线器每次传输数据都需要依靠广播,而且该广播带有真实的数据载荷。 --
--
网桥不能成环的主要有两个原因:第一,由于网桥不能隔离广播,所以广播不能再环路中散播,这样会形成广播风暴,将占据整个网络的正常通信资源。如图2.14所示:第二,由于网桥不能隔离广播所以会导致mac地址表自学习错误。如图2.15所示:如果主机B发送数据给主机A,此时网桥A与网桥B的mac地址表都没有构建完整,那么网桥必须要使用“mac地址自学习”技术来完善自己mac表的构建。假设主机B的ARP请求先送达到网桥B,此时网桥B会记录数据进入端口的源mac地址,所以网桥B记录mac_B对应的是网桥B的2号接口。现在看上去完全 正常,但是请不要忘了一个很重要的理论,网桥是一个不隔离广播的设备,所以对于ARP请求的广播,网桥B就是一个透明的设备,其桥接环路如图2.16所示:如果网桥B对于广播来说是透明发送,所以现在可设想根本没有网桥B的存在,那么ARP广播会穿过网桥B到达网桥A,由于网桥“mac地址自学习”技术的原则,记录网桥A的一号端口是主机B的mac地址mac_B,此时地址自学习错误就产生了。因为网桥A的一号端口事实上连接的是主机A。而网桥成环后会将网桥A的1号端口记录为连接的是主机B. --
--
注意:在实际工程中,网桥通常有需要将物理链路成环,以提供冗余的路径,但是这又违背了网桥不能成环的原则。所以需要一种特殊的技术来解决网桥成环印发的问题。这种特殊的技术叫做STP(生成树)。 --
-- 二层交换机的工作原理:二层交换机是一种代替网桥的新型产物,也是现在流行的网络组建设备。其实,二层交换机的工作原理与网桥是一样的。都能给予mac地址表进行转发,划分冲突域、给予mac地址自学习构造mac表。但是,网桥个整个过程是利用网桥内自身的软件来完成的,所以会出现瓶颈现象。而二层交换机是基于专用的集成电路(ASIC)来决定交换逻辑的算法的。如mac表的构建及背板进程交换,所以没有瓶颈现象,转发速度比网桥更优良,而且二层交换机的端口比网桥更密集,所以二层交换机代替了网桥。
注意:在很多情况下,可以把二层交换机理解成具有更多端口利用专业硬件来转发数据的网桥。
1.2.1. 演示网桥或二层交换机的工作原理
网桥与二层交换机面对的网络安全威胁:网桥与二层交换机的工作原理事实上是一回事,它们都是利用“mac地址自学习”技术来构建mac地址表,然后数据包通过MAC地址表进行二层选路,从而提高网桥或二层交换机的数据转发速度。另外,数据不会广播到网桥或二层交换机的每一个端口上,对安全也有所增强的效果。但是网桥或者二层交换机的mac地址表是有容量限制的。Mac地址表也叫CAM表,它受网桥或者二层交换机的内存限制,一般cam表的容量可以容纳几千到几万条mac记录,这会因不同的交换机品牌与等级的差异而有所不同。如果这些cam表在几秒的时间内被攻击入侵者充满,那么交换机就会造成cam表溢出,导致正常的cam无法被交换机成功的学习到,交换机就无法执行正常的MAC地址与端口对应关系的选路。进入交换机的数据包就会被广播到每一个端口,这时交换机与集线器就变成了同一种网络设备,入侵者只要将计算机接入到交换机的任何端口上就可以侦听交换机的所有数据,分析具体原理如图2.17所示:
演示目标:分析瞬间发送成千上万的伪造mac地址充满二层交换机的cam表,让cam表溢出,二层交换机将以广播的方式转发数据,黑客侦听敏感数据。
演示工具:利用macof可让二层交换机的cam表溢出。它是dsniff套件的一个组件,属于Linux操作系统平台上的一款相当不错的网络安全逆向检测工具。