Amenazas a la cadena de suministro de software en la etapa de construcción

A medida que el ciclo de vida de la cadena de suministro de software avanza desde el código fuente hasta los artefactos ejecutables, la etapa de compilación se erige como un momento crítico. Sin embargo, esta fase de transformación también es susceptible a una variedad de amenazas que pueden poner en peligro la integridad y la seguridad del software. build securityEstas amenazas pueden infiltrarse en el proceso de compilación a través de varios métodos, incluida la elusión de las normas establecidas. CI/CD pipeline, modificando el código posterior al control fuente, comprometiendo el proceso de compilación en sí o manipulando repositorios de artefactos. En esta publicación de blog, profundizamos en estas amenazas y examinamos los ataques de compilación de la cadena de suministro de software más frecuentes. Este contenido continúa nuestra serie de blogs explorando software supply chain security a lo largo de la SDLC.

La etapa de construcción en el ciclo de vida del desarrollo de software 

La etapa de construcción del ciclo de vida de la cadena de suministro de software abarca el proceso de transformar el código fuente en artefactos de software ejecutables. Esta etapa implica compilar, vincular y empaquetar el código fuente, así como generar paquetes de instalación y archivos de configuración.

Build security Las amenazas son vulnerabilidades que podrían permitir a un adversario introducir cambios no autorizados en el software durante el proceso de compilación sin alterar el código fuente. Estas amenazas pueden introducirse a través de diversos métodos, como comprometer el entorno de compilación o explotar vulnerabilidades en las herramientas de compilación. 

seguridad de la cadena de suministro de software: ataques de construcción de la cadena de suministro de software

Amenazas más comunes en la cadena de suministro de software: ataques de compilación

Evitar CI/CD

Se refiere a la práctica de eludir lo establecido. CI/CD (integración continua y entrega continua) pipeline construir y publicar software directamente sin someterse a los rigurosos procesos de prueba, verificación y auditoría que normalmente aplican las autoridades oficiales. pipelineEsto se puede hacer compilando manualmente el software fuera del CI/CD entorno o mediante el uso de herramientas o scripts que permiten modificaciones no autorizadas en el proceso de compilación. Un ejemplo de este tipo de ataque vectorial fue el Ataque de Jenkins. En 2022, los piratas informáticos se infiltraron en la compilación. pipeline de un popular proyecto de software de código abierto llamado Jenkins. Los hackers inyectaron código malicioso en un archivo Jenkins, que es un script que define el proceso de compilación. El código malicioso les permitió eludir la... CI/CD pipelinelos controles de seguridad e inyectan su código en el proceso de construcción. Luego, este código se ejecuta en los sistemas de las organizaciones que instalaron el software.

Modificar el código después del control de fuente 

Esta práctica implica realizar cambios no autorizados al código fuente después de haber sido commitconectado a un sistema de control de fuente confiable (SCS) y luego compilando el software usando este código modificado. Esto se puede hacer modificando directamente el código en la estación de trabajo de un desarrollador o utilizando herramientas o scripts externos para inyectar código malicioso en el proceso de compilación. Un ejemplo de este ataque vectorial fue el ataque GitLab en 2022. Los piratas informáticos se infiltraron en la compilación. pipeline of GitLabLos hackers inyectaron código malicioso en GitLab. CI/CD pipeline, que es una herramienta que automatiza la build security El código malicioso permitió a los piratas informáticos modificar el código después de que este se hubiera incluido en el control de origen. Esto les permitió inyectar su código en el software, que luego se ejecutó en los sistemas de las organizaciones que instalaron el software.

Proceso de construcción de compromiso

Esto implica manipular o alterar el proceso de compilación en sí, ya sea mediante el acceso directo al entorno de compilación o explotando vulnerabilidades en herramientas de compilación o dependencias de terceros. Esto se puede hacer para introducir código malicioso en el resultado de la compilación, alterar el origen de la compilación o interrumpir el proceso de compilación por completo. El ejemplo más famoso de este ataque vectorial fue el Ataque de vientos solares. Un atacante había obtenido acceso no autorizado a la plataforma de compilación de SolarWinds, un sistema utilizado para compilar y empaquetar el software SolarWinds Orion. Este script inyectó código malicioso en el software SolarWinds Orion compilado. Cuando los usuarios instalaron el software comprometido, el código malicioso se ejecutó en sus sistemas, dando al atacante acceso no autorizado a sus sistemas. El atacante también pudo robar datos confidenciales de sus sistemas, como credenciales, propiedad intelectual e información de clientes.

Repositorio de artefactos comprometidos

Esto se refiere al acceso o manipulación no autorizados de un repositorio de artefactos, donde se almacenan paquetes de software y archivos binarios para su distribución a usuarios internos o externos. Los atacantes pueden aprovechar esta vulnerabilidad para introducir código malicioso, alterar la autenticidad del software o interrumpir el proceso de implementación. Un ejemplo de este ataque vectorial fue Las RubyGems en 2022. Los piratas informáticos se infiltraron en el repositorio de artefactos de RubyGems. Los piratas informáticos reemplazaron un artefacto legítimo por uno malicioso, que luego fue descargado por miles de organizaciones que crean software con Ruby on Rails. El artefacto malicioso permitió a los piratas informáticos ejecutar código arbitrario en los sistemas de las organizaciones que instalaron el software. Esto podría permitirles robar datos, instalar malware o interrumpir operaciones.

Observaciones finales

A medida que las organizaciones continúan adoptando prácticas de desarrollo de software que enfatizan la automatización y la entrega continua, la importancia de proteger el proceso de creación de software nunca ha sido mayor. Al implementar medidas de seguridad sólidas durante la etapa de construcción, las organizaciones pueden reducir significativamente el riesgo de ser víctimas de ataques maliciosos que pueden comprometer la integridad y seguridad de su software.

Las estrategias descritas en esta publicación de blog y los ejemplos proporcionados sirven como recordatorio de que la etapa de construcción es un punto vulnerable en la cadena de suministro de software. Las organizaciones deben prestar atención a estas amenazas e implementar las medidas de seguridad necesarias para proteger su software de ataques. Al hacerlo, pueden garantizar la integridad, seguridad y confiabilidad de su software para sus usuarios y clientes.

Únase a nuestro viaje hacia un ecosistema de software seguro

No pierda esta oportunidad de mantenerse a la vanguardia para evitar amenazas a la cadena de suministro de software. Suscríbase a nuestro blog hoy y sea el primero en recibir nuestros conocimientos más recientes, garantizando que su organización siga siendo resiliente y segura frente a las amenazas en evolución. Juntos, podemos construir un ecosistema de software más sólido y seguro para todos.

¡Explore las funciones de Xygeni!
Vea nuestra demostración en vídeo
sca-tools-software-herramientas-de-analisis-de-composicion
Priorice, solucione y proteja sus riesgos de software
Además, te ofrecemos una prueba gratuita de 7 días de nuestra Business Edition para que puedas explorar las funciones avanzadas de la plataforma SecurityScorecard.
No se requiere tarjeta de crédito

Asegure el desarrollo y entrega de software

con la suite de productos Xygeni