Sandbox: fines y aplicación explicados de forma sencilla
Uno de los pasos más importantes en el desarrollo de software es comprobar la funcionalidad de un programa: incluso si el código fuente parece libre de fallos, en la práctica pueden surgir complicaciones inesperadas. No obstante, poner a prueba un software de origen desconocido o que aún no esté perfeccionado conlleva ciertos riesgos. Por ejemplo, es posible que la instalación de un programa con código erróneo altere o incluso dañe el sistema operativo. Para hacer más seguras estas pruebas, existe el aislamiento de procesos o, como se llama metafóricamente en inglés, el sandboxing, o caja de arena. Estos son métodos que permiten probar software propio o código sacado de Internet en un entorno aislado, de manera que no afecten al sistema en su conjunto.
¿Qué es una sandbox?
En el mundo de la informática, cada vez se oye más el término sandbox, sandboxing o, en español, aislamiento de procesos, pero ¿en qué consiste exactamente esta técnica y cómo se utiliza? Se trata de un entorno de pruebas aislado dentro de un sistema que permite ejecutar ciertas acciones de un programa escudando el hardware para que no pueda ser dañado. En términos generales, por lo tanto, el sandboxing consiste en proteger el sistema operativo frente a código erróneo y malware. En el ámbito del desarrollo de software y la ciberseguridad, el aislamiento de procesos ya se ha convertido en una medida estándar gracias a la cual muchas grandes empresas pueden protegerse frente a daños del sistema y ciberataques.
El sandboxing o aislamiento de procesos no es un concepto nuevo, empezó a usarse cuando se crearon los primeros ordenadores personales. En los años 70, los programadores usaban estas cajas de arena para poner a prueba los programas y hacer simulaciones. Con ellos querían averiguar si un código concreto podía funcionar en un entorno cerrado. Los primeros mecanismos de seguridad, como Hydra, no solo protegían el costoso hardware, sino que gracias a la técnica del sandboxing permitían identificar qué problemas habrían surgido sin el aislamiento.
Hoy en día existen programas que no solo permiten captar y redireccionar posibles accesos al registro de datos del sistema, sino que, gracias a las máquinas virtuales (VM), se puede simular incluso un ordenador completo.
¿Cómo funciona una sandbox?
Existen diferentes maneras de aislar procesos. Antes, los programadores desarrollaban para ello sus propios entornos de prueba cerrados. Hoy, en cambio, existen programas listos para usar. Según el propósito y el sistema operativo, existen distintas versiones, cada una con un alcance y un funcionamiento distinto. Estas diferencias están bien fundamentadas, puesto que el desarrollador que elabora un programa nuevo tiene necesidades distintas a las de una empresa que quiere proteger su sistema operativo frente a código de origen desconocido y posibles ciberataques. Por regla general, cuanto más deba parecerse el entorno simulado al entorno real, más recursos requerirá.
A continuación, te presentamos un resumen de las diferentes maneras de crear un entorno aislado y cómo funcionan:
- Programas sandbox: uno de los programas más populares de aislamiento es Sandboxie, que permite crear una sandbox directamente en Windows. Al activarlo, se desvían a una carpeta previamente escogida todos los derechos de escritura que el software potencialmente malicioso pudiera tener sobre el hardware. Los archivos guardados en la sandbox pueden luego traspasarse, si así se desea, al sistema real. Este tipo de aplicaciones ofrecen la posibilidad de administrar varios entornos de pruebas al mismo tiempo.
- Sandbox en el sistema operativo: con algunas aplicaciones, puede usarse la sandbox, directamente en el código del software a través de capas y niveles distintos. Dicha sandbox se convierte así en parte del sistema operativo, pero no deja de ser un componente cerrado en sí mismo. Al igual que en otros programas sandbox, se establecen parámetros concretos para el tiempo de ejecución del software en cuestión, lo cual permite realizar un análisis específico. En Windows 10 (a partir de la versión 1903, build 18305), la Windows Sandbox viene integrada de serie y puede ser activada o desactivada por el usuario.
- Máquinas virtuales: Este tipo de software, también llamado VM por sus siglas en inglés, puede abarcar mucho más que sencillos programas. Una VM puede manejarse como un ordenador normal y suele estar ubicada, por su tamaño, en un servidor aparte. La virtualización a través de una VM puede repartirse entre varios sistemas huéspedes. De esta manera, los pseudosistemas acaban siendo totalmente independientes y estando completamente aislados del hardware. Algunas de las máquinas virtuales más populares con interfaz completa son VMware y Java Virtual Machine, así como FAUmachine para Linux y macOS.
- Sandbox como plugin: existe un ejemplo de sandbox en forma de plugin en el lenguaje de programación Java, que utiliza la sandbox mediante los llamados java applets. Los applets son programas que se ejecutan en un navegador cliente. Con la sandbox integrada, el código del software cargado en Internet se ejecuta en un entorno encapsulado, y así se consigue mantener a salvo las unidades de disco, la memoria principal y las funciones del sistema operativo.
Además de los programas sandbox basados en software, también existen las llamadas microvirtualizaciones, que se ejecutan directamente en el hardware. A diferencia de las sandboxes, las microvirtualizaciones no están pensadas en principio para identificar código malicioso, sino para proteger el sistema de los efectos nocivos del malware.
¿Dónde se utiliza el aislamiento de procesos?
Existen muchos ejemplos de aplicación del aislamiento de procesos. Los propósitos con los que se aplican estos sistemas pueden dividirse en dos ámbitos: el software testing (es decir, las pruebas de software) y la ciberseguridad. A continuación, hemos resumido las funciones que cumple el aislamiento de procesos en cada una de estas ramas:
Software testing. Las sandboxes tienen un papel muy importante a la hora de poner a prueba el software que se acaba de desarrollar. La virtualización de sistemas computacionales ayuda a los programadores a desarrollar aplicaciones funcionales y seguras y a probarlas luego en diferentes entornos. El sandbox testing es, por lo tanto, una herramienta que indica a los desarrolladores cuándo han de modificar el código. El aislamiento de archivos también es usado a veces para aislar programas que se ejecutan paralelamente y que serían incompatibles. Asimismo, puesto que el código puede ejecutarse de manera segura en la sandbox, los informáticos utilizan esta tecnología para analizar malware e identificar los efectos del mismo en los sistemas operativos.
Ciberseguridad. En lo que a la seguridad en los navegadores se refiere, las herramientas de sandbox son también, junto con los eficaces sistemas cortafuegos, una solución muy popular. Estas herramientas protegen el sistema operativo de las alteraciones al iniciar aplicaciones potencialmente peligrosas. Especialmente en el caso de organismos públicos y empresas, puesto que trabajan con datos sensibles, es importante la protección frente a las llamadas amenazas persistentes avanzadas o Advanced Persistent Threats (APT). Estas son ciberataques encubiertos y recurrentes que persisten durante largos periodos de tiempo. Sin embargo, también los usuarios particulares pueden beneficiarse de una navegación más segura usando herramientas de aislamiento de procesos. De hecho, los navegadores web actuales basados en Chromium utilizan procesos de sandbox en cada página web visitada o plugin incorporado para evitar los ataques de tipo browser exploit.
¿Es seguro el aislamiento de procesos?
Son muchos los argumentos que respaldan el uso de métodos de aislamiento de procesos o sandboxing. No obstante, cabe preguntarse hasta qué punto son seguras las sandboxes en lo que respecta a la cibercriminalidad. En general, usar una sandbox no es razón para dormirse en los laureles, ya que, a medida que evolucionan los mecanismos de seguridad modernos, también lo hacen las argucias de los cibercriminales. Los ciberataques inteligentes, por ejemplo, reconocen los típicos entornos de aislamiento de procesos y logran evitarlos fácilmente haciendo que el código malicioso parezca inofensivo antes de instalarlo. Por este motivo, los expertos recomiendan no usar un único sistema de aislamiento de procesos, sino varios al mismo tiempo y a distintos niveles. Así, por ejemplo, la llamada tecnología multi-sandbox array aplica diversas sandboxes en la misma nube.
En la siguiente tabla presentamos de nuevo un resumen de las ventajas y desventajas de una sandbox:
Ventajas | Inconvenientes |
---|---|
Es un entorno de prueba controlado para software nuevo. | Los usuarios creen estar seguros y cometen negligencias. |
Protege el hardware, el sistema operativo o el registro del sistema. | Las sandboxes más antiguas tienen lagunas de seguridad. |
No permite accesos no autorizados a los datos del sistema anfitrión. | Las herramientas de sandbox completas son caras y consumen muchos recursos. |
No hay conflictos entre programas y sistemas operativos ni entre los propios programas. | |
La navegación por Internet es segura gracias a la protección contra el malware. |
El aislamiento de procesos ofrece a los desarrolladores un entorno seguro en el que poder probar con tranquilidad software en proceso de perfeccionamiento. En lo que a la seguridad informática se refiere, las sandboxes son especialmente eficaces si se aplican en diversas capas y se combinan con otras medidas.