In this article
Ataques a la cadena de suministro de software
Ejemplos de ataques y cómo prevenirlos
¿Qué es un ataque a la cadena de suministro de software?
Actualmente, las cadenas de suministro de software se construyen en su mayoría con recursos de terceros que ayudan a agilizar y simplificar el proceso de entrega de software. Por lo general, las organizaciones deben integrar estos recursos en sus sistemas hasta cierto punto, lo que les da a estas fuentes externas acceso a la infraestructura interna para que puedan funcionar correctamente en los sistemas.
Si un atacante encuentra un eslabón débil en una de estas fuentes externas, podría afectar negativamente a todo el sistema. Por eso la seguridad de la cadena de suministro es importante.
Tipos de ataques a la cadena de suministro de software
Hay muchos tipos de amenazas a la cadena de suministro. Algunos de los más comunes son:
Proveedores de software externos
Creadores de sitios web
Almacenes de datos de terceros
Ataques de abrevadero
Todos estos ataques requieren poco esfuerzo y ofrecen una gran recompensa a los usuarios maliciosos. Un atacante solo necesita manipular uno de estos sitios o proveedores externos y, de forma predeterminada, obtiene acceso a miles de usuarios. Este es el verdadero peligro de la cadena de suministro: si la parte superior de la cadena (por ejemplo, un proveedor externo o un sitio web) se ve comprometida, todo lo que viene después también queda en riesgo de inmediato. Los atacantes suelen aprovecharse de estos usuarios posteriores, ya sea distribuyendo malware que puede controlar sus dispositivos de forma remota y robar información, o extrayendo datos confidenciales directamente de sus archivos.
Proveedores de software externos
Hoy en día, las organizaciones suelen recurrir a proveedores de software externos para cubrir distintas necesidades, tanto de forma directa como mediante dependencias transitivas. Para obtener acceso a cientos o miles de clientes que usan el producto, un atacante solo tendría que comprometer este software de terceros.
Creadores de sitios web
Es posible comprometer las plantillas o los plugins de un creador de sitios web, lo que expone el funcionamiento interno de estos sitios a ataques.
Almacenes de datos de terceros
Las empresas suelen recurrir a compañías externas para procesar y almacenar sus datos, desde información confidencial de clientes hasta detalles sobre la postura de seguridad, los empleados y las estrategias de la organización.
Ataques de abrevadero
Un ataque de abrevadero apunta a un sitio web que los usuarios visitan con frecuencia para realizar tareas que implican datos confidenciales. Por lo general, los atacantes apuntan a sitios web públicos de una industria, organización o grupo de personas en particular. Usan estos sitios para distribuir malware a quienes los visitan, normalmente redirigiéndolos desde el sitio legítimo a uno falso.
Ejemplos de ataques a la cadena de suministro de software
Help Net Security descubrió que los ataques a la cadena de suministro de software aumentaron más del 300 % en 2021. Como estos ataques pueden afectar a varias empresas y clientes a la vez, suelen ocupar los titulares y hacerse muy conocidos.
Estos son algunos ejemplos de ataques conocidos a la cadena de suministro que causaron daños considerables a proveedores externos y a sus usuarios:
SolarWinds
En este ataque de principios de 2020, los atacantes insertaron código malicioso en una actualización de SolarWinds Orion, una plataforma de monitoreo y administración de infraestructura. Luego, los usuarios de SolarWinds instalaron esta actualización infectada en sus dispositivos, lo que les dio a los atacantes acceso por puerta trasera a datos confidenciales de varias empresas y agencias gubernamentales.
Un año después, un ataque de principios de 2021 contra Mimecast, un proveedor de seguridad de correo electrónico, fue uno de los muchos efectos posteriores de la brecha de SolarWinds. Mimecast usaba la plataforma SolarWinds Orion. Cuando los atacantes insertaron código infectado en SolarWinds, Mimecast se vio afectada, junto con unos 18 000 clientes más de SolarWinds.
Este código infectado instaló automáticamente malware de cadena de suministro de software en el sistema de Mimecast y comprometió datos confidenciales, como certificados emitidos por Mimecast, información de conexión a los servidores de clientes, direcciones de correo electrónico y credenciales de usuarios.
Confusión de dependencias de 2021
El año pasado, Alex Birsan, colaborador de Medium y programador, descubrió un nuevo tipo de ataque cibernético a la cadena de suministro: la confusión de dependencias. Logró acceder a sistemas internos y extraer datos de gigantes de la industria como Yelp, Tesla, Apple y Microsoft.
Alex llevó a cabo este ataque creando paquetes de npm o yarn con los mismos nombres que los paquetes internos privados. Como sus paquetes con nombres idénticos eran más recientes que los legítimos de la empresa, el sistema descargó de forma predeterminada los paquetes públicos maliciosos. Aunque Alex no era un hacker de sombrero negro, su descubrimiento de la vulnerabilidad de confusión de dependencias demostró que las convenciones de nomenclatura de los paquetes de npm/yarn podían poner en peligro sistemas internos enormes.
CodeCov de 2021
CodeCov, una herramienta de cobertura de código, genera informes legibles por máquina y los carga en un servidor mientras los desarrolladores ejecutan pruebas. Los atacantes aprovecharon un script curl|bash que CodeCov usaba para cargar informes en su servidor. Para ello, accedieron al bucket CDN `private write, public read` que alojaba el servidor y modificaron el script bash. Usaron este script bash alterado para infiltrarse en los pipelines de CI de los clientes y robar variables de entorno de los clientes de CodeCov.
4 vectores de ataque cibernético a la cadena de suministro
Como hemos visto en estos ataques recientes a la cadena de suministro, los atacantes pueden infiltrarse en la cadena de suministro de software de una empresa a través de distintos proveedores o componentes externos. Por eso, la cadena de suministro puede parecer una superficie de ataque muy amplia.
Sin embargo, en general, hay algunos vectores de ataque específicos que suelen aprovechar los atacantes:
Código fuente: Los atacantes pueden manipular directamente el código propietario, como ocurrió con SolarWinds. Solo necesitan obtener credenciales de usuario con altos privilegios, acceder a un repositorio o aprovechar una vulnerabilidad en el código escrito por los desarrolladores que un analizador de código estático no haya detectado.
Dependencias: Las organizaciones pueden aprovechar distintas dependencias de terceros, como bibliotecas de aplicaciones, paquetes de sistemas operativos e imágenes base. Si alguna de estas dependencias —directa o transitiva— se ve comprometida, se crea una vulnerabilidad para todas las empresas que la usan.
Herramientas de compilación: Los pipelines de CI/CD y otras herramientas de compilación están diseñados para automatizar el desarrollo. Permiten hacer cambios rápidamente y ejecutar pruebas de forma automática, con poca o ninguna intervención humana. Por eso, puede ser difícil para los equipos de desarrollo identificar una herramienta de compilación infectada, como ocurrió en el ataque a CodeCov.
Implementaciones: Los ataques a SolarWinds y Asus tienen algo en común: en ambos se implementó código malicioso durante una actualización. Para prevenir un posible ataque a la cadena de suministro de software, las empresas deben verificar que todas las implementaciones sean seguras, especialmente si utilizan prácticas de implementación continua automatizada (CD).
Cómo prevenir los ataques a la cadena de suministro de software
Las empresas pueden prevenir los ataques a la cadena de suministro de software incorporando medidas de seguridad en sus procesos de desarrollo y lanzamiento. La seguridad requiere que las distintas áreas del negocio compartan la responsabilidad e integren la seguridad en cada etapa del desarrollo: un enfoque DevSecOps.
Análisis de composición de software
El análisis de composición de software (SCA) es un excelente punto de partida. El SCA ofrece una visión completa de las dependencias de tu software, para que puedas actuar a tiempo si surge algún problema con un proveedor o componente externo. En esencia, el SCA permite entender qué contiene tu software y saber exactamente dónde se encuentran los componentes de terceros. Snyk Open Source es una herramienta de SCA que aprovecha inteligencia líder en la industria para proteger tus aplicaciones.
Crear una lista de materiales de software (SBOM) es fundamental para implementar el SCA. Las SBOM documentan por escrito y en detalle qué componentes incluye cada aplicación.
Pruebas estáticas de seguridad de aplicaciones
Las pruebas de seguridad de aplicaciones estáticas (SAST) son otra práctica de seguridad esencial. Se enfocan específicamente en analizar el código fuente interno de tu organización y detectar vulnerabilidades que suelen explotarse, como posibles puntos de inyección o diseños generalmente inseguros. Snyk Code es una herramienta SAST que se integra directamente con la mayoría de los IDE, analiza el código mientras lo escribes y ofrece recomendaciones prácticas para corregirlo.
Análisis de imágenes de contenedores
El análisis de imágenes de contenedores es fundamental para identificar riesgos en las imágenes de los agentes de compilación de CI o en las imágenes base de las aplicaciones. Las herramientas de análisis de contenedores, como Snyk Container, te permiten recibir recomendaciones sobre imágenes base seguras, monitorear continuamente las vulnerabilidades de los contenedores y corregir las vulnerabilidades de dependencias de código abierto que se usan en las imágenes base y los comandos de Dockerfile.
Adoptar la seguridad desde el inicio
Por último, capacitar y ayudar a los desarrolladores a comprender y aprovechar las herramientas de seguridad permite integrar la seguridad desde las primeras etapas del desarrollo. Además, crear políticas sólidas y un ciclo de vida de desarrollo de software seguro (SDLC) es importante para mitigar distintos riesgos, incluidos los ataques a la cadena de suministro.
La mejor manera de integrar la seguridad en los procesos diarios de desarrollo es incluir herramientas como SCA, SAST y análisis de contenedores en cada etapa del desarrollo. También es importante establecer y hacer cumplir políticas de seguridad sólidas. Una de las mejores formas de hacerlo es implementar políticas como código (PaC) automatizadas, que establezcan límites para los desarrolladores y eviten que tengan que mantenerse al día manualmente con listas de reglas y regulaciones.
Cómo Snyk puede ayudar a proteger tu cadena de suministro de software
La solución de seguridad de la cadena de suministro de software de Snyk aprovecha Snyk Open Source y Snyk Container para analizar y monitorear dependencias e imágenes base, y detectar vulnerabilidades actuales y nuevas que afecten tus proyectos. Ambas soluciones se basan en la avanzada base de datos de vulnerabilidades Snyk Intel, que puede detectar vulnerabilidades en promedio 47 días antes que otras bases de datos disponibles en el mercado. También detecta malware en la cadena de suministro y paquetes maliciosos. Además, tu organización puede usar Snyk Advisor para encontrar paquetes confiables e imágenes base públicas de contenedores antes de incorporarlos al desarrollo.
Seguridad de la cadena de suministro con Snyk
Snyk te permite conocer los problemas de seguridad de la cadena de suministro y te ofrece recomendaciones para solucionarlos rápidamente.
Consulta nuestros recursos para obtener más información sobre las herramientas de Snyk para proteger tu cadena de suministro y sobre el estado de la seguridad de la cadena de suministro.