如何监测主机正在窃听(sniffed)
要监测只采集数据而不对任何信息进行响应的窃听设备,需要逐个仔细检查以太网上所有物理连接。
不可能通过远程发送数据包或ping就可以检查计算机是否正在窃听。
一个主机上的sniffer会将网络接口置为混杂模式以接收所有数据包。对于某些UNIX系统,通过监测到混杂模式的网络接口。虽然可以在非混杂模式下运行sniffer,但这样将只能捕捉本机会话。入侵者也可能通过在诸如sh、telnet、login、in.telnetd等
程序中捕捉会话,并将用户操作记录到其它文件中。这些都可能通过监视tty和kmem等设备轻易发现。只有混杂模式下的sniffing才能捕捉以太网中的所有会话,其它模式只能捕捉本机会话。
对于SunOS、NetBSD和其它BSD Unix系统,如下命令:
"ifconfig -a"
会显示所有网络接口信息和是否在混杂模式。DEC OSF/1和IRIX等系统需要指定设备。要找到系统中有什么网络接口,可以运行如下命令:
# netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Interface
default iss.net UG 1 24949 le0
localhost localhost UH 2 83 lo0
然后通过如下命令检查每个网络接口:
#ifconfig le0
le0: flags=8863
inet 127.0.0.1 netmask 0xffffff00 broadcast 255.0.0.1
入侵者经常会替换ifconfig等命令来避开检查,因此一定要检查命令程序的校验值。
在FTP.cert.org:/pub/tools/的cpm程序(SunOS平台)可以检查接口是否有混杂模式标记。
对于Ultrix系统,使用pfstat和pfconfig命令也可能监测是否有sniffer运行。
pfconfig指定谁有权限运行sniffer。
pfstat显示网络接口是否处于混杂模式。
这些命令只在sniffer与内核存在链接时有效。而在缺省情况,sniffer是没有与内核链接的。大多数的Unix系统,例如Irix、Solaris、SCO等,都没有任何标记来指示是否处于混杂模式,因此入侵者能够窃听整个网络而却无法监测到它。
通常一个sniffer的记录文件会很快增大并填满文件空间。在一个大型网络中,sniffer明显加重机器负荷。这些警告信息往往能够帮助治理员发现sniffer。建议使用lsof程序搜索访问数据包设备(如SunOS的/dev/nit)的程序和记录文件。