Para pasar desapercibidos por más tiempo en entornos de nube, los atacantes han comenzado a abusar de servicios menos comunes que no están sujetos a una revisión de seguridad exhaustiva por parte del proveedor de la nube. Este es el caso de la campaña de criptojacking Ambersquid recientemente descubierta, que implementa malware de minería de criptomonedas en AWS Amplify, Fargate y SageMaker en lugar de la más obvia Elastic Compute Cloud (EC2).

"La Operación Ambersquida pudo aprovechar los servicios en la nube sin activar el proceso de aprobación de recursos adicionales que normalmente requiere AWS, lo que habría ocurrido si solo hubieran enviado spam a instancias EC2", dijeron. investigadores de la empresa de seguridad Sysdig en un informe. "Apuntar a múltiples servicios también plantea desafíos adicionales, particularmente en la respuesta a incidentes, ya que requiere encontrar y eliminar a todos los mineros en cada servicio explotado", agregaron.

Índice
  1. Cómo funciona la campaña
  2. Fargate y CodeBuild en el visor
  3. Servicios de nube específicos que integran la informática

Cómo funciona la campaña

Los investigadores de Sysdig descubrieron la campaña de criptojacking escaneando 1,7 millones de imágenes de contenedores de Linux alojadas en Docker Hub en busca de cargas útiles maliciosas. Tras las pistas de criptojacking encontradas mientras se ejecutaba un contenedor, un análisis más detallado realizado por investigadores descubrió varios contenedores similares cargados por diferentes cuentas desde mayo de 2022 que cargan criptomineros alojados en GitHub. A juzgar por los comentarios utilizados en los scripts maliciosos dentro de los contenedores, los investigadores creen que los atacantes detrás de la campaña son de Indonesia. Después de implementarse en AWS utilizando credenciales robadas, las imágenes maliciosas de Docker ejecutan una serie de scripts, comenzando con uno que configura varios roles y permisos de AWS. Uno de ellos, llamado AWSCodeCommit-Role, brinda acceso al servicio Amplify que permite a los desarrolladores crear, implementar y alojar aplicaciones web y móviles completas en AWS. Este rol también tiene acceso al servicio de repositorio de código fuente administrado CodeCommit y al servicio de visualización de datos y monitoreo de infraestructura de CloudWatch.

Un segundo rol, llamado sugo-role, creado por los scripts del contenedor, tiene acceso completo a SageMaker, otro servicio de AWS utilizado por los científicos de datos para construir, entrenar e implementar modelos de aprendizaje automático. Un tercer rol llamado ecsTaskExecutionRole brinda acceso a Elastic Container Service (ECS), un sistema de administración de contenedores Docker nativo de AWS. Luego, los atacantes aprovechan los roles recién creados en varios servicios, comenzando con CodeCommit, donde crean un repositorio Git privado que aloja el código que necesitan para las siguientes etapas de su ataque, evitando que abandonen el ecosistema de AWS posteriormente. el compromiso inicial y reduce el riesgo de alertas de tráfico saliente. El repositorio Git se utiliza para alojar código de una aplicación maliciosa diseñada para construirse e implementarse con el servicio Amplify. Luego, el script genera cinco aplicaciones Amplify para implementar en diferentes regiones de AWS y, como parte de sus scripts de compilación, un comando descarga y ejecuta un criptominero.

Fargate y CodeBuild en el visor

Dado que la criptominería y el robo de recursos tienen lugar durante la construcción de la aplicación, los atacantes agregaron código para prolongar este proceso tanto como sea posible. Cuando las aplicaciones terminan de construirse, se ejecuta otro script para actualizar el código y se reinicia el proceso, reiniciando la fase de construcción y, por tanto, la criptominería. Otro script de contenedor configura un proceso similar, pero en el servicio ECS, que permite implementar contenedores en instancias EC2, Fargate, el motor informático sin servidor de Amazon, o máquinas virtuales locales. El script otorga los permisos necesarios a la cuenta ecsTaskExecutionRole, que luego se usa para configurar una tarea ECS que configura un contenedor en Fargate con dos CPU virtuales y 4 GB de RAM e implementa una imagen de Linux que incluye un minero. La tarea está configurada con un recuento deseado de 30, lo que significa que se crearán 30 instancias.

Otro objetivo de esta campaña es el servicio de integración continua CodeBuild, utilizado para compilar y probar el código fuente. El archivo de especificaciones que permite a CodeBuild ejecutar tareas puede incluir comandos de compilación, y los atacantes agregaron comandos para ejecutar su minero. Los atacantes también establecieron el valor de "tiempo de espera en minutos" para la tarea de compilación en un máximo de ocho horas para garantizar que su minero se ejecutará durante ese período antes de reiniciarse. A continuación, los atacantes se dirigieron al servicio de infraestructura como código, CloudFormation, que ofrece a los usuarios aprovisionar recursos de AWS y de terceros a través de plantillas. Estos recursos se pueden agrupar en pilas y controlar como una sola unidad. "Los scripts de los atacantes crean múltiples pilas de CloudFormation basadas en una plantilla que define un componente EC2 Image Builder", explicaron los investigadores. “En este componente pusieron comandos para ejecutar un minero durante la fase de construcción de la imagen. Estos comandos son similares a los que se pueden definir en un archivo Docker.

Al igual que con Amplify y CodeBuild, el proceso de minería se inicia durante una fase de construcción. Los atacantes intentaron ampliarlo tanto como fuera posible añadiendo comandos. cron en la plantilla para iniciar una nueva compilación cada minuto. Los atacantes también abusaron de la función EC2 Auto Scaling, que permite a los usuarios agregar o eliminar instancias EC2 utilizando políticas de escalado, definidas en plantillas. Esta función se utilizó para crear dos grupos de ocho instancias On-Demand y Spot, cada una ejecutando una imagen de contenedor Docker con un minero. Finalmente, los piratas informáticos también abusaron de instancias informáticas de aprendizaje automático que ejecutaban la aplicación Jupyter Notebook como parte del servicio Amazon SageMaker. Para cada instancia de Jupyter Notebook, los usuarios pueden definir una configuración de ciclo de vida que incluya una serie de scripts de shell ejecutados cuando se crean las instancias. Usaron esta característica para incluir un comando que ejecuta Docker e implementa una de sus imágenes de Docker Hub que contiene un minero. “El abuso de todos estos servicios, con instancias de contenedores no autorizadas y tareas de compilación ejecutándose en diferentes regiones, puede generar costos operativos de 2244 dólares por día y más para las víctimas”, estimaron los investigadores de Sysdig.

Servicios de nube específicos que integran la informática

"Los proveedores de servicios en la nube (CSP) como AWS ofrecen una gama muy amplia de servicios a sus clientes", dijeron los investigadores. “Aunque la mayoría de los atacantes con motivaciones financieras apuntan a servicios informáticos como EC2, es importante recordar que muchos otros servicios también brindan acceso a recursos informáticos (aunque de manera más indirecta). "Pero la seguridad de estos servicios puede pasarse por alto fácilmente porque la visibilidad es menor que la que proporciona la detección de amenazas".

Dado que muchos de estos servicios solo están destinados a ejecutar código temporalmente, no siempre es posible instalar soluciones de detección de ejecución. En este caso, las empresas deberían implementar un sistema para registrar y monitorear las tendencias de uso de estos servicios en sus cuentas para identificar anomalías y comportamientos sospechosos.