De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

En la seguridad informática , una caja de arena es un mecanismo de seguridad para separar los programas en ejecución, generalmente en un esfuerzo por mitigar las fallas del sistema y / o las vulnerabilidades del software para que no se propaguen. A menudo se utiliza para ejecutar programas o códigos no probados o no confiables, posiblemente de terceros, proveedores, usuarios o sitios web no verificados o no confiables, sin riesgo de dañar la máquina host o el sistema operativo . [1] Una caja de arena normalmente proporciona un conjunto de recursos estrictamente controlado para que se ejecuten los programas invitados, como el almacenamiento y el espacio temporal de la memoria . El acceso a la red, la capacidad de inspeccionar el sistema host o leer desde los dispositivos de entrada generalmente están prohibidos o muy restringidos.

En el sentido de proporcionar un entorno altamente controlado, los entornos sandbox pueden verse como un ejemplo específico de virtualización . La zona de pruebas se utiliza con frecuencia para probar programas no verificados que pueden contener un virus u otro código malicioso , sin permitir que el software dañe el dispositivo host. [2]

Implementaciones [ editar ]

Una caja de arena se implementa ejecutando el software en un entorno de sistema operativo restringido, controlando así los recursos (por ejemplo, descriptores de archivos , memoria, espacio del sistema de archivos, etc.) que un proceso puede utilizar. [3]

Algunos ejemplos de implementaciones de sandbox son los siguientes:

  • Sandboxing de aplicaciones Linux , construido sobre Seccomp , cgroups y espacios de nombres Linux . Utilizado notablemente por Systemd , Google Chrome , Firefox , Firejail.
  • Android fue el primer sistema operativo convencional en implementar el sandboxing de aplicaciones completo, construido asignando a cada aplicación su propia ID de usuario de Linux. [4]
  • De Apple App recinto de seguridad se requiere para las aplicaciones distribuidas a través de Apple Mac App Store y el IOS / iPadOS App Store , y se recomienda para otras aplicaciones firmadas. [5] [6]
  • API de zona de pruebas de Google [7]
  • Una cárcel : restricciones de acceso a la red y un espacio de nombres de sistema de archivos restringido. Las cárceles se utilizan con mayor frecuencia en el alojamiento virtual . [8]
  • La ejecución basada en reglas brinda a los usuarios control total sobre qué procesos se inician, generan (por otras aplicaciones) o se les permite inyectar código en otras aplicaciones y tener acceso a la red, al hacer que el sistema asigne niveles de acceso para usuarios o programas de acuerdo conjunto de reglas determinadas. [9] También puede controlar la seguridad de archivos / registro (qué programas pueden leer y escribir en el sistema de archivos / registro). En tal entorno, los virus y troyanos tienen menos oportunidades de infectar una computadora. Los marcos de seguridad SELinux y Apparmor son dos de estas implementaciones para Linux .
  • Las máquinas virtuales emulan una computadora host completa, en la que un sistema operativo convencional puede iniciarse y ejecutarse como en un hardware real. El sistema operativo invitado se ejecuta en un espacio aislado en el sentido de que no funciona negativamente [ aclaración necesaria ] en el host y solo puede acceder a los recursos del host a través del emulador.
  • Sandboxing en hosts nativos: los investigadores de seguridad dependen en gran medida de las tecnologías de sandboxing para analizar el comportamiento del malware. Al crear un entorno que imita o replica los escritorios de destino, los investigadores pueden evaluar cómo el malware infecta y compromete un host de destino. Numerosos servicios de análisis de malware se basan en la tecnología de espacio aislado. [10]
  • Google Native Client es una caja de arena para ejecutar código C y C ++ compilado en el navegador de manera eficiente y segura, independientemente del sistema operativo del usuario. [11]
  • Los sistemas de capacidad se pueden considerar como un mecanismo de espacio aislado de grano fino, en el que los programas reciben tokens opacos cuando se generan y tienen la capacidad de hacer cosas específicas en función de los tokens que contienen. Las implementaciones basadas en capacidades pueden funcionar en varios niveles, desde el kernel hasta el espacio de usuario. Un ejemplo de sandboxing a nivel de usuario basado en capacidades implica la representación HTML en un navegador web .
  • El modo de computación segura (seccomp) es una caja de arena construida en el kernel de Linux. Cuando se activa en modo estricto, Seccomp sólo permite los write(), read(), exit(), y sigreturn()las llamadas al sistema.
  • HTML5 tiene un atributo "sandbox" para usar con iframes . [12]
  • Las máquinas virtuales Java incluyen una caja de arena para restringir las acciones de código que no es de confianza, como un subprograma Java .
  • .NET Common Language Runtime proporciona seguridad de acceso al código para hacer cumplir las restricciones en el código que no es de confianza.
  • Windows Sandbox, disponible desde Windows 10 1903 (no disponible en Windows 10 Home).
  • Software Fault Isolation (SFI), [13] permite ejecutar código nativo que no es de confianza al colocar en un espacio aislado todas las instrucciones de ensamblaje de almacenamiento, lectura y salto a segmentos aislados de la memoria.
  • Windows Vista y las ediciones posteriores incluyen un proceso en modo "bajo" en ejecución, conocido como "Control de cuentas de usuario" (UAC) , que solo permite escribir en un directorio y claves de registro específicos. Windows 10 , a partir de la versión 1903 (publicada en mayo de 2019), proporciona una función conocida como "Windows Sandbox: un entorno de escritorio aislado y temporal donde puede ejecutar software que no es de confianza sin temor a un impacto duradero en su PC". [14]

