张 琦

2009年的7月,一定会载入信息安全史册,火热的7月爆发了大量的零日攻击(0Day),各种应用和系统漏洞导致0Day威胁高频度爆发,IE、火狐、Office、视频、Direct漏洞造成的大面积Web攻击,无疑成为最具威胁的“漏洞月”。

0Day频繁爆发的原因

0Day的概念最早用于软件和游戏破解领域。那时,0day的主要目的是信息交换,由于完全是非商业化、非盈利、志愿的行为,并没有被网络安全管理者所关注。

还是2009年7月,如果你咨询任何一名企业的网络安全主管,问他们最担心什幺?我想回答必然是:0Day 。

从技术手段来讲,似乎我们没有什幺可再担心的。但不可控的漏洞依然存在,它们存在于我们所使用的操作系统、网站平台或其他第三方应用程序,我们并不知晓这些平台中是否存在着某个不为人知的重大漏洞。但网络已遭入侵,信息已被窃取,查遍所有漏洞数据库和安全补丁资料很可能不得其解。

从概念上讲,所谓0Day漏洞,是指那些没有公开过,因而也没有补丁的漏洞,也就是通常所说的“未公开漏洞”。从理论上讲,每一个稍具规模的应用软件都可能存在漏洞,只是尚未被发现而已,弥补措施永远滞后才是最大的威胁。那幺是什幺环境激发了0Day攻击大面积爆发呢?有以下几个主要原因:

· 代码编写

造成0Day漏洞被利用的本质原因应该是在代码编写环节上。商业利益促使代码编写进度的无限加快,从而缺少了最重要的代码安全检测,本来需要反复循环的次数有可能减少。只要用户使用操作系统或应用程序, 0Day的出现就是迟早的事,无论你是使用数据库还是网站管理平台,无论你是使用媒体播放器还是看图工具。

在操作系统的代码编写上,并不像普通用户想象的那样,因为开源软件并不会经过统一的更多的安全检测,因此会比Windows存在更多的漏洞。随着开源环境的普遍应用,在企业级平台上威胁更大的灾难很可能会爆发。

· 不安全的Web环境

另外一个造成0Day危机爆发的原因在于不安全的Web服务环境,这为恶意软件注入提供了入口,网络犯罪者采用许多新手段来感染计算机,比如其中一种方法是先入侵一些合法的站点,然后诱使访问这些站点的用户前往放置了恶意软件的服务器。

· 不安全的内网环境

在今天日益泛滥的 Web 威胁环境中,“不知不觉”轻点一下鼠标,很可能就会帮黑客打开通往企业内部的网络大门。如果一台客户端主机遭遇病毒,由于其内网环境的相互信赖,交叉感染的几率将会大幅增加。终端的多元化发展,让台式机、笔记本电脑、U盘、手机等终端设备随时访问企业网络成为可能。

· 补丁推出滞后

系统管理员和信息安防专家们都知道:每天都有几十种新的安防漏洞被发现。从浩如烟海的互联网里把所有的系统漏洞都找出来,可以说没有任何可能,更不用说为它们都打好补丁了,而这正是攻击者所依仗的法宝。安全组织在发现漏洞之后,往往会经过正式的途径通知软件供应商,但厂商推出补丁程序最起码需要十几天或者更久的时间,这就造成了安全防御体系的“空档期”。

0Day危机如何防范

以往,对于利用漏洞进行传播的病毒,我们可以下载更新,在漏洞出现的第一时间利用补丁程序和管理工具修复这些漏洞,保证系统安全稳定地运行。但针对0Day攻击,由于厂商尚未对外发布修补漏洞的补丁,因此最大限度避免该漏洞带来的威胁的任务大多落到了企业和普通用户身上。

这包括一些常规性的操作,不要小看这些非常基础的操作,有的时候到会有奇效。例如:在受到漏洞影响的系统上运行程序时,以最小用户权限运行;在电脑上启用病毒防护软件中的监控关键进程选项,定期检查目前正在使用的登录信息。

· 寻找代码中的漏洞

编写安全的代码是减少0Day攻击最有效的手段。现在,编写安全的软件比以往更为重要,每个软件开发人员都必须学习如何将安全性集成到项目当中。包含操作系统、应用平台,哪怕是一个很小的插件的开发环境中都涉及了更多的安全编码技术,这包括:缓冲区溢出避免、确定适当的访问控制、以最小特权运行、加密的弱点、保护机密数据,以及规范表示等诸多问题。因此需要开发人员配合代码安全审查制度的实施。

代码安全审查的重点是识别出可能引起安全问题和事故的不安全的编码技术和缺陷。虽然可能非常耗时,但是代码审查必须在项目开发周期中定期进行,因为在开发时修补安全缺陷的成本和工作量比以后修补它们要小得多。

以0Day中出现频率最高的缓冲区溢出为例,因为攻击者可以将代码注入正在运行的进程中并取得控制权,因此在发现之后竭尽全力将它们从代码里清除出去,显然不如首先确保不让它们进入代码为妙。

· 部署智能行为监控系统

企业根据需要来更新或升级现有的防护系统,例如增加基于恶意行为模式分析的防御手段,通过这种防御方式,不管恶意软件利用了已知或是未知漏洞,都能够被有效地检测和发现。这种方式与基于特征分析的防御手段相比,最大的优势在于前者不需要具体分析某一恶意软件的特征,也就不需要因为跟踪最新的木马或是漏洞而疲于奔命,它能够有效防御“未知”的恶意软件,是应对0Day 攻击的有效补充。

很多网络管理中心无法控制客户端被恶意代码侵入,无法对未安装或者悄悄卸载了防病毒软件的终端进行统计和远程部署,从而无法精准定位网络威胁的感染源头,这就没有办法快速、安全地切断入侵事件,同时为企业网络内同一种病毒反复发作提供了温床。因此,企业不但需要在网关上部署安全过滤产品,更应在内网布置监控机制。

· 加大云安全产品部署

传统防毒软件查杀病毒的方法是通过病毒特征码与杀毒软件的病毒库中的代码来进行比较,如果病毒库中有相同的特征码,就认为这个程序是病毒。通过扩大病毒库,对照查证病毒的做法已经达到极限,因为病毒库无限扩大,将会令服务器和客户端的压力都很大。而且面对那幺多病毒,安全软件和服务厂家也不可能无限收集特征码。因此,改变传统防毒技术机制迫在眉睫。

如果从信息安全战略的角度看,云安全是被如0Day这样的威胁 “逼”出来的,其总体思路与传统的安全逻辑的差别并不大,但二者的服务模式却截然不同。

在“云”的另一端,拥有专业的团队来帮助用户处理和分析安全威胁,也有先进的数据中心来帮你保存病毒库,当然并发访问能力也是超强的。然而,云安全对用户端的配置要求却降低了,使用起来也像通透式防火墙哪样,用户并不需要知道它在哪里,但却有了核心。有了领导者,有了信誉评估机制,联动起来的成千上万个客户端就可以在最短的时间内避免访问那些被挂马的站点,或者自动下载由第三方发布的漏洞补丁。

寻找漏洞

漏洞早已成为企业信息安全的最大危害

0Day漏洞可能会愈演愈烈,这也加速了软件生产企业的安全补丁更新进程,但这只能相对减少恶意程序的危害程度。现在有些人在研究如何制造或利用漏洞,他们将研究的结果作为对系统进行攻击的资源握在手中秘而不宣。

为了应对这种挑战,人们投入了大量资源,期望减少信息系统中的漏洞数量以及降低由此带来的系统脆弱性问题,漏洞研究中的对抗和博弈也因此形成。