论文部分内容阅读
摘要:嗅探是局域网中的一种监听技术,通过它可以获得网络中的大量信息。该文从网络嗅探的原理入手,分析其潜在安全隐患,并提出了多种检测和防范嗅探监听的方法。
关键词:网络嗅探;混杂模式;加密
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)31-0835-03
The Network Sniffer and Its Countermeasures
YU Peng, XIA Yong-xiang
(The Teaching and Researching Department of Naval Flying Academy, Huludao 125001, China)
Abstract: A lot of information can be acquired by sniffing in LAN. The principle and potential risk of network sniffing analyzed. Several methods to detecting network sniffing and some preventive measures were introduced.
Key words: network sniffing; promiscuous mode; encrypt
网络嗅探器(Sniffer)本来是用于捕获、分析网络中的协议和数据包,帮助管理员管理和监测网络运行状况的一种技术手段,却时常被黑客用来非法侦听、窃取用户信息。由于该技术具有被动性和非干扰性的特点,因而利用网络嗅探来入侵内部网络,窃取网络中的重要信息具有很强的隐蔽性,用常规的办法很难检测其存在。因此,研究其防御措施成为一项重要课题。
1 Sniffer原理
嗅探器的原理其实很简单。它是一种数据链路层的技术,利用的是共享式的网络传输介质。共享即意味着网络中的一台机器可以嗅探到传递给本网段(冲突域)中的所有机器的报文。例如最常见的以太网就是一种共享式的网络技术,以太网卡收到报文后,通过对目的地址进行检查,来判断是否是传递结自己的,如果是,则把报文传递给操作系统;否则,将报文丢弃不进行处理;网卡存在一种特殊的工作模式,在这种工作模式下,网卡不对目的地址进行判断,而直接将他收到的所有报文都传递给操作系统进行处理。这种特殊的工作模式,就称之为混杂模式。网络嗅探器通过将网卡设置为混杂模式,并利用数据链路访问技术来实现对网络的嗅探。实现了数据链路层的访问,我们就可以把嗅探能力扩展到任意类型的数据链路帧,而不光是IP数据报。例如Tcpdump、Netxray就是直接访问数据链路层的常用程序。
2 Sniffer的安全威胁
一般来说,因为网络信息流量很大,存储资源往往显得不足,所以网络黑客喜欢用嗅探器只捕获每个信息包的前200~300B。通常这里面包含用户ID和口令,有了用户的ID和口令后,网络黑客能很容易地进行下一步的入侵,令网络管理员防不胜防。如果某网络被未经授权者设置了嗅探器,那么该网络的安全实际上已遭到严重破坏,特别是LAN接入Internet的情况下,被外来者设置了嗅探器将是很糟糕的事情。任何主机通FTP、Telnet或者Rlogin等方式联到有嗅探器的系统,都将有被截获口令的危险。通常,使用Sniffer是在网络中进行欺骗的开始,它可能造成的危害有以下方面。
2.1 捕获口令
Sniffer可以记录到明文传送的Userid和Passwd,即使网络传送过程中使用了加密的数据,Sniffer记录的数据一样有可能使入侵者想办法算出你的算法。一般Sniffer只嗅探每个报文的前200到300个字节,而用户名和口令都包含在这一部分中。
2.2 能够捕获专用的或者机密的信息
比如金融帐号,许多用户很放心在网上使用自己的信用卡或现金帐号,然而Sniffer可以很轻松截获在网上传送的用户姓名,口令,信用卡号码,截止日期,帐号和 PIN。比如偷窥机密或敏感的信息数据,通过拦截数据包,入侵者可以很方便记录别人之间敏感的信息传送,或者干脆拦截整个的Email会话过程。
2.3 可以用来危害网络邻居的安全,或者用来获取更高级别的访问权限
一旦入侵者得到用户名和口令,必然可以通过信任关系危害网络邻居的安全,既而获取更高级别的访问权限。
2.4 窥探低级的协议信息
通过对底层的信息协议记录,比如记录两台主机之间的网络接口地址、远程网络接口 IP 地址、IP 路由信息和TCP连接的字节顺序号码等。这些信息由入侵者掌握后将对网络安全构成极大的危害,例如通常的IP地址欺骗就是要求准确插入TCP连接的字节顺序号。当然,简单的放置一个嗅探器并将其随便放置将不会起到什么作用。如果将嗅探器放置于被攻击机器,网关或网络附近,可以捕获到很多口令。如果将Sniffer运行在路由器,或有路由器功能的主机上,可以对大量的数据进行监控。Sniffer属第二层次的攻击。通常是攻击者已经进入了目标系统,然后使用Sniffer这种攻击手段,以便得到更多的信息,并捕获网络和其他网络进行身份鉴别的过程。
由于Sniffer是作用在网络基础结构的底层,通常情况下,用户并不直接和该层打交道,有些甚至不知道有这一层存在,所以Sniffer的危害是相当之大的,网络安全分析也表明,嗅探器是网络安全的第二大隐患。
3 如何探测Sniffer的存在
虽然嗅探器是一种被动工作的程序在理论上无法发现,但是根据嗅探器在工作中对主机系统或网络通讯的影响,也可从中判断其是否存在。具体可从以下几个方面入手:
3.1 源路径方法
假设检测主机、被检测主机和任意主机A在同一网段,且主机A不具有转发功能。检测主机构造一IP报文,其中IP头中配置源路由为主机A。将该报文发送到被检测主机。由于该报文必须经过主机A,而主机A不具备转发功能,所以正常情况下被检测主机不能接收到该报文。若检测主机能收到应答报文且TTL值域不变则说明被检测主机运行在混杂模式下。
3.2 主动发错误包比较检测
如果怀疑有嗅探器在工作,可以采用的一种方法是大负载冲击法,即往网上发大量不存在的MAC地址包,由于运行嗅探程序的机器的网卡处于混杂模式,它会接收目的地是任何地址的数据包,这必然导致运行嗅探程序机器的性能下降。管理员可以使用ICMP Echo Delay等方法比较前后该机器的性能的变化,作为推断该机器可能存在嗅探器的依据。更简单地,对所怀疑的机器发送IP正确而MAC地址不存在的ICMP Echo Request包,如果仍收到应答,说明此主机的网卡处于监听模式。
3.3 负载检测
由于网络的信息流量较大,嗅探器工作需要占用大量网络资源,特别是当嗅探器对所有或者很多网络流量同时进行嗅探时,所以可以通过某些带宽控制器,检测网络带宽的分布情况,如果某台机器长时间占用大量带宽,那么这台机器很有可能正在监听。
3.4 采用DNS技术检测网络嗅探行为
正常情况下,局域网中不监听网络通讯的机器一般不会试图反向解析数据包中的IP地址,但是许多攻击者使用的网络嗅探工具都对IP地址进行反向DNS解析,希望根据域名寻找更有价值的主机。根据这个现象,测试时,测试主机首先将自己的工作模式设置为/混杂模式0,然后向网络发送伪造的虚假目标IP地址的数据包,同时监听是否有机器向DNS服务器发送请求解析该虚假目标IP地址的数据包,如果有,则该设备可能工作在嗅探状态。
4 防御Sniffer监听的安全对策
对Sniffer监听的防御一般要据所传输数据的重要性、安全性以及所需的花费来决定采用什么措施。预防措施一般采用以下一种或几种方式:
4.1 对传输信息加密
加密是对付恶意嗅探最好的预防方法,经过加密的数据包即使被捕获,嗅探器也无法理解其中的含义,这样Sniffer就失去了作用。黑客主要用Sniffer来捕获Telnet、FTP、POP3等数据包、因为这些协议以明文在网上传输,我们可以使用一种叫做SSH的安全协议来替代Telnet等容易被Sniffer攻击的协议。SSH又叫Secure Shell,它是一个在应用程序中提供安全通信的协议,建立在客户/服务器模型上。SSH服务器分配的端口是22,连接是通过使用一种来自RSA的算法建立的。在授权完成后,接下来的通信数据用IDEA技术来加密。这种加密方法通常是比较强的,适合于一般密级的通信。对于目前已经出现的可对报文进行解码的嗅探器,如EEYE的IRIS100,由于其解码工作一般无法在实时嗅探中进行而是在事后处理,所以可通过使用一次性密码来防止此类嗅探器的窃听。
4.2 一次性口令技术
如果局域网中的用户在访问局域网中的资源时采用一次性口令技术,那么即使嗅探者得到了这次访问的口令,他也不能利用该口令进一步获取资源。S/key就是这样一种技术,其原理是远程主机已得到一个口令(这个口令不会在不安全的网络中传输),当用户连接时会获得一个“挑战”(challenge)信息,用户将这个信息和口令经过某个算法运算,产生正确的“响应”(response)信息(如果通信双方口令正确的话)。这种验证方式无需在网络中传输口令,而且相同的“挑战/响应”也不会出现两次。
4.3 采用交换式网络拓扑结构
除非使用ARP欺骗,否则Sniffer只对共享式的网络起作用。交换机内部的单片机程序能记住每个接口的MAC地址。因此,在收到数据帧后,根据接口的MAC地址准确地将帧发给目的主机,而不会同时发给其他的主机。所以使用交换机的网络可以从最大程度上防止Sniffer攻击。
4.4 防止ARP欺骗
在交换式环境下Sniffer监听要借助ARP欺骗来实现。ARP欺骗的核心思想就是向目标主机发送伪造的应ARP应答,并使目标主机接收应答中伪造的地址与地址之IP与MAC间的映射对,以此更新目标主机缓存。针对ARP欺骗修改ARP映射表的攻击特点,可以在关键设备如防火墙和边界路由器上设置静态ARP,或者将经常访问的主机相关映射记录设成静态项,保存记录以便校对,并经常删除未用过的不熟悉的映射记录项.这些措施可以减少ARP欺骗的发生。
4.5 网络分割
我们知道,广播一般只存在于同一根网络总线上,所以信息包只能被同一网络块(或网络段)的嗅探器所捕获。我们可以利用网络分割的技术,使得网络进一步划分,减小嗅探器的监听范围,这样网络的其余部分就免受了嗅探器的攻击。当然一个网络块应该是由那些互相可以信任的计算机组成。典型的情况是这些计算机在同一房间或者同一办公室。网络分割有很多优点。一名不道德的雇员安装了嗅探器,由于受到物理限制,他仅仅能够捕获合作伙伴的工作站的信息流。如果发现了在某一分支有嗅探器,那么很容易确定是哪些人所设置。网络分割要解决的问题是确立信任关系,只有在此基础上才能设计网络拓扑。
4.6 虚拟网技术
虚拟网技术主要基于近年发展的交换技术,特别是局域网交换技术。实际上应用虚拟局域网和交换器后,一方面虚拟网外面的节点不能访问虚拟网内部的节点,同时,虚拟局域网之间的通信需要路由,并可提供一定的访问控制,甚至屏蔽某个虚拟局域网;另一方面虚拟网内部的交换技术又使得内部主机之间的通信避免了基于广播的形式,从而整个局域网内部的通信方式都实现了点对点的形式。这就使得网络嗅探从根本上的得到防范,并且随着基于第三层交换技术的成熟和所需硬件价格的下降,虚拟局域网技术将得到广泛的推广。
随着网络安全重要性的不断提高,嗅探作为一种重要的网络安全技术手段,应得到网络管理人员的充分认识,在一些比较敏感的机构,比如军事部门、金融系统,更要时时提防非法数据嗅探。本文所提出的针对嗅探的检测和防御手段仍有一定的局限性,不可能对所有的攻击都起到抑制作用,尤其是当Sniffer和Spoof(欺骗)以及其他技术手段结合在 一起使用时其防范将更为困难,因此对于一个安全性要求严格的部门,在使用技术防范的同时还要加强安全管理,采用妥善的安全策略才能真正把黑客的恶意嗅探拒之门外。
参考文献:
[1] 何焱.网络嗅探及反嗅探的原理及实现[J].现代电子技术,2003,(11):27-28.
[2] 濮青,基于不同网络环境下的嗅探与反嗅探研究[J].计算机工程与设计,2004,25(07):1130-1132.
[3] 张雪芹,顾春华,林家骏.入侵检测技术的挑战与发展[J].计算机工程与设计,2004,25(07):1097-1099.
[4] 龚伟.网络嗅探器的检测及安全对策[J].微计算机信息,2006,22(05):72-73.
关键词:网络嗅探;混杂模式;加密
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)31-0835-03
The Network Sniffer and Its Countermeasures
YU Peng, XIA Yong-xiang
(The Teaching and Researching Department of Naval Flying Academy, Huludao 125001, China)
Abstract: A lot of information can be acquired by sniffing in LAN. The principle and potential risk of network sniffing analyzed. Several methods to detecting network sniffing and some preventive measures were introduced.
Key words: network sniffing; promiscuous mode; encrypt
网络嗅探器(Sniffer)本来是用于捕获、分析网络中的协议和数据包,帮助管理员管理和监测网络运行状况的一种技术手段,却时常被黑客用来非法侦听、窃取用户信息。由于该技术具有被动性和非干扰性的特点,因而利用网络嗅探来入侵内部网络,窃取网络中的重要信息具有很强的隐蔽性,用常规的办法很难检测其存在。因此,研究其防御措施成为一项重要课题。
1 Sniffer原理
嗅探器的原理其实很简单。它是一种数据链路层的技术,利用的是共享式的网络传输介质。共享即意味着网络中的一台机器可以嗅探到传递给本网段(冲突域)中的所有机器的报文。例如最常见的以太网就是一种共享式的网络技术,以太网卡收到报文后,通过对目的地址进行检查,来判断是否是传递结自己的,如果是,则把报文传递给操作系统;否则,将报文丢弃不进行处理;网卡存在一种特殊的工作模式,在这种工作模式下,网卡不对目的地址进行判断,而直接将他收到的所有报文都传递给操作系统进行处理。这种特殊的工作模式,就称之为混杂模式。网络嗅探器通过将网卡设置为混杂模式,并利用数据链路访问技术来实现对网络的嗅探。实现了数据链路层的访问,我们就可以把嗅探能力扩展到任意类型的数据链路帧,而不光是IP数据报。例如Tcpdump、Netxray就是直接访问数据链路层的常用程序。
2 Sniffer的安全威胁
一般来说,因为网络信息流量很大,存储资源往往显得不足,所以网络黑客喜欢用嗅探器只捕获每个信息包的前200~300B。通常这里面包含用户ID和口令,有了用户的ID和口令后,网络黑客能很容易地进行下一步的入侵,令网络管理员防不胜防。如果某网络被未经授权者设置了嗅探器,那么该网络的安全实际上已遭到严重破坏,特别是LAN接入Internet的情况下,被外来者设置了嗅探器将是很糟糕的事情。任何主机通FTP、Telnet或者Rlogin等方式联到有嗅探器的系统,都将有被截获口令的危险。通常,使用Sniffer是在网络中进行欺骗的开始,它可能造成的危害有以下方面。
2.1 捕获口令
Sniffer可以记录到明文传送的Userid和Passwd,即使网络传送过程中使用了加密的数据,Sniffer记录的数据一样有可能使入侵者想办法算出你的算法。一般Sniffer只嗅探每个报文的前200到300个字节,而用户名和口令都包含在这一部分中。
2.2 能够捕获专用的或者机密的信息
比如金融帐号,许多用户很放心在网上使用自己的信用卡或现金帐号,然而Sniffer可以很轻松截获在网上传送的用户姓名,口令,信用卡号码,截止日期,帐号和 PIN。比如偷窥机密或敏感的信息数据,通过拦截数据包,入侵者可以很方便记录别人之间敏感的信息传送,或者干脆拦截整个的Email会话过程。
2.3 可以用来危害网络邻居的安全,或者用来获取更高级别的访问权限
一旦入侵者得到用户名和口令,必然可以通过信任关系危害网络邻居的安全,既而获取更高级别的访问权限。
2.4 窥探低级的协议信息
通过对底层的信息协议记录,比如记录两台主机之间的网络接口地址、远程网络接口 IP 地址、IP 路由信息和TCP连接的字节顺序号码等。这些信息由入侵者掌握后将对网络安全构成极大的危害,例如通常的IP地址欺骗就是要求准确插入TCP连接的字节顺序号。当然,简单的放置一个嗅探器并将其随便放置将不会起到什么作用。如果将嗅探器放置于被攻击机器,网关或网络附近,可以捕获到很多口令。如果将Sniffer运行在路由器,或有路由器功能的主机上,可以对大量的数据进行监控。Sniffer属第二层次的攻击。通常是攻击者已经进入了目标系统,然后使用Sniffer这种攻击手段,以便得到更多的信息,并捕获网络和其他网络进行身份鉴别的过程。
由于Sniffer是作用在网络基础结构的底层,通常情况下,用户并不直接和该层打交道,有些甚至不知道有这一层存在,所以Sniffer的危害是相当之大的,网络安全分析也表明,嗅探器是网络安全的第二大隐患。
3 如何探测Sniffer的存在
虽然嗅探器是一种被动工作的程序在理论上无法发现,但是根据嗅探器在工作中对主机系统或网络通讯的影响,也可从中判断其是否存在。具体可从以下几个方面入手:
3.1 源路径方法
假设检测主机、被检测主机和任意主机A在同一网段,且主机A不具有转发功能。检测主机构造一IP报文,其中IP头中配置源路由为主机A。将该报文发送到被检测主机。由于该报文必须经过主机A,而主机A不具备转发功能,所以正常情况下被检测主机不能接收到该报文。若检测主机能收到应答报文且TTL值域不变则说明被检测主机运行在混杂模式下。
3.2 主动发错误包比较检测
如果怀疑有嗅探器在工作,可以采用的一种方法是大负载冲击法,即往网上发大量不存在的MAC地址包,由于运行嗅探程序的机器的网卡处于混杂模式,它会接收目的地是任何地址的数据包,这必然导致运行嗅探程序机器的性能下降。管理员可以使用ICMP Echo Delay等方法比较前后该机器的性能的变化,作为推断该机器可能存在嗅探器的依据。更简单地,对所怀疑的机器发送IP正确而MAC地址不存在的ICMP Echo Request包,如果仍收到应答,说明此主机的网卡处于监听模式。
3.3 负载检测
由于网络的信息流量较大,嗅探器工作需要占用大量网络资源,特别是当嗅探器对所有或者很多网络流量同时进行嗅探时,所以可以通过某些带宽控制器,检测网络带宽的分布情况,如果某台机器长时间占用大量带宽,那么这台机器很有可能正在监听。
3.4 采用DNS技术检测网络嗅探行为
正常情况下,局域网中不监听网络通讯的机器一般不会试图反向解析数据包中的IP地址,但是许多攻击者使用的网络嗅探工具都对IP地址进行反向DNS解析,希望根据域名寻找更有价值的主机。根据这个现象,测试时,测试主机首先将自己的工作模式设置为/混杂模式0,然后向网络发送伪造的虚假目标IP地址的数据包,同时监听是否有机器向DNS服务器发送请求解析该虚假目标IP地址的数据包,如果有,则该设备可能工作在嗅探状态。
4 防御Sniffer监听的安全对策
对Sniffer监听的防御一般要据所传输数据的重要性、安全性以及所需的花费来决定采用什么措施。预防措施一般采用以下一种或几种方式:
4.1 对传输信息加密
加密是对付恶意嗅探最好的预防方法,经过加密的数据包即使被捕获,嗅探器也无法理解其中的含义,这样Sniffer就失去了作用。黑客主要用Sniffer来捕获Telnet、FTP、POP3等数据包、因为这些协议以明文在网上传输,我们可以使用一种叫做SSH的安全协议来替代Telnet等容易被Sniffer攻击的协议。SSH又叫Secure Shell,它是一个在应用程序中提供安全通信的协议,建立在客户/服务器模型上。SSH服务器分配的端口是22,连接是通过使用一种来自RSA的算法建立的。在授权完成后,接下来的通信数据用IDEA技术来加密。这种加密方法通常是比较强的,适合于一般密级的通信。对于目前已经出现的可对报文进行解码的嗅探器,如EEYE的IRIS100,由于其解码工作一般无法在实时嗅探中进行而是在事后处理,所以可通过使用一次性密码来防止此类嗅探器的窃听。
4.2 一次性口令技术
如果局域网中的用户在访问局域网中的资源时采用一次性口令技术,那么即使嗅探者得到了这次访问的口令,他也不能利用该口令进一步获取资源。S/key就是这样一种技术,其原理是远程主机已得到一个口令(这个口令不会在不安全的网络中传输),当用户连接时会获得一个“挑战”(challenge)信息,用户将这个信息和口令经过某个算法运算,产生正确的“响应”(response)信息(如果通信双方口令正确的话)。这种验证方式无需在网络中传输口令,而且相同的“挑战/响应”也不会出现两次。
4.3 采用交换式网络拓扑结构
除非使用ARP欺骗,否则Sniffer只对共享式的网络起作用。交换机内部的单片机程序能记住每个接口的MAC地址。因此,在收到数据帧后,根据接口的MAC地址准确地将帧发给目的主机,而不会同时发给其他的主机。所以使用交换机的网络可以从最大程度上防止Sniffer攻击。
4.4 防止ARP欺骗
在交换式环境下Sniffer监听要借助ARP欺骗来实现。ARP欺骗的核心思想就是向目标主机发送伪造的应ARP应答,并使目标主机接收应答中伪造的地址与地址之IP与MAC间的映射对,以此更新目标主机缓存。针对ARP欺骗修改ARP映射表的攻击特点,可以在关键设备如防火墙和边界路由器上设置静态ARP,或者将经常访问的主机相关映射记录设成静态项,保存记录以便校对,并经常删除未用过的不熟悉的映射记录项.这些措施可以减少ARP欺骗的发生。
4.5 网络分割
我们知道,广播一般只存在于同一根网络总线上,所以信息包只能被同一网络块(或网络段)的嗅探器所捕获。我们可以利用网络分割的技术,使得网络进一步划分,减小嗅探器的监听范围,这样网络的其余部分就免受了嗅探器的攻击。当然一个网络块应该是由那些互相可以信任的计算机组成。典型的情况是这些计算机在同一房间或者同一办公室。网络分割有很多优点。一名不道德的雇员安装了嗅探器,由于受到物理限制,他仅仅能够捕获合作伙伴的工作站的信息流。如果发现了在某一分支有嗅探器,那么很容易确定是哪些人所设置。网络分割要解决的问题是确立信任关系,只有在此基础上才能设计网络拓扑。
4.6 虚拟网技术
虚拟网技术主要基于近年发展的交换技术,特别是局域网交换技术。实际上应用虚拟局域网和交换器后,一方面虚拟网外面的节点不能访问虚拟网内部的节点,同时,虚拟局域网之间的通信需要路由,并可提供一定的访问控制,甚至屏蔽某个虚拟局域网;另一方面虚拟网内部的交换技术又使得内部主机之间的通信避免了基于广播的形式,从而整个局域网内部的通信方式都实现了点对点的形式。这就使得网络嗅探从根本上的得到防范,并且随着基于第三层交换技术的成熟和所需硬件价格的下降,虚拟局域网技术将得到广泛的推广。
随着网络安全重要性的不断提高,嗅探作为一种重要的网络安全技术手段,应得到网络管理人员的充分认识,在一些比较敏感的机构,比如军事部门、金融系统,更要时时提防非法数据嗅探。本文所提出的针对嗅探的检测和防御手段仍有一定的局限性,不可能对所有的攻击都起到抑制作用,尤其是当Sniffer和Spoof(欺骗)以及其他技术手段结合在 一起使用时其防范将更为困难,因此对于一个安全性要求严格的部门,在使用技术防范的同时还要加强安全管理,采用妥善的安全策略才能真正把黑客的恶意嗅探拒之门外。
参考文献:
[1] 何焱.网络嗅探及反嗅探的原理及实现[J].现代电子技术,2003,(11):27-28.
[2] 濮青,基于不同网络环境下的嗅探与反嗅探研究[J].计算机工程与设计,2004,25(07):1130-1132.
[3] 张雪芹,顾春华,林家骏.入侵检测技术的挑战与发展[J].计算机工程与设计,2004,25(07):1097-1099.
[4] 龚伟.网络嗅探器的检测及安全对策[J].微计算机信息,2006,22(05):72-73.