.2.1
.2 SPI
通过以上分析看来,通过hook api的方法,可以方便的进行IP机端口过滤,还能对信息内容进行过滤。但是它是位于ws2_32.dll之上的,属于用应用层的拦截,只能对TCP/UDP等常见的协议进行较高层次的拦截。所以,市面上见到的防火墙软件很少使用这种技术实现。
下面再介绍一种在应用层的拦截数据包的技术SPI(网络服务提供者接口)。如果想详细的了解关于SPI防火墙的相关知识,请参考《Windows防火墙与网络风暴截获技术》。
2.2.2 传输层实现
以上两种方法都是在应用层进行拦截过滤,在应用层,数据包还没有被切片处理,所以得到的信息很完整,很容易实现对内容的过滤。而且由于实现在应用层,所以有很好的平台无关性。只要安装了Winsock2的机器都可以使用这种方式实现过滤。但是他也有弊端,由于这两种拦截技术都是围绕ws2_32.dll进行的,所以如果没有使用Winsock2 API发送或接收的数据,将不能拦截,比如直接使用驱动层的函数进行收发的数据包。而现在那些无聊的黑客很容易使用驱动层的函数进行收发恶意数据,所以,市面上见到的防火墙大多不使用这两种技术。
下面带大家进入驱动层的拦截。当然,驱动层拦截程序要比上面提供的两种方法相对复杂一些。