一、什么是零日攻击
要理解零日攻击,就得先来了解零日漏洞。据权威机构统计,现在我们使用的操作系统和应用程序,每一千行代码中就有可能存在四至五个编码漏洞。由于系统和应用程序的开发商不可能对所有的代码进行严格的检查,一般都是在系统和应用程序发行后,不断地进行后期测试才会发现不断发现这些漏洞,然后才会开发相应的漏洞补丁来修补这些漏洞,这就是我们经常说的系统补丁更新。但是,当系统或应用程序发行后,一些技术高超的黑客也会对它们进行反汇编,然后通过阅读代码,来找到编码中的漏洞。而由黑客找到的漏洞,他们并不会对外公布,最多也只是在其熟悉的内部流传。然后黑客就会自己编写此漏洞的利用脚本,对系统或应用程序发动攻击。通常,从系统或应用程序新漏洞的发现到利用,不会超过24小时,由此就形像地把这种攻击称为零日攻击,将被利用的新漏洞称为零日漏洞。
通常,黑客实施一次零日攻击会按如下的流程来进行:
黑客发现漏洞——编写漏洞利用脚本——寻找目标发动攻击——进入目标网络或系统——安装后门控制系统或得到网络中机密数据——清除攻击痕迹
但是,并不是所有的黑客都会按这样的流程来进行零日攻击的,他们可能在进入系统或控制系统后,会对系统所在网络中的其它目标发动新的攻击,以得到更多的数据;或者将被攻入的系统作为攻击其它网络目标的跳板。
目前,所有的操作系统,包括Windows、类LinuxFreeBSDUNIX,以及所有的网络应用程序,包括IISFTPIESMTP等等都存在零日漏洞,也就存在被零日攻击的风险。正是由于零日攻击影响的范围非常广泛,而且,由于操作系统或应用程序在编码过程中不可能做到百分之百的没有错误,因此,零日攻击的风险会在以后相当长的一段时间来都会存在,因而现在我们就必需了解可以通过什么样的方法来解决零日攻击带来的安全风险。
二、为什么零日攻击这么危险
现在,存在的网络攻击有许多种,但为什么大家偏偏对零日攻击问题都感到非常的棘手呢?这主要是存在下列所示的两个原因:
原因一:零日漏洞是由攻击者自己发现的,并且不会公布,而存在零日漏洞的系统或应用程序的开发商却并不一定知道这个新的漏洞,因此也就不会开发相应的漏洞补丁包来修补它。其实,就算开发商与攻击者同时发现了这个漏洞,但是,开发商发布漏洞补丁必需经过开发——测试——发布这三个阶段,速度再快也需要几天时间。而攻击者在发现零日漏洞后,会立即编写相应的漏洞利用脚本来攻击所有存在此漏洞的目标系统。在时间上,漏洞补丁发布速度就不可能赶上攻击者对此漏洞的利用速度。
原因二:现在大多数网络用户使用的安全防范设备,如防火墙,UTM网关,以及入侵检测防御系统(IDS/IPS),主要还是利用网络攻击行为的攻击特征来检测恶意的网络流量。而由攻击者编写的零日漏洞利用脚本,由于在网络上是第一次使用,安全设备开发商就不可能知道这种零日攻击行为的攻击特征,因而这些安全防范设备的攻击特征库中也就不会存在这种攻击特征,安全设备也就不会检测到这种零日攻击行为了。
其实,就算现在那些宣布具有主动防御功能的安全设备,由于目前的主动防御技术还不太完善,都存在漏报和误报的可能,并且,攻击者在编写攻击脚本时,还会通过一些手段来逃避这些安全设备的检测,因此,主动防御设备也不可能做到百分之百地完全防御零日攻击行为。
正是由于存在上述这两个因素,而且由于目前所有的操作系统和应用程序都会存在零日漏洞,发现它们只是早晚的问题,才使得零日攻击每次都会攻击成功,并且每次都会造成非常广泛的影响,因而零日攻击已经是目前不折不扣的最棘手的网安全威胁之一。
 
防范零日攻击的建议
 
