La diferencia entre encarcelamiento, caja de arena e interpretación

6

En mis clases de seguridad de TI solía repasar estos términos y me costaba distinguirlos, así que intenté descubrir sus diferencias:

Sandboxing : mecanismo de defensa contra código móvil , que se ejecuta en un entorno de tiempo de ejecución separado. El código y los datos se separan para evitar que el programa se modifique. Esto se usa para aplicaciones pequeñas como applets en la JVM.

Interpretación : mecanismo de defensa contra código móvil . Se impide el acceso directo al hardware y se interpretan y analizan todas las direcciones y llamadas del sistema. Los navegadores web utilizan esta técnica a expensas del rendimiento.

Jailing : mecanismo de defensa contra un programa desconocido . Todas las llamadas al sistema de un prisionero supervisado del programa están controladas por otro encargado del programa que también puede interceptarlas y bloquearlas.

¿Son válidas estas definiciones o hay más diferencias / similitudes que no vi? Especialmente algunos escenarios del mundo real serían útiles, por ejemplo, sé que el sandboxing se utiliza en la JVM como parte de la seguridad de Java.

    
pregunta AdHominem 19.07.2016 - 19:15
fuente

1 respuesta

1

Escucho en estos términos un intento de explicar a un nivel más alto de abstracción un continuo de formas de abordar el problema de hospedar código ejecutable en un sistema que deseas proteger.

  1. Nativo: permite que el código ejecutable se ejecute normalmente en el sistema de destino con todos los derechos y privilegios de otro código en el sistema

  2. Jail: permite que el código ejecutable se ejecute normalmente en el sistema de destino, excepto que el acceso a recursos confidenciales, desde syscalls específicos a API específicas a recursos como disco o red i / o (lo que sea apropiado para el contexto) está bloqueado de alguna manera Piense en esto como una lista negra, una política de incumplimiento que permite con reglas de denegación específicas.

  3. Sandbox: un entorno más restrictivo que una cárcel. El código ejecutable se ejecuta en una abstracción del sistema de destino, aunque se permite cierto acceso directo limitado a recursos confidenciales. Piense en esto como una lista blanca: una política de denegación predeterminada (bueno, resumen abstraído / falso) con algunas reglas de permiso específicas.

  4. Interpretar: es un término pobre para el concepto, que representa el otro extremo del espectro de Native. El código ejecutable se ejecuta en un entorno completamente abstracto sin ninguna interacción directa con los recursos en el sistema de destino. Un término mejor puede ser "simulado".

Espero que ayude.

    
respondido por el Jonah Benton 08.08.2016 - 05:50
fuente

Lea otras preguntas en las etiquetas