模块边界也是安全边界吗?

时间:2018-08-06 17:33:57

标签: java java-9 java-security java-module jigsaw

我想知道模块边界也是安全边界吗?

更具体地说,在没有非法访问(--illegal-access=deny)并拒绝访问jdk.unsupported的情况下,看来ReflectPermission("supressAccessChecks")不再会导致沙箱完全逃脱。

是真的吗?将此权限授予不受信任的代码后,还有其他方法可以破坏JVM的安全性吗?

要清楚:

  • 要加载本机库,您需要RuntimePermission("loadLibrary.*")-不被授予
  • 要访问sun.misc.Unsafe,您需要访问jdk.unsupported模块和RuntimePermission("accessClassInPackage.sun.misc")-未授予权限
  • 访问例如ClassLoader.defineClass通过反射和setAccessible(true)java.base必须打开java.lang到您的模块-不会。

所以:

  • 如果授予了ReflectPermission("supressAccessChecks"),还有其他方法可以绕过/转义Java沙箱吗?
  • 还是将模块边界视为安全边界,在这种情况下,此类沙箱绕过将被视为安全漏洞?

0 个答案:

没有答案