1、11.1 11.1 网络协议分析及嗅探原理网络协议分析及嗅探原理11.2 11.2 常用嗅探器常用嗅探器11.3 11.3 网络嗅探防范技术网络嗅探防范技术第11章 网络嗅探技术本节内容本节内容 11.1.1 11.1.1 嗅探技术与嗅探器嗅探技术与嗅探器 11.1.2 11.1.2 通信协议分析通信协议分析 11.1.3 11.1.3 嗅探原理嗅探原理 11.1.4 11.1.4 简单的嗅探技术简单的嗅探技术 11.1 网络协议分析及嗅网络协议分析及嗅 探原理探原理11.1.1 11.1.1 嗅探技术与嗅探器嗅探技术与嗅探器 嗅探器(Sniffer)可以理解为一个安装在计算机上的窃听设备,它
2、可以用来窃听计算机在网络上所产生的众多的信息。一部电话的窃听装置,可以用来窃听双方通话的内容,而计算机网络嗅探器则可以窃听计算机程序在网络上发送和接收到的数据。嗅探器是利用计算机的网络接口截获目的地及其他计算机数据报文的一种技术。它工作在网络的最底层,把网络传输的全部数据记录下来。嗅探器可以帮助网络管理员查找网络漏洞和检测网络性能,嗅探器可以分析网络的流量,以便找出所关心的网络中潜在的问题。不同传输介质的网络可监听性是不同的。一般来说,以太网被监听的可能性比较高,因为以太网是一个广播型的网络;FDDI Token被监听的可能性也比较高,尽管它并不是一个广播型网络,但带有令牌的那些数据包在传输过
3、程中,平均要经过网络上一半的计算机;微波和无线网被监听的可能性同样比较高,因为无线电本身是一个广播型的传输媒介,弥散在空中的无线电信号可以被很轻易的截获。一般情况下,大多数的嗅探器至少能够分析下面的协议:l标准以太网协议;lTCP/IP;lIPX;lDECNET;lFDDI Token;l微波和无线网协议。实际应用中的嗅探器分软、硬两种。软件嗅探器便宜易于使用,缺点是往往无法抓取网络上所有的传输数据(比如碎片),也就无法全面了解网络的故障和运行情况;硬件嗅探器通常称为协议分析仪,它的优点恰恰是软件嗅探器所欠缺的,但是价格昂贵。目前使用的嗅探器仍是以软件为主。嗅探器捕获真实的网络报文。嗅探器通过
4、将其置身于网络接口来达到这个目的。例如:将以太网卡设置成混杂模式。数据在网络上是以帧(Frame)为单位传输的。帧是通过特定的网络驱动程序进行传送的,然后通过网卡发送到网线上。通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。就是在这个传输和接收的过程中,每一个在LAN上的工作站都有其硬件地址。这些地址唯一地表示着网络上的机器。当用户发送一个报文时,这些报文就会发送到LAN上所有可用的机器。在一般情况下,网络上所有的机器都可以“侦听”到通过的流量,但对不属于自己的报文则不予响应。如果某工作站的网络接口处于混杂
5、模式,那么它就可以捕获网络上所有的报文和帧,如果一个工作站被配置成这样的方式,它就是一个嗅探器。这也是嗅探器会造成安全方面的问题的原因。通常使用嗅探器的入侵者,都必须拥有基点用来放置嗅探器。对于外部入侵者来说,能通过入侵外网服务器、往内部工作站发送木马等获得所需信息,然后用基点来放置其嗅探器,而内部破坏者就能够直接获得嗅探器的放置点,比如使用附加的物理设备作为嗅探器。嗅探器可能造成的危害有:l嗅探器能够捕获口令;l能够捕获专用的或者机密的信息;l可以用来危害网络邻居的安全,或者用来获取更高级别的访问权限;l分析网络结构,进行网络渗透。11.1.2 11.1.2 通信协议分析通信协议分析 1.1
6、.与嗅探技术有关的网络通信设备与嗅探技术有关的网络通信设备 中继器:中继器的主要功能是终结一个网段的信号并在另一个网段再生该信号,起到信号放大和转发的作用,中继器工作在物理层上。网桥:网桥使用MAC物理地址实现中继功能,可以用来分隔网段或连接部分异种网络,网桥工作在数据链路层。路由器:路由器工作在网络层,主要负责数据包的路由寻径,也能处理物理层和数据链路层上的工作。网关:主要工作在网络第四层以上,主要实现收敛功能及协议转换,不过很多时候网关都被用来描述任何网络互连设备。2.TCP/IP 2.TCP/IP与以太网与以太网 以太网和TCP/IP可以说是相互相成的,可以说两者的关系几乎是密不可分,以
7、太网在一二层提供物理上的连线,而TCP/IP工作在上层,使用32位的IP地址,以太网则使用48位的MAC地址,两者间使用ARP和RARP协议进行相互转换。载波监听/冲突检测(CSMA/CD)技术被普遍的使用在以太网中,所谓载波监听是指在以太网中的每个站点都具有同等的权利,在传输自己的数据时,首先监听信道是否空闲,如果空闲,就传输自己的数据,如果信道被占用,就等待信道空闲。而冲突检测则是为了防止发生两个站点同时在网络发送数据而产生的冲突。以太网采用广播机制,所有与网络连接的工作站都可以看到网络上传递的数据。3.TCP/IP3.TCP/IP通信通信 在TCP/IP通信中,网络接口层直接与硬件地址相
8、连接,网间网层与IP地址相连接,传输层与TCP接口相连接,应用层则是面向用户的应用程序接口,如FTP、TELNET等接口。一个典型的在以太网中客户与服务器使用TCP/IP协议的通信如图11-1所示。FTPTCP端口IP 地址硬件地址电缆FTP服务器TCP端口IP 地址硬件地址电缆应用层传输层网络接口层网间网层物理网络客户服务器用户进程内核中的协议栈以太网驱动程序内核中的协议栈 物理网络11.1.3 11.1.3 嗅探原理嗅探原理 我们知道,计算机所传送的数据是大量的二进制数据。因此,一个网络窃听程序也必须使用特定的网络协议来分解嗅探到的数据,嗅探器也就必须能够识别出哪个协议对应于这个数据片断,
9、只有这样才能够进行正确的解码。网络嗅探器比起电话窃听器来说,有他独特的优势:很多的计算机网络采用的是“共享媒体”。几乎可以在任何连接着的网络上直接窃听到你同一掩码范围内的计算机网络数据。我们称这种窃听方式为“基于混杂模式的嗅探”(promiscuous mode)。我们知道,在以太网中,所有的通讯都是广播方式,也就是说通常在同一个网段的所有网络接口都可以接收在物理媒体上传输的所有数据,而每一个网络接口都有一个唯一的硬件地址,这个硬件地址也就是网卡的MAC地址,MAC使用的是48比特的地址,这个地址用来表示网络中的每一个设备,每块网卡上的MAC地址都是不同的。在硬件地址和IP地址间使用ARP和R
10、ARP协议进行相互转换。在正常的情况下,一个网络接口应该只响应下述的两种数据帧来完成的:l与自己硬件地址相匹配的数据帧;l发向所有机器的广播数据帧。网卡接收到传输来的数据,网卡内的单片程序接收数据帧的目的MAC地址,根据计算机上的网卡驱动程序设置的接收模式判断该不该接收,认为该接收就接收后产生中断信号通知CPU,认为不该接收就丢掉不管,所以不该接收的数据在网卡处就截断了,计算机根本就不知道。CPU得到中断信号产生中断,操作系统就根据网卡的驱动程序设置的网卡中断程序地址调用驱动程序接收数据,驱动程序接收数据后放入信号堆栈让操作系统处理。而对于网卡来说一般有四种接收模式:l广播方式:该模式下的网卡
11、能够接收网络中的所有广播信息;l组播方式:设置在该模式下的网卡能够接收组播数据;l直接方式:在这种模式下,只有目的网卡才能接收该数据;l混杂模式:在这种模式下的网卡能够接收一切通过它的数据,而不管该数据是否是传给它的。与HUB只是简单地把所接收到的信号通过所有端口重复发送出去不同,Switch却可以检查每一个收到的数据包,并对数据包进行相应的处理。在Switch内保存着每一个网段上所有结点的物理地址,只允许必要的网络流量通过Switch。举例来说,当Switch接收到一个数据包之后,根据自身保存的网络地址表检查数据包内包含的发送方和接收方地址。如果接收方位于发送方网段内,该数据包就会被Swit
12、ch丢弃,不能通过交换机传送到其它的网段;如果接收方和发送方位于两个不同的网段,该数据包就会被Switch转发到目标网段。这样,通过交换机的过滤和转发,可以有效避免网络广播风暴,减少误包和错包的出现。通过前面的学习,网卡接收信息技术可总结如下:l在以太网中是基于广播方式传送数据的,也就是说,所有的物理信号都要经过连接在以太网段上的机器;l网卡可以置于混杂模式(promiscuous),在这种模式下工作的网卡能够接收到一切通过它的数据,而不管实际上数据的目的地址是不是自己的。这实际上就是我们Sniff工作的基本原理:让网卡接收一切能接收的数据。我们来看一个简单的例子,如图11-2所示,机器A、B
13、、C与集线器HUB相连接,集线器HUB通过路由器Router访问外部网络。值得注意的一点是机器A、B、C使用一个普通的HUB连接的,不是用Switch,也不是用Router,使用Switch和Router的情况要比这复杂得多。假设机器A上的管理员为了维护机器C,使用了一个FTP命令向机器C进行登录,那么在这个用HUB连接的网络里数据走向过程是这样的。首先机器A上的管理员输入的登陆机器C的FTP命令经过应用层FTP协议、传输层TCP协议、网络层IP协议、数据链路层上的以太网驱动程序一层一层的包裹,最后送到了物理层所连接的网线上。如图11-3。接下来数据帧送到了HUB上,再由HUB向每一个接点广播
14、由机器A发出的数据帧,机器B接收到由HUB广播发出的数据帧,并检查在数据帧中的地址是否和自己的地址相匹配,发现不是发向自己的数据后就把这数据帧丢弃,不予理睬。而机器C也接收到了数据帧,并在比较之后发现是发现自己的数据帧,接下来就对这数据帧进行接收和分析处理。在这个简单的例子中,机器B上的管理员如果很好奇,想知道究竟登陆机器C上FTP口令是什么,要做的事情是很简单的,仅仅需要把自己机器上的网卡置于混杂模式,即可接收数据,接着对接收到的数据帧进行分析,从而可得到包含在数据帧中所想知道的信息。FTP命令应用层FTP协议传输层TCP协议网络层IP协议网络接口层以太网卡驱动程序11.1.4 11.1.4
15、 简单嗅探技术简单嗅探技术 在这一节中,我们介绍几种常用的嗅探技术。1.ARP Spoof1.ARP Spoof(ARPARP欺骗)欺骗)ARP Spoof攻击的根本原理是因为计算机中维护着一个ARP高速缓存,并且这个ARP高速缓存是随着计算机不断的发出ARP请求和收到ARP响应而不断的更新的,ARP高速缓存的目的是把机器的IP地址和MAC地址相互映射(绑定)。可以使用ARP命令来查看自己的 ARP 高速缓存。现在设想一下,一个Switch工作在数据链路层,根据MAC地址来转发他所接收的数据包,而计算机维护的ARP高速缓存却是动态的。在这种情况下,会发生什么样的事情呢?为了便于分析,我们为三台
16、计算机统一分配IP地址。2.MAC Flooding 2.MAC Flooding(MACMAC地址溢出)地址溢出)在上面我们曾经提到过,Switch之所以能够由数据包中目的MAC地址判断出他应该把数据包发送到那一个端口上是根据自身维护的一张ARP地址表。这张地址表可能是动态的也可能是静态的,这要看Switch的厂商和Switch的型号来定,对于某些Switch来说,他维护的是一张动态的地址表,并且地址表的大小是有上限的,比如3com Superstack Switch 3300就是这样一种Switch,我们可以通过发送大量错误的地址信息而使Switch维护的地址表“溢出”,从而使他变成广播模
17、式来达到我们要Sniff机器A与机器C之间的通信的目的。3.Fake the MAC address3.Fake the MAC address(伪造(伪造MACMAC地址)地址)伪造MAC地址也是一种常用的办法,不过这要基于你网络内的Switch是动态更新其地址表,这实际上和我们上面说到的 ARP Spoof 有些类似,只不过现在是想要Switch相信你,而不是要机器A相信你。因为Switch是动态更新其地址表的。其关键技术是需要向Switch发送伪造过的数据包,其中源MAC地址对应的是机器C的MAC地址,现在Switch就把机器C和你的端口对应起来了。4.ICMP Router Adver
18、tisements 4.ICMP Router Advertisements(ICMPICMP路由通告)路由通告)这主要是由ICMP路由器发现协议(IRDP)的缺陷引起的,在Windows 95/98/2000及SunOS、Solaris 2.6等系统中,都使用了IRDP协议,SunOS系统只在某些特定的情况下使用该协议,而Windows 95/98和Windows 2000都是默认的使用IRDP协议。IRDP协议的主要内容就是告诉人们谁是路由器,如果一个黑客利用IRDP宣称自己是路由器的情况是很糟糕的,因为所有相信黑客的请求的机器都会把所有的数据都发送给黑客所控制的机器。5.ICMP Red
19、irect5.ICMP Redirect(ICMPICMP重定向)重定向)所谓ICMP重定向,就是指告诉机器向另一个不同的路由发送他的数据包,ICMP重定向通常使用在这样的场合下,假设A与B两台机器分别位于同一个物理网段内的两个逻辑子网内,而A和B都不知道这一点,只有路由器知道,当A发送给B的数据到达路由器的时候,路由器会向A送一个ICMP重定向包,将B的真实地址告诉A,这样,A就可以和B直接通信了。而一个黑客完全可以利用这一点来进行攻击,使得A发送给B的数据直接发送给黑客。12.2 常用嗅探器常用嗅探器本节内容 11.2.1 Sniffit 11.2.2 Snoop 11.2.3 TCPdu
20、mp 11.2.4 Dsniff10.2.1 10.2.1 SniffitSniffit Sniffit可以运行在Solaris、SGI和Linux等平台上,由Lawrence Berkeley Laboratory 实验室开发的一个免费的网络监听软件。而Sniffit PRO版支持Windows NT,也支持WINDOWS 2000。使用方法:-a:以ASCII形式将监听的结果输出。-A:在进行记录时,所有不可打印的字符都可代替。-b:等同于同时使用参数-t&-s。-d:将监听所得内容以十六进制方式显示在当前终端。-p:记录连接到的包,0为所有端口。缺省为0。-P protocol:选择要检
21、查的协议,缺省为TCP。可能的选择有IP、TCP、ICMP、UDP和他们的组合。-s:指定Sniffer 检查从 发送的数据包。-t 指定Sniffer 检查发送到的数据包。-i:进入交互模式。-l:设定数据包大小,default(缺省值)是300字节。想要记录从主机210.50.30.100上的用户口令:sniffit:/#sniffit p 23-t 210.50.30.100想要记录到主机210.50.30.100的ftp服务:sniffit:/#sniffit p 21 l 0 t 210.50.30.100记录所有发出和发往主机210.50.30.100的电子邮件信息:sniffit
22、:/#sniffit-p 25-l 0-b t 210.50.30.100&或者sniffit:/#sniffit-p 25-l 0;-b;-s;210.50.30.100&想要使用有菜单的界面:sniffit:/#sniffit i网络出现一些错误,想要查看控制消息:sniffit:/#sniffit p icmp b s 210.50.30.100 将口令记录在以nnn开始的文件中,可以用cat nnn*来查看:sniffit:/#sniffit p 23 A.-t 210.50.30.100 或者sniffit:/#sniffitp23A- 下面是运行sniffit的一个例子:#snif
23、fit a A.p 23 t 11.22.33.入口参数的设置非常简单,为:-a接收所有信息;-A将不可打印字符用“.”代替;-p监听端口23;-t 目标地址在11.22.33 子网范围(可以只监听一台主机或者是源主机)。使用-s 参数可以指定监听的源主机。网络监听程序的人口参数其实非常简单,只要具有初步的网络知识便可以正确地使用它们。以下是监听到的部分结果:Packet D rom-1P.port-to P.port:112233411028-1122331423 E.350.!(.K.2P.”/.:.vt100.出现vtl00的字样,是使用Telnet服务时,源主机与目标主机进行终端类型协
24、商,在这一阶段源主机告诉目标主机自己使用的终端类型,这是一次远程终端服务的开始。在这之后,很可能就会传输用户的登录名和口令字。这里很清楚,使用端口1028的是客户端,而使用端口23的是服务器端。10.2.2 10.2.2 SnoopSnoopSnoop默认情况安装在Solaris下,是一个用于显示网络交通的程序。-a:Listen to packets on audio -d device:settable to le,ie,bf,tr -s snaplen:Truncate packets -c count:Quit after count packets -P:Turn OFF promi
25、scuous mode -D:Report dropped packets -S:Report packet size -i file:Read previously captured packets -o file:Capture packets in file -n file:Load addr-to-name table from file -N:Create addr-to-name table -t r|a|d:Time:Relative,Absolute or Delta -v:Verbose packet display -V:Show all summary lines -p
26、first,last:Select packet(s)to display -x offset,length:Hex dump from offset for length -C:Print packet filter code 10.2.3 10.2.3 TCPdumpTCPdump 1.TCPdump 1.TCPdump命令格式命令格式 TCPdump采用命令行方式,它的命令格式为:TCPdump -adeflnNOpqStvx -c 数量 -F 文件名 -i 网络接口 -r 文件名-s snaplen -T 类型 -w 文件名 表达式 2.2.TCPdumpTCPdump的选项的选项-a
27、将网络地址和广播地址转变成名字;-d将匹配信息包的代码以人们能够理解的汇编格式给出;-dd 将匹配信息包的代码以c语言程序段的格式给出;-ddd将匹配信息包的代码以十进制的形式给出;-e在输出行打印出数据链路层的头部信息;-f将外部的Internet地址以数字的形式打印出来;-l使标准输出变为缓冲行形式;-n不把网络地址转换成名字;-t在输出的每一行不打印时间戳;-v输出一个稍微详细的信息;-vv输出详细的报文信息;-c在收到指定的包的数目后,TCPdump就会停止;-F从指定的文件中读取表达式,忽略其它的表达式;-i指定监听的网络接口;-r从指定的文件中读取包(这些包一般通过-w选项产生);
28、-w直接将包写入文件中,并不分析和打印出来;-T将监听到的包直接解释为指定类型的报文,常见的类型有rpc和snmp。3.TCPdump的表达式 表达式是一个条件表达式,TCPdump利用它作为过滤报文的条件,如果一个报文满足表达式的条件,则这个报文将会被捕获。如果没有给出任何条件,则网络上所有的信息包将会被截获。在表达式中一般有如下几种类型的关键字,第一种是关于类型的关键字,主要包括host,net,port,例如host 210.27.48.2,指明210.27.48.2是一台主机,net 202.0.0.0 指明202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指
29、定类型,缺省的类型是host。第二种是确定传输方向的关键字,主要包括src,dst,dst or src,dst and src,这些关键字指明了传输的方向。举例说明,src 210.27.48.2,指明IP包中源地址是210.27.48.2,dst net 202.0.0.0指明目的网络地址是202.0.0.0。如果没有指明方向关键字,则缺省是src or dst关键字。第三种是协议的关键字,主要包括fddi,ip,arp,rarp,tcp,udp等类型。fddi指明是在FDDI(分布式光纤数据接口网络)上的特定的网络协议,实际上它是“ether”的别名,FDDI和Ether具有类似的源地址
30、和目的地址,所以可以将FDDI协议包当作Ether的包进行处理和分析。其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则TCPdump将会监听所有协议的信息包。除了这三种类型的关键字之外,其他重要的关键字如下:gateway,broadcast,less,greater,还有三种逻辑运算,“非”运算是“not”和“!”;“与”运算是“and”和“&”;“或”运算是“or”和“|”。例:#TCPdump host 210.40.10.133 将监听IP地址为210.40.0.133的机器的通话。#TCPdump host 210.40.10.133 and 210.40.10
31、.135将监听IP地址为210.40.0.133及IP地址为210.40.10.135的机器的通话。#TCPdump tcp port 23 host 210.40.10.133将监听IP地址为210.40.10.133的机器的23端口的通话。10.2.4 10.2.4 DsniffDsniff Dsniff不仅仅是一个sniff,在他的整个套件包中,包含了很多其它有用的工具,如arpspoof,dnsspoof,macof,tcpkill等等,比Sniff的手段更加的多样和复杂化。Dsniff是由DugSong开发的。目前Dsniff支持OpenBSD(i386)、Redhat Linux(
32、i386)和Solaris(sparc)。并且在FreeBSD、Debian Linux、Slackware Linux、AIX、和HP-UX上也能运转得很好。但是Dsniff需要几个其他的第三方软件进行支持,他们分别是Berkeley DB、OpenSSL、libpcap、libnet、libnids。11.3 网络嗅探防范技术网络嗅探防范技术本节内容 11.3.1 如何在网络上发现Sniffer11.3.2 Sniffer的防范措施11.3.1 11.3.1 如何在网络上发现如何在网络上发现SnifferSniffer 检测嗅探器可以采用检测混杂模式网卡的工具。由于嗅探器需要将网络中入侵的
33、网卡设置为混杂模式才能工作,能够检测混杂模式网卡的AntiSniff是一个工具。证明你的网络被嗅探有三种方法:1.1.网络通讯丢包率非常高网络通讯丢包率非常高 通过一些网管软件,可以看到信息包传送情况,最简单是ping命令。它会告诉你掉了百分之多少的包。如果你的网络结构正常,而又有2030数据包丢失以致数据包无法顺畅的流到目的地。就有可能有人在监听,这是由于嗅探器拦截数据包导致的。2.2.网络带宽出现反常网络带宽出现反常 通过某些带宽控制器,可以实时看到目前网络带宽的分布情况,如果某台机器长时间的占用了较大的带宽,这台机器就有可能在监听。应该也可以察觉出网络通讯速度的变化。对于SunOS、和其
34、它BSD Unix系统可以使用lsof来检测嗅探器的存在。lsof最初的设计目地并非为了防止嗅探器入侵,但因为在嗅探器入侵的系统中,嗅探器会打开其输出文件,并不断传送信息给该文件,这样该文件的内容就会越来越大。如果利用lsof发现有文件的内容不断的增大,我们就怀疑系统被嗅探。因为大多数嗅探器都会把截获的“TCP/IP”数据写入自己的输出文件中。这里可以用:ifconfig le0检查端口.然后用:/usr/sbin/lsof testvi test 或 grep 打开的端口号 检测文件大小的变化。如果你确信有人接了嗅探器到自己的网络上,可以找一些验证的工具。这种工具称为时域反射计量器(Time
35、DomaioReflectometer,TDR)。TDR对电磁波的传播和变化进行测量。将一个TDR连接到网络上,能够检测到未授权的获取网络数据的设备。3.3.查看进程查看进程在Windows下,按Ctrl+Alt+Del键,查看“应用程序”、“进程”和“用户”项,若发现可疑的程序、进程和用户,则可怀疑机器被sniffer,或是被病毒侵袭,或是正在被黑客攻击。11.3.2 11.3.2 SnifferSniffer的防范措施的防范措施 嗅探器通常是难以被发现的,因为它是被动的程序,一个老练的攻击者可以轻易通过破坏日志文件来掩盖信息。它们并不会给别人留下进行核查的尾巴。完全主动的解决方案很难找到,
36、我们可以采用一些被动的防御措施:l安全的拓扑结构;l会话加密;l用静态的ARP或者IPMAC对应表代替动态的ARP。1.1.安全的拓扑结构安全的拓扑结构 嗅探器只能在当前网段上进行数据捕获。这就意味着,将网络分段工作进行得越细,嗅探器能够收集的信息就越少。但是,除非你的公司是一个ISP,或者资源相对不受限制,否则这样的解决方案需要付出很大的代价。网络分段需要昂贵的硬件设备。有三种网络设备是嗅探器不可能跨过的:交换机、路由器、网桥。我们可以通过灵活的运用这些设备来进行网络分段。大多数早期建立的内部网络都使用HUB来连接多台工作站,这就为网络中数据的泛播(数据向所有工作站流通),让嗅探器能顺利地工
37、作提供了便利。普通的嗅探器程序只是简单地进行数据的捕获,因此需要杜绝网络数据的泛播。随着交换机的价格下降,网络改造变得可行且很必要了。不使用HUB而用交换机来连接网络,就能有效地避免数据进行泛播,也就是避免让一个工作站接收与之不相关的数据。对网络进行分段,比如在交换机上设置VLAN,使得网络隔离不必要的数据传送。一般可以采用20个工作站为一组,这是一个比较合理的数字。然后,每个月人为地对每个网段进行检测(也可以每个月采用MD5随机地对某个网段进行检测)。网络分段只适应于中小的网络。如果有一个500个工作站的网络,分布在50个以上的部门中,若要对其完全的分段的话,成本上是很高的。2.2.会话加密
38、会话加密 会话加密提供了另外一种解决方案。不用特别地担心数据被嗅探,而是要想办法使得嗅探器不认识嗅探到的数据。这种方法的优点是明显的:即使攻击者嗅探到了数据,这些数据对他也是没有用的。S/key和其它一次性口令技术一样,使窃听帐号信息失去意义。S/key的原理是远程主机已得到一个口令(这个口令不会在不安全的网络中传输),当用户连接时会获得一个“挑战”(challenge)信息,用户将这个信息和口令经过某种算法运算,产生正确的“响应”(response)信息(如果通讯双方口令正确的话)。这种验证方式无需在网络中传输口令,而且相同的“挑战/响应”也不会出现两次。S/key可从以下网址得到:ftp:
39、/ 该措施主要是进行渗透嗅探的防范,采用诸如ARP欺骗手段能够让入侵者在交换网络中顺利完成嗅探。网络管理员需要对各种欺骗手段进行深入了解,比如嗅探中通常使用的ARP欺骗,主要是通过欺骗进行ARP动态缓存表的修改。在重要的主机或者工作站上设置静态的ARP对应表,比如Windows2000/XP系统使用ARP命令设置,在交换机上设置静态的IP-MAC对应表等,防止利用欺骗手段进行嗅探的手法。(1)本机MAC地址和IP地址的查找 在DOS命令窗口下,用ipconfig-all命令查找本机的MAC地址和IP地址。如图11-4所示。(2)ARP命令的用法ARP a -s-d 参数说明:-a 显示ARP命令帮助 -s 绑定一个MAC地址和IP地址 -d 删除一个绑定 例:arp s 10.1.23.31 00-0E-A6-B4-32-84