1、关于窃听与反窃听技术的分析第 24 卷第 3 期2003 年 3 月小型微型计算机系统MINIMICR0SYSTEMSVo1.24NO.3Mar.2003关于窃听与反窃听技术的分析庄春兴彭奇志(江南大学信息工程学院,江苏无锝 214036)摘要:窃听与反窃听是在实际工作中经常会遇到的网络安全方面的技术问题 .本文介绍了网络窃听原理及窃听程序的设计方法,分析了防范窃听的几种措施.并给出了检测窃听程序的几种方案.关键词:网络窃听;网络嗅探;混杂模式;TCP/IP;MAC;ARP;ICMP中圈分类号:TP393 文献标识码:A 文章编号:10001220(2003)03060903AnAnalysi
2、sofSniffingandAnti-sniffingZHUANGChunxing,PENGQizhi(SouthenYangtzeUniversityNetworkCenter,Wuxi214036,China)Abstract:Sniffingandanti-sniffingareverydifficultproblemsofnetworksecuritythatweencounter.Inthispaper,anintroductiontothepacketsnifferanditsdesignisgiven.Somemethodsofhowtodefendnetworkagainstp
3、acketsnif-fersareanalysed,severalmethodsofdetectingpacketsniffersareproposedalso.Keywords:packetsniffer;promiciousmode;TCP/IP;MAC;ARP1 引言网络监听(或嗅探) 是通过监听和分析网络中传输的数据包来获得需要的信息.网络监听技术一般可用于网络管理及网络窃听正反两个方面.具体讲它有如下用途:1)分析网络故障;2)记录网络通信日志,查看网络安全状况.3)把网上数据进行转换,解读,用于读取网上的通信状况;4)窃听网络中的用户名及口令,黑客用它可以对相关网络进行入侵.本文就
4、网络窃听原理及防范和检测窃听程序的方法作一些探讨.2 网络窃听工作原理以太网上,所有的主机都共享一条网络总线.这意味着所有的主机都可以“听到“ 总线上的通信数据 ,因此以太网硬件建立了一个“过滤器“, 它可以丢弃不属于自己的数据.只接收送给自己的数据.“过滤器是通过 MAC 地址实现的,即只有当数据包中目的地址与自己的 MAC 地址相同,主机才接收该数据包,否则丢弃该包.2.1 以太网帧结构及窃听原理以太网的 MAC 层是根据 IEEE802.3 标准设计的,MAC地址为 6 字节的数据,前 3 字节代表网卡的供应商,后三字节是供应商定义的序列号,除非供应商搞错,序列号绝不会重复,这保证了世界
5、上没有地址相同的两块网卡.以太网通信时的帧结构由以下几个部分组成:帧头(Preamble),帧的起始定界标志 (SFD-StartofFrameDelimiter),目的地址(Destination),源地址(Source),数据长度(Lenth),数据(Data),帧校验序列(FCS).62b2b6B6B2B46Bl500B4B图 1 标准 IEEE802.3 帧结构Fig.1ThestandardframestructureofIEEE802.3除帧头,帧起始定界符和帧校验字段由硬件自动填加外,其它字段必须由程序指定.在一个实际的系统中,数据的收发是由网卡来完成的.网卡接收到传输来的数据,
6、得知数据帧的目的 MAC 地址,根据计算机上的网卡驱动程序设置的接收模式及该地址值判断该不该接收,认为该接收就产生中断信号通知 CPU,认为不该接收就丢掉不管,所以是否接收数据由网卡而不是计算机决定.CPU 得到中断信号后产生中断,操作系统就根据设置的网卡中断程序地址调用相应程序接收数据,驱动程序接收数据后放入信号堆栈让操作系统处理.对于网卡来说一般有四种接收模式:1.广播方式:该模式下的网卡能够接收网络中的广播信息.2.组播方式:设置在该模式下的网卡能够接收组播数据.3.直接方式:在这种模式下,只有目的网卡才能接收该数据.作.收穑日期;2.2 一.622 作者简介:庄春兴硕士工程师?主要从事
7、网络技术应用与网络安全研究? 彭奇志,主要从事网络数据库开发应用工610 小型微型计算机系统 2003 钜4.混杂模式:在这种模式下的网卡能够接收一切通过它的数据,而不管该数据是否是传给它的.正常的情况下,一个网络接口应该只响应这样的两种数据帧:1.与自己硬件地址相匹配的数据帧2.发向所有机器的广播数据帧.窃听程序一般采用了第4 种接收模式,因而可以接收到网上所有数据帧.另外,重新设置 MAC 地址或重新对网卡上的 EPROM 编程以修改MAC 地址也可以用来窃听与其有相同地址网卡的数据.2.2 窃听程序组成一般地,网络窃听系统有如下几部分组成:?硬件,普通网络卡或专用硬件,后者可以进一步分析
8、硬件错误(如 CRC 校验错误,信号电压,电缆问题等);?捕获驱动程序,这是最重要的组成部分,它可过滤总线上捕获的数据并把你要的数据存储到缓冲器中;?缓冲器,用于存储接收的数据;?实时分析程序,它可以对数据帧中取出的小部分数据进行分析,从而掌握网络运行状况和捕获出错信息;?解码程序,有些网络数据是经过编码的,解码程序可以使这些数据还原.2.3 混杂模式的设置为了能够窃听网络,必须为网卡重新编写一个驱动程序.要编写这个驱动程序,首先必须了解你所用的是何种网卡,并用 C 或汇编语言直接对硬件进行控制与编程.具体地讲,程序要对网卡中所用的 NIC(网络接口控制)芯片进行编程 ,还要修改网卡的中断服务
9、程序,接收数据帧并根据一定规则过滤,得到的有用帧还要存人缓冲器或写入日志文件供进一步的分析之用.除了自己动手编写外,你还可以从 Internet 上得到一些商用或免费的驱动程序,如商用程序有 PCAUSA 窃听驱动软件,免费的有 WinDump 软件包.3 防范数据窃听的方法3.1 数据加密网络窃听程序的行为是完全被动的,它没有自发信息,留下的痕迹很少或者根本没有痕迹,因而很难阻止这种行为,只能采取一些措施加以防范.最好的防范措施是对数据加密,使窃听程序无法解读.目前有如下几种加密技术:?SSL(SecureSocketsLayer)SSL 是 WEB 服务器和浏览器中的内置组件,它可以加密
10、WEB 数据,在电子商务中它是必须使用的一种技术,因为传送的信息中包含有用户的信用卡等的重要信息.?PGPandS/MIME具体情况可参考 http:/www.ssh.fi/.?VPNs(VirtualPrivateNetworks)VPNs 可以在 Internet 上提供一条加密通道.但是如果黑客连接到 VPN 网络的终端结点上,他仍然可以窃听到网络数据.一个典型的方案是最终用户从 Internet 上获取一个包含窃听插件的远程访问特洛伊木马程序,当用户建立了一个 VPN 连接时,窃听程序不仅可以窃听到 Internet 上通常情况可以听到的经过加密数据,还可以听到送到 VPN 之前没有加
11、密的数据.3.2 网络设计混杂模式下工作的主机通常只能窃听本身所在的网段上的数据包,因此,为了减少窃听主机可能收集到的信息,我们可以在设计时尽可能多地把网络分段,用交换机代替 HUB就可以做到这一点.这是因为 HUB 在工作时相当于一条以太网总线,它收到数据后会把它重新传输到所有与之相连的主机;而交换机上对应的每个接口都可以看作一个网段 ,它通过查对数据包中的目的地址,“知道“ 收到的数据应该传送到哪个特定的接口,因而各子网段上的信息量大大减少,这样,在加快网络速度的同时也缩小了窃听程序可以窃听的范围.这种解决方案在实际情况下很有效,应该特别考虑.3.3 窃听检测从理论上讲,要检测到网络上的窃
12、听行为是不可能的.然而由于窃听程序使用了混杂模式,并且安装了窃听程序的主机本身要向网络发送数据,根据这一特点,我们还是有可能检测到窃听的.下面给出几种窃听检测的方法:3.3.1PING 方法大多数数据包窃听程序安装在一个正常的装有 TCP/IP协议的主机之上,这意味着如果你向这台机器发送请求信息它会作出响应,要点是应该向该机 IP 地址而不是向它的以太网卡发送信息.本方法步骤是:1)假设装有窃听程序的主机 IP 地址是 10.0.0.1,以太网卡地址是 004005 一 A479322)你的另一台机器在同一以太网段上;3)你把该台主机的 MAC 地址作微小的改动,如 004005 一 A479
13、33;4)你向该 IP 及新的 MAC 地址传送一个 ICMP 命令,如ping 命令;5)正常情况下,该命令不会被任何一台主机接收;6)如果你收到了回答,那么可以推测该台主机上的网卡没有运行“MAC 地址过滤器“,因此它正在窃听网络.3.3.2PING 方法推广可以把上述 PING 方法进行推广:PGP(PrettyGoodPrivacy)和 S/MIME(SecureMIME)1)可以使用能得到回答的任何协议,如 TCP 连接请求.是用于 E-mail 信息加密的两种技术 .PGP 可以买来作为许多email 程序的一个附件,S/MIME 则内置于 Netscape 和 Microsoft
14、 的浏览器中.?ssh(SecureShel1)目前,ssh 已经替代 Telnet 成为 Internet 上登录到 Unix系统的标准程序,许多其他的协议也可通过 ssh 连接来实现,2)也可以使用能够在目的主机产生出错回答的任何协议,例如数据包中错误的 IP 头常常会产生一个 ICMP 错误.3.3.3DNS 方法许多窃听程序对它们听到的 IP 地址会自动发出一些反向 DNS 请求,因此,可以通过观察 DNS 相关数据包检测到窃听.你可以对一个根本不存在的机器发 ping 命令,只有窃听3 期庄春兴等:关于窃听与反窃听技术的分析 611程序听到此数据包会对该地址后会发出反向 DNS 请求
15、.因此,我们可以轻易地检测到它.3.3.4 疲劳战方法这种方法是:向网络中发出大量数据包.对于正常的机器来说,这不会影响它们的工作,但是对于窃听主机来讲,它们要对所有的数据包作出相应的处理,因而会大大地影响到它们对其它事件的反应,此时我们可以向网中每一台主机发ping 命令,分析每台主机对此的反应速度,并与正常情况下的反应速度相比,由此可以判定网络中装有窃听程序的主机.要特别注意的是,这种方法在检测过程中会大大影响网络性能,使用时要比较谨慎.4 结论网络窃听技术通过改变网卡为混杂模式,可以接收来自网络总线上的数据包并对此进行分析,从而获取信息.这直接危害到了网络及信息的安全,每个网络管理员必须
16、采取各种措施防范由此带来的网络安全问题.References:lLuXie-yin,JiangHui.Transeated.TCP/IPillustratedvolumel:theprotocal.WrittenbyW.Richardstevens(M3.ChinaMachinePress.2000,82WangRui,LinHaib0.Networksetworksecuritythefirewalltechnology(M3.Beijing.TsinghuaUniversityPress,2000.103LiuYanruing?LiPeng.ThePracticalnetworkprogr
17、ammingtechnologyM.XianElectronicScienceUniversityPress,1998,44DuFilong.Internettheoriesandapplications(M3.Beijing:Peo-pieSPostandTelecommuinicationPress.1997.3附中文参考文献:l 陆雪莹,蒋慧等译.TCP/IP 详解M.北京;中国机械工业出版社.2000,82 王睿,林海波.网络安全防火墙技术(M3.北京:清华大学出版社.2000.103 刘彦明,李鹏.实用网络编程技术(M3.西安;西安电子科技夭学出版社.1998.44 杜飞龙.Inte
18、rnet 原理与应用 IM.jE 京;人民邮电出版社.1997,3曲曲曲曲曲曲曲曲 L 曲第十届全国容错计算学术会议(CFTC03)暨中国容错计算会议十届纪念征文通知一,简介进入新世纪,经济社会信息化和信息安全的需要为容错计算提供了广阔市场和发展机遇,时逢中国容错计算领域召开第十届全国会议,拟组织庆典活动,展示在容错计算领域的最新科研成果,应用技术及产品.并将进行中国计算机学会容错计算专业委员会换届选举.二,主办及承办单位主办单位:中国计算机学会容错计算专业委员会承办单位:装甲兵工程学院协办单位:中国科学院计算技术研究所三,会议时间与地点时间:2003 年 9 月 2224 日地点:北京市四,征文内容与范围?容错计算机体系结构? 容错软件和软件容错?容错计算理论? 容错应用?网络容错与通讯? 故障诊断与测试?信息安全?容灾与容侵?CFTC 十届纪念文章?历史回顾?重要成果介绍?综述论文五,重要日期征文截止日期:2003 年 6 月 20 日征文录用通知:2003 年 7 月 20 日征文印刷日期:2003 年 8 月 20 日六,论文规格与出版格式参照计算机辅助设计与图形学要求.七,联系方式与人员中国科学院计算技术研究所李晓维博士电话:62654541装甲兵工程学院信息工程系宫云战博士电话:66719257电子投稿/审稿 Email:中国计算机学会容错计算专业委员会