Un nuevo método de ataque de cadena de suministro de software llamado MavenGate ha puesto en riesgo a varias bibliotecas populares y públicas utilizadas en aplicaciones de Java y Android que fueron abandonadas pero siguen siendo utilizadas. Según un análisis publicado por Oversecured, la explotación exitosa de estas deficiencias podría permitir que actores malintencionados se apropien de artefactos en dependencias e inyecten código malicioso en la aplicación. Un atacante podría centrarse en repositorios de dependencias públicos para realizar ataques de envenenamiento de la cadena de suministro mediante el aprovechamiento de bibliotecas abandonadas agregadas a repositorios conocidos.
Todas las tecnologías basadas en Maven, incluyendo Gradle, son vulnerables al ataque y la empresa de seguridad móvil ha enviado informes a más de 200 empresas, incluyendo Google, Facebook, Signal y Amazon. Apache Maven se utiliza principalmente para construir y administrar proyectos basados en Java.
Oversecured subió su propia biblioteca de Android de prueba (groupId: «com.oversecured») que muestra el mensaje de tostada «Hola Mundo!», a Maven Central y cargó dos versiones en JitPack. Un adversario que busque corromper la cadena de suministro del software puede apuntar tanto a las versiones existentes de una biblioteca publicando una versión superior como a las nuevas versiones enviando una versión que sea inferior a la de su contraparte legítima.
La estrategia de ataque descrita «no es factible debido a la automatización que se encuentra en su lugar»; sin embargo, Sonatype, la propietaria de Maven Central, ha «desactivado todas las cuentas asociadas con los dominios caducados y los proyectos de GitHub» como medida de seguridad. Además, esta compañía ha abordado una «regresión en la validación de la clave pública» que permitía subir artefactos al repositorio con una clave no compartida públicamente y ha anunciado planes para colaborar con SigStore para firmar digitalmente los componentes.
Los desarrolladores de bibliotecas deben ser responsables de las dependencias que declaran y también escribir hashes de clave pública para sus dependencias, mientras que el desarrollador final solo debe ser responsable de sus dependencias directas. De los 33.938 dominios totales analizados, 6.170 (18,18%) fueron encontrados vulnerables a MavenGate, lo que permite que los actores malintencionados se apropien de las dependencias e inyecten su propio código.
La seguridad de la cadena de suministro de software es crucial, y es esencial mantener la vigilancia en los repositorios de dependencias utilizados para asegurarse de que ningún paquete o dependencia esté comprometida. Este ataque demuestra la importancia de verificar la seguridad de las dependencias en todas las etapas del desarrollo del software.