现在,我们已经了解了零日攻击的攻击原理,也了解了零日攻击会给我们带来的安全风险,并且知道了它非常难于对付。但是,我们不能就此放任零日攻击的胡作非为,我们应该使用一些相应的安全手段,来减少被零日攻击析机率,或者就算我们不能防范零日攻击,但我们至少可以通过相应的方法来降低它所带来的影响。
实际上,虽然目前不能完全防范零日攻击,但是,使用下面所示的这些安全防范手段,还是能减少我们的网络和系统被零日攻击的机率,降低零日攻击造成的损失到最低水平的。
1安装实时监控和主动防御设备
要防范零日攻击,降低其带来的影响,最好的方法就是在零日攻击活动开始进行时,就及时发现并阻止它。及时发现零日攻击活动最好的方式就是安装系统或网络实时监控软件,例如SysAidNagios,以及入侵防御系统(IPS)等主动防御设备,来实时检测和发现零日攻击行为。
虽然这些设备不可能做到百分之百的将零日攻击行为全部检测到,但是,通过主动防御设备对网络操作行为和网络连接状况进行实时监控,还是可以及时发现和阻挡相当一部分的零日攻击行为的。
主机型主动防御软件(Tiny Firewall Pro防火墙及360安全卫士),会对系统中的所有操作行为,例如运行某个软件,安装文件,对Windows注册表进行操作,以及使用软件连接互联网,都会被其实时监控到,并且会提示用户是否允许这些操作的进行。这样就给我们一个阻止零日攻击的机会,在它还没有造成影响之前就阻它继续进行,也就会降低其造成的影响。基于网络的主动防御设备就会对整个网络中的活动进行实时监控,并会对一些异常的流量进行警报和主动防御,如Strata Guard。通过这些设备的警报,我们就可以采取相应的方法来阻止零日攻击的继续进行。
就如在上面我提到过的一样,主动防御设备有时会对真正的网络攻击产生漏报,也会对正常的网络流量产生误报,因此,我们在使用主动防御设备的同进,还应当使用其它的安全防范手段来填补它的不足。
2实施网络边界防范
实施网络边界防范主要是针对企业或机构中的内部局域网来说的,某个网络的边界都是针对其实际的内部网络而言的。
目前主要的网络边界防范方法包括下面这些内容:
1)、在网络边界处安装行为分析设备,它在监控网络操作行为的同时,还能限制网络流量的大小,这样就能检测到不正常的网络操作行为,以及防止拒绝服务攻击(DoS);
2)、在局域网内部安装状态包检测防火墙;
3)、严格限制无线设备的网络接入方式;
4)、加强移动存储设备的网络访问;
5)、应用网络访问控制(NAC);
6)、加强员工权限管理和文件访问许可制度。
3加固终端系统
计算机终端通常是整个网络环节中最薄弱的环节,对系统进行安全加固是一个减少系统被零日攻击的一个不错的方法。通常,我们可以通过下列的方式来加固系统:
1)、建立良好的系统或应用程序补丁更新计划;
2)、停用系统中不需要的服务和应用程序,关闭不使用的端口;
3)、限制在浏览器中对JAVAActiveX等脚本的使用;
4)、培训用户的网络操作行为,不要轻易打开电子邮件中的附件,点击电子邮件中的超级链接,以及点击其中的图片;
5)、安装第三方安全软件(如基于主机的入侵防御系统(IPS))来加强系统安全;
4加强网络基础设施的安全
加强网络基础设施的安全,能降低网络被零日攻击后造成影响的范围和严重程度。我们可以使用下列的方式来加强网络基础设施的安全:
1)、在同一网段中使用虚拟局域网(VLAN)技术将一些重要的网络设备隔离,防止零日攻击对整个网段的影响;
2)、将面向互联网的网络服务器放到一个单独的非军事化区域(DMZ),将它们与内部系统隔离,减少由于公网服务器被零日攻击后造成对内部网络的影响;
3)、在网络服务器上应用虚拟化技术来提供冗余系统,减少由于服务器系统被零日攻击后造成的非正常停机时间,降低其造成的损失。
5、建立一个良好的网络攻击事件响应计划,加强对各类事件的快速处理能力,这样能迅速阻止零日攻击的继续实施,将攻击影响的范围和造成的损失控制在一定的水平之内。
    上述给出的这些应对零日攻击的方法,虽然不能绝对防止零日攻击活动的发生,但是,灵活地使用它们,还是能大大减少系统和网络被零日攻击的机率,以及当系统或网络被零日攻击后将其造成的损失控制在一定的范围之内。