Se encontró un nuevo ataque a la cadena de suministro de software diseñado para extraer datos de aplicaciones y sitios web en más de dos docenas de paquetes NPM.
Amenaza -
A principios de este mes, ReversingLabs identificó IconBurst, un ataque NPM de JavaScript que Instala módulos NPM maliciosos que recopilan datos de formularios integrados en aplicaciones móviles y sitios web.
Propagar -
La propagación del ataque no está del todo clara en este momento; sin embargo, tiene el potencial de infectar masivamente sitios web y aplicaciones creados por desarrolladores que utilizan estos paquetes. Dado que cada desarrollador puede crear varios sitios, la amenaza aumenta. Dado que algunos de los paquetes se descargan decenas de miles de veces, el alcance estimado podría ser tan extendido como infecciones masivas pasadas como Log4J y SolarWinds. Si bien Log4J estuvo más extendido y SolarWinds tuvo un mayor impacto, el daño final puede ser igualmente significativo.
Tecnología -
Los paquetes utilizan scripts jQuery con el objetivo de robar datos de las aplicaciones implementadas.
Además, IconBurst utiliza un ofuscador de JavaScript para ocultar parte del código. Normalmente, un ofuscador está destinado a proteger el código propietario en paquetes de código abierto y comprimir archivos JavaScript. Sin embargo, IconBurst lo usa para ocultar la dirección de exfiltración utilizada en la extracción de datos de formularios serializados.
Esto significa que los desarrolladores que utilizan estos paquetes falsos sin saberlo no son el objetivo del ataque, sino que el objetivo real es el usuario final.
Infección -
Desde principios de este año se han identificado veinticuatro paquetes que utilizan métodos de typosquatting como medio de distribución.
Los atacantes utilizan técnicas de typosquatting, lo que significa hacerse pasar por paquetes legítimos a través de repositorios públicos como NPM.
IconBurst se centra en paquetes que contienen la palabra "Icon", haciéndose pasar por módulos NPM de alto tráfico y ofreciendo paquetes con nombres confusos y comunes mal escritos.
Typosquatting es una forma de ataque de ciberocupación y una forma de ataque de ingeniería social.
¿Por qué utilizar “icono” como palabra clave base? La razón probablemente sea el paquete ionicons, que se utiliza con frecuencia para proporcionar iconos en aplicaciones creadas con el marco ionic.
Con un recuento de descargas de más de 17000 para el paquete de iconos, con diferencia el paquete más descargado, y más de 3700 para el paquete ionicio.
Bandera -
Entonces, ¿qué hizo Laboratorios reversibles ¿Levantar la proverbial bandera roja? Ofuscador de Javascript.
Como se mencionó, un ofuscador de JavaScript está destinado a proteger las aplicaciones de Javascript y permite a los desarrolladores proteger el código contra copia o ingeniería inversa.
Sin embargo, la desventaja de esta capacidad es que los atacantes pueden aprovecharla para disfrazar código malicioso.
La presencia de un ofuscador de JavaScript es lo que hizo que los ingenieros de ReversingLabs inspeccionaran varios paquetes de NPM; al observar los nombres de esos paquetes, surgió un patrón. Algunos de los primeros paquetes inspeccionados tenían la palabra "icono", fue entonces cuando la estrategia de los atacantes quedó clara: agacharse con errores tipográficos e infectar en masa.
Los atacantes no intentaron apuntar específicamente a paquetes con la palabra ícono, sin embargo, en última instancia, la mayoría de los paquetes descargados estaban relacionados con íconos, debido a su popularidad.
Hance – “IconBurst”
Aquí está la lista:
Autor/nombre del paquete | Recuento de descargas | Nombre del paquete original |
---|---|---|
icono-ionico | 108 | ionicones |
ionicio | 3,724 | ionicones |
paquete de iconos | 17,774 | ionicones |
ajax-libs | 2,440 | |
paraguas | 686 | paraguasjs |
biblioteca-ajax | 530 | |
paquete-iconion | 101 | |
paquete-sidr | 91 | |
kbrstore | 89 | |
paquete de iconos | 380 | |
subek | 99 | |
paquete-mostrar | 103 | |
icono de paquete | 122 | |
paquetes-de-iconos | 170 | |
paquete-ionicon | 64 | |
paquete de iconos | 49 | |
paquete de iconos | 468 | |
paquete-ionicons | 89 | |
paquete-ionicons | 144 | |
paquete-ionicon | 57 | |
base64-javascript | 40 | |
ionicons-js | 38 | |
ionicons-json | 39 | |
icono de pie de página | 1,903 | |
rugido-01 | 40 | |
rugido-02 | 37 | |
wkwk100 | 38 | |
swiper-bundie | 39 | swiper |
ajax-libz | 40 | |
paquete de swiper | 185 | swiper |
escuchar | 43 | |
ajax-googleapis | 38 | |
tezdoank | 69 | |
ajaxapis | 40 | |
tescodek | 38 | |
atezzz | 114 | |
libz.jquery | 160 | |
biblioteca ajax | 36 |
Intención -
IconBurst fue diseñado para dirigirse al usuario final y obtener los datos ingresados en los formularios. Otros ataques pueden tener como objetivo otros tipos de datos u otros tipos de audiencias objetivo en lugar de usuarios finales.
¿Pero los atacantes siempre buscan datos? En realidad no, no lo son. Hemos visto otros tipos de ataques; Los atacantes han utilizado código oculto en paquetes y han logrado instalar Crypto miners, apuntando a los recursos de las máquinas atacadas (potencia informática) y sin afectar sus datos en absoluto.
Resumen -
IconBurst demuestra la capacidad de utilizar lo que en última instancia es una tecnología bastante simple, un ofuscador de JavaScript que disfraza código malicioso y se hace pasar por paquetes legítimos a través de repositorios públicos como NPM.
El verdadero as bajo la manga de IconBurst es Ingeniería social, no tecnología muy sofisticada, y puede ser igual de efectiva.
Este contenido es presentado por Scribe Security, un proveedor líder de soluciones de seguridad de la cadena de suministro de software de extremo a extremo, que ofrece seguridad de última generación para artefactos de código y procesos de desarrollo y entrega de código en todas las cadenas de suministro de software. Más información.