我应该禁用 Java 吗?

信息安全 已知漏洞 爪哇 零日
2021-08-31 09:17:59

首先是苹果,现在是美国政府......

这个“未指明的漏洞”有多严重?是否所有用户都应该禁用 Java,直到我们知道已经打了补丁?

编辑:-有人要求做出以下区别:Java 与 Javascript 完全不同,因此以下任何建议仅适用于 Java。

3个回答

苹果显然很重视这一点,因为他们在用户的计算机中“禁用了 Java”,这是一个相当激进的举动。作为更广泛战略的一部分,这实际上闻起来像是扼杀技术的借口。

对于这个特定的洞,还有一些细节没有这都是关于 Java 小程序模型的。要了解:

  • Java 是一种编程语言和一个庞大的代码库,它们都在虚拟机中运行VM 意味着代码更容易在架构之间移植。到现在为止还挺好; 这同样适用于其他几个框架,包括 .NET。

  • Java 和 VM 的强类型化在概念上允许一个额外的特性,这是使用 C++ 等更裸机语言无法拥有的(至少不容易):安全运行潜在恶意代码的可能性。对于 C 或 C++ 或汇编或其他任何东西,这样的壮举需要硬件和操作系统的一些帮助(即保护模式的特权级别,或者,对于极端情况,专门的虚拟化操作码)。强类型和 VM 允许使用纯软件沙盒解决方案,例如可以集成到 Web 浏览器中。

  • Java小程序就是这样:一个运行从 Web 下载的 Java 代码的沙箱,作为网页的一部分。然而,Sun/Oracle 的人不知从何下手,有些过于急切了。由于沙盒代码的功能受到严重限制,因此只有两种选择:学会接受限制(这是 Javascript 开发人员所做的),或者在沙盒中包含一个转义机制,允许一些小程序执行沙盒外的事情,比如读写文件,打开任意socket,运行native代码。VM 允许这样做,前提是小程序要求很好,这需要细粒度的权限、数字签名和显式授权弹出窗口。

  • 事实证明,管理这个“权限”系统对于虚拟机和库来说是非常困难的。即,该库的代码非常丰富,可以访问各种操作系统工具,并且必须将它们全部插入而不会忘记任何东西。有数百甚至数千个“敏感电话”需要关心。Java 中安全漏洞的悠久历史证明了这项任务几乎是不可能的。如果来自 Microsoft 的竞争技术(Silverlight,基于 .NET 构建)似乎受到的影响较小,这主要是因为它在全球范围内的使用少得多,因此曝光率要低得多。

目前,最安全的做法是在浏览器中禁用对 Java 小程序的支持。请注意,Java应用程序,尤其是在服务器端运行的任何应用程序都不会受到影响。

安全运行恶意代码的问题,同时保持丰富的功能和细粒度的访问控制,并不是一个新问题。这又一个 Java 事故表明,这个老问题仍未解决。

国土安全部 (DHS)、US-CERT 和挪威国家安全局建议禁用 Java 作为快速修复,因为漏洞代码存在于野外。这不是针对 Java 的举动。补丁出来后,只是建议应用补丁。

另一方面,Apple 通过实际禁用 Java 对 Java 持更激进的立场。过去,Apple 维护其自己的 Java 定制版本,该版本落后于官方版本。被 OS X Flashback 恶意软件利用的 Java 漏洞在 2011 年 9 月 Flashback 开始感染 Mac OS 前几个月在官方版本中进行了修补。

在与失败的 Flashback 作斗争后,Apple 吸取了教训,并通过以下方式改变了政策:

  • 允许在 Mac OS 上使用官方版本的 Java。
  • 从其网站上删除“ Mac OS 不受恶意软件攻击”的声明。
  • 在 35 天不使用后自动从浏览器中禁用 Java,并要求用户允许启用它。

是的,您应该禁用 java ,因为开发人员发现 java 在许多方面都可以帮助黑客。因此,在最近的更新中,Apple 还从其“最安全”的 MAC OS X 中删除了 java