端点安全公司Bit9近日对Java及其漏洞进行了深度研究,结果发现,近一半的企业安装了两个以上版本的Java。Java在企业环境非常普遍,企业通常没有删除旧版本,这增加了威胁攻击面,让这些端点很容易成为攻击者的目标。
众所周知,Java是“一次编写,到处运行”的平台,几乎所有计算设备上都安装了Java。很多网站和web应用需要Java才能正常运行,如果不信,你可以尝试关闭浏览器中的Java,看看有多少应用无法使用。
在2012年,这个流行的平台出现了很多漏洞,它成为攻击者最常利用的技术。在Bit9刚刚发布的《Java漏洞报告:一次编写,到处祸害》一文中向我们介绍了Java问题的严重程度。
Java问题很特殊
Bit9公司安全研究人员Dan Brown表示,Java经常受到抨击,很多人都建议企业应该禁用环境中的Java。Brown表示:“但人们并没有听从这些人的建议而删除Java,因为他们不认为Java与其他容易受攻击的软件有什么不同。但Java确实不同,攻击者青睐Java是有原因的。”现在有很多不同版本的Java,你很难安装所有补丁和更新。一般企业的网络中都有“超过50个不同版本的Java”,但只有“不到1%的企业使用最新版本。”
根据Bit9的报告显示,最流行的Java版本(version 6, update 20)有96个漏洞被评为“严重”,这是96个非常严重的漏洞。那这些Java安全漏洞出现的速度有多快呢?Brown表示:“很快。在version 7, update 21和version 7, update 25之间的几个月间,这些到处安装的软件出现了38个严重漏洞。”
虽然人们一直在宣扬Java很有问题,但Bit9希望让人们知道,Java不仅有问题,而且是非常特殊的问题。Brown表示:“人们不知道安装Java并不会移除较旧的版本。所以,企业应该确保在升级时,不要再次安装旧版本。这是企业端点中存在如此多Java版本的原因之一。”
端点保留较旧版本的Java究竟有什么不妥呢?“Java安全漏洞有多种形式,”Brown解释说,“其中一种是典型的漏洞利用,允许攻击者摆脱沙箱的束缚。在浏览器中运行的Java虚拟机(VM)基本上有一个隔离沙箱层。攻击者可以找到和使用漏洞来让Java表现得像是成熟的Java应用(具有所有特权和权利),而不是限制在浏览器沙箱中。”
另一个漏洞与甲骨文或其他公司部署的控制有关,这些公司希望警告用户小应用正在试图访问较旧版本的Java。“攻击者基本上可以让其代码在较旧的更易受攻击的版本中运行,”Brown表示,“这是个困难的问题,这与企业平常对付的漏洞类型完全不同。如果每个企业可以轻按一个开关,摆脱环境中的Java漏洞,他们就可能会更安全。”
Java是一个功能强大的黑盒子
从威胁的角度来看,Java与众不同的地方在于,它是一个强大的可行的黑盒子。当攻击者获取对Java VM的控制后,他们就拥有了很多功能,包括编写脚本。
如果他们可以利用其中一个漏洞来简单地突破沙盒,或者提升他们VM中的权限,他们下载的任何代码都将由Java VM来执行,并且企业的安全控制基本不知道这种行为。
“Java并不像Adobe Acrobat,Adobe Acrobat是一个固定功能程序,并不能为攻击者提供很多软件功能,”Brown解释说,“对于Java,攻击者可以根据需要使用所有Java VM的功能,并且,他们可以在Java的环境中做所有这些事情。”
通常当人们在寻找恶意软件、恶意可执行文件时,他们只会寻找Java.exe,我们都喜欢和信任这种可执行文件,但是注意,它是在内部运行代码。“内部代码基本上可以让Java.exe执行各种恶意操作,”Brown表示,“它能够提供这些功能,让Java VM像一个黑盒子,这样,安全控制就其无效。我不认为所有人都知道这事,这也让Java成为很容易攻击目标。”
企业如何能够降低Java漏洞利用的风险?
一些企业可以从其环境中完全移除Java,而不会影响到其业务。但对于其他企业来说,在很长一段时间内,业务用例中都将需要使用Java。“企业可能没有资源来修改他们在Java编写的旧代码,”Brown表示,“但你仍然需要注意这些代码,并想办法处理这些代码。第一步是确定Java在你企业中的普及度,你有多少版本的Java,以及它们在哪里,并确定你可以删除多少版本。”另一个步骤是删除web浏览器中的Java,“从浏览器删除Java几乎可以消除所有攻击面。”
如果你的业务需要使用Java,特别是需要在浏览器的环境中运行Java时,Bit9建议你隔离那个环境,Brown指出:“使用沙箱浏览器,或者VM,或者某种隔离技术来完全隔离桌面网络中的Java。”Bit9建议,如果可以的话,企业最好删除Java。如果你的企业必须使用Java,离了它不行的话,则应该尽可能地减少Java在企业的使用,或者进行隔离。