张 帅,白 伟
(太原广播电视大学,山西 太原 030002)
网络监听检测与防范技术研究
张 帅,白 伟
(太原广播电视大学,山西 太原 030002)
网络监听在网络安全中扮演着双重的作用,一方面可以协助网络管理员监测网络数据、排除网络故障、优化网络服务,另一方面也常被黑客利用进行网络监听与窃取数据,对用户信息的泄密构成了极大的威胁。论文首先分析了共享式和交换式网络的特点,研究了基于两种网络的监听原理,并在此基础上提出了针对恶意网络监听行为的检测方法,最终给出了网络监听的安全防范措施。
网络监听;网络安全;混杂模式;检测;防范
随着计算机网络与通信技术的不断发展,互联网已经成为我们工作、生活中不可或缺的重要组成部分。当Internet网络给我们带来社会与经济利益的同时,也受到了网络黑客的攻击。在众多网络安全问题中,网络监听给人们的网络信息与数据的交互带来了极大的安全隐患。为了更好地管理网络且保证网络数据的安全性与保密性,对网络监听行为的检测与防范将显得十分重要。
网络监听是指利用计算机网络接口监听、捕获目的地为其他计算机的数据报文,并对数据的信息进行一定的解析。网络监听犹如一把双刃剑:一方面,它可以协助网络管理员监测网络传输中的异常数据,并在排除网络故障等方面发挥着积极的作用。另一方面,网络监听也是黑客收集有效信息、数据等的重要手段,黑客在网络入侵得手后往往会进行网络监听,从而造成以太网内口令失窃、敏感数据等被截获。
1.共享网络的监听原理
共享式以太网采用载波监听多路访问与冲突检测的(简称CSMA/CD)机制来进行传输控制。它的工作原理是:发送数据前先监听信道是否空闲,若空闲则装配数据帧开始传输数据,在传输数据的过程中边发送边继续监听网络,当检测到冲突时,则广播一个拥塞信号,并停止发送数据,当等待一个随机时间之后,再重新尝试。共享式局域网采用的是广播信道,每一台主机都共享一条网络总线,在正常的工作模式下,局域网内每一台主机的网卡会根据数据包中的目的MAC地址决定是否接收该广播数据,当经过判断是发送给自己的数据包时,则产生中断信号通知CPU,再由操作系统根据设置的中断程序地址调用相应程序接收数据,否则通常会选择丢弃该数据包。
因此,网络监听的实现就要改变常规的网卡工作模式。网卡有四种工作模式:①广播模式:能够接收网络中的广播信息。②组播模式:能够接收组播数据。③直接模式:只有目的网卡才能接收该数据。④混杂模式:网卡能够接收一切通过它的数据,而不管该数据是否是发送给自己。进行网络监听的主机往往工作在混杂模式下(Promiscuous model),因而可以接收到网络中所有的数据包,并通过相应的软件对数据包中的信息做进一步的分析。而且由于现在网络中使用的大部分协议都是早期设计的,许多协议的实现都是基于一种非常友好、通信的双方充分信任的基础之上,因此许多信息都以明文的形式发送。如果用户的账户名和口令等信息也以明文的方式在网上传输,而此时一个黑客或网络攻击者正在进行网络监听,那么就能轻易地从监听到的信息中提取出敏感信息。
2.交换网络的监听原理
交换式以太网的核心组成部分是以太网交换机,工作在数据链路层,可以识别数据包中的MAC地址,并根据MAC地址进行转发,然后将这些MAC地址与对应的端口记录在自己内部的一个地址表中。具体的工作原理如下:
(1)当交换机从某个端口收到一个数据包时,先读取数据包中的源MAC地址,并记录源MAC地址与端口的对应关系。
(2)再读取数据包中的目的MAC地址,并在地址表中查找相应的端口,如表中有与目的MAC地址对应的端口映射记录,将数据包直接发送到该端口。
(3)如表中找不到相应的映射记录,则需要将数据包广播到所有端口上,当目的主机收到该请求时产生回应,交换机便将MAC地址与端口的对应关系记录在自己的映射表中。
网络监听在交换式局域网内部不能仅仅靠设置网卡为混杂模式来实现,因为每一台主机都是通过交换机的端口进行连接,而不是直接进行数据的广播,但是在交换式网络中依然可以实现网络的监听。常用的网络监听方法概括起来有以下三种:MAC泛洪(MAC Flooding)、MAC复制(MACDuplicating)和ARP欺骗。
(1)MAC泛洪
MAC泛洪发生在OSI模型的第二层,攻击者在局域网内大量地随机发送假冒的源MAC地址和目的MAC地址,将数据帧发送到以太网上,导致交换机的可寻址存储器(CAM)溢出,使交换机失去转发功能。此时一些交换机便开始向所有连在它上面的链路发送数据。原因很简单,因为交换机是负责建立两个节点间的“虚电路”,因此就必须维护一个交换机端口与MAC地址的映射表,这个映射表是放在交换机内存中的,但由于内存数量的有限,地址映射表可以存储的映射记录也有限。如果恶意攻击者向交换机发送大量的虚假的MAC地址数据,这些交换机就会像一台普通的HUB那样只是简单地向所有端口广播数据,这个时候,将网络中任意一台主机的网卡设置为混杂模式,监听者就可以达到监听的目的。
(2)MAC复制
MAC复制通常用于对交换机的欺骗。实际上就是修改本地的MAC地址,使其与欲监听主机的MAC地址相同,这样交换机就会发现有两个端口对应相同的MAC地址,于是就把发送到该MAC地址的数据包同时从这个交换机的两个端口发送出去,从而达到了网络监听的目的。大多数网卡允许重新更改MAC地址,例如某些网卡提供了在WINDOWS控制台下通过控制面板中的Network Address选项直接修改MAC地址的功能。其次还可以重新烧录新的MAC地址到网卡的EEPROM(电子式可抹写内存)中,这将永远地更改网卡上的MAC地址。
(3)ARP欺骗
ARP协议虽然是一个高效的数据链路层协议,但作为一个局域网协议,它同样是建立在各主机之间相互信任的基础上的,因此也存在一些安全问题。依照ARP协议的设计原理,为了减少网络上过多的ARP数据通信,一个主机即使收到一个非自己请求的ARP应答包,它也会更新自己的ARP缓存表,这样就造成了ARP欺骗的可能。如果一个黑客要监听同一网络中两台主机之间的通信,它会分别向这两台主机发送一个伪造的ARP应答包,让两台主机的数据包都发送到自己的主机上,然后再做好数据转发的功能,这样,双方看似“直接”的通信连接,实际上都是通过黑客所在的主机进行间接通信,从而达到了网络监听的目的。
1.MAC检测
网卡处于混杂模式时,它会将所有接收到的数据包都向内核协议栈提交,而此时很多操作系统的内核协议栈并不对底层提交的数据帧的目的MAC地址进行检查,或者只进行简单的检查。例如:多种Linux内核以及NETBSD都不进行检查,而Windows98、Windows NT下的绝大部分网卡驱动程序只通过检查MAC地址的第1个字节是否为OXFF来判断数据包是否为广播包,而不是标准的:FF-FF-FF-FF-FF-FF,所以当接收到一个目的MAC地址为FF-00-00-00-00-00,目的IP地址为本机的IP数据包时,这些主机就会响应。根据上述原理,MAC检测的方法如下:给被检测的主机发送一个MAC地址无效而IP地址正确的数据包,并在这个伪造的数据包中构造一个ICMP ECHO请求,当网卡处于监听模式时,该主机就会接收将其存放到相应的堆栈中,并会返回响应包;当网卡工作在正常的模式下时,就会忽略该请求响应。因此,通过判断其是否响应而暴露其工作模式。当伪造的以太网数据帧中的IP地址设置为网络广播地址时,这个测试将非常有效。
2.DNS检测
DNS是指域名服务器(Domain Name Server),负责将Internet上域名与IP地址进行解析。而许多窃听程序对所监听到的IP地址会自动发一些反向DNS请求,因此可以通过观察DNS相关数据包来检测监听。具体的操作是:对一个根本不存在的IP地址发Ping命令,只要有监听程序听到此数据包后,就会对该地址发反向的DNS请求。通过这样的方法,我们就可以进行有效的监听检测。
3.响应检测
主机的响应时间检测是指在较短的时间内发送大量的数据包,用来检测系统的反应时间。采用ICMP数据包对主机进行检测,这是因为ICMP协议处于TCP/IP协议栈的底层,执行的优先级较高,因此测试系统的反应时间较快,对网络的负载影响较小。而采用FTP、TELNET等协议进行检测时,由于优先级低、反应时间慢,会加重网络负载,造成网络拥塞。基于上述理论,我们首先利用antisiffer等工具测试被检测主机的ICMP ECHO请求及响应的基准时间,当得到主机的负载数据以后,立刻向该网络发送大量的伪装数据包,与此同时再次发送测试数据包以确定平均响应时间的变化值,该网络监听程序会在接收到该数据包后并进行数据的处理与分析,因此会加重主机的负载,响应时间会发生显著变化,一般会延长一到四个数量级,而处于正常工作模式的主机,相应时间的变化会很小。因此,通过响应时间的变化来判断主机是否运行监听程序。
4.ARP包检测
ARP检测是指使用ARP数据包替代上述的ICMP数据包。向局域网内的所有主机发送非广播方式且目的MAC地址不存在的伪ARP数据包,如果局域网内的某个主机以自己的IP地址响应了这个ARP请求,那么它的网卡工作模式即为混杂模式,由此我们就可以判断,该主机很有可能处于网络监听状态,这是目前相对而言比较好的从硬件方面检测监听主机的方法。
根据对网络监听原理以及如何进行监听检测的分析与总结,我们提出了网络监听的具体防范措施。具体的实现方式有以下几种:
1.分割网段
分割网段指的是利用子网掩码将原来的IP地址(网络号+主机号)划分为(网络号+子网号+主机号),这样既可以有效减少网络阻塞、减少网络广播,又降低了局域网内被监听的可能性。这是由于局域网下的各种监听方法都无法跨网段进行,使用交换机、网桥等设备就可以有效地阻止被窃听。将相互信任的主机放在一起,组成各个小网段,让窃听的可能性和必要性降至最低。
2.使用静态ARP表
静态ARP表采用手工输入的方法,在连网的过程中不处理ARP响应包,不对ARP表做任何修改。但是此方法的缺点是随着计算机的重新启动,ARP缓冲表就会被清空。因此,我们可以编写一个简单的脚本文件,将所有的ARP缓冲记录写在脚本内:
然后将该文件置于系统的启动项中,每次当计算机启动时就会将该记录添加到ARP缓冲表中,但是当网关地址以及局域网内进行通信的主机变动时,此时需要对该文件的内容进行更改,因此适合网络环境相对较小、主机数量相对稳定的局域网内。
3.数据加密
所谓数据加密(Data Encryption),就是指将一个信息(或称明文,plain text) 经过加密钥匙(Encryption key) 及加密函数转换,变成无意义的密文(Cipher text),而接收方则将此密文经过解密函数、解密钥匙(Decryption key)还原成明文。为了使Internet变得更安全,人们在重要信息传输上往往会使用数据加密技术和基于加密理论的数字签名技术,这种方法使得监听者即使可以监听到信息,也无法阅读信息,在一定程度上保证了信息在网络上传输的安全性。
4.运用VLAN技术
VLAN技术是一种根据局域网内设备的逻辑地址而不是物理地址将局域网划分成一个个的网段。由于交换机只能在同一VLAN内的端口之间交换数据,不同VLAN的端口不能直接访问,因此,通过划分VLAN可以提高网络的安全性,而且有助于控制流量。其次,当一台计算机物理位置需要发生变化时,采用MAC地址划分的VLAN交换机可以自动跟踪该终端的MAC地址,并自动将其纳入定义的VLAN中,因此也降低了移动和变更的管理成本。
5.交换机端口绑定
对于安全性要求较高的网络内部环境,可以通过MAC地址与交换机端口的绑定来有效控制非法用户的网络监听。通过端口绑定不仅可以限制计算机的访问流量、控制数据包的收发量,还可以有效地保障端口的安全管理,对网络管理起到了非常重要的作用。交换机端口绑定的策略分为静态方式和动态方式两种。如果其他合法用户的PC机想通过这个端口使用网络,需要向网络管理员提出授权申请或准入身份认证,再由管理员在交换机的配置模式下实现交换机与端口的绑定,因此在一定程度上为网络的安全使用提供了重要保障。
6.设置ARP服务器
ARP缓冲表记录了一段时间内IP地址与MAC地址的映射关系,但是ARP缓冲表是动态更新的,一段时间内未使用的记录则会被自动删除。解决的办法是对ARP缓冲记录进行集中管理。也就是指定局域网内部的一台机器作为ARP服务器,专门保存并且维护可信范围内的所有主机的IP地址与MAC地址映射记录。该服务器通过查阅自己的ARP缓存的静态记录并以被查询主机的名义响应局域网内部的ARP请求。同时,需要设置局域网内部的其他主机只使用来自ARP服务器的ARP响应,这样在一定程度上阻止了利用ARP协议漏洞进行的网络监听。
论文对共享式和交换式局网络下的网络监听原理进行了深入的研究,并根据其特点提出了对恶意网络监听行为的检测方法以及具体的防范措施。随着网络技术的不断发展,网络监听的手段和方法也会层出不穷,因此,从事网络维护的工作人员以及网络安全的科研工作者应在实际的安全策略中,结合网络自身的特点,勤于思考、勤于改进,力求提高网络检测与防范的准确性、广泛性。只有这样,才有可能最大限度地保障网络数据传输的安全性。
[1]张昊,杨静.计算机网络监听检测技术浅析[J].合肥学院学报(自然科学版),2011,(3):44-47.
[2]陈辉,周自立.网络安全实验中关于网络监听的实现[J].实验室研究与探索,2009,(5):72-74,82.
[3]纪彦星.基于以太网的数据监听方法研究与实现[J].计算机与数字工程,2010,(8):160-164.
[4]李琳,姜春雨.局域网技术与应用[M].清华大学出版社,2004:75-82.
[5]徐丹,黎俊伟,高传善等.基于ETHERNET的网络监听以及ARP欺骗 [J].计算机应用与软件,2005,(11):105-107.
[6]向昕,李志蜀.基于ARP欺骗的网络监听原理及实现[J].四川大学学报(自然科学版),2005,(4):714-718.
[7]喻卓彦.局域网网络监听技术概述[J].信息通信,2011,(2):67-68.
TN
A
1673-0046(2012)4-0149-03