Algunos de los casos de uso de los entornos sandbox incluyen los siguientes:

  • Sistemas de jueces en línea para probar programas en concursos de programación.
  • Pastebins de nueva generación que permiten a los usuarios ejecutar fragmentos de código pegados en el servidor de pastebin.

Ver también [ editar ]

  • Sandboxie
  • seccomp
  • Caja de arena de sombra
  • Tor (red de anonimato)

Referencias [ editar ]

  1. ^ Goldberg, Ian; Wagner, David; Thomas, Randi y Brewer, Eric (1996). "Un entorno seguro para aplicaciones auxiliares que no son de confianza (confinando al hacker astuto)" (PDF) . Actas del Sexto Simposio de Seguridad de USENIX UNIX . Consultado el 25 de octubre de 2011 .
  2. Geier, Eric (16 de enero de 2012). "Cómo mantener su PC segura con Sandboxing" . TechHive . Consultado el 3 de julio de 2014 .
  3. ^ "Aplicaciones de espacio aislado" (PDF) . 2001 . Consultado el 7 de mayo de 2013 .
  4. ^ "Aplicación Sandbox - Proyecto de código abierto de Android" . Consultado el 2 de abril de 2021 .
  5. ^ "Acerca de App Sandbox" . developer.apple.com . Consultado el 9 de diciembre de 2020 .
  6. ^ "Seguridad del proceso en tiempo de ejecución en iOS y iPadOS" . Soporte de Apple . Consultado el 4 de abril de 2021 .
  7. ^ google / sandboxed-api , Google, 2020-12-08 , consultado 2020-12-09
  8. ^ "Sistema seguro de Auto-Sandboxing" . Consultado el 30 de enero de 2015 .
  9. ^ "Controles de acceso y seguridad del sistema informático" . 1991. Archivado desde el original el 28 de mayo de 2013 . Consultado el 17 de mayo de 2013 .
  10. ^ "Caja de arena de Native Client - Código nativo x86 que no es de confianza" (PDF) . Consultado el 3 de enero de 2015 .
  11. ^ Bienvenido a Native Client
  12. ^ Blog del equipo de Internet Explorer. "Defensa en profundidad: bloqueo de mash-ups con HTML5 Sandbox" . IEBlog .
  13. ^ Wahbe, Robert (1993). "Aislamiento eficiente de fallas basado en software" (PDF) .
  14. ^ "Caja de arena de Windows" . 2018-12-18 . Consultado el 7 de enero de 2010 .

Enlaces externos [ editar ]

  • Seguridad en profundidad para software Linux: prevención y mitigación de errores de seguridad
  • Sandbox - Los proyectos de Chromium
  • Página de manual de FreeBSD capsicum (4)  : una capacidad de SO liviana y un marco de trabajo aislado
  • Página de manual de OpenBSD pledge (2)  : una forma de restringir las operaciones del sistema
  • Importancia de las pruebas de sandbox {sandbox} Importancia de sandbox en fallas de día cero