Última HoraBajo

Defensas de Cadena de Suministro de NPM Burladas mediante Dependencias Git

3 min de lecturaFuente: BleepingComputer

Investigadores descubren vulnerabilidades críticas en las defensas de NPM tras los ataques Shai-Hulud, permitiendo a actores maliciosos explotar dependencias Git para inyectar código malicioso.

Defensas de Seguridad de NPM Burladas mediante Dependencias Git

Investigadores en ciberseguridad han identificado debilidades críticas en las defensas de la cadena de suministro de NPM, implementadas tras los ataques de alto perfil Shai-Hulud, que permiten a actores maliciosos eludir protecciones al explotar dependencias Git. Estos hallazgos resaltan riesgos persistentes en la gestión de dependencias del ecosistema JavaScript.

Hallazgos Clave

En 2021, NPM implementó controles de seguridad mejorados tras los ataques a la cadena de suministro Shai-Hulud, que involucraron paquetes maliciosos comprometiendo aplicaciones downstream. Sin embargo, investigadores han demostrado que los atacantes pueden eludir estas defensas aprovechando dependencias basadas en Git—paquetes alojados directamente en repositorios Git en lugar del registro de NPM.

A diferencia de los paquetes tradicionales de NPM, las dependencias Git no están sujetas a los mismos escaneos de seguridad, verificaciones de firmas o validaciones de metadatos. Este descuido crea un punto ciego, permitiendo a los atacantes:

  • Inyectar código malicioso en dependencias sin ser detectados.
  • Explotar relaciones de confianza en proyectos de código abierto.
  • Burlar las verificaciones de seguridad automatizadas de NPM, incluyendo la firma de paquetes y la verificación de procedencia.

Detalles Técnicos

Las defensas post-Shai-Hulud de NPM incluyen:

  • Firma de paquetes para verificar la autenticidad del publicador.
  • Verificaciones de procedencia para validar los orígenes del paquete.
  • Escaneo automatizado de malware para paquetes alojados en el registro.

Sin embargo, las dependencias Git—referenciadas mediante URLs en package.json (ejemplo: git+https://github.com/user/repo.git)—no son procesadas a través de estas salvaguardas. Los atacantes pueden:

  1. Alojar paquetes maliciosos en repositorios Git públicos o privados.
  2. Engañar a los desarrolladores para que los incluyan mediante typosquatting o ingeniería social.
  3. Ejecutar código arbitrario durante la instalación, comprometiendo entornos de construcción.

Análisis de Impacto

La vulnerabilidad expone a las organizaciones a:

  • Ataques a la cadena de suministro dirigidos a pipelines de CI/CD.
  • Exfiltración de datos o despliegue de backdoors a través de dependencias comprometidas.
  • Daño reputacional para proyectos que distribuyen código malicioso sin saberlo.

Las dependencias Git son ampliamente utilizadas en proyectos empresariales y de código abierto, lo que amplifica el riesgo. Bibliotecas o herramientas de alto perfil con dependencias transitivas en paquetes alojados en Git podrían propagar amenazas de manera inadvertida.

Recomendaciones

Los equipos de seguridad y desarrolladores deberían:

  1. Auditar los archivos package.json en busca de dependencias Git y reemplazarlas con alternativas alojadas en el registro cuando sea posible.
  2. Implementar herramientas de escaneo de dependencias (ejemplo: GitHub Dependabot, Snyk) para detectar referencias Git maliciosas.
  3. Aplicar políticas estrictas de revisión de código para dependencias basadas en Git, incluyendo la validación manual de las fuentes del repositorio.
  4. Usar el flag --omit=dev de NPM durante la instalación para excluir dependencias de desarrollo que puedan ocultar riesgos.
  5. Monitorear comportamientos anómalos en los sistemas de construcción, como solicitudes de red inesperadas o modificaciones de archivos.

Próximos Pasos

NPM aún no ha lanzado un parche o mitigación para este problema. Se insta a las organizaciones a adoptar estrategias de defensa en profundidad, incluyendo:

  • Entornos de construcción aislados para limitar el impacto de dependencias comprometidas.
  • Generación de un Software Bill of Materials (SBOM) para rastrear los orígenes de las dependencias.
  • Principios de cero confianza para la gestión de dependencias, tratando todo código externo como no confiable por defecto.

Este descubrimiento subraya la necesidad de vigilancia continua en la protección de las cadenas de suministro de código abierto, especialmente a medida que los atacantes cambian de tácticas para explotar superficies de ataque pasadas por alto.

Compartir

TwitterLinkedIn