互联网上的Sniffer 任勇 2001年 1期 随着互联网及电子商务的日益普及,互联网的安全也越来越受到重视。而在互联网安全隐患中扮演重要角色的两员便是Sniffer和Scanner,本文着重介绍Sniffer。    首先,何为Sniffer?Sniffer就是网络监听器(俗称“嗅鼻器”)。众所周知,网络是运行在各种协议之下的,而网络上传输的信息无论在何种协议下,都是以信息包的方式传送的,这些包在计算机OS的网络接口级进行交换。可以想像,在以近似广播(尤其在以太网中)的方式传播这些包(当然包括机密数据)的途中,要截获它们并非十分困难。    Sniffer便是为截获那些数据包而设计的。它可以是硬件,也可以是软件。现在品种最多、应用最广的是软件Sniffer,绝大多数“黑客”们用的也是软件Sniffer。    知道了什么叫Sniffer,接着让我们了解一下Sniffer的重要性。让我们设想一下,当你的网络已被人偷偷装上Sniffer时,一切ID、Passwd、E-mail被他人悉数截获,整个网络便无秘密可言了。更为严重的是,互联网中的许多敏感数据包含商业秘密的电子邮件、信用卡账号及密码在内同样能被Sniffer轻易截获。事实上,一个使用Sniffer发起的攻击被安全专家视为第二级的攻击。    那么,Sniffer容易得到吗?是的,非常容易。Sniffer原本是为帮助工程师诊断网络故障而设计的。因此,Sniffer不仅合法,而且还有为数众多的版本。由于许多Sniffer是Free的,人们可以轻易获得SourceCode。Sniffer容易使用吗?答案同样是肯定的。Sniffer工具通常体积小巧、使用简便,它们甚至可以运行于所有网络平台。而一个监视整个网络的Sniffer仅需要一个节点,甚至仅需要一个网关。Sniffer是如此容易地生存于网络中,以致我们可以大胆地断言:在互联网上,每秒钟都有人从不同的OS下使用不同的Sniffer发起攻击。    当清楚了Sniffer的危害性后,大家不禁要问:如何才能防御由Sniffer发起的进攻?先报告一个坏消息要想在网上发现一个Sniffer是不可能的。不过,不用着急。防御一个来自Sniffer的攻击并没有想像中那么困难。具体办法有两个:    1. 加密。关于加密,这里不得不提到SecureShell(简称SSH)。SSH是一个建立在Serve/Client模型上(最初只是在Telnet环境下)的保密通信协议。SSH的端口是22,算法是RSA,一切的信息包都经过IDEA技术加密。而1996年的F-SSH更是提供了基于TCP/IP的多级别、高水平的加密算法。当一个节点使用了F-SSH后,便再也不用担心来自Sniffer的攻击了。因为,即使网上存在Sniffer,它所截获的也只是些经过加密的、对其毫无意义的信息。值得一提的是,SSH和F-SSH有Free的Unix版,这对国内用户来说无疑是一大喜讯。    2. 分段。这是另一种挫败Sniffer攻击的途径。虽然价格昂贵,但是更有保障(毕竟,物理上的安全才是真正的安全)。最简单的做法是,每台工作站都由通信导线直接连接到HUB上,再由HUB连到交换机(SWITCH)上。打一个不恰当的比方:一条163/169用户的电话线受到监听,该用户的ID、Passward被截获,但整个网络的安全不会受到影响,因为,那条电话线与整个互联网在物理上是分段的。    对于网络管理员来说,Sniffer是一把威胁与维护网络安全的双刃剑。一个悄悄安装在你服务器上的Sniffer是你网络的最大安全隐患,当你在机器里发现它时,应立即移开它。同时,在相应的地方建立一个自己的Sniffer,可用这个Sniffer来发现是谁在取走信息。