零日(0day)攻击的原理与防范方法

[复制链接]
查看1443 | 回复0 | 2012-4-1 16:32:18 | 显示全部楼层 |阅读模式
  一、什么是零日攻击

  要理解零日攻击,就得先来了解零日漏洞。据权威机构统计,现在我们使用的操作系统和应用程序,每一千行代码中就有可能存在四至五个编码漏洞。由于系统和应用程序的开发商不可能对所有的代码进行严格的检查,一般都是在系统和应用程序发行后,不断地进行后期测试才会发现不断发现这些漏洞,然后才会开发相应的漏洞补丁来修补这些漏洞,这就是我们经常说的系统补丁更新。但是,当系统或应用程序发行后,一些技术高超的黑客也会对它们进行反汇编,然后通过阅读代码,来找到编码中的漏洞。而由黑客找到的漏洞,他们并不会对外公布,最多也只是在其熟悉的内部流传。然后黑客就会自己编写此漏洞的利用脚本,对系统或应用程序发动攻击。通常,从系统或应用程序新漏洞的发现到利用,不会超过24小时,由此就形像地把这种攻击称为零日攻击,将被利用的新漏洞称为零日漏洞。

  通常,黑客实施一次零日攻击会按如下的流程来进行:

  黑客发现漏洞——编写漏洞利用脚本——寻找目标发动攻击——进入目标网络或系统——安装后门控制系统或得到网络中机密数据——清除攻击痕迹

  但是,并不是所有的黑客都会按这样的流程来进行零日攻击的,他们可能在进入系统或控制系统后,会对系统所在网络中的其它目标发动新的攻击,以得到更多的数据;或者将被攻入的系统作为攻击其它网络目标的跳板。

  目前,所有的操作系统,包括Windows、类Linux、FreeBSD和UNIX,以及所有的网络应用程序,包括IIS、FTP、IE和SMTP等等都存在零日漏洞,也就存在被零日攻击的风险。正是由于零日攻击影响的范围非常广泛,而且,由于操作系统或应用程序在编码过程中不可能做到百分之百的没有错误,因此,零日攻击的风险会在以后相当长的一段时间来都会存在,因而现在我们就必需了解可以通过什么样的方法来解决零日攻击带来的安全风险。

  二、为什么零日攻击这么危险

  现在,存在的网络攻击有许多种,但为什么大家偏偏对零日攻击问题都感到非常的棘手呢?这主要是存在下列所示的两个原因:

  原因一:零日漏洞是由攻击者自己发现的,并且不会公布,而存在零日漏洞的系统或应用程序的开发商却并不一定知道这个新的漏洞,因此也就不会开发相应的漏洞补丁包来修补它。其实,就算开发商与攻击者同时发现了这个漏洞,但是,开发商发布漏洞补丁必需经过开发——测试——发布这三个阶段,速度再快也需要几天时间。而攻击者在发现零日漏洞后,会立即编写相应的漏洞利用脚本来攻击所有存在此漏洞的目标系统。在时间上,漏洞补丁发布速度就不可能赶上攻击者对此漏洞的利用速度。

  原因二:现在大多数网络用户使用的安全防范设备,如防火墙,UTM网关,以及入侵检测防御系统(IDS/IPS),主要还是利用网络攻击行为的攻击特征来检测恶意的网络流量。而由攻击者编写的零日漏洞利用脚本,由于在网络上是第一次使用,安全设备开发商就不可能知道这种零日攻击行为的攻击特征,因而这些安全防范设备的攻击特征库中也就不会存在这种攻击特征,安全设备也就不会检测到这种零日攻击行为了。

  其实,就算现在那些宣布具有主动防御功能的安全设备,由于目前的主动防御技术还不太完善,都存在漏报和误报的可能,并且,攻击者在编写攻击脚本时,还会通过一些手段来逃避这些安全设备的检测,因此,主动防御设备也不可能做到百分之百地完全防御零日攻击行为。

  正是由于存在上述这两个因素,而且由于目前所有的操作系统和应用程序都会存在零日漏洞,发现它们只是早晚的问题,才使得零日攻击每次都会攻击成功,并且每次都会造成非常广泛的影响,因而零日攻击已经是目前不折不扣的最棘手的网安全威胁之一。

  防范零日攻击的建议

  现在,我们已经了解了零日攻击的攻击原理,也了解了零日攻击会给我们带来的安全风险,并且知道了它非常难于对付。但是,我们不能就此放任零日攻击的胡作非为,我们应该使用一些相应的安全手段,来减少被零日攻击析机率,或者就算我们不能防范零日攻击,但我们至少可以通过相应的方法来降低它所带来的影响。

  实际上,虽然目前不能完全防范零日攻击,但是,使用下面所示的这些安全防范手段,还是能减少我们的网络和系统被零日攻击的机率,降低零日攻击造成的损失到最低水平的。

  1、安装实时监控和主动防御设备

  要防范零日攻击,降低其带来的影响,最好的方法就是在零日攻击活动开始进行时,就及时发现并阻止它。及时发现零日攻击活动最好的方式就是安装系统或网络实时监控软件,例如SysAid和Nagios,以及入侵防御系统(IPS)等主动防御设备,来实时检测和发现零日攻击行为。

  虽然这些设备不可能做到百分之百的将零日攻击行为全部检测到,但是,通过主动防御设备对网络操作行为和网络连接状况进行实时监控,还是可以及时发现和阻挡相当一部分的零日攻击行为的。

  主机型主动防御软件(如TinyFirewallPro防火墙及360安全卫士),会对系统中的所有操作行为,例如运行某个软件,安装文件,对Windows注册表进行操作,以及使用软件连接互联网,都会被其实时监控到,并且会提示用户是否允许这些操作的进行。这样就给我们一个阻止零日攻击的机会,在它还没有造成影响之前就阻它继续进行,也就会降低其造成的影响。基于网络的主动防御设备就会对整个网络中的活动进行实时监控,并会对一些异常的流量进行警报和主动防御,如StrataGuard。通过这些设备的警报,我们就可以采取相应的方法来阻止零日攻击的继续进行。

  就如在上面我提到过的一样,主动防御设备有时会对真正的网络攻击产生漏报,也会对正常的网络流量产生误报,因此,我们在使用主动防御设备的同进,还应当使用其它的安全防范手段来填补它的不足。

  2、实施网络边界防范

  实施网络边界防范主要是针对企业或机构中的内部局域网来说的,某个网络的边界都是针对其实际的内部网络而言的。

  目前主要的网络边界防范方法包括下面这些内容:

  (1)、在网络边界处安装行为分析设备,它在监控网络操作行为的同时,还能限制网络流量的大小,这样就能检测到不正常的网络操作行为,以及防止拒绝服务攻击(DoS);
发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则