En seguridad informática, ¿qué es un sandbox?

Se supone que la metáfora del cajón de arena representa un cajón de arena / cajón de arena infantil, uno con lados muy altos. En este arenero metafórico, un niño juega con el contenido de su corazón, haciendo lo que quiera con la arena, pero no puede salir del pozo. Hay otros pozos de arena, con otros niños, pero no pueden verse ni jugar con la arena del otro.

La razón por la que desea esto es que cada niño tiene su propia caja de arena donde pueden hacer lo que quieran sin riesgo de que sus castillos de arena sean modificados o destruidos por otros niños. También protege el parque de los niños que juegan en el césped y esparcen arena por todas partes, ¡arena que puede contener heces de niños u orina!

En términos de programación, la metáfora no es exacta, pero puede pensar en el sandbox como una colección de recursos disponibles para un programa. Los programas solo pueden acceder a los recursos (arena) que el sistema les asigna, y no pueden jugar con los recursos de otros programas. La metáfora de la caja de arena se puede extender para que los programas puedan usar recursos fuera de la caja de arena, pero solo con el permiso del sistema (un padre).

Volviendo a nuestra metáfora, el sandbox permite que las aplicaciones y el sistema se separen entre sí. Pueden jugar en sus propios bits de memoria sin temor a verse afectados por otras aplicaciones. Si se bloquean (tienen una rabieta), su sandbox se puede restablecer sin que afecte a otras aplicaciones. También puede ayudar o detener por completo la instalación de códigos maliciosos (arena empapada de orina) y que otros virus (acosadores) afecten a otras aplicaciones o al sistema mismo.

Un ejemplo de esto es la forma en que iOS aísla las aplicaciones entre sí y del sistema en general. Las aplicaciones solo pueden usar la memoria que determina el sistema, y ​​solo pueden acceder a los archivos en su propio espacio en el sistema de archivos. Se les permite acceder a cierta información del sistema en su conjunto, pero deben hacerlo solo a través de las API disponibles para ellos y no directamente.

Hay mucho más y no todos los sandboxes se crean de la misma manera (el iOS es diferente al sandbox para los complementos del navegador, por ejemplo), pero esa es la idea general.

Un sandbox es un mecanismo de seguridad para aislar uno o más procesos de otros procesos en un sistema informático. Un entorno limitado intenta evitar el acceso a cualquier parte del sistema fuera de un entorno aislado. Los sandboxes son útiles para garantizar que el código errante no afecte la estabilidad del sistema y limite el código no confiable a un subconjunto del sistema. Se utilizan en todo, desde navegadores web hasta lenguajes de programación basados ​​en VM y sistemas operativos virtualizados.

Los sandboxes se implementan mediante una variedad de métodos, que incluyen:

  • A través del proceso y el aislamiento del usuario. Al limitar el código a procesos distintos (como lo hace Chrome) o usuarios únicos (como lo hace Android), limita lo que ese código puede hacer, ya que los sistemas operativos controlan las interacciones entre procesos y usuarios.
  • A través de mecanismos del sistema operativo, como los de Unix chroot() y jail() . Esta funcionalidad permite el aislamiento a nivel del núcleo y la restricción de recursos. Con chroot() , por ejemplo, puede limitar un proceso a un subconjunto del sistema de archivos. Cuando el sistema operativo implementa un sandbox, a menudo se lo llama cárcel .
  • A través de la limitación de permisos o capacidades, como a través de permisos de sistema de archivos, capacidades POSIX o reglas SELinux.
  • A través de máquinas virtuales (VM) como Java VM. Una VM implementa un entorno virtualizado con un subconjunto restringido de funcionalidad. Una máquina virtual Java, por ejemplo, solo puede (en teoría) ejecutar código de bytes de Java en formas específicas, prescritas y seguras, como lo limita el tiempo de ejecución de Java.
  • A través de la virtualización de hardware. La virtualización de hardware proporciona soporte de procesador para ejecutar código en un entorno virtualizado, con acceso restringido al sistema físico. Es la virtualización de hardware que permite software como VMware (empresa) y Xen. Con Xen, por ejemplo, puede tener cientos de instancias de Linux ejecutándose una al lado de la otra en una sola máquina física, cada una creyendo que solo tiene el control exclusivo de la máquina física y ninguna puede interactuar con la otra.

Una pieza de software consciente de la seguridad, como el rastreador web de Google, Googlebot , probablemente utiliza una combinación de estas técnicas.

Creo que se está refiriendo a algo así como un entorno aislado para el proceso del rastreador, de modo que no tiene conocimiento del resto del sistema y los efectos secundarios se limitan solo a ese entorno. Puede compararlo con una máquina virtual. El sistema operativo invitado que se ejecuta dentro de la máquina virtual es completamente ajeno a la existencia del sistema operativo host. Si se ejecuta algún fragmento de código malicioso dentro de la VM, los efectos se limitan solo a su entorno.

Realmente no necesita una máquina virtual para crear un entorno tan aislado. Puedes usar chroot para crear un sandbox. FreeBSD tiene el concepto de cárceles para lograr esto [1].

[1]: Capítulo 15. Cárceles

Sandboxing es una técnica de seguridad importante que aísla los programas, evitando que los programas maliciosos o con mal funcionamiento dañen o espíen el resto de su computadora.

Un sandbox se usa con mayor frecuencia para las pruebas. En este sentido, un sandbox no es más que un servidor de prueba o provisional. El objetivo es dar acceso suficiente para permitir las pruebas adecuadas sin exponer los sistemas críticos a un código potencialmente defectuoso. En la práctica, esto puede tomar la forma de un servidor separado o un entorno de producción reflejado.

Un sandbox es un método que implementa el Principio de Privilegio Mínimo en sistemas que de otro modo serían inseguros. Permite al usuario decidir qué poner en la caja de arena y, por lo tanto, limita los posibles efectos secundarios de ejecutar un programa.

Los sistemas basados ​​en capacidades, como Genode, requieren una lista explícita de recursos (también conocida como capacidades), lo que limita estrictamente los efectos secundarios que son posibles cuando se ejecuta un programa. Por lo tanto, cada programa está aislado por defecto.

Sandbox es un mecanismo de seguridad para separar o aislar programas en ejecución no confiables o no verificados. Esto generalmente se usa para probar programas no probados o no verificados que pueden contener código o comportamiento dañino. Esto es necesario para probar el código sin causar ningún daño al dispositivo host.

Sandbox puede ser referido como una capa de seguridad entre su computadora y el software que ejecutó. Programas como Avast Internet Security y opciones gratuitas como Sandboxie pueden ofrecerle esa capa. Si ejecuta un programa en un entorno limitado, los datos que se procesan en su interior no afectarán a su sistema operativo. Es por eso que se recomienda ejecutar su navegador en el sandbox mientras administra las transacciones bancarias. Si ha descargado un software que se sospecha que está infectado, ejecutarlo en un sandbox lo ayudará a probarlo sin infectar su sistema operativo (excepto Linux).
Fuente: Sandbox (seguridad informática)

Sanbox es el proceso que ayuda a prevenir ataques desconocidos al sistema en términos de seguridad informática. Sanbox simplifica la función del usuario en el escaneo y la búsqueda de virus o malwares, simplemente a través de las amenazas al sanbox con un avanzado proceso de sandboxing automático.

Fuente: http://enterprise.comodo.com/sec
Sandbox (seguridad informática)

En seguridad informática, un sandbox es un mecanismo de seguridad para separar los programas en ejecución. A menudo se usa para ejecutar código no probado o programas no confiables de terceros no verificados, proveedores, usuarios no confiables y sitios web no confiables.

Un sandbox es un entorno estrictamente controlado donde se pueden ejecutar programas. Los sandboxes restringen lo que puede hacer un fragmento de código, otorgándole tantos permisos como sea necesario sin agregar permisos adicionales que podrían abusarse.
Por ejemplo, su navegador web esencialmente ejecuta páginas web que visita en una caja de arena. Están restringidos a ejecutarse en su navegador y acceder a un conjunto limitado de recursos: no pueden ver su cámara web sin permiso o leer los archivos locales de su computadora. Si los sitios web que visita no están aislados y aislados del resto de su sistema, visitar un sitio web malicioso sería tan malo como instalar un virus.
Otros programas en su computadora también están protegidos. Por ejemplo, Google Chrome e Internet Explorer se ejecutan en una caja de arena. Estos navegadores son programas que se ejecutan en su computadora, pero no tienen acceso a toda su computadora. Se ejecutan en un modo de permiso bajo. Incluso si la página web encontrara una vulnerabilidad de seguridad y lograra tomar el control del navegador, entonces tendría que escapar del entorno limitado del navegador para hacer un daño real.

Imagine un sistema operativo que no haya pensado en la seguridad en absoluto. Un programa puede reemplazar archivos del sistema, eliminar cualquier cosa y todo de su máquina, o mirar a través de su sistema de archivos para ver si puede encontrar archivos de texto que tengan “contraseña”.

Una caja de arena está diseñada para evitar eso. ¿Tu programa quiere guardar archivos? Puede guardar archivos y leer los archivos que guardó. (Normalmente) no puede acceder a la red, leer archivos que no guardó o buscar en cualquier lugar, excepto en su pequeña área. (No puede jugar fuera de su pequeña área, por lo que presumiblemente se llama sandbox).