最近的Java 7更新允许用户完全阻止Java应用程序在浏览器内运行,或者限制Java运行时环境(JRE)客户端处理基于web的Java内容的方式。安全专家说,这些特性将使安全意识较强的用户受益,但企业仍需找到隔离旧Java版本的方法。
12月11日发布的Java 7 Update 10 (7u10)没有解决任何安全漏洞,但提供了一些安全增强。根据其发布说明,新版本为用户提供了“禁止在浏览器中运行任何Java应用程序的能力”。这可以通过清除“在浏览器中启用Java内容”复选框,从Java控制面板上的“安全”选项卡完成。
长期以来,安全专家一直建议用户从Web浏览器中删除Java插件,以保护自己免受日益流行的利用Java漏洞感染计算机的网络攻击。然而,为了遵循这一建议,用户必须逐个从所有浏览器中删除插件,并且经常被迫在安装新的Java更新后重新执行这一过程。
Java 7u10似乎让事情变得更简单,它为用户提供了一个中央和持久的选项来控制基于web的Java内容,而不管他们使用多少个浏览器。此外,新的Java版本为无法完全阻止此类内容的用户提供了一种控制潜在危险的applet处理方式的方法。
从Java 7u10开始,用户必须能够为基于web的Java内容设置从低到高的安全级别,medium是默认选项。中等安全级别允许运行无签名Java应用程序,但前提是Java版本被认为是安全的。“如果一个未签名的应用程序请求在旧版本的Java上运行,就会提示你,”甲骨文在关于新的控制面板安全选项的技术说明中说。
将安全级别设置为非常高时,每当Java应用程序(有签名或未签名)试图在浏览器中运行时,都会提示用户获得许可。如果Java版本被认为是不安全的,那么无论用户如何决定,未签名的应用程序都不会运行。
“安全级别设置会影响未签名的插件applet、Java Web Start应用程序、嵌入式JavaFX应用程序以及对本地部署工具包插件的访问,”Oracle说。
此外,Java 7u10引入了新的对话框,当安装的JRE版本不安全且需要更新时,会警告用户。
漏洞研究和管理公司Secunia的首席安全长克里斯滕森(Thomas Kristensen)周二在电子邮件中说,这些变化本身并不会让Java变得更安全,但可能会让用户更容易提高个人电脑的安全性,因为它们允许用户管理某些限制。然而,为了保护大多数用户,Oracle需要在默认情况下以限制性的方式设置新选项,因为大多数用户不会理解或知道新的限制,他说。
克里斯滕森说:“有关旧版本和不安全版本的对话警告是朝着正确方向迈出的一大步。”“希望它能让用户在旧Java版本上运行代码之前三思。”
高级e-threat Bogdan Botezatu杀毒厂商Bitdefender的分析师表示,甲骨文每一步需要在维护终端用户是受欢迎的,但同意Kristensen大多数用户可能不会使用新的特性,因为他们不理解他们,因为他们不愿意更新软件。他在电子邮件中说,由于Java的庞大安装基础——超过30亿部设备——网络犯罪分子不太可能停止针对它的攻击。
Botezatu说,事实上,新的对话框警告使用不安全的JRE版本可能最终会被用于社会工程诈骗用户,就像流氓Flash Player更新通知被用来散布恶意软件一样。
Botezatu说:“在企业环境中,这种Java更新可能不会立即显示出它的好处,特别是对于那些已经开发了依赖Java的内部应用程序,但无法为兼容性问题进行更新的公司。”“尽管Java版本通常与已经构建的应用程序向后兼容,但Java 7中的巨大改进可能在生产环境中测试不足,企业可能会冒着在实际环境中大规模部署的风险。”
“需要旧Java的公司必须找到虚拟化或隔离旧Java实例的方法,”Kristensen说。“将旧Java隔离或虚拟化以供非现代企业应用程序使用,可能在方便和效率方面代价高昂,但使用旧版本Java浏览网页的风险并不能证明其便利性和小的节省。”
Kristensen说:“如果这些Java设置可以通过GPO(组策略)或类似的集中管理工具来管理,那么对于只运行最新版本或成功隔离旧版本的公司来说,这可能会提高安全性。”
然而,并不是所有人都同意公司应该迁移到Java 7。波兰安全公司Security Explorations的创始人亚当·高迪亚克(Adam Gowdiak)非常关注Java漏洞研究,他认为,从代码中发现漏洞的可能性来看,迁移到Java 7比继续使用Java 6风险更高。
Gowdiak在电子邮件中表示:“我们的研究证明,Java 7远比它的前身更不安全。”“还有许多迹象表明,引入Java 7的某些新特性,比如新的Reflection API,没有通过任何安全审查。”
Gowdiak说:“对于企业抵制升级到Java 7,我们并不感到惊讶。”“我们在Java 7中发现的安全漏洞数量足以说明问题。”
他说,正因为如此,Oracle应该延长对Java 6的公众支持期。
据甲骨文支持的路线图对于Java,该公司将在2013年2月之后停止发布Java 6的公开更新。有兴趣接收Java 6安全建议、补丁和错误修复的公司必须在该日期之后注册商业扩展支持服务。