- 论坛徽章:
- 0
|
出差一周,在外面逛书店,看到一本sniffer pro的书,兴奋,盼了很久的!
什么是sniffer呢?
sniffer及其安全
1、什么是SNIFFER sniffer是利用计算机的网络接口截获目的地为其他计算机的数据报文的一种工具。一般我们在讲的SNIFFER程序是把NIC(网卡)置为一种叫promiscuous混杂模式的状态,这种状态下SNIFFER程序能接受传输在网络上同一网段的每一个信息包。所以也就存在着SNIFFER可以用来捕获密码,EMAIL信息,秘密文档等一些其他没有加密的信息,这成为黑客们常用夺取其他主机的信息和控制权的方法。
2、SNIFFER基本原理 以太网的通讯模式(载波侦听,冲突检测)使同一个网段的所有网络接口都有访问在物理媒体上传输的所有数据的能力,当然在实际中网络接口不会对每个数据包都感兴趣,因为每个网络接口都有一个硬件地址(MAC地址),该硬件地址不同于网络中的其他网络接口的硬件地址,同时,每个网络至少还有一个广播地址
sniffer及其安全
1、什么是SNIFFER
sniffer是利用计算机的网络接口截获目的地为其他计算机的数据报文的一种工具。一般我们在讲的SNIFFER程序是把NIC(网卡)置为一种叫promiscuous混杂模式的状态,这种状态下SNIFFER程序能接受传输在网络上同一网段的每一个信息包。所以也就存在着SNIFFER可以用来捕获密码,EMAIL信息,秘密文档等一些其他没有加密的信息,这成为黑客们常用夺取其他主机的信息和控制权的方法。
2、SNIFFER基本原理
以太网的通讯模式(载波侦听,冲突检测)使同一个网段的所有网络接口都有访问在物理媒体上传输的所有数据的能力,当然在实际中网络接口不会对每个数据包都感兴趣,因为每个网络接口都有一个硬件地址(MAC地址),该硬件地址不同于网络中的其他网络接口的硬件地址,同时,每个网络至少还有一个广播地址。(代表所有的接口地址),所以在正常情况下,一个合法的网络接口应该只响应下面这两种数据帧:
1、帧的目标区域具有和本地网络接口相匹配的硬件地址。
2、帧的目标区域具有"广播地址"。
(或者简单的说,网卡只接受和自己的地址有关的信息包,即发往本主机的信息包。)
在接受到上面两种情况的数据包时,NIC通过cpu产生一个硬件中断,该中断能引起操作系统注意,然后将帧中所包含的数据传送给系统进一步处理。
而sniffer就是一种能将本地NIC状态设成混杂(promiscuous状态的软件,当NIC处于这种"混杂"方式时,该NIC具备"广播地址",它对所有遭遇到的每一个帧都产生一个硬件中断以便提醒操作系统处理流经该物理媒体上的每一个报文包。可见,sniffer工作在网络环境中的底层,它会拦截所有的正在网络上传送的数据,并且通过相应的软件处理,可以实时分析这些数据的内容,进而分析所处的网络状态和整体布局。
3、SNIFFER的使用和安全防范措施
在合理的网络中,sniffer的存在对系统管理员是致关重要的,系统管理员通过sniffer 可以诊断出大量的不可见模糊问题,这些问题涉及两台乃至多台计算机之间的异常通讯有些甚至牵涉到各种的协议,借助于sniffer 2C系统管理员可以方便的确定出多少的通讯量属于哪个网络协议、占主要通讯协议的主机是哪一台、大多数通讯目的地是哪台主机、报文发送占用多少时间、或着相互主机的报文传送间隔时间等等,这些信息为管理员判断网络问题、管理网络区域提供了非常宝贵的信息。但是,同时,如果是非系统管理员的有心之人使用了sniffer,那么他同样也可以获得和管理员一样多的信息,同样也可以对整个的网络做出判断。他很可能不会用这些信息去管理网络而去做别的事。
通常非法sniffer所要关心的内容可以分成这样几类:
1、口令
这是非法使用sniffer的绝大多数目标,sniffer可以直接记录到明文传送的userid和passwd。
2、金融帐号
现在越来越多的人在网上使用自己的信用卡或现金帐号,而sniffer可以很轻松截获在网上传送的这些卡号相关信息,如用户姓名、口令、信用卡号码、截止日期、帐号和pin.
3、机密或敏感的信息数据
通过拦截数据包,入侵者可以很方便记录别人之间敏感的信息传送,或者干脆拦截整个的会话过程。 4、低层协议信息。
这是很危险的事,通过对底层的信息协议记录,比如记录两台主机之间的网络接口地址、远程网络接口ip地址、ip路由信息和tcp连接的字节顺序号码等。这些信息由非法入侵的人掌握后将对网络安全构成极大的危害,通常有人用sniffer收集这些信息只有一个原因:他正在进行一次欺诈,(通常的ip地址欺诈就要求你准确插入tcp连接的字节顺序号)对于关心这些信息的人,那么sniffer对他来说只是前奏,今后的问题要大条得多。
既然sniffer如此危险又安静,我要如何才知道有没有sniffer在我的网段上跑呢?
不幸的是,嗅探程序是一种被动的接收程序,它只会收集数据包,而不发送出任何数据,所以理论上,嗅探程序是不可能被检测出来的,尽管如此,嗅探程序有时候还是能够被检测出来的。一个嗅探程序,不会发送任何数据,但是当它安装在一台正常的局域网内的计算机上的时候会产生一些数据流。举个例子,它能发出一个请求,使DNS根据IP地址进行反相序列查找。 理论上的办法之一是:
Win9x/NT环境下,正常情况下,就是说不在混乱模式,网卡检测是不是广播地址要比较看收到的目的以太网址是否等于ff.ff.ff.ff.ff.ff,是则认为是广播地址。在混乱模式时,网卡检测是不是广播地址只看收到包的目的以太网址的第一个八位组值,是0xff则认为是广播地址。利用这点细微差别就可以检测出Sniffer.
Linux环境下,一些版本内核有这种问题:当混杂模式时,每个包都被传到了操作系统内核以处理。在处理某些包,只看IP地址而不看以太网头中的源物理地址。所以,使用一个不存在的目的MAC,正确的目的IP,受影响的内核将会由于是混杂模式而处理它,并将之交给相应系统堆栈处理,从而实现检测Sniffer。
因而,只要发一个以太网头中目的地址是ff.00.00.00.00.00的ARP包(l0pht公司是ff.ff.ff.ff.ff.00)就可以检测出Linux和Windows网卡处于混杂状态的计算机.
这种方法要借助专门的软件,更简单的经验办法是:
1、你的网络通讯掉包率反常的高。
通过一些网络软件,你可以看到你的信息包传送情况(不是sniffer),向ping这样的命令会告诉你掉了百分几的包。如果网络中有人在听,那么你的信息包传送将无法每次都顺畅的流到你的目的地。
2、你的网络带宽出现异常。
通过某些软件(通常是防火墙),你可以实时看到目前网络带宽的分布情况,如果某台机器长时间的占用了较大的带宽,这台机器就有可能在听。
实际操作中发现,如果某台机器(非服务器)在不该使用广播的网络中使用了ICMP类型10、11、9等这一类的广播,就非常有可能,如果同时出现udp520口的rip广播,那就非常接近。
如何防范sniffer呢?我们可以采用一些被动的防御措施: 1、安全的拓扑结构。
嗅探器只能在当前网络段上进行数据捕获。这就意味着,将网络分段工作进行得越细,嗅探器能够收集的信息就越少。但是,这样的解决方案需要很大的代价。网络分段需要昂贵的硬件设备。有三种网络设备是嗅探器不可能跨过的:交换机、路由器、网桥。我们可以通过灵活的运用这些设备来进行网络分段。大多数早期建立的内部网络都使用 HUB集线器来连接多台工作站,这就为网络中数据的泛播(数据向所有工作站流通),让嗅探器能顺利地工作提供了便利。普通的嗅探器程序只是简单地进行数据的捕获,因此需要杜绝网络数据的泛播。 随着交换机的价格下降,网络改造变得可行且很必要了。不使用HUB而用交换机来连接网络,就能有效地避免数据进行泛播,也就是避免让一个工作站接收任何非与之相关的数据。 对网络进行分段,比如在交换机上设置VLAN,使得网络隔离不必要的数据传送。
2、会话加密。
会话加密提供了另外一种解决方案。不用特别地担心数据被嗅探,而是要想办法使得嗅探器不认识嗅探到的数据。这种方法的优点是明显的:即使攻击者嗅探到了数据,这些数据对他也是没有用的。 在加密时有两个主要的问题:一个是技术问题,一个是人为问题。 技术是指加密能力是否高。例如,6 4位的加密就可能不够,而且并不是所有的应用程序都集成了加密支持。而且,跨平台的加密方案还比较少见,一般只在一些特殊的应用之中才有。人为问题是指,有些用户可能不喜欢加密,他们觉得这太麻烦。用户可能开始会使用加密,但他们很少能够坚持下。总之我们必须寻找一种友好的媒介-使用支持强大这样的应用程序,还要具有一定的用户友好性。使用secure shell、secure copy或者IPV6协议都可以使得信息安全的传输。传统的网络服务程序,SMTP、HTTP、FTP、POP3和Telnet等在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,嗅探器非常容易就可以截获这些口令和数据.SSH的英文全称是Secure Shell。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间服务器"这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提供一个安全的"通道"。SSH绑定在端口22上,其连接采用协商方式使用RSA加密。身份鉴别完成之后,后面的所有流量都使用IDEA进行加密。SSH(Secure Shell)程序可以通过网络登录到远程主机并执行命令。SSH的加密隧道保护的只是中间传输的安全性,使得任何通常的嗅探工具软件无法获取发送的内容。它提供了很强的安全验证可以在不安全的网络中进行安全的通信.所以它是防范嗅探器的一种方案。
那么,通过交换设备(网桥、交换机、路由器等)所形成的网络边界是否可以限制sniffer存在的空间呢?这是一个有趣的问题。能形成网络边界的交换设备并不是把来自一边的所有的帧都丢在一边的。他们通常允许某些报文通过边界而阻止某些报文(如广播)通过边界。因此从理论上讲,通过交换设备对网络进行分段后,sniffer 将无法透过边界而窥探另一边的数据包。但是,这是在边界设备不转发广播包的情况下(这也是通常的网络情况)。一旦入侵者使用spoofer诱骗某个边界设备而将自己的广播包流入不该进入的网段后,原理上还是在一个共享设备端使用sniffer,而实际上将是听到了边界的另一边。当然这涉及到ip欺诈和Mac欺骗的问题,然而,sniffer和spoofer实际中是很少分开的。所以,并不是使用了交换设备就可以完全阻止sniffer,
所以下面的第三条防御措施就显得很重要了。
3、用静态的ARP或者IP-MAC对应表代替动态的。
该措施主要是进行渗透嗅探的防范,采用诸如ARP欺骗手段能够让入侵者在交换网络中顺利完成嗅探。网络管理员需要对各种欺骗手段进行深入了解,比如嗅探中通常使用的ARP欺骗,主要是通过欺骗进行ARP动态缓存表的修改。在重要的主机或者工作站上设置静态的ARP对应表,比如win2K系统使用arp命令设置,在交换机上设置静态的IP-MAC对应表等,防止利用欺骗手段进行嗅探的手法。
除了以上三点另外还要重视重点区域的安全防范 。这里说的重点区域,主要是针对嗅探器的放置位置而言。入侵者要让嗅探器发挥较大功效,通常会把嗅探器放置在数据交汇集中区域,比如网关、交换机、路由器等附近,以便能够捕获更多的数据。因此,对于这些区域就应该加强防范,防止在这些区域存在嗅探器。
所以对传输的信息加密是最重要的,使用安全的拓朴结构也是防范sniffer的行之有效办法。
对于网络管理员来说更重要的是要建立安全意识,了解你的用户(系统管理员越熟悉自己的用户和用户的工作习惯,就越能快速发现不寻常的事件,而不寻常的事件往往意味着系统安全问题。)、定期检查你网络中的重点设备如服务器,交换机,路由器。网络管理员还要给用户提供安全服务。对用户要定期发送安全邮件,发送邮件是让用户具有安全意识。管理意识是提高安全性的另-个重要因素。如果用户的管理部门对安全要求不强烈,只靠系统管理员也不行。最好让管理部门建立一套每个人都必须遵守的安全标准,如果系统管理员在此基础再建立自己的安全规则,就强化了安全。管理有助于加强用户意识,让用户明确,信息是有价值的资产。系统管理员应当使安全保护方法对用户尽可能地简单,提供一些提高安全的工具。网络管理员要建立合理的用户痛苦量,不能仅仅从技术上考虑问题,还要站在用户的观点上考虑。用户知道的关于安全的知识越多,网络安全就更有保障。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/2522/showart_7722.html |
|