60763">
三、围堵“耳朵”:局域网监听的防御
知道了局域网监听的实现,我们就不难重现开篇提及的检察员小洁的日记内容是如何被别人看到的了:虽然办公室的网络是交换式局域网,但是窃听者使用ARP欺骗工具篡改了小洁机器的MAC地址表,使小洁的机器发出的数据实际上是在窃听者机器里走一圈后才真正发送出去的,这时候只要小洁登录任何使用明文传输密码的网页表单,她输入的网址、用户名和密码就会被嗅探软件记录下来,窃听者只要使用这个密码登录网站,就可以把小洁写在日记本上的隐私一览无余了。
由此可见,由网络监听引发的信息泄漏后果是非常严重的,轻则隐私泄漏,重则因为银行密码、经过网络传输的文档内容失窃而导致无法计量的经济损失,因此,如何有效防止局域网监听,一直是令管理员操心的问题。
由于共享式局域网的局限性(集线器不会选择具体端口),在上面流通的数据基本上是“你有,我也有”的,窃听者连ARP信息都不需要更改,自然无法躲过被监听的命运,要解决这个问题,只能先把集线器更换为交换机,杜绝这种毫无隐私的数据传播方式。
好了,现在我们换到交换式局域网了,下一步,就该开始着手围堵这些不受欢迎的耳朵们了。
1、寻找隐匿的耳朵
如果我们怀疑某台机器在偷听数据,应该怎么办呢?
早在几年前,有一种被称为ping检测的方法就已经开始流行了,它的原理还是利用MAC地址自身,大部分网卡允许用户在驱动程序设置里自行指定一个MAC地址(特别说明:这种通过驱动程序指定的MAC地址仅仅能用于自身所处的局域网本身,并不能用于突破远程网关的MAC+IP绑定限制!),因此我们就可以利用这一特性让正在欺骗MAC地址的机器自食其果。
假设IP为192.168.1.4的机器上装有ARP欺骗工具和嗅探器,所以ping 192.168.1.4,然后arp –a | find “192.168.1.4” 得到它的MAC地址“00-00-0e-40-b4-a1”
修改自己的网卡驱动设置页,改Network Address为“00000e40b4a2”,即去掉分隔符的MAC地址最末位加1
再次ping 192.168.1.4,正常的话应该不会看到任何回应,因为局域网中不会存在任何与“00-00-0e-40-b4-a2”相符的MAC地址。
如果看到返回,则说明192.168.1.4很可能装有嗅探器。
另一种比较“恶毒”的方法是对被怀疑安装了嗅探器的计算机发送大量不存在的MAC地址的数据报,由于监听程序在进行分析和处理大量的数据包需要占用很多的CPU资源,这将导致对方计算机性能下降,这样我们只要比较发送报文前后该机器性能就能加以判断,但是如果对方机器配置比较高,这个方法就不太有效了。
除了主动嗅探的行为,还有一些机器是被入侵者恶意种植了带有嗅探功能的后门程序,那么我们就必须使用本机测试法了,其原理是建立一个原始连接(Raw Socket)打开自己机器的随机端口,然后再建立一个UDP连接到自己机器的任意端口并随意发送一条数据,正常情况下,这个方法建立的原始连接是不可能成功接收数据的,如果原始连接能接收这个数据,则说明机器网卡正处于“混杂”模式——嗅探器经常这么干,接下来的事情就不用我说了吧?
但是基本上没找到现成的工具可以使用,也可能是我的查找能力问题,但是其实这个问题很好解决:因为安装了嗅探器的机器是能接收到任何数据的,那么只要在这个机器上再次安装一个嗅探软件(不是ARP欺骗类型!)就能“共享”捕获的数据,正常情况下我们是只能看到属于自己IP的网络数据的,如果不巧发现嗅探器把其它计算机的数据也顺手牵羊了,并且由于ARP欺骗的存在,我们还可能嗅探到自己的计算机会定期发送一条ARP应答包出去……既然都做得那么明显了,那就不要客气把它灭了……
2、预防为主——从根本上防御网络监听
虽然利用ARP欺骗报文进行的网络监听很难察觉,但它并不是无法防御的,与ARP寻址相对的,在一个相对稳定的局域网里(机器数量和网卡被更换的次数不多,也没有人一没事干就去更改自己IP),我们可以使用静态ARP映射,即记录下局域网内所有计算机的网卡MAC地址和对应的IP,然后使用“arp –s IP地址 MAC地址”进行静态绑定,这样计算机就不会通过ARP广播来找人了,自然不会响应ARP欺骗工具发送的动态ARP应答包(静态地址的优先度大于动态地址),但是这个方法存在的劣势就是对操作用户要求挺高,要知道并不是所有人都理解MAC地址是干什么用的,另外一点就是如果机器数量过多或者变动频繁,会对操作用户(通常是网络管理员)造成巨大的心灵伤害……
因此,一般常用的方法是使用软件防御,例如Anti Arp Sniffer,它可以强行绑定本机与网关的MAC关系,让伪装成网关获取数据的监听机成了摆设,而如果是监听者仅仅欺骗了某台计算机的情况呢?这就要使用ARP Watch了,ARP Watch会实时监控局域网中计算机MAC地址和ARP广播报文的变化情况,如果有ARP欺骗程序发送虚假地址报文,必然会造成MAC地址表不符,ARP Watch就会弹出来警告用户了。
此外,对网络进行VLAN划分也是有效的方法,每个VLAN之间都是隔离的,必须通过路由进行数据传输,这个时候MAC地址信息会被丢弃,每台计算机之间都是采用标准TCP/IP进行数据传输的,即使存在嗅探器也无法使用虚假的MAC地址进行欺骗了。
四、结语
网络监听技术作为一种工具,总是扮演着正反两方面的角色,尤其在局域网里更是经常以黑暗的身份出现。对于入侵者来说,通过网络监听可以很容易地获得用户的关键信息,因此他们青睐。而对于入侵检测和追踪者来说,网络监听技术又能够在与入侵者的斗争中发挥重要的作用,因此他们也离不开必要的嗅探。我们应该努力学习网络安全知识,进一步挖掘网络监听技术的细节,扎实掌握足够的技术基础,才能在与入侵者的斗争中取得胜利。