2012-03-10 11 views
6

tenía la esperanza de que alguien me puede ayudar con lo siguiente:Java Pila introspección

Mi comprensión acerca de la introspección pila de Java (tal vez un poco demasiado simplificada aquí) es que un proceso genera un marco de pila que se añade a continuación a la pila . Ahora cuando el proceso necesita hacer una llamada al sistema, el algoritmo de introspección de la pila comprueba si el principal (es decir, el proceso que intenta acceder a un recurso) puede usar el recurso en particular y luego anota el marco en consecuencia (otorgar o prohibir el acceso)

Mis preguntas son:

  1. ¿Es lo anterior correcto o estoy perdiendo algo?
  2. ¿Cómo decide la JVM si otorgar o restringir el acceso? ¿El usuario está involucrado en esta decisión?
  3. En this study hay un ejemplo (figura 2) en el que un cuadro hereda/se le dice el "conjunto de creencias" del cuadro anterior. ¿Qué impide que se ejecute código malicioso en este ejemplo (es decir, obtener acceso a un recurso que no debería tener acceso)?
+1

@NiklasB. Probablemente no sea un problema y supongo que ni siquiera en ese momento, pero no puedo ver cómo funciona (es decir, qué impide que se ejecute código malicioso) – mixkat

+0

Bien, sin preocupaciones :) Es una pregunta interesante. –

+0

El mecanismo de seguridad fundamental de intra-stack de Java es [doPrivileged] (http://docs.oracle.com/javase/7/docs/api/java/security/AccessController.html#doPrivileged (java.security.PrivilegedAction)). –

Respuesta

3

¿Cómo decide la JVM conceder o restringir el acceso? ¿El usuario está involucrado en esta decisión?

Se delega en el SecurityManager actualmente instalado.

¿Es correcto lo anterior o me falta algo?

El SecurityManager puede introspectar en la pila, o puede utilizar algunos otros criterios. El SecurityManager asociado con los applets que se ejecutan en el navegador realiza una introspección, por lo que está justo en al menos un dominio.

En este estudio hay un ejemplo (figura 2) en el que un cuadro hereda/se le dice el "conjunto de creencias" del cuadro anterior. ¿Qué impide que se ejecute código malicioso en este ejemplo (es decir, obtener acceso a un recurso que no debería tener acceso)?

Nada realmente. La seguridad de Java es un desastre y muchos recomiendan desactivar java en los navegadores, ya que pocos sitios legítimos lo usan en estos días.

"Sun Java by far the most vulnerable plug-in" de 2010.