Para comprender mejor los métodos modernos de detección de malware, es una buena idea mirar las cajas de arena. En ciberseguridad, el uso de sandboxes ha ganado mucha tracción durante la última década. Con la gran cantidad de malware nuevo que nos llega todos los días, los investigadores de seguridad necesitaban algo para probar nuevos programas sin invertir demasiado de su valioso tiempo.
Las cajas de arena brindan entornos ideales y aislados para detectar ciertos tipos de malware sin darle la oportunidad de propagarse. Según el comportamiento observado, las muestras se pueden clasificar como inofensivas, maliciosas o «necesita una mirada más de cerca».
La ejecución de programas en un entorno tan apartado se denomina sandboxing y el entorno en el que se permite ejecutar las muestras se denomina sandbox.
Definición de sandboxing
Comencemos con una definición para que sepamos de qué estamos hablando. Hay muchas definiciones, pero soy parcial a esta :
“El sandboxing es una estrategia de administración de software que aísla las aplicaciones de los recursos críticos del sistema y otros programas. La zona de pruebas ayuda a reducir el impacto que cualquier programa o aplicación individual tendrá en su sistema «.
No soy partidario de esta definición porque sea más correcta que otras definiciones, sino porque dice exactamente lo que queremos de una caja de arena en la investigación de malware: sin impacto en los recursos críticos del sistema. Queremos que el malware nos muestre lo que hace, pero no queremos que interfiera con nuestro monitoreo o infecte otros sistemas importantes. Preferiblemente, queremos que cree un informe completo y pueda restablecer la caja de arena rápidamente para que esté lista para la siguiente muestra.
Detección de malware y sandboxing
Partiendo de esa definición, podemos decir que un sandbox de ciberseguridad es un entorno físico o virtual que se utiliza para abrir archivos o ejecutar programas sin la posibilidad de que ninguna muestra interfiera con nuestro monitoreo o afecte permanentemente al dispositivo en el que se están ejecutando. La zona de pruebas se utiliza para probar código o aplicaciones que podrían ser maliciosas antes de distribuirlas en dispositivos críticos.
En ciberseguridad, el sandboxing se utiliza como método para probar software que terminaría siendo categorizado como «seguro» o «inseguro» después de la prueba. En muchos casos, se permitirá que el código se ejecute y se utilizará un algoritmo de aprendizaje automático (ML) u otro tipo de Inteligencia Artificial (IA) para clasificar la muestra o moverla hacia arriba para una determinación más cercana.
Software malicioso y sandboxes en línea
A medida que avanzaba el desarrollo de la tecnología sandbox y surgía la demanda de un método rápido para probar el software, vimos la introducción de sandboxes en línea. Estos son sitios web donde puede enviar una muestra y recibir un informe sobre las acciones de la muestra según lo observado por el sandbox en línea.
Aún se necesita un ojo experimentado para determinar a partir de estos informes si la muestra enviada fue maliciosa o no, pero para muchos administradores de sistemas en una organización pequeña, es una verificación rápida que les permite decidir si quieren permitir que algo se ejecute dentro de su perímetro de seguridad. .
Algunos de estos entornos sandbox en línea incluso han llevado este procedimiento un paso más allá y permiten la entrada del usuario durante el proceso de monitoreo.
Esta es una configuración ideal para esos tipos de situaciones en las que la víctima prevista necesita descomprimir un archivo adjunto protegido con contraseña y habilitar el contenido en un documento de Word. O esos molestos instaladores de adware que requieren que se desplace a través de su Acuerdo de licencia de usuario final (EULA) y haga clic en «Aceptar» e «Instalar». Como puedes imaginar. estos no harán mucho en una caja de arena completamente automatizada, pero para un analista de malware, estas muestras entrarían en la categoría que requiere atención humana de todos modos.
Sensibilidad de la caja de arena
En la actual «carrera armamentista» entre los creadores de malware y los profesionales de la seguridad, los creadores de malware comenzaron a agregar rutinas a sus programas que verifican si se ejecutan en un entorno virtual. Cuando los programas detectan que se están ejecutando en un sandbox o en una máquina virtual (VM), arrojan un error o simplemente dejan de ejecutarse silenciosamente. Algunos incluso realizan alguna tarea inofensiva para desviarnos de su pista. De cualquier manera, estas muestras de malware que evitan la zona de pruebas no ejecutan su código malicioso cuando detectan que se están ejecutando dentro de un entorno controlado. Su principal preocupación es que los investigadores puedan monitorear el comportamiento y proponer estrategias de respuesta, como bloquear las URL con las que la muestra intenta contactar.
Algunos de los métodos que utiliza el malware para determinar si se está ejecutando en una zona de pruebas son:
- Retrasar la ejecución para aprovechar el tiempo de espera integrado en la mayoría de los entornos sandbox.
- Huella digital de hardware. Los entornos sandbox y las máquinas virtuales se pueden reconocer ya que normalmente son diferentes de las máquinas físicas. Un uso mucho menor de recursos, por ejemplo, es uno de esos indicadores.
- Medición de la interacción del usuario. Algunos programas maliciosos requieren que el usuario esté activo para que se ejecuten, incluso si solo es un puntero del mouse en movimiento.
- Detección de red. Algunas muestras no se ejecutarán en sistemas que no estén en red.
- Comprobando otros programas en ejecución. Algunas muestras buscan procesos que se sabe que se utilizan para la supervisión y se niegan a ejecutarse cuando están activos. Además, la ausencia de otro software puede considerarse un indicador de ejecución en una caja de arena.
Sandboxes y máquinas virtuales
En el párrafo anterior hicimos referencia tanto a las máquinas virtuales como a las cajas de arena. Sin embargo, aunque los entornos sandbox y las máquinas virtuales comparten suficientes características como para confundirse entre sí, en realidad son dos tecnologías diferentes.
Lo que realmente los distingue es que la Máquina Virtual siempre actúa como si fuera un sistema completo. Una caja de arena se puede hacer mucho más limitada. Por ejemplo, se puede hacer que una caja de arena se ejecute solo en el navegador y ninguna de las otras aplicaciones en el sistema notaría que está allí. Por otro lado, una máquina virtual que esté completamente separada del resto del mundo, incluido su host, se consideraría una caja de arena.
Para completar el círculo, por así decirlo, hemos visto malware entregado en forma de VM. Este tipo de ataque se observó en dos familias separadas, Maze y Ragnar Locker. Los actores de amenazas de Maze incluyeron un instalador de VirtualBox y la unidad virtual de VM armada dentro de un archivo msi (paquete de instalador de Windows). Luego, los atacantes usaron un script por lotes llamado starter.bat para lanzar el ataque desde dentro de la VM.
Si desea conocer más detalles técnicos sobre estos ataques, aquí hay una lectura recomendada: Los atacantes de Maze adoptan la técnica de máquina virtual de Ragnar Locker
El futuro del sandboxing
Teniendo en cuenta que la contenedorización y las máquinas virtuales se están volviendo más comunes como reemplazo de las máquinas físicas, nos preguntamos si los ciberdelincuentes pueden permitirse cancelar su ataque cuando descubren que se están ejecutando en una caja de arena o en una máquina virtual.
Por otro lado, los métodos de detección de malware desarrollados alrededor de las cajas de arena son cada día más sofisticados.
Entonces, ¿podría ser este el campo donde la carrera armamentista está a favor de los buenos? Solo el futuro nos lo podrá decir.
Sobre el autor