Java SE 8,更新 51 为 Windows PC 添加了“本机沙盒”保护。等等,什么?

信息安全 视窗 爪哇 沙盒
2021-09-01 10:03:20

因此,当我偶然发现一些相当有趣的东西时,我正在对 Windows 8/8.1 应用程序和 Windows 10 应用程序的沙盒模型之间的差异(如果有的话)进行一些研究:当 Oracle 几个月发布 Java 包 8 更新 51 时,他们添加了一个新的似乎已经在雷达下飞行的功能:

新功能和更改

操作系统的受限环境(Native Sandbox)

JDK 8u51 对 Native Sandbox 引入了以下更改:

本机沙盒仅在 Windows 平台上可用。

可以通过 Java 控制面板->高级设置->启用操作系统的受限环境(本机沙箱)或通过在 deployment.properties 文件中将 deployment.security.use.native.sandbox 属性设置为 true 来启用或禁用本机沙箱。

默认情况下禁用本机沙箱。

启用本机沙箱后,沙箱小程序或 Web 启动应用程序将在操作系统提供的受限环境中运行。这不会影响全权限应用程序,它们将继续像以前一样运行。

链接在这里它包含更多(很少更多)信息。并且试图在其他地方找到文档或讨论已经出现......好吧,基本上没有。没有什么。如果不是上面发布说明中的那段文字以及 UI 中新选项的存在,就没有理由认为已经发布了新功能。奇怪的。

无论如何,撇开为什么关于这个“原生沙盒”功能的信息如此之少,真的有人对它是什么以及它的作用有任何进一步的了解吗?它是否将 Java VM 和库移动到 IE 使用的 sorta-semi-sandbox“保护模式”特权区域?是否利用 Windows 8/8.1 和/或 Windows 10 应用程序模型将 Java VM 和随附的东西放入新的 Windows 应用程序沙箱中。(我知道微软已经说过,在 2016 年,它将提供将传统桌面程序放入沙箱并通过 Windows 10 商店分发的功能,因此将 Java 播放器放入 Windows 10 沙箱可能不是不可能的。)完全是别的东西吗?在任何一种情况下,VM 都会在那里,在额外的沙箱中运行?一世'

除了(显然)在一页上之外,为什么甲骨文没有对此发表任何评论?该功能显然在产品中。为什么默认禁用?它应该以某种方式进行测试吗?有人吗?

编辑:

具有讽刺意味的是,在进行稍微不同的 Google 搜索时,其他人已经在 Stack Exchange 上提出了一个非常相似的问题,但没有得到回答。如果重复了这个问题,我们深表歉意......但是,有人知道更多吗?

3个回答

既然您听起来像 Java 开发人员,那么您就知道 Java 代码可以修改系统级别的东西。如果小程序是恶意的,他们会利用这一事实来尝试访问客户端系统。这种攻击很难阻止,因为当小程序运行时,已经为时已晚。这个原生沙箱是 Windows 操作系统提供的另一个级别的保护,它使得如果一个小程序从浏览器中中断,它不应该做任何坏事,因为它在沙箱内。如果它被设计为与系统交互并且即使设置了沙箱也被批准这样做,那么从那时起,小程序将能够被例外站点列表或运行时环境允许这样做。部署规则集。

如果 Oracle 选择这样做,或者如果有意识的用户想要使用“危险的”小程序,则默认情况下禁用它将允许遗留小程序在默认启用之前更新和(利用/准备)它,他们可以自信地这样做,它不会(希望)破坏他们的系统。

目前,许多小程序可能不在 ESL 上,或者许多环境未设置为使用 DRS,因此通过将其设置为默认禁用,他们可以确保它不会破坏任何东西(还)。另一个原因可能是 Windows 还没有完全支持这个选项,他们已经完成了自己的工作,Windows 只需要现在就赶上,或者他们仍在处理细节,然后再切换。现在默认设置它还有很多原因是有意义的,但在他们说更多之前我们不会知道。我的猜测是,他们已经启动了它,直到 ESL 足够大,以至于他们在设置它时感到安全,而不会阅读补丁说明的人会问大量关于为什么某某不再在某某网站上工作的问题.

编辑:经过更多的挖掘,事实证明 Windows 10 沙箱已经存在用于 Windows 商店应用程序,这里这里的信息,现在可以由 Java 小程序在正确编写和设置时使用,没有问题。因此它将位于 Windows 10 上的 Windows 商店应用程序和较新的桌面应用程序使用的 App-V 沙箱中,因为这似乎是新的默认 Windows 沙箱。

我自己很好奇,所以我试图找出答案。这些类型的 Java 应用程序始终在沙箱中运行,因为它们在 JVM 中是隔离的。所以,问题是他们使用的是什么 Windows 支持。每个项目似乎都有点不同。这是一个查看 Windows 用户模式、内核模式、沙盒和 Chrome 模型的旧页面。会教你很多。从那里,您只需使用更高版本的 Windows 的安全功能亮点来更新知识。

https://media.blackhat.com/bh-ad-10/Ridley/BlackHat-AD-2010-Ridley-Escaping-The-Sandbox-slides.pdf

我能为你找到的一切。当我在 Windows 上时,我们主要使用 Sandboxie、DefenseWall 等进行沙盒。如果我还在这个平台上,我可能也会尝试使用 Microsoft 的 EMET 和 XAX。

据我所知,这就是甲骨文发布的全部内容。它说它只适用于小程序和 web-start 应用程序,这解释了为什么关于它的信息如此之少,因为浏览器插件是 Oracle Java 中唯一不开源的部分。它看起来像是尝试使用本机 Windows 功能来支持小程序沙箱。

它不应该对其他 Java 用途产生任何影响,例如桌面和服务器应用程序,即使它们使用SecurityManager.,因为代码似乎仅限于浏览器插件。