¿Qué es sandbox y cómo funciona?
Nos centramos en todo lo que es un sandbox, junto con las tecnologías más útiles para poner en marcha este entorno de pruebas. Se trata de una herramienta esencial si necesitas analizar archivos sospechosos, probar nuevas aplicaciones o realizar cualquier actividad delicada, protegiendo tu sistema operativo ante cualquier problema que pueda ocurrir en la experimentación.
¿Qué es sandbox?
Un sandbox no es más que un entorno de prueba seguro y controlado, donde puedes ejecutar software o procesos de forma segura, sin afectar al resto del sistema. Generalmente lo vas a necesitar cuando quieras experimentar con algún tipo de software que pueda dar problemas, como un archivo o complemento que necesitas probar pero que podría ser potencialmente malicioso.
Gracias a este entorno de prueba controlado puedes estar seguro de que la ejecución se mantendrá aislada de otros programas y del propio sistema operativo, minimizando los riesgos completamente.
Su traducción literal «caja de arena» es totalmente acertada, porque consiste justamente en eso, un espacio donde podemos ensuciarnos las manos sin comprometer otros lugares limpios de la casa.
¿Cómo funciona sandbox en la práctica?
Básicamente, un sandbox consigue un aislamiento para el software que se ejecuta en ese entorno. De este modo, cualquier cosa que pongas en marcha no podrá interactuar libremente con el sistema operativo, los archivos que tengas en tu ordenador o las redes disponibles, a menos que se lo permitas explícitamente.
Entorno controlado para ejecutar software sospechoso o en pruebas
Si tienes una aplicación que no es completamente confiable el sandbox que permite utilizarla igualmente, con la seguridad de que no se ponga en peligro tu equipo informático. De este modo puedes probar software descargado de Internet o de procedencia dudosa sin exponerte a consecuencias no deseadas.
Comportamiento frente a archivos maliciosos o código inseguro
Cuando ejecutas una aplicación dentro del sandbox, por contener código potencialmente malicioso o inseguro, todas las operaciones quedan contenidas dentro del entorno de pruebas. Por eso, aunque la aplicación intente modificar el sistema, acceder a datos personales o instalar software sin haberlo autorizado, no podrá hacerlo.
Tecnologías y métodos comunes (máquinas virtuales, contenedores, etc.)
Para crear un sandbox puedes utilizar en realidad diversas tecnologías siendo la más habitual la virtualización de sistemas. En resumen estos son los métodos más comunes que existen:
Máquinas virtuales
Son máquinas que se ejecutan en tu ordenador local y que virtualizan todo un sistema operativo. Estas máquinas están contenidas dentro del ordenador host, pero ejecutándose dentro de un entorno virtualizado donde el software no puede consumir recursos externos a la máquina virtual, a no ser que tú lo permitas.
Para crear las máquinas virtuales se usan programas de tipo hypervisor, siendo algunos de los más conocidos VirtualBox, Parallels, VMWare o Hyper-V.
Contenedores
Además de la virtualización tradicional, también puedes usar el modelo de contenedores con aplicaciones como Docker, que ofrece prestaciones similares, aunque no con el mismo nivel de aislamiento.
Sandbox del sistema operativo
Adicionalmente, algunos sistemas operativos como Android tienen «Sandboxing» de serie, siendo que cada aplicación se ejecuta en su propio entorno y nosotros tenemos que dar permisos a cada cosa que éstas quieran realizar.
Sandbox del navegador
El mismo concepto de sandbox es utilizado por algunos navegadores modernos como Google Chrome, que permiten ejecutar código de las páginas web o plugins de manera aislada y sin comprometer el sistema operativo del usuario u otras páginas que estén funcionando en pestañas distintas.
Tipos de sandbox más comunes
Los sandbox los podemos clasificar por varios criterios, siendo el más importante la utilidad que le vamos a dar.
Sandboxes en ciberseguridad
Estos entornos de pruebas más comunes se usan para detectar, estudiar y probar malware. Por ejemplo los pueden usar los analistas de sistemas pero también los creadores de software de antivirus para ejecutar archivos que pretenden ser analizados.
Sandboxes en desarrollo de software y QA
También pueden usar los sandboxes desarrolladores y testers de aplicaciones, por ejemplo para probar nuevas versiones de los programas antes de llevarlas a producción, sin afectar a los sistemas con los que trabajan en el día a día, o para poder ajustar configuraciones de manera más libre, para detectar errores o problemas de rendimiento.
Sandboxes en navegadores web o sistemas operativos
Como hemos dicho antes, algunos navegadores modernos aíslan la ejecución de cada página en su propio sandbox. De este modo un problema con un sitio no afectará a otras pestañas abiertas del navegador, ni podrá robar cosas del sistema operativo donde se ejecuta.
Usos principales de sandbox en tecnología
Entre los distintos usos que podemos dar al sandbox vamos a destacar los siguientes.
Analizar software sin comprometer el sistema
Como hemos dicho, gracias a los sandbox podemos analizar el software sin comprometer el sistema donde está instalado. Esto es esencial para poder realizar trabajos relacionados con la seguridad.
Probar nuevas funciones o entornos sin riesgo
Antes de llevar a producción un software se puede probar en un entorno de sandbox para saber si las nuevas funcionalidades son seguras y no representan riesgos para los usuarios finales.
Aislar procesos en sistemas críticos o empresariales
Además, en sistemas críticos es común usar sandboxes para ejecutar tareas de forma segura, sin que un proceso afecte a los demás. Por ejemplo esto se puede dar en centros de datos y sistemas operativos donde se ejecutan programas especialmente críticos.
Ventajas de sandbox
Las ventajas de trabajar con un sandbox te las puedes imaginar, sobre todo de cara a la seguridad y a la realización de pruebas en entornos controlados.
Aislamiento seguro para ejecutar código desconocido
Aislar procesos para que se ejecuten en un entorno separado del sistema principal evita que posibles fallos o acciones maliciosas afecten a nuestro sistema.
Protección frente a malware y software malicioso
La ejecución aislada permite analizar el comportamiento o la utilidad de un programa sin ejecutarse en el sistema real. Algo muy útil si tenemos que poner en marcha algún programa sospechoso o potencialmente malicioso.
Ideal para entornos de prueba y desarrollo
Además, gracias a los sandbox es posible crear entornos de prueba con configuraciones realizadas de manera específica para poder testear el software en situaciones más diversas, sin necesidad de tener mayor infraestructura. También son útiles para probar nuevas funcionalidades sin miedo a que errores afecten al ordenador donde se están usando.
Minimiza riesgos en sistemas operativos principales
Los sistemas operativos principales (llamados generalmente sistemas host) pueden estar más protegidos, minimizando los riesgos al ejecutar código de dudosa procedencia. Esto hace que las instalaciones donde trabajamos el día a día estén más protegidas y tengan más durabilidad, evitando tener que reinstalar todo un sistema operativo si cometemos algún fallo.
Facilita el análisis de comportamiento de aplicaciones
Finalmente, gracias al sandbox podemos observar cómo se comporta una aplicación en condiciones controladas. Por ejemplo podríamos ver qué archivos pretende acceder y escribir, qué puertos de red intenta abrir, etc.
Sandbox vs. antivirus: ¿cuál es más efectivo?
Tanto los sandbox como los antivirus pueden servir de protección a los sistemas con los que trabajamos, sin embargo, no son equivalentes.
Los antivirus son programas residentes que trabajan de una manera activa una vez los instalas, detectando posibles amenazas mediante el análisis en tiempo real de las actividades de los programas, pero sobre todo comparando firmas conocidas de malware.
Por su parte, cuando vas a usar un sandbox la acción proviene más de tu parte. Es decir, tienes que crear tú el entorno virtual para poder usarlo y analizar los programas. No es por tanto una protección permanente como los antivirus, pero sí permiten llegar más lejos y ser más versátiles en lo que respecta al análisis del comportamiento del comportamiento de una aplicación en tiempo real.
Sobre su efectividad no es que haya uno más efectivo que otro. Generalmente el antivirus aporta una protección deseable y constante para el día a día. Es más útil para detectar amenazas comunes y malwares conocidos. Pero el sandbox permite otras utilidades prácticas y llegar un poco más lejos en lo que respecta al análisis, incluso ante amenazas todavía no conocidas y que los antivirus no pueden detectar.
¿Cómo el sandbox complementa la protección del Firewall?
Igual que ocurría con el antivirus, el firewall y el sandbox hacen cosas distintas, aunque sí que es verdad que ambos pueden reforzarse mutuamente.
El firewall es una herramienta que actúa como regulador de las comunicaciones permitiendo aquellas que se desean autorizar y bloqueando conexiones que no queremos que se produzcan en la red. El sandbox por su parte es una herramienta mucho más amplia que permite analizar y ejecutar aplicaciones en entornos controlados.
De este modo, podrían complementarse de varias formas. Por ejemplo, si un archivo malicioso intenta conectarse a un servidor externo podríamos detectarlo mediante la ejecución en un sandbox. Sin embargo, si tenemos un firewall esa conexión simplemente se bloqueará, aumentando la seguridad.