Ataques a la cadena de suministro - Amenazas en la distribución de software
Lectura de 2 min aprox.
Un compromiso de la cadena de suministro es una técnica de ataque en la que un atacante interviene en alguna etapa del desarrollo, la compilación o la distribución del software para inyectar código malicioso en software legítimo. Como abusa de la ruta de actualización confiable del software, resulta extremadamente difícil de detectar con las medidas de seguridad tradicionales. El incidente de la puerta trasera de xz Utils en 2024 puso de relieve la fragilidad de las estructuras de mantenimiento del código abierto y renovó la conciencia sobre la importancia del SBOM (Software Bill of Materials).
Casos de uso reales
«Durante una auditoría rutinaria de las bibliotecas de dependencias, detectamos que un paquete de npm se había actualizado a una versión que contenía código malicioso debido al secuestro de la cuenta del mantenedor. Encontramos una discrepancia mediante la verificación de hash del lockfile y evitamos la versión afectada fijando (pinning) la versión.»
Flujo de un ataque a la cadena de suministro
Antecedentes históricos
El compromiso de la cadena de suministro atrajo la atención mundial con el incidente de SolarWinds de 2020. Se implantó una puerta trasera en el proceso de compilación de la herramienta de gestión de TI Orion, afectando a más de 18.000 organizaciones, incluidas agencias del gobierno de EE. UU. Con incidentes como el ataque a Kaseya VSA de 2021 y la puerta trasera de xz Utils de 2024, los ataques dirigidos a las cadenas de suministro se vuelven más sofisticados año tras año. Los informes de vulnerabilidades relacionadas con la cadena de suministro también se disparan en la base de datos CVE.libros de introducción a la seguridad de la cadena de suministro (Amazon) permiten aprender de forma sistemática.
Medidas defensivas
Crear y gestionar un SBOM (Software Bill of Materials) es la base de la defensa. Conozca qué bibliotecas de código abierto utiliza y sus versiones, y supervise de forma continua la información sobre vulnerabilidades. Confirme (commit) los lockfiles de las dependencias (package-lock.json, Gemfile.lock) para evitar cambios de versión no deseados. En la canalización de compilación, introduzca mecanismos que detecten la manipulación de los artefactos mediante la verificación de firmas y la comprobación de hash. También es importante prestar especial atención a las adiciones y cambios de dependencias durante la revisión de código. Proteja los sistemas de CI/CD y las cuentas del registro de paquetes con contraseñas aleatorias fuertes para evitar el acceso no autorizado al proceso de compilación.libros de DevSecOps (Amazon) también son una referencia útil.
¿Te resultó útil este artículo?