发新话题
打印

虚拟安全技术存在不足 依然易被攻破

虚拟安全技术存在不足 依然易被攻破

别以为虚拟安全技术是对付恶意软件的万能药!

上网的时候,会有一大堆的虚拟产品弹出来,保护你的计算机。跟Sun声名狼藉的JAVA sandbox环境差不多,在你浏览网页,读电子邮件,或者使用其他联网功能(即使消息,p2p等等)这些产品使用各种机制来防止恶意软件感染或者修改你的计算机。

我看了几个这种类型的产品,包括GreenBorder, Linux jail程序, 以及Microsoft Windows Vista 的文件及注册表虚拟技术。我们还经常用Zen, VMware, 或者Virtual PC虚拟机来保证上网的安全性。

尽管每个虚拟技术都有它的好处,但是大多数此类产品都有同样的问题。下面是最普遍的一些问题:

1.没有一个沙盒是绝对安全的。我还没有遇到不能被规避的此类产品。因此,即使它们在早期给你一定程度的保护,如果该沙盒受到广泛青睐,那么它们就会受到黑客的攻击或者被他们想办法避开。JAVA就出现过此类情况,Vista的文件和注册表虚拟保护也将发生同样的事情。

我能轻易攻破我自己看过的所有产品。供应商们总是声称他们的产品是绝对安全的,“不像那些可怜的防毒扫描产品”那样需要持续更新。我运行了一组恶意软件测试,以及一个人们熟知的蠕虫,垃圾邮件僵尸程序,或者广告软件程序,就突破虚拟技术的防御并修改了主机。有些产品能防御得久一点儿,不过所有的这些产品都在1个小时内就被突破了。

成功地进行了恶意软件测试后,一个之前声称他的产品无懈可击的供应商说,“这种自动攻击模拟了人工攻击,而我们的产品无法防御人工攻击。”恕我对此不敢苟同。

在我的“Windows恶意软件藏匿之处”文档中,我详细说明了超过130种恶意软件为了在系统中散播而可能隐藏的文件和注册表的位置。大多数沙盒保护产品只能防御一打左右的此类文件或注册表位置。

所有的OS虚拟机产品,那些有可能保护所有薄弱位置的产品,黑客们可以检测到它们并避开它们的防御。还有几种产品在主机之外进行虚拟化,尽管这样做的话,即使被检测到,它也可以加强对计算机的保护,——这些产品却也有导入困难这个额外的问题。

2.大多数虚拟防护产品都无法很好地对付编码的攻击。黑客们经常使用编码的方法来避开安全产品对首次进入计算机的信息进行的检查。黑客和恶意软件的作者们通常都将恶意HTML命令编码成16进制的,双字节或者浮点十进制符号,或者Unicode,而不是我们或者保护产品所以为的ASCII码。很多情况下,最终结果是这样简单地修改了恶意命令之后,系统就无法发现并防御它们了。

3.很多沙盒产品只适用于所有用户可能使用的应用程序中的一小部分。大部分产品都会适用于IE,也许再加上个Outlook Express。大多数都不适用于其它浏览器(与一般人的想法相反,所有的浏览器都是需要保护的),第三方电子邮件客户端,即时消息功能,或者其他网络连接应用。我想不明白为什么他们不保护所有的互联网信息传输。

4.所有的沙盒都会阻止计算机安装或运行一小部分的合法应用程序。最糟糕的情况是,很多产品无法把微软IE补丁和恶意程序区分开;默认情况下它们会两个都阻止。最好情况的是,冒着判断错误的风险,它们会阻止大多数恶意软件。

另一方面,有些沙盒产品太安全了,以至于它们不提供给用户足够的灵活性,并且不允许改写。例如,JAVA的第一个安全模式就是太安全了以至于合法应用程序无法运行或者永久存储数据。SUN不得不修改原始的安全模式,使它更灵活,更复杂,于是就有了新的漏洞和Bug。到现在,很多的JAVA开发者还在使用旧的模式,这种模式不具备大多数企业应用的基本灵活性。

5.你可能以为安全软件卖主会花大量的时间来努力确保他们的产品符合安全编码原则。但你错了。很多此类产品都有各自的漏洞——缓冲器溢出,使系统崩溃的bug,密码被硬编码等等。你就得一个接一个地应付各种Bug。当然,程序的缓冲溢出这种漏洞不大可能出现在IE之外的浏览器上。


6.这些安全附加软件中的大多数都没有企业配置和管理工具。如果该虚拟化应用没有被更新,那么它是会继续起到保护作用呢,还是出现新的漏洞呢?

7.虚拟化应用程序还使技术支持和发现故障的过程变得很复杂。当系统或者程序更新时,沙盒或者虚拟产品经常不得不也更新。比方说,你安装了IE7或者Firefox2.0,之前使用着的应用程序或网站就会不工作了。有新的浏览器或者第三方安全应用无法跟浏览器一块儿使用的道理吗?

因此,尽管沙盒或者虚拟应用提供额外安全防护,也不要认为他们是万能药。还是应该尽量使应用程序和系统更安全。
发新话题