软件过滤破获Sniffer窃取者
软件过滤建立在操作系统内核的基础上,所以要了解软件过滤必须明白操作系统内核是如何工作的。LINUX开放源代码,因此可以获取它的软件过滤机制。但是微软的WINDOWS源代码是非公开的,其软件过滤机制只能从实验上去猜测推理。
1)LINUX
在LINUX的以太网模块,根据地址的不同包可以分为以下几类:
BROADCAST PACKETS:
FF:FF:FF:FF:FF:FF
MULTICAST PACKETS:
除了广播包外,组标识位置1的包。
TO_US PACKETS:
所有目的地址和网卡硬件地址一样的包。
OTHERHOST PACKETS:
所有目的地址和网卡硬件地址不一样的包。
在这里,我们假设组标识位置1的包就是MULTICAST PACKETS。以太网MULTICAST PACKET对应IP网络的地址是01-00-5E-**-**-**,所以MULTICAST PACKETS应该不能只用组标识位来区别。但,实际上这个假设是正确的,因为01-00-5E-**-**-**是IP网络基础上的,而网卡的硬件地址可以用在其它的上层协议。
其次,我们看一下LINUX的ARP模块。ARP模块会拒绝所有的OTHERHOST PACKETS。同时,它会对BROADCAST,MULTICAST,和TO_US PACKETS作出响应。下表示意了硬件过滤和软件过滤的响应。我们给出了六种不同类型地址的包发到网卡后,硬件过滤和软件过滤是如何操作的
TO_US PACKETS:
当网卡处正常模式,所有TO_US PACKETS能通过硬件过滤,也能通过软件过滤,所以ARP模块将对这种包做出响应而不管网卡是否处于混杂模式。
OTHERHOST PACKETS:
当网卡处于正常模式,将拒绝OTHERHOST PACKETS。即使当网卡处于混杂模式,软件过滤也将拒绝这种类型的包。所以对ARP REQUESTS将不会做出响应。
BROADCAST PACKET:
在正常模式,BROADCAST PACKETS将通过硬件过滤和软件过滤。所以无论网卡处于什么模式都会有响应包。
MULTICAST PACKETS:
在正常模式,未在预先注册过的组列表中的地址的包将被拒绝。但是,如果网卡处在混杂模式,这种类型的包将会通过硬件过滤,而且,因为软件过滤也不会拒绝这种类型的包,所以将会产生一个响应。在这种情况下,网卡处于不同的模式会有不同的结果产生。
GROUP BIT PACKETS:
不是BROADCAST或MULTICAST包,但其组标识位置1。在正常模式下,会拒绝这种包,而在混杂模式下,这种包将会通过。而且因为这种包会被软件过滤认为是组播包,所以这种包能通过软件过滤。组标识位置1的包能够用来检测混杂模式。