Índice
Definición
Un sandbox en informática o un entorno de pruebas, es una máquina virtual aislada en la que se puede ejecutar código de software potencialmente inseguro sin afectar a los recursos de red o a las aplicaciones locales.
Los investigadores de ciberseguridad emplean los sandbox para ejecutar códigos sospechosos provenientes de archivos adjuntos y URL desconocidos, y observar su comportamiento. Algunos indicadores muy reveladores son: si el código se autorreplica, si intenta contactar a un servidor de comando y control, si descarga software adicional, si cifra datos delicados, etc. Como el entorno de pruebas es un entorno emulado sin acceso a la red, datos u otras aplicaciones, los equipos de seguridad pueden “detonar” el código con seguridad para determinar cómo funciona y si es malintencionado. Tienen una utilidad diferente que un honeypot.
Más allá de la ciberseguridad, los desarrolladores también usan los entorno de pruebas para ejecutar el código antes de su implementación a gran escala.
La formación en ciberseguridad empieza aquí
La prueba gratuita funciona de la siguiente manera:
- Reúnase con nuestros expertos en ciberseguridad para evaluar su entorno e identificar su exposición a riesgos.
- En un plazo de 24 horas y con una configuración mínima, desplegaremos nuestras soluciones durante 30 días.
- ¡Conozca nuestra tecnología en acción!
- Reciba un informe que identifica sus vulnerabilidades de seguridad para ayudarle a tomar medidas inmediatas frente a ataques de ciberseguridad.
Rellene este formulario para solicitar una reunión con nuestros expertos en ciberseguridad.
Un representante de Proofpoint se comunicará con usted en breve.
¿Cuál es el propósito de un sandbox?
En un entorno de producción comercial estándar, es posible que se considere que un entorno de pruebas se malinterprete o se considere un gasto innecesario. Pero estos son fundamentales para diversos casos de desarrollo de software, ciberseguridad e investigación. Asegurarse de que el sandbox esté verdaderamente aislado y sea seguro es más importante para la investigación de ciberseguridad que para el desarrollo de software, porque el malware escanea la red de manera activa y agresiva para encontrar vulnerabilidades informáticas aprovechables.
En el desarrollo
En el desarrollo, un sandbox suele incluir un servidor de desarrollo y un servidor de ensayo. El servidor de desarrollo está separado del entorno de producción, pero podría precisar de acceso básico a la red. Los desarrolladores usan este servidor para cargar el código y probarlo a medida que la base de código va cambiando.
El servidor de ensayo está diseñado para ser una réplica exacta del de producción. Es en este servidor donde el equipo de aseguramiento de calidad (o “QA”, del inglés “Quality Assurance”) prueba el código antes de implementarlo en el entorno de producción. Como el entorno de ensayo es el mismo que el de producción, cualquier código que se ejecute sin problemas en el entorno de ensayo debería funcionar también en el entorno de producción sin problemas. Después de probar el código, se implementa en producción.
En investigaciones de ciberseguridad
Los investigadores y analistas de ciberseguridad usan su entorno de pruebas de manera similar. Pero en este caso, es mucho más crítico el garantizar que ningún recurso de la red esté disponible para el malware. El entorno de pruebas tiene su propia red y suele no tener conexión física con los recursos de producción. El propósito del sandbox es ejecutar el código malintencionado y analizarlo. A veces, este código podría ser un ataque de día cero, en el que el efecto y contenido del malware son desconocidos. A causa de esto, el entorno de pruebas no debe tener acceso a infraestructuras críticas.
Con un sandbox, los investigadores y analistas de ciberseguridad pueden comprender cómo funciona el malware y qué se puede hacer para detenerlo. El primerísimo paso en el diseño del software antivirus es evitar que el malware se propague a otros sistemas y procurar eliminarlo de los sistemas infectados.
Para ataques complejos, los sandbox están ampliamente disponibles para analizar rápidamente el malware y analizarlo antes de que se convierta en un problema global. El ransomware, por ejemplo, se puede diseminar a nivel mundial y causar fallos generales en los sistemas clave del gobierno. Esto hace que sea importante para los investigadores el contar con entornos de pruebas listos para detenerlos.
¿Cómo funciona un sandbox?
El funcionamiento de un sandbox depende de qué es lo que se está analizando o testeando. Por ejemplo, un entorno de pruebas cuyo fin sea hacer pruebas de malware se configura y funciona de manera diferente de un entorno de pruebas para probar códigos para actualizar aplicaciones. Para investigar acerca de potenciales softwares maliciosos y ejecución de códigos malintencionados, el entorno de pruebas debe estar aislado del software de producción.
Sin importar cómo se use un sandbox, todos ellos tienen algunas funcionalidades básicas:
- Emulación de un dispositivo real. Esto podría ser la emulación de un dispositivo móvil o de escritorio. Sea como sea, la aplicación a analizar debe tener acceso a los mismos recursos que el código que se analiza, incluyendo CPU, memoria y almacenamiento.
- Emulación del sistema operativo objetivo. usando una máquina virtual, la aplicación debe tener acceso al sistema operativo. Con una máquina virtual, el entorno de pruebas está aislado del hardware físico subyacente, pero tiene acceso al sistema operativo instalado.
- Entorno virtualizado. Generalmente, un entorno de pruebas está en una máquina virtual, de modo que no tiene acceso a los recursos físicos, pero sí puede acceder a hardware virtualizado.
La virtualización y la emulación no son panaceas. Algunos creadores de malware diseñan el código de manera de que permanezca fuera del “radar” de los investigadores si determina que se está ejecutando en un sandbox.
Las medidas de detección de entornos de pruebas pueden incluir el buscar interacciones con usuarios que no sean consistentes con el uso en el mundo real. Otros podrían leer la configuración del sistema para buscar configuraciones de sistema comunes en máquinas virtuales. En estos casos, el malware permanece en “hibernación”, de modo que no se le detecta como malintencionado, y solo se activa después de haber alcanzado a un objetivo en el mundo real.
En algunos casos, el autor del malware podría llegar a crear rutas para comprometer un entorno de pruebas con una seguridad deficiente.
Los entornos virtualizados también se conocen como “cárceles”, porque el sistema operativo emulado y los recursos de hardware han restringido el acceso a la red y los espacios de nombres de los sistemas de archivos. Los entornos de pruebas también vienen incluidos en algunas aplicaciones y host basados en la nube, en los que se evita que cualquier programa que se ejecute en su interior pueda acceder a ciertos aspectos del host o servicio de alojamiento web.
Beneficios de un sandbox
Al igual que ocurre con un entorno de desarrollo, un entorno de pruebas se puede utilizar para ejecutar cualquier aplicación en un recurso seguro antes de implementarla en producción o brindarles acceso a los recursos de producción. Un sandbox les permite a las organizaciones ejecutar programas que podrían (potencialmente) causar problemas, ya sean malware o fallos imprevistos de software, sin ralentizar o perjudicar recursos clave para el negocio.
Un sandbox suele emplearse como medio de cuarentena para correos electrónicos o archivos adjuntos desconocidos. Los filtros de correo electrónico detectan mensajes de correo y archivos adjuntos potencialmente malintencionados, pero un administrador precisa de un lugar seguro para verlos o detectar falsos positivos. Los documentos malintencionados pueden contener macros que se aprovechan de fallos en aplicaciones de productividad muy populares, como Microsoft Office. Un administrador puede usar una máquina virtual en entorno de pruebas para abrir archivos adjuntos y ver los macros para determinar si son seguros.
Para organizaciones que no cuentan con personal especializado en ciberseguridad, cualquier empleado puede usar un sandbox para aislar programas sospechosos. Un entorno de pruebas puede permitir que los trabajadores ejecuten código sin exponer sus sistemas a nuevas amenazas.
Protección contra ataques de ransomware
Ejemplos de sandbox
Un sandbox puede tener componentes tanto de software como de hardware. Con las restricciones de hardware, un entorno de pruebas podría estar dentro de su propia red aislada. Para lograr un aislamiento muy restringido, el entorno de pruebas podría incluso tener sus propios router Wi-Fi y conexión al ISP. Esta configuración haría físicamente imposible para una aplicación malintencionada el acceder a la red principal.
Diversas aplicaciones usan entornos de pruebas por defecto para proteger al sistema operativo local. Los navegadores tienen sus propios sandbox para evitar que las aplicaciones malintencionadas que se ejecutan desde la web puedan acceder a los recursos de los equipos locales. Lenguajes de programación, como el Java, tienen su propio entorno de pruebas para proteger los recursos locales de códigos no fiables, como un applet de Java ejecutándose en una página web.
El Windows 10 sandbox es un entorno de pruebas integrado para proteger al escritorio de código no seguro o confiable. Si bien esta función no debería usarse como reemplazo para programas antivirus, cortafuegos o antimalware, sí añade una capa adicional de seguridad que los sistemas operativos Windows anteriores simplemente no tienen.
HTML5 sandbox sirve de protección contra el uso inadecuado de su función iframe. Y el sistema operativo Linux tiene diversos sandbox para aplicaciones integrados en Seccomp y cgroup. La API de Google Sandbox está disponible para los desarrolladores que escriben código en C++ y precisan de un entorno de pruebas para su código antes de implementarlo en el entorno de producción.
¿Cómo instalar un sandbox?
El propósito de un sandbox depende de la manera en que esté configurado o instalado. Muchas plataformas basadas en la nube tienen su propio entorno de pruebas para trabajar con nuevos programas y actualizaciones. Por ejemplo, si decide usar PayPal como procesador de pagos, la plataforma cuenta con un entorno de pruebas integral, Paypal sandbox, en el que puede emular el entorno de producción. Cualquier código que use el entorno de pruebas estará aislado de producción, así que los errores y fallos no afectarán a la plataforma principal.
Si usted necesita un sandbox para probar códigos o potenciales malware, puede crear su propio sandbox instalando una máquina virtual. VirtualBox suele ser utilizado como host o alojamiento del entorno virtual, también llamado “máquina virtual”. Posteriormente, lo único que necesitará es un fichero de instalación para ejecutar el sistema operativo dentro de la máquina virtual.
Antes de instalar el sistema operativo en la máquina virtual, se deben configurar los recursos de hardware que estarán disponibles para el entorno, tales como la memoria, CPU, capacidad de almacenamiento y adaptador de red. Estos recursos se virtualizan y no estarán disponibles fuera de la máquina virtual. Y al contrario, los programas que se ejecuten en su nuevo entorno no podrán compartir recursos de memoria con el sistema operativo principal o cualquier otra acción fuera de la máquina virtual.
Si bien un entorno de pruebas debería ser un espacio seguro, los atacantes siempre procuran vulnerar esta seguridad. Las empresas de tecnología suelen ofrecer generosas recompensas a aquellos que sean capaces de detectar un punto débil en el sandbox que pueda ser aprovechado. Los desarrolladores de Microsoft Edge pagan hasta 30.000 USD a cualquiera que sea capaz de hallar una manera de evadir la seguridad de sandbox del navegador. Los desarrolladores de Google Chrome pagaron 60.000 USD a una persona que fue capaz de ejecutar código no autorizado en un equipo completamente parcheado y revisado en 2012.
Para realizar cualquier investigación de seguridad o realizar análisis de malware en profundidad, es prácticamente obligatorio contar con un sandbox. Este garantiza que todos los recursos estén fuera del alcance de la máquina virtual, incluyendo el almacenamiento en la red. Con un entorno de pruebas, es posible analizar el código sin arriesgarse a destruir el entorno de producción.