Resumen
La seguridad de la cadena de suministro de software combina las prácticas recomendadas de la gestión de los riesgos y la ciberseguridad para proteger a dicha cadena de los posibles puntos vulnerables. La cadena está formada por absolutamente todo lo relacionado con el código durante el ciclo de vida de desarrollo del software (SDLC), desde el diseño de la aplicación hasta los canales de CI/CD y la implementación.
Incluye redes de información sobre el software, como los elementos (p. ej.: la infraestructura, el hardware, los sistemas operativos, los servicios de la nube, etc.); las personas que los crean; y las fuentes de las que provienen, como los registros, los repositorios de GitHub, las bases de código u otros proyectos open source. También incluye los puntos vulnerables que podrían tener un impacto negativo en la seguridad del software, y aquí es donde entra en juego la protección de la cadena de suministro.
La importancia de la seguridad de la cadena de suministro de software
En la actualidad, es muy poco el software que se escribe desde cero; por lo general, es una combinación de elementos que contiene software open source. Sin embargo, estos elementos de software están sujetos a aspectos vulnerables y los desarrolladores tienen poco control sobre el código fuente de un tercero o no pueden implementar muchos cambios a lo largo del tiempo. Es importante señalar que los sistemas de software sin actualizar son más propensos a presentar problemas de seguridad. Dado que el software es esencial para llevar a cabo las operaciones empresariales diarias, la seguridad de la cadena de suministro es una de las principales responsabilidades de las empresas y de sus equipos de seguridad.
En 2020, la empresa de software SolarWinds sufrió un ataque de ciberseguridad: se lanzó un código malicioso a través de su sistema de software de gestión y supervisión de la TI (Orion), una plataforma que usan las grandes empresas y organismos gubernamentales. Al atacar la cadena de suministro, los piratas informáticos no solo se infiltraron en los sistemas de la empresa, sino también en los de sus clientes. Si bien Log4j es uno de los sistemas de software open source más utilizados, también es altamente vulnerable: ha dejado a miles de usuarios y empresas expuestos a las filtraciones de datos y los ataques. En 2021, el presidente de los Estados Unidos hizo hincapié en la importancia de las cadenas de suministro y de la seguridad del software mediante dos decretos ejecutivos: cadenas de suministro y ciberseguridad.
Los riesgos de seguridad de la cadena de suministro de software
Es muy probable que, si algún elemento de la cadena de suministro de software está en riesgo, el resto de los elementos que dependen de él también lo estén. Los piratas informáticos aprovechan estas oportunidades para insertar malware, virus backdoor u otro tipo de código malicioso que afecte a los elementos y sus cadenas de suministro relacionadas. Los ataques a las cadenas de suministro de software, cuya ejecución suele estar a cargo de personas que buscan obtener ganancias o de agentes estatales, son cada vez más comunes y pueden afectar considerablemente tanto al mundo digital como al físico. Por lo general, se clasifican de la siguiente manera:
- Puntos vulnerables: son fallas en el código del software que pueden aprovecharse y derivar en una filtración de datos. Ejecute parches en sus elementos y actualícelos para reducir este riesgo.
- Licencias: es un riesgo legal que podría obligarlo a convertir cualquier elemento de software en open source y anular los derechos de patente. Consulte con los especialistas en esta área.
- Dependencias de terceros: son las dependencias de cualquier empresa externa que forman parte de la cadena de suministro de software, y no es sencillo reconocerlas. Analice todo el código de terceros y comuníquese con sus proveedores para conocer las prácticas de seguridad que utilizan para brindarle protección.
- Procesos y políticas: es necesario implementarlos en la empresa para evitar inconvenientes. Cree políticas para los desarrolladores y los procesos (o playbooks) que le permitan responder ante un punto vulnerable.
Los vectores de ataque más comunes incluyen secuestrar las actualizaciones, debilitar las firmas del código o poner en peligro el código open source.
DevSecOps y la seguridad del software
DevSecOps es un enfoque que aborda la cultura, la automatización y el diseño del software, el cual integra la seguridad como una responsabilidad compartida durante todo el ciclo de vida de la TI. Esta práctica implica pensar desde el principio en la seguridad de las aplicaciones y de la infraestructura. También supone automatizar algunas puertas de seguridad para evitar que se ralenticen los flujos de trabajo de DevOps. A fin de cumplir con estos objetivos, es necesario seleccionar las herramientas adecuadas para integrar la seguridad de manera permanente, como acordar el uso de un entorno de desarrollo integrado (IDE) con funciones que protejan los sistemas.
Red Hat Advanced Cluster Security for Kubernetes integra las comprobaciones de seguridad en la cadena de suministro de software y los flujos de trabajo de los desarrolladores para que pueda detectar y resolver los problemas de seguridad de alto riesgo. Al incorporar un contexto de seguridad a los flujos de trabajo de desarrollo actuales, también automatiza la seguridad de las prácticas de DevOps.
Comparación entre la seguridad de las aplicaciones y la de la cadena de suministro de software
La cadena de suministro de software está compuesta por todo lo que se relaciona con el código, sean elementos o personas. Sin embargo, la seguridad de las aplicaciones se encarga de proteger al código en sí de los ataques y los puntos vulnerables. Esta debe aplicarse en cada etapa del desarrollo, tal como sucede con la seguridad de la cadena de suministro.
La seguridad de las aplicaciones comienza en el desarrollo del software y se extiende a todo el ciclo para evitar el acceso no autorizado a los sistemas y resguardar los datos confidenciales. Al reforzar la integridad de la cadena de suministro, también se mejora la seguridad de las aplicaciones. Algunas formas de evitar que los piratas informáticos pongan en riesgo sus aplicaciones son reforzar las configuraciones, reducir las superficies de ataque, restringir los permisos, firmar el software y distribuir las compilaciones en distintas partes del sistema.
Reducción de las amenazas a la cadena de suministro de software
La seguridad de la cadena de suministro de software es fundamental para su empresa, sus clientes y las empresas que dependen de las contribuciones al open source. Si bien nadie quiere tener filtraciones en sus sistemas, tampoco quiere ser responsable de que otro enfrente una situación similar. Por eso la clave está en proteger la cadena de suministro de software.
A continuación, se definen algunas prácticas recomendadas que los equipos de seguridad deberían tener en cuenta:
- Ofrecer el acceso con privilegios mínimos a los recursos de la cadena de suministro (p. ej., las herramientas para los desarrolladores, los repositorios de código fuente y otros sistemas de software), habilitar la autenticación de varios factores y usar contraseñas seguras.
- Realizar capacitaciones en materia de seguridad para el personal.
- Reforzar la seguridad de todos los dispositivos conectados y los datos confidenciales.
- Conocer a los proveedores y a las personas con quienes se hacen negocios, especialmente a los proveedores directos. Evaluar los riesgos de las medidas de ciberseguridad y de las políticas públicas respecto de los aspectos vulnerables de cada proveedor.
- Analizar los sistemas expuestos y ejecutar parches en ellos con regularidad.
Los desarrolladores también deben tener en cuenta las prácticas de codificación segura, el uso de archivos de bloqueo y otras medidas de seguridad, por ejemplo:
- Validar las sumas de comprobación.
- Incluir las dependencias de los proveedores en el control de versiones.
- Publicar y usar la lista de elementos de software (Software Bill of Materials, SBOM).
- Adoptar los niveles de la cadena de suministro para los elementos de software (SLSA), lo cual incluye:
- Poder firmar los elementos del software de manera digital para autenticar su procedencia
- Aprovechar la automatización para los procesos y las políticas
- Examinar el sistema de software con herramientas automatizadas de pruebas de seguridad, como el análisis de la composición del software (SCA), las pruebas estáticas de la seguridad de las aplicaciones (SAST) y las pruebas dinámicas de la seguridad de las aplicaciones (DAST).
Motivos para elegir Red Hat
En Red Hat comprendemos la necesidad de proteger las dependencias y los elementos del software al inicio del ciclo de vida de desarrollo y utilizamos las prácticas de DevSecOps para automatizar la integración de la seguridad en cada etapa.Deje para Red Hat la labor de entender la cadena de suministro upstream y proporcionarle un producto para su empresa en el cual pueda confiar todo el tiempo. Red Hat y sus partners brindan experiencia, un ecosistema de DevSecOps integral y la capacidad de ayudar a las empresas a implementar la seguridad para la cadena de suministro de software en todo el ciclo de vida de desarrollo.