[论文关键词]防火墙 网络攻击 包过滤 nat 代理 协议隧道 ftp-pasv
[论文摘要]通过对几种不同防火墙的攻击方法和原理进行研究,针对黑客攻击的方法和原理,我们能够部署网络安全防御策略,为构建安全稳定的网络安全体系提供了理论原理和试验成果。
防火墙技术是一种用来加强网络之间访问控制,防止外部网络用户以非法手段通过外部网络进入内部网络,访问内部网络资源,以保护内部网络操作环境的特殊网络互联设备。它对两个或多个网络之间传输的数据包如链接方式按照一定的安全策略来实施检查,以决定网络之间的通信是否被允许。
从理论上看,防火墙处于网络安全的最底层,负责网络间的安全认证与传输,但随着网络安全技术的整体发展和网络应用的不断变化,现代防火墙技术已经逐步走向网络层之外的其他安全层次,不仅要完成传统防火墙的过滤任务,同时还能为各种网络应用提供相应的安全服务。尽管如此,事情没有我们想象的完美,攻击我们的是人,不是机器,聪明的黑客们总会想到一些办法来突破防火墙。
一、包过滤型防火墙的攻击
包过滤技术是一种完全基于网络层的安全技术,只能根据packet的来源、目标和端口等网络信息进行判断,无法识别基于应用层的恶意入侵。
包过滤防火墙是在网络层截获网络packet,根据防火墙的规则表,来检测攻击行为。根据packet的源ip地址;目的ip地址;tcp/udp源端口;tcp/udp目的端口来过滤。wwW.133229.cOM所以它很容易受到如下攻击。
(一)ip欺骗
如果修改packet的源,目的地址和端口,模仿一些合法的packet就可以骗过防火墙的检测。如:我将packet中的源地址改为内部网络地址,防火墙看到是合法地址就会放行。
这种攻击应该怎么防范呢?
如果防火墙能结合接口,地址来匹配,这种攻击就不能成功了。
eth1连接外部网络,eth2连接内部网络,所有源地址为内网地址的packet一定是先到达eth2,我们配置eth1只接受来自eth2的源地址为内网地址的packet,那么这种直接到达eth1的伪造包就会被丢弃。
(二)分片伪造
分片是在网络上传输ip报文时采用的一种技术手段,但是其中存在一些安全隐患。ping of death, teardrop等攻击可能导致某些系统在重组分片的过程中宕机或者重新启动。这里我们只谈谈如何绕过防火墙的检测。
在ip的分片包中,所有的分片包用一个分片偏移字段标志分片包的顺序,但是,只有第一个分片包含有tcp端口号的信息。当ip分片包通过分组过滤防火墙时,防火墙只根据第一个分片包的tcp信息判断是否允许通过,而其他后续的分片不作防火墙检测,直接让它们通过。
工作原理弄清楚了,我们来分析:从上面可以看出,我们如果想穿过防火墙只需要第一个分片,也就是端口号的信息符合就可以了。
那我们先发送第一个合法的ip分片,将真正的端口号封装在第二个分片中,那样后续分片包就可以直接穿透防火墙,直接到达内部网络主机,通过我的实验,观察攻击过程中交换的数据报片断,发现攻击数据包都是只含一个字节数据的报文,而且发送的次序已经乱得不可辨别,但对于服务器tcp/ip堆栈来说,它还是能够正确重组的。
二、nat防火墙的攻击
这里其实谈不上什么攻击,只能说是穿过这种防火墙的技术,而且需要新的协议支持,因为这种方法的是为了让两个不同nat后面的p2p软件用户可以不通过端口映射直接进行连接,我们称为udp打洞技术。
udp打洞技术允许在有限的范围内建立连接。stun(the simple traversal of user datagram protocol through network address translators)协议实现了一种打洞技术可以在有限的情况下允许对nat行为进行自动检测然后建立udp连接。在udp打洞技术中,nat分配的外部端口被发送给协助直接连接的第三方。在nat后面的双方都向对方的外部端口发送一个udp包,这样就在nat上面创建了端口映射,双方就此可以建立连接。一旦连接建立,就可以进行直接的udp通信了。
但是udp连接不能够持久连接。udp是无连接的并且没有对谁明确的通信。一般地,nat见了的端口映射,如果一段时间不活动后就是过期。为了保持udp端口映射,必须每隔一段时间就发送udp包,就算没有数据的时候,只有这样才能保持udp通信正常。另外很多防火墙都拒绝任何的外来udp连接。
由于各方面原因,这次没有对建立tcp的连接做研究,估计是能连接的。
三、代理防火墙的攻击
代理防火墙运行在应用层,攻击的方法很多。这里就以wingate为例。 wingate是以前应用非常广泛的一种windows95/nt代理防火墙软件,内部用户可以通过一台安装有wingate的主机访问外部网络,但是它也存在着几个安全脆弱点。
黑客经常利用这些安全漏洞获得wingate的非授权web、socks和telnet的访问,从而伪装成wingate主机的身份对下一个攻击目标发动攻击。因此,这种攻击非常难于被跟踪和记录。
导致wingate安全漏洞的原因大多数是管理员没有根据网络的实际情况对wingate代理防火墙软件进行合理的设置,只是简单地从缺省设置安装完毕后就让软件运行,这就让攻击者可从以下几个方面攻击:
(一)非授权web访问
某些wingate版本(如运行在nt系统下的2.1d版本)在误配置情况下,允许外部主机完全匿名地访问因特网。因此,外部攻击者就可以利用wingate主机来对web服务器发动各种web攻击( 如cgi的漏洞攻击等),同时由于web攻击的所有报文都是从80号tcp端口穿过的,因此,很难追踪到攻击者的来源。
检测wingate主机是否有这种安全漏洞的方法如下:
(1)以一个不会被过滤掉的连接(譬如说拨号连接)连接到因特网上。
(2)把浏览器的代理服务器地址指向待测试的wingate主机。
如果浏览器能访问到因特网,则wingate主机存在着非授权web访问漏洞。
(二)非授权socks访问
在wingate的缺省配置中,socks代理(1080号tcp端口)同样是存在安全漏洞。与打开的web代理(80号tcp端口)一样,外部攻击者可以利用socks代理访问因特网。