利用网络漏洞扫描系统保障系统与网络的安全
一、引言
随着计算机技术、网络技术的飞速发展和普及应用,网络安全已日渐成为人们关注的焦点问题之一。近几年来,安全技术和安全产品已经有了长足的进步,部分技术与产品已日趋成熟。但是,单个安全技术或者安全产品的功能和性能都有其局限性,只能满足系统与网络特定的安全需求。因此,如何有效利用现有的安全技术和安全产品来保障系统与网络的安全已成为当前信息安全领域的研究热点之一。
首先,让我们来看看现阶段网络上使用最多的安全设备防火墙和入侵检测。为了确保网络的安全使用,研究它们的局限性和脆弱性已经十分必要。
二、防火墙的局限性和脆弱性
防火墙是指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列部件的组合。它是不同网络或网络安全域之间信息的唯一出入口,能根据企业的安全政策控制(允许、拒绝、监测)出入网络的信息流,且本身具有较强的抗攻击能力。它是提供信息安全服务、实现网络和信息安全的基础设施,但是它也存在局限性。
1、防火墙不能防范不经过防火墙的攻击。没有经过防火墙的数据,防火墙无法检查,比如拨号上网。
2、防火墙不能解决来自内部网络的攻击和安全问题。“外紧内松”是一般局域网络的特点,一道严密防守的防火墙其内部的网络也有可能是一片混乱。如通过社会工程学发送带木马的邮件、带木马的URL等方式,然后由中木马的机器主动对攻击者连接,将瞬间破坏象铁壁一样的防火墙。另外,防火墙内部各主机间的攻击行为,防火墙也只能如旁观者一样冷视而爱莫能助。
3、防火墙不能防止最新的未设置策略或错误配置引起的安全威胁。防火墙的各种策略,也是在该攻击方式经过专家分析后给出其特征进而设置的。如果世界上新发现某个主机漏洞的cracker把第一个攻击对象选中了您的网络,那么防火墙也没有办法帮到您。
4、防火墙不能防止可接触的人为或自然的破坏。防火墙是一个安全设备,但防火墙本身必须存在于一个安全的地方。
5、防火墙无法解决TCP/IP等协议的漏洞。防火墙本身就是基于TCP/IP等协议来实现的,就无法解决TCP/IP操作的漏洞。比如利用DOS或DDOS攻击。
6、防火墙对服务器合法开放的端口的攻击大多无法阻止。例如利用开放了3389端口取得没打过sp补丁的win2k的超级权限、利用asp程序进行脚本攻击等。由于其行为在防火墙一级看来是“合理”和“合法”的,因此就被简单地放行了。
7、防火墙不能防止受病毒感染的文件的传输。防火墙本身并不具备查杀病毒的功能,即使集成了第三方的防病毒软件,也没有一种软件可以查杀所有的病毒。
8、防火墙不能防止数据驱动式的攻击。当有些表面看来无害的数据邮寄或拷贝到内部网的主机上并被执行时,可能会发生数据驱动式的攻击。
9、防火墙不能防止内部的泄密行为。防火墙内部的一个合法用户主动泄密,防火墙对此是无能为力的。
10、防火墙不能防止本身安全漏洞的威胁。防火墙保护别人有时却无法保护自己,因为目前还没有厂商绝对保证防火墙不会存在安全漏洞。防火墙也是一个OS,也有着其硬件系统和软件,因此依然有着漏洞和bug。所以其本身也可能受到攻击和出现软/硬件方面的故障。
三、针对IDS的逃避技术
防火墙有以上的诸多局限性,同时它又处于网关的位置,不可能对进出攻击作太多判断,否则会严重影响网络性能。如果把防火墙比作大门警卫的话,入侵检测就是网络中不间断的摄像机,入侵检测通过旁路监听的方式不间断的收取网络数据,对网络的运行和性能无任何影响,同时判断其中是否含有攻击的企图,通过各种手段向管理员报警。不但可以发现从外部的攻击,也可以发现内部的恶意行为。所以说入侵检测是网络安全的第二道闸门,是防火墙的必要补充,构成完整的网络安全解决方案。然而,由于NIDS本身的局限性,黑帽社团正不断推出躲避或者越过网络入侵检测系统(Network Intrusion Detection System,NIDS)的新技术,胜利的天平正在向黑帽子倾斜。
1、字符串匹配的弱点
通过把字符串处理技术和字符替换技术结合到一起,我们可以实现复杂点的字符串伪装。对于WEB请求,我们不必使用命令解释器, 在我们的请求中使用16进制的URL即可,以下的请求可以被目标WEB服务器解释为/etc/passwd:
GET etc/passwd
或者
GET etc/passwd
为了捕获这一个字符串的所有变体,IDS可能需要1000个以上的特征码进行字符串匹配,这还没有考虑UNICODE啊!
2、会话拼接(session splicing,叫会话分割更合适一些)
就是把会话数据放到多个数据包中发出:
-------------------------
| packet number | content |
|--------------- ---------|
| 1 | G |
|--------------- ---------|
| 2 | E |
|--------------- ---------|
| 3 | T |
|--------------- ---------|
| 4 | 20 |
|--------------- ---------|
| 5 | / |
|--------------- ---------|
| 6 | H |
--------------- ---------
通过这种方式,每次只投递几个字节的数据,就可能避开字符串匹配入侵检测系统的监视。
3、碎片攻击
所谓碎片覆盖就是发送碎片覆盖先前碎片中的数据。例如:
碎片1 GET x.idd
碎片2 a.?(缓冲区溢出数据)
第二个碎片的第一个字符覆盖第一个碎片最后一个字符,这两个碎片被重组之后就变成了GET x.ida?(缓冲区溢出数据)。
4、拒绝服务
还有一种比较野蛮的方法就是拒绝服务,消耗检测设备的处理能力,使真正的攻击逃过检测。塞满硬盘空间,使检测设备无法记录日志。使检测设备产生超出其处理能力的报警。使系统管理人员无法研究所有的报警。挂掉检测设备。对IDS来说,这类IDS无迹可寻,因此非常难以对付。
四、网络隐患扫描系统浮出水面
对付破坏系统企图的理想方法当然是建立一个完全安全的没有漏洞的系统,但从实际而言,这根本不可能。美国威斯康星大学的Miller给出一份有关现今流行操作系统和应用程序的研究报告,指出软件中不可能没有漏洞和缺陷。