Los investigadores de ciberseguridad han detectado un nuevo ataque a la cadena de suministro de software dirigido al registro npm que ha afectado a más de 40 paquetes que pertenecen a varios mantenedores.

«Las versiones comprometidas incluyen una función (npmModule.UpdatePackage) que descarga el tarball de un paquete, modifica package.json, inyecta un script local (bundle.js), vuelve a empaquetar el archivo y lo vuelve a publicar, lo que permite la troyanización automática de los paquetes posteriores», dijo la empresa de seguridad de la cadena de suministro Socket dijo .

El objetivo final de la campaña es buscar secretos en las máquinas de los desarrolladores utilizando TruffleHog's escáner de credenciales y transmitirlos a un servidor externo bajo el control del atacante. El ataque es capaz de atacar los sistemas Windows y Linux.

Se ha identificado que los siguientes paquetes se vieron afectados por el incidente:

  • angulartics2 @14 .1.2
  • @ctrl /diluvio @7 .2.2
  • @ctrl /golang-template @1 .4.3
  • @ctrl /enlace magnético @4 .0.4
  • @ctrl /ngx-codemirror @7 .0.2
  • @ctrl /ngx-csv @6 .0.2
  • @ctrl /ngx-emoji-mart @9 .2.2
  • @ctrl /ngx-rightclick @4 .0.2
  • @ctrl /qbittorrent @9 .7.2
  • @ctrl /react-adsense @2 .0.2
  • @ctrl /torrent compartido @6 .3.2
  • @ctrl /tinycolor @4 .1.1, @4 .1.2
  • @ctrl /torrent-file @4 .1.2
  • @ctrl /transmisión @7 .3.1
  • @ctrl /ts-base32 @4 .0.2
  • playground de encuentro @0 .0.5
  • motor de reglas json-simplificado @0 .2.4, 0.2.1
  • koa2-swagger-ui @5 .11.2, 5.11.1
  • @nativescript -community/gesturehandler @2 .0.35
  • @nativescript -community/sentry 4.6.43
  • @nativescript -community/text @1 .6.13
  • @nativescript -community/ui-collectionview @6 .0.6
  • @nativescript -community/ui-drawer @0 .1.30
  • @nativescript -community/ui-image @4 .5.6
  • @nativescript -community/ui-material-bottom sheet @7 .2.72
  • @nativescript -community/ui-material-core @7 .2.76
  • @nativescript -community/ui-material-core-tabs @7 .2.76
  • ngx-color @10 .0.2
  • ngx-toastr @19 .0.2
  • ngx-trend @8 .0.1
  • react-complaint-image @0 .0.35
  • react-jsonschema-form-conditionals @0 .3.21
  • react-jsonschema-form-extras @1 .0.4
  • rxnt-authentication @0 .0.6
  • rxnt-healthchecks-nestjs @1 .0.5
  • rxnt-kue @1 .0.7
  • swc-plugin-component-annotate @1 .9.2
  • ts-gaussian @3 .0.6

El código JavaScript malintencionado (» bundle.js «) que se inyecta en cada uno de los paquetes troyanizados está diseñado para descargar y ejecutar TruffleHog, una herramienta de escaneo secreta legítima, que se utiliza para escanear el host en busca de tokens y credenciales de nube, como GITHUB_TOKEN, NPM_TOKEN, AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY.

«Valida los tokens npm con el punto final de whoami e interactúa con las API de GitHub cuando hay un token disponible», afirma Socket. «También intenta descubrir metadatos en la nube, que pueden filtrar credenciales de corta duración en los agentes de creación de la nube».

Luego, el script abusa de las credenciales del desarrollador (es decir, los tokens de acceso personal de GitHub) para crear un flujo de trabajo de GitHub Actions en .github/workflows, y filtra los datos recopilados a un punto final del sitio webhook [.].

Se recomienda a los desarrolladores que auditen sus entornos y roten los tokens npm y otros secretos expuestos si los paquetes antes mencionados están presentes con credenciales de publicación.

«El flujo de trabajo que escribe en los repositorios persiste más allá del host inicial», señaló la empresa. «Una vez confirmada, cualquier ejecución futura de CI puede iniciar la etapa de exfiltración desde dentro del proceso, donde los secretos y artefactos confidenciales están disponibles por diseño».

Campaña de suplantación de identidad de crates.io

La revelación se produce cuando el grupo de trabajo de respuesta de seguridad de Rust advierte sobre correos electrónicos de suplantación de identidad provenientes de un dominio con errores tipográficos, rustfoundation [.] dev, dirigidos a usuarios de crates.io.

Los mensajes, que provienen de security @rustfoundation [.] dev, advierten a los destinatarios de un supuesto compromiso de la infraestructura de crates.io y les indican que hagan clic en un enlace incrustado para cambiar su información de inicio de sesión y así «asegurarse de que el atacante no pueda modificar ningún paquete publicado por usted».

El enlace fraudulento, github.rustfoundation [.] dev, imita una página de inicio de sesión de GitHub, lo que indica un claro intento por parte de los atacantes de capturar las credenciales de las víctimas. Actualmente no se puede acceder a la página de suplantación de identidad.

«Estos correos electrónicos son maliciosos y provienen de un nombre de dominio que no está controlado por la Fundación Rust (ni por el Proyecto Rust), aparentemente con el propósito de robar tus credenciales de GitHub», dijo el grupo de trabajo de respuesta de seguridad de Rust dijo . «No tenemos pruebas de que la infraestructura de crates.io se haya comprometido».

El equipo de Rust también dijo que están tomando medidas para monitorear cualquier actividad sospechosa en crates.io, además de eliminar el dominio de suplantación de identidad.

¿Te ha parecido interesante este artículo? Síguenos en Noticias de Google , Twitter y LinkedIn para leer más contenido exclusivo que publicamos.