Varios paquetes oficiales de SAP npm se vieron comprometidos en lo que
se cree que fue un ataque a la cadena de suministro de TeamPCP para robar
credenciales y tokens de autenticación de los sistemas de los desarrolladores.
Los investigadores informan que la vulneración afectó a cuatro paquetes, cuyas
versiones ahora están descontinuadas en NPM:
- @cap-js/sqlite – v2.2.2
- @cap-js/postgres – v2.2.2
- @cap-js/db-service – v2.10.1
- mbt – v1.2.48
Estos paquetes son compatibles con el Modelo de Programación de Aplicaciones
en la Nube (CAP) y Cloud MTA de SAP, que se utilizan comúnmente en el
desarrollo empresarial.
Según nuevos informes de
Aikido
y
Socket, los paquetes comprometidos fueron modificados para incluir un
script malicioso de «preinstalación» que se ejecuta automáticamente al
instalar el paquete npm. Este script inicia un cargador llamado
setup.mjs que descarga el entorno de ejecución Bun JavaScript de GitHub
y lo utiliza para ejecutar un payload execution.js altamente
ofuscada.
El payload es un programa de robo de información utilizado para
sustraer una amplia variedad de credenciales tanto de máquinas de
desarrolladores como de entornos de CI/CD, incluyendo:
- Tokens de autenticación de npm y GitHub
- Claves SSH y credenciales de desarrollador
- Credenciales en la nube para AWS, Azure y Google Cloud
- Configuración y secretos de Kubernetes
- Secretos y variables de entorno de la canalización de CI/CD
El malware también intenta extraer secretos directamente de la memoria del
ejecutor de CI, de forma similar a como TeamPCP extrajo credenciales en
ataques anteriores a la cadena de suministro.
Un payload de Python extrae cada secreto que coincida con
«key»: { «value»: «…», «isSecret»: true}. Este escáner de memoria
para secretos es estructuralmente idéntico al documentado en los
incidentes de Bitwarden y Checkmarx.
Una vez recopilados los datos, se cifran y se suben a repositorios públicos de
GitHub bajo la cuenta de la víctima. Estos repositorios incluyen la
descripción «A Mini Shai-Hulud has Appeared», similar a la cadena
«Shai-Hulud: The Third Coming» vista en el ataque a la cadena de
suministro de Bitwarden.
El malware también utiliza búsquedas de commits de GitHub como mecanismo de
punto de entrega para recuperar tokens y obtener acceso adicional.
«El malware busca esta cadena en los commits de GitHub y utiliza los
mensajes de commit coincidentes como punto de entrega de tokens», explica Aikido.
Al igual que en ataques anteriores, la carga útil desplegada también incluye
código para autopropagarse a otros paquetes. Utilizando credenciales robadas
de npm o GitHub, intenta modificar otros paquetes y repositorios a los que
accede e inyecta el mismo código malicioso para propagarse aún más.
Los investigadores han vinculado este ataque con un grado de confianza medio
al grupo de ciberdelincuentes TeamPCP, que utilizó código y tácticas similares
en ataques anteriores a la cadena de suministro contra Trivy, Checkmarx y
Bitwarden.
Si bien no está claro cómo los ciberdelincuentes comprometieron el proceso de
publicación de npm de SAP, el ingeniero de seguridad
Adnan Khan informa
que un token de NPM podría haber quedado expuesto a través de una
configuración incorrecta de un trabajo de CircleCI.
Fuente:
BC

