Gestión de componentes de código abierto en la cadena de suministro de software.
Getty Images/iStockphoto
Los componentes de código abierto son una parte esencial de las aplicaciones de software actuales, pero pueden tener un costo crítico: la seguridad.
Las aplicaciones de software modernas comprenden componentes de muchas fuentes diferentes, incluido el software de código abierto (OSS). Esto puede agregar ventajas al ciclo de vida del desarrollo de software, como una mayor velocidad de desarrollo, menores costos de desarrollo y una mayor escalabilidad.
Pero el uso de componentes de diversas fuentes también amplía la superficie de ataque de una aplicación, aumentando el número de puntos de entrada que los atacantes pueden utilizar para obtener acceso a aplicaciones y datos confidenciales. Los equipos de DevOps deben garantizar la seguridad de su cadena de suministro de software mediante la adopción de medidas proactivas para mitigar los ataques.
Una cadena de suministro de software comprende todas las personas, procesos, herramientas, bibliotecas de códigos e infraestructuras de TI subyacentes utilizadas para crear una aplicación de software. Incluye todos los aspectos del ciclo de vida del desarrollo de software (SDLC), como la creación de código, las pruebas, la implementación y el mantenimiento posterior al lanzamiento.
Muchos de los componentes que componen la cadena de suministro de software de un proyecto son de código abierto. Por ejemplo, la empresa de automatización del diseño Synopsys publicó un informe en febrero de 2023 que inspeccionó los resultados de más de 1700 auditorías de bases de código comerciales. El informe encontró que al menos un componente de código abierto está presente en el 96% de las aplicaciones. Casi todas las aplicaciones comerciales incorporan un componente de código abierto.
Un ataque a la cadena de suministro de software ocurre cuando los atacantes se infiltran en el software de un proveedor para colocar código malicioso que infecta a los clientes que utilizan ese software. La infiltración puede ocurrir en cualquier momento durante el SDLC y muchos ciberataques devastadores utilizan la cadena de suministro de software. Los ataques recientes a la cadena de suministro incluyen el ataque SolarWinds y la vulnerabilidad Log4j.
La seguridad básica de la cadena de suministro de software requiere verificar sus áreas vulnerables:
Los componentes OSS son cada vez más populares para proyectos de desarrollo de software. Los proveedores de TI utilizan y respaldan la creación de proyectos de código abierto, como los siguientes:
Además de impulsar aplicaciones importantes, los componentes OSS brindan numerosos beneficios. Son de uso gratuito, incluso cuando se desarrollan aplicaciones comerciales. Los componentes de OSS también se pueden personalizar porque el código es abierto: los desarrolladores pueden ampliar la funcionalidad para incluir más funciones.
OSS puede reducir el tiempo de desarrollo. La biblioteca OSS contiene componentes para casi cualquier funcionalidad que los usuarios quieran incorporar a su aplicación. Esto les da a los desarrolladores más tiempo para otras áreas de desarrollo. Los proyectos de código abierto también suelen desarrollarse siguiendo un estándar específico, lo que da como resultado que diferentes componentes de código abierto interoperen sin problemas.
Por último, los proyectos de código abierto pueden tener una calidad y seguridad de código sólidas. A menudo son desarrollados por muchos contribuyentes, lo que garantiza pruebas exhaustivas del componente de software. Cualquier desarrollador también puede inspeccionar los componentes OSS en busca de vulnerabilidades de seguridad, haciéndolos más seguros que el código propietario que los desarrolladores no pueden inspeccionar en busca de problemas de seguridad.
A pesar de los numerosos beneficios del OSS, los atacantes aún pueden infiltrarse en componentes de código abierto. El método de ataque más común es el abuso de los aspectos OSS de la cadena de suministro de software con fines maliciosos, lo que puede ocurrir de diferentes maneras:
Para gestionar la seguridad de los componentes de código abierto en las cadenas de suministro de software, los equipos de DevOps deben considerar estas mejores prácticas:
Siga prácticas de codificación segura al desarrollar aplicaciones y solicite a los proveedores de software que también lo hagan. Dichas prácticas de codificación incluyen lo siguiente:
Los equipos también deben garantizar que el entorno de la cadena de suministro de software sea seguro durante todo el desarrollo. Las mejores prácticas incluyen lo siguiente: