网络监听的检测

/ns/cn/jc/data/20020806023857.htm


  

(摘自cpcw,作者不详)


  网络监听本来是为了管理网络,监视网络的状态和数据流动情况。但是由于它能有效地截获网上的数据,因此也成了网上黑客使用得最多的方法。有一个前提条件,那就是监听只能是同一网段的主机,这里同一网段是指物理上的连接。因为不是同一落千丈网段的数据包,在网关就被滤掉,传不到该网段来。否则一个Internet上的一台主机,便可以监视整个Internet了。

  网络监听最有用的是获得用户口令。当前,网上的数据绝大多数是以明文的形式传输。而且口令通常都很短且容易辨认。当口令被截获,则可以非常容易地登上另一台主机。

  简单的检测方法

  网络监听是很难被发现的。运行网络监听的主机只是被动地接收在局域局上传输的信息,并没有主动的行动。即不会与其他主机交换信息,也不能修改在网上传输的信包。这一切决定了网络监听的检测是非常困难的。

  当某一危险用户运行网络监听软件时,可以通过ps-ef或ps-aux命令来发现。然而,当该用户暂时修改了ps命令,则也是很发现的。能够运行网络监听软件,说明该用户已经具有了超级的用户的权限,他可以修改任何系统命令文件,来掩盖自己的行踪。其实修改ps命令只须短短数条shell命令,将监听软件的名字过滤掉即可。

  另外,当系统运行网络监听软件时,系统因为负荷过重,因此对外界的响应很慢。但也不能因为一个系统响应过慢而怀疑其正在运行网络监听软件。

  这是两个检测监听的方法,原理很简单,但事实上并不容易做到,做为检测方法的一点补充。

  *方法一:

  对于怀疑运行监听程序的机器,用正确的IP地址和错误的物理地址去ping,运行监听程序的机器会有响应。这是因为正常的机器不接收错误的物理地址,外于监听状态的机器能接收,如果他的IP stack不再次反向检查的话,就会响应。这种方法依赖于系统工程的Ipstack,对一些系统可能行不通。

  *方法二:

  往网上发大量不存在的物理地址的包,由于监听程序将处理这些包,将导致性能下降。通过比较前后该机器性能(icmp echo delay等方法);加以判断。这种方法难度比较大。

  一个看起来可行的检查监听程序的办法是搜索所有主机上运行的进程。当然,这几乎是不可能的,因为我们很难同时检查所有主机上的进程。但是至少管理员可以确定是否有一个进程被从管理员机器上启动。对于检查运行进程这种方法,那些使用DOS、Windows for Workgroup或者Windows 95的机器很难做到这一点。而使用UNIX和Windows NT的机器可以很容易地得到当前进程的清单。

  在UNIX下,可以用下列命令:

  ps -aun 或 ps -augx

  这个命令产生一个包括所有进程的清单-----进程的属主、这些进程占用的CPU时间以及占用的内存等等。这些输出在STDOUT上,以标准表的形式输出。如果一个进程正在运行,它就会被列在这张清单中(除非ps或其他程序变成了一个特洛伊木马程序)。

  另外一个办法就是去搜监听程序,现在只有那么多种的监听程序。入侵者很可能使遥用的是一个免费软件。在这种情况下,管理员就可以检查目录。找出监听程序,但这很困难而且很费时间。目前还不知道有哪种现在的工具可以做到这一点。在UNIX系统上,人们可能不得不自己编写一个程序,另外,如果监听程序被子换成另一个名字,管理员也不可能找到这个监听程序。

  对付一个监听

  击败一个监听程序的攻击,用户有多种选择,而最终采用哪种要取决于用户真正想做什么,剩下的就取决于运行时的开销了。

  一般来讲,人们真正关心的是那些秘密数据(例如,用户名和口令)的安全传输,不被监听和偷换。如果这些信息是以明文的形式传输的,这就很容易被藿获而且阅读出来。这个问题的解决方法是很简单的,而且效率很高。加密是一个很好的办法,有一个产品叫做Secure Shell,或者叫SSH。SSH是一种在像Telnet那样的应用环境中提供保密通讯的协议,它实现了一个密钥交换协议,以及主机及客户端认证协议。提供Internet上的安全加密通讯方式和在不安全信道上很强的认证和安全通讯功能。它像许多协议一样,是建立在客户/服务器模型之上的,SSH绑定的端口号是非SSH完全排除了在不安全的信道上通讯的信息,被监听的可能性使用到了RAS算法,在授权过程结束之后,所有的传输都用IDEA技术加密。

  在很长一段时间内,SSH被做为主要的通讯协议,因为它利用加密提供了通信的安全。但是在职996年,这种情况发生了变化。SSH成产了一个数据流的联盟F-SSH提供了高水平、多级别的加密算法。它针对一般利用TCP/IP进行的公共传输提供了更加有力的加密算法。如果用户使用了这样的产品。即使存在着监听,它得到的信息也是毫无意义的。

  作为工具使用的SSH允许其用户安全地登录到远程主机上执行命令或传输文件。它是作为rlogin sh cp和rdist这些系统程序的替代而开发的,可以很好地运行任何使用TCP/IP协议的主机上。

  SSH软件包提供如下一些工具:

  Sdd运行于UNIX服务器主机上的服务程序。它监听来自客户主机的连接请求,当接收到一个连接请求,它就进行认证,并开始对客户端进行服务。

  Shh客户程序,用来登录到其他主机去,或者在其他机上执行命令。Slogin是这一程序的另一个名字。

  Scp用来安全的将文件从一台主机拷贝到另一台主机上。

  其他防范监听的方法

  一般能够接受的击败网络监听的方法的使用安全的拓朴结构。这种技术通常被称为分段技术。将网络分成一些小的网络,每一网段的集线器被连接到一个交换器上(Switch)。因为网段是硬件连接的,因而包只能在该子网的网球段内被监听工具截获。这样,网络中剩余的部分(在不同一网段的部分)就被保护了

  用户也可以使用网桥或者路由器来进行分段。这可能更加合适一些,这取决于网络的结构和财力。实际上,一台旧的PCA工作站,可以被作网桥式路由器。

  http://www.linuxaid.com.cn: http://www.linuxaid.com.cn/support/showfom.jsp?i=292