Java Stack内省

时间:2012-03-10 22:27:47

标签: java security jvm securitymanager

我希望有人可以帮我解决以下问题:

我对java堆栈内省的理解(这里可能有点过分简化)是一个进程生成一个堆栈帧然后被添加到堆栈中。现在,当进程需要进行系统调用时,堆栈内省算法会检查是否允许主体(即尝试访问资源的进程)使用特定资源,然后相应地注释框架(授予或禁止访问) )。

我的问题是:

  1. 以上是正确的还是我错过了什么?
  2. JVM如何决定是授予还是限制访问?用户是否参与了此决定?
  3. this study中有一个例子(图2),其中框架继承/被告知前一帧的“信念集”!什么阻止恶意代码在此示例中执行(即访问不应该访问的资源)?

1 个答案:

答案 0 :(得分:3)

  

JVM如何决定是授予还是限制访问?用户是否参与了此决定?

它委派给当前安装的SecurityManager

  

以上是正确的还是我错过了什么?

SecurityManager可以反省堆栈,也可以使用其他一些标准。与在浏览器中运行的小程序关联的SecurityManager会进行内省,因此这在至少一个域中是正确的。

  

在这项研究中有一个例子(图2),其中框架继承/被告知前一帧的“信念集”!什么阻止恶意代码在此示例中执行(即访问不应该访问的资源)?

没什么。 Java安全性是一团糟,许多人建议在浏览器中关闭java,因为现在很少有合法站点使用它。

从2010年开始

"Sun Java by far the most vulnerable plug-in"