Skip to content

¿Qué es el Sandboxing y cómo funciona?

octubre 15, 2023
4.7/5 - (3 votos)

 

sandbox seguridad informática
El término «Sandbox» se deriva del concepto de cajón de arena de un niño, una zona de juegos donde los niños pueden construir, destruir y experimentar sin causar ningún daño, un cajón de arena digital permite experimentar y probar sin repercusiones fuera de su espacio confinado.

 

 

¿Qué es Sandbox?

 

En el mundo de la ciberseguridad, un entorno aislado (sandbox) es una máquina virtual aislada en la que se puede ejecutar código de software potencialmente inseguro sin afectar a los recursos de la red ni a las aplicaciones locales.

 

Los investigadores en ciberseguridad utilizan las cajas de arena para ejecutar código sospechoso procedente de archivos adjuntos y URL desconocidos y observar su comportamiento. Las señales reveladoras incluyen si el código se replica a sí mismo, intenta ponerse en contacto con un servidor de mando y control, descarga software adicional, cifra datos sensibles, etc. Dado que el sandbox es un entorno emulado sin acceso a la red, los datos u otras aplicaciones, los equipos de seguridad pueden «detonar» el código sin peligro para determinar cómo funciona y si es malicioso.

Los desarrolladores también utilizan entornos de pruebas sandbox fuera de la ciberseguridad para ejecutar el código antes de su despliegue generalizado.

 

¿Cuál es la utilidad del Sandboxing?

En un entorno de producción empresarial estándar, un entorno aislado podría malinterpretarse o considerarse un gasto innecesario. Sin embargo, los entornos aislados son fundamentales en varios escenarios de desarrollo, ciberseguridad e investigación. Garantizar que el entorno aislado esté realmente aislado y seguro es más importante para la investigación en ciberseguridad que para el desarrollo de software, ya que el malware explora la red de forma activa y agresiva en busca de vulnerabilidades explotables.

Sandboxing en Ciberseguridad

Los investigadores y analistas de ciberseguridad utilizan su entorno sandbox de forma similar. Pero en este caso, garantizar que los recursos de la red no sean susceptibles al malware es mucho más crítico. El entorno sandbox tiene su propia red y normalmente no tiene conexión física con los recursos de producción.

El propósito del sandbox es ejecutar código malicioso y analizarlo. A veces, este código puede ser un exploit de día cero en el que se desconocen el efecto y la carga útil del malware. Por ello, el sandbox no debe tener acceso a infraestructuras críticas.

Con un sandbox, los investigadores y analistas de ciberseguridad pueden entender cómo funciona el malware y cómo detenerlo. Es el primer paso en el diseño de software antivirus para evitar que el malware se propague a otros sistemas y para eliminarlo de los sistemas ya infectados. El objetivo general es proporcionar un entorno seguro para ejecutar software potencialmente dañino o que no sea de confianza. Otros objetivos son:

Protección de red:

Los entornos aislados suelen integrarse con herramientas de protección de red. Los mensajes de correo electrónico, las descargas y otros archivos entrantes se pueden enrutar automáticamente a través de la caja de arena para comprobar la existencia de comportamientos maliciosos antes de que lleguen al usuario final.

Análisis forense:

Después de un ciberincidente, los expertos en ciberseguridad utilizan sandboxes para comprender la profundidad y el impacto del ataque. Esto les permite diseccionar las cargas útiles maliciosas para analizar sus orígenes, comportamientos y posible propagación con el fin de informar la respuesta al incidente y la recuperación.

Compatibilidad de aplicaciones:

Las organizaciones que migran a nuevos sistemas o plataformas pueden utilizar un entorno aislado para probar cómo funcionan las aplicaciones o datos heredados, asegurándose de que no haya problemas de compatibilidad.

Cumplimiento de normativas y políticas:

Algunos sectores tienen normativas estrictas sobre seguridad, integridad y acceso a los datos. Los entornos aislados ayudan a validar y garantizar que el software y los procesos cumplen dichas normativas sin arriesgarse a que se produzcan filtraciones de datos.

Aprendizaje y experimentación:

Las instituciones educativas y las personas que aprenden sobre ciberseguridad suelen utilizar los entornos aislados como campo de entrenamiento. Los entornos aislados ofrecen un entorno seguro para que los estudiantes comprendan las técnicas de ciberataque, las vulnerabilidades y los mecanismos de defensa sin poner en peligro los sistemas reales.

 

 

Sandboxing en el desarrollo

En el desarrollo, el sandboxing suele implicar un servidor de desarrollo y un servidor de ensayo. El servidor de desarrollo está separado del entorno de producción, pero puede necesitar acceso básico a la red. Los desarrolladores utilizan los entornos aislados para probar nuevo software o actualizaciones. Así se aseguran de que los posibles fallos, errores o problemas del software más reciente no afecten a las versiones estables en ejecución. También evita que se exploten vulnerabilidades de seguridad no intencionadas.

El servidor de ensayo es una réplica del de producción donde el departamento de Calidad prueba el código antes de desplegarlo en producción. Dado que el entorno de ensayo es el mismo que el de producción, el código que se ejecuta sin problemas en el entorno de ensayo debería ejecutarse sin problemas en producción. Una vez probado el código, se despliega en producción.

 

¿Cómo funciona el Sandboxing?

Lo que se está probando determina cómo funciona el sandboxing. Por ejemplo, un entorno aislado utilizado para probar malware funciona de forma diferente a un entorno aislado que prueba código para actualizaciones de aplicaciones. Para la investigación de malware potencial y la ejecución de código malicioso, un entorno aislado requiere aislamiento del software de producción.

Independientemente de cómo se utilice un sandbox, cada entorno opera utilizando un conjunto similar de funciones:

  • Emulación de dispositivos: Los entornos aislados emulan dispositivos del mundo real, ya sean de sobremesa, móviles u otros dispositivos informáticos. El objetivo es hacer creer al software de prueba que está interactuando con hardware real, incluyendo recursos simulados como CPU, memoria y almacenamiento.
  • Emulación del sistema operativo: El sandbox emula el sistema operativo de destino. A través de máquinas virtuales, este entorno emulado imita el sistema operativo específico con el que el software espera interactuar, garantizando unas condiciones de prueba precisas.
  • Entorno virtualizado: Normalmente alojado en una máquina virtual, el entorno aislado está protegido de la interacción directa con el hardware físico. Este entorno virtual, a menudo denominado «cárcel», restringe el acceso del software a recursos específicos, garantizando su confinamiento.
  • Seguimiento detallado: Todas sus actividades e interacciones son rastreadas cuando los probadores ejecutan software dentro del sandbox. Esto incluye las modificaciones del sistema de archivos, la comunicación de red y las llamadas al sistema, que proporcionan una visión de su verdadero comportamiento.
  • Detección de malware evasivo: Algunos programas maliciosos avanzados están diseñados para reconocer cuándo se encuentran en un entorno aislado y alterar su comportamiento en consecuencia. Puede buscar señales de entornos virtuales o interacciones de usuario poco comunes para pasar desapercibido. Si detecta que se encuentra en un entorno aislado, el malware puede permanecer latente y revelar su verdadera naturaleza sólo en un entorno real. Los investigadores optimizan continuamente los entornos aislados para contrarrestar estas tácticas evasivas.
  • Posibles exploits: Los creadores de programas maliciosos a veces se aprovechan de las vulnerabilidades de los entornos aislados mal protegidos. Esto subraya la necesidad de un diseño robusto de los entornos aislados y de actualizaciones periódicas.
  • Acceso restringido: En muchos casos, los entornos aislados limitan el acceso a la red, garantizando que el software no pueda comunicarse libremente con servidores o sistemas externos. Además, al controlar los espacios de nombres del sistema de archivos, los entornos aislados impiden modificaciones o accesos no autorizados a los archivos. El acceso restringido también es frecuente en hosts en la nube y aplicaciones específicas, donde se emplean sandboxes para garantizar que el software contenido no pueda violar o comprometer la máquina anfitriona.

Beneficios de un Sandbox

Algunas de las ventajas más notables de utilizar un entorno sandbox son:

  • Mayor seguridad: En esencia, un entorno aislado proporciona una capa de seguridad mejorada. Al mantener el software potencialmente dañino dentro de un entorno controlado, el sandboxing garantiza que los sistemas más amplios y los datos críticos permanezcan intactos y sin compromisos.
  • Terreno de pruebas seguro: Los sandboxes sirven como entorno de pruebas de desarrollo, permitiendo a las organizaciones ejecutar aplicaciones en un espacio seguro antes de introducirlas en la fase de producción. Este espacio seguro garantiza que cualquier problema perjudicial se solucione sin comprometer ni ralentizar los recursos críticos.
  • Cuarentena de correo electrónico: Los Sandboxes se utilizan habitualmente como zona de cuarentena para correos electrónicos sospechosos y sus archivos adjuntos. Los filtros de correo electrónico pueden señalar amenazas potenciales, pero los administradores necesitan un lugar seguro para verificarlas sin riesgo de activación. En un sandbox, los archivos adjuntos o macros maliciosos, especialmente los dirigidos a aplicaciones como Microsoft Office, pueden ser examinados para garantizar su seguridad.
  • Análisis proactivo de amenazas: Los entornos aislados permiten evaluar y comprender las amenazas de forma proactiva, garantizando que las organizaciones puedan detectar y contrarrestar los riesgos potenciales antes de que se infiltren en los sistemas reales.
  • Facilita las pruebas de software: Más allá de actuar como un escudo contra las amenazas, el sandboxing tiene un valor incalculable para los desarrolladores. Pueden probar código nuevo, actualizaciones o aplicaciones completas para identificar y rectificar problemas sin afectar al entorno activo.
  • Fácil de usar para los empleados: Aunque los entornos aislados son herramientas inestimables para el personal especializado en ciberseguridad, su diseño intuitivo garantiza que incluso los empleados sin conocimientos técnicos puedan utilizarlos. A su vez, el aislamiento y examen de programas sospechosos garantiza que los individuos ejecuten códigos desconocidos sin poner en peligro los sistemas primarios.
  • Rentable: Mitigar las brechas de seguridad o solucionar los fallos de software después de la implantación puede resultar costoso. Sandboxing proporciona un enfoque preventivo, que mitiga los gastos financieros y de reputación que las organizaciones podrían afrontar de otro modo.
  • Aprendizaje y adaptación continuos: El entorno aislado proporciona un bucle de retroalimentación continua. A medida que encuentra amenazas y comportamientos de software, ayuda a actualizar los protocolos de seguridad según sea necesario.

 

Ejemplos de Sandbox:

Un sandbox puede tener componentes tanto de software como de hardware. Con restricciones de hardware, un sandbox podría estar en su propia red aislada. Para un aislamiento muy restringido, el sandbox podría estar en su propio router Wi-Fi y conexión ISP. Esta configuración haría físicamente imposible que una aplicación maliciosa accediera a la red principal.

Varias aplicaciones utilizan sandboxes por defecto para proteger el sistema operativo local. Los navegadores tienen sus propios sandboxes para separar las aplicaciones maliciosas que se ejecutan en la web del acceso a los recursos de la máquina local. Lenguajes como Java tienen su propio sandbox para proteger los recursos locales de código no fiable, como un applet Java que se ejecuta en una página web.

El sistema operativo Windows 10 tiene un sandbox integrado para proteger el escritorio de código no fiable. Aunque esta función no sustituye a los programas antivirus, cortafuegos y antimalware, añade una capa de seguridad de la que carecen los sistemas operativos Windows más antiguos.

HTML5 tiene un sandbox para proteger contra el uso indebido de su función iframe. Y el sistema operativo Linux cuenta con varios sandboxes de aplicaciones basados en Seccomp y cgroup. Google Sandbox API está a disposición de los desarrolladores que escriben código C++ y necesitan aplicar un sandbox a su código antes de desplegarlo en el entorno de producción.

Los sandboxes basados en la nube son entornos virtuales alojados en la nube. Permiten la ejecución segura y el análisis de código y proporcionan escalabilidad y flexibilidad para ejecutar múltiples instancias de sandboxes simultáneamente.

Por último, los entornos de desarrollo se construyen habitualmente como sandbox. Plataformas como Docker y Kubernetes utilizan la contenedorización, un tipo de sandboxing ligero que permite a los desarrolladores empaquetar una aplicación con todas sus dependencias en un «contenedor». Esto garantiza que la aplicación se ejecutará de forma coherente en diferentes entornos.

 

¿Cómo se configura un entorno de Sandboxing?

El propósito de un entorno aislado de Sandboxing depende de cómo se configure. Muchas plataformas en la nube tienen su propio entorno aislado para trabajar con nuevos programas y actualizaciones. Por ejemplo, si decide trabajar con PayPal como procesador de pagos, la plataforma tiene un entorno aislado completo en el que puede emular el entorno de producción. Cualquier código que utilice el sandbox está aislado de la producción, por lo que los errores y fallos no afectan a la plataforma principal.

Si necesitas un sandbox para probar código o malware potencial, puedes crear tu propio sandbox instalando una máquina virtual. A menudo se utiliza VirtualBox para alojar el entorno virtual, también llamado «máquina virtual». Entonces, sólo necesitas un archivo de instalación para ejecutar el sistema operativo dentro de la máquina virtual.

Antes de instalar el sistema operativo dentro de la máquina virtual, configure los recursos de hardware disponibles para el entorno, como la memoria, la CPU, la capacidad de almacenamiento y el adaptador de red. Estos recursos están virtualizados y no estarán disponibles fuera de la máquina virtual. A la inversa, los programas que se ejecuten en su nuevo entorno no podrán compartir recursos de memoria con el sistema operativo principal ni con nada fuera de la máquina virtual.

Aunque un sandbox debería ser un espacio seguro, los atacantes siempre intentan romper la seguridad del sandbox. Las empresas tecnológicas suelen ofrecer grandes recompensas a quien descubra un fallo en un sandbox que pueda explotarse. Los desarrolladores de Microsoft Edge pagarán hasta 30.000 dólares a quien encuentre un fallo en el sandbox del navegador. Los desarrolladores de Google Chrome pagaron 60.000 dólares a alguien que ejecutó código no autorizado en una máquina totalmente parcheada en 2012.

 

¿Cuál es el propósito de ejecutar aplicaciones de dispositivos móviles en un sandbox?

El principal beneficio del sandboxing de aplicaciones es mejorar la seguridad

Al limitar el entorno en el que se pueden ejecutar la aplicación, se protege al sistema de errores no maliciosos de la aplicación, o malware malicioso o piratas informáticos.

La zona de pruebas de aplicaciones también es beneficiosa por lo siguiente:

  1. Garantiza una experiencia de aplicación segura para los usuarios ya que impide que los usuarios accedan a entornos a los que no necesitan o no deberían acceder y puedan cometer errores.
  2. Proporciona seguridad adicional en caso de errores causados vulnerabilidades; y encapsula y aísla incluso los errores humanos no maliciosos dentro del entorno sandbox para que el sistema esté intacto al estar aislado.
  3. Los principales proveedores de software como Apple y Google cuentan con estos beneficios de los entornos sandbox para proporcionar entornos de aplicaciones seguros a los usuarios y evitar daños en el sistema.