Seguridad de la cadena de suministro del software

Los marcos de trabajo y los enfoques modernos para el desarrollo de software se enfocan en la velocidad y la confiabilidad de la entrega de software, así como en la propiedad compartida entre las partes interesadas en el software.

Además de la práctica de DevOps de cambiar a la izquierda en la seguridad, muchas otras prácticas de DevOps contribuyen a entregar software más seguro. Una mayor colaboración entre las partes interesadas, la visibilidad del trabajo, las compilaciones reproducibles, las pruebas automatizadas y los cambios incrementales son prácticas que pueden admitir la seguridad del software. De hecho, en el Informe State of DevOps de Accelerate 2022, se descubrió que las culturas de mayor confianza tienen más probabilidades de adoptar prácticas para fortalecer la cadena de suministro de software, y el uso de IC/EC ayuda a implementar prácticas de seguridad.

Sin embargo, los frameworks de desarrollo modernos carecen de orientación que ayude a las organizaciones a comprender las amenazas a su software, a evaluar su capacidad de detectar y responder a las amenazas, así como a implementar mitigaciones. También tienden a enfocarse específicamente en el código y los procesos dentro de una organización, y ignoran los factores externos que pueden afectar la integridad de las aplicaciones. Por ejemplo, un ataque que compromete un paquete de software de código abierto afecta a cualquier código que dependa directa o indirectamente de ese paquete. Los ataques a la cadena de suministro de software como estos aumentaron drásticamente desde 2020.

Cadenas de suministro de software

Una cadena de suministro de software consiste en todo el código, las personas, los sistemas y los procesos que contribuyen al desarrollo y la entrega de tu software, dentro y fuera de tu organización. En él, encontrará la siguiente información:

  • El código que creas, sus dependencias y el software interno y externo que usas para desarrollar, compilar, empaquetar, instalar y ejecutar tu software.
  • Procesos y políticas de acceso al sistema, pruebas, revisión, supervisión y comentarios, comunicación y aprobación
  • Sistemas en los que confías para desarrollar, compilar, almacenar y ejecutar tu software y sus dependencias.

Dado el amplio alcance y la complejidad de la cadena de suministro de software, existen diversas formas de introducir cambios no autorizados en el software que entregas a los usuarios. Estos vectores de ataque abarcan todo el ciclo de vida del software. Si bien algunos ataques son el objetivo, como el ataque al sistema de compilación SolarWinds, otras amenazas son indirectas o ingresan a la cadena de suministro a través de debilidades en el proceso o negligencia.

Por ejemplo, en una entrada de blog sobre la vulnerabilidad de ejecución remota en Apache Log4j de diciembre de 2021, el equipo de estadísticas de código abierto de Google observó que había más de 17,000 paquetes afectados en Maven Central. La mayoría de los paquetes afectados no dependían directamente del paquete log4j-core vulnerable, pero tenían dependencias que lo requerían.

Las brechas en el proceso, como la falta de revisión del código o los criterios de seguridad para la implementación en producción, pueden permitir que el código incorrecto ingrese de forma involuntaria a la cadena de suministro. De manera similar, el código malicioso puede ingresar al software si compilas con código fuente fuera del sistema de control de versiones de confianza o si empaquetas y, luego, implementas aplicaciones desde sistemas fuera del sistema de compilación de confianza y los repositorios de artefactos.

Según el estado de la cadena de suministro de software de 2021, el uso de software de código abierto y los ataques a las cadenas de suministro de software aumentaron considerablemente entre 2020 y 2021:

  • Se produjo un aumento interanual del 650% en los ataques a la cadena de suministro de software en 2021.
  • La disponibilidad y la demanda de paquetes de código abierto sigue aumentando, con un aumento interanual del 73% en las descargas de componentes de código abierto en 2021.
  • Las vulnerabilidades son las más comunes en los proyectos de código abierto más populares.

Para proteger la integridad de tu software, es importante comprender tu posición de seguridad: cuán preparada está tu organización para detectar, responder y solucionar amenazas.

Requisitos de cumplimiento y marcos de evaluación

La creciente preocupación sobre la seguridad de la cadena de suministro generó la creación de nuevas reglamentaciones gubernamentales específicas para la seguridad de la cadena de suministro, como las siguientes:

Están surgiendo nuevos frameworks para ayudar a las organizaciones a evaluar su posición de seguridad y aprender sobre las mitigaciones ante amenazas.

Estos marcos de trabajo toman prácticas de seguridad de software establecidas y las estructuran en un formato que te ayuda a identificar las amenazas de seguridad que necesitas abordar y qué medidas tomar para mitigarlas.

Protege tu cadena de suministro de software en Google Cloud

Software Delivery Shield proporciona una solución de seguridad de cadena de suministro de software completamente administrada en Google Cloud. Incorpora prácticas recomendadas, incluidas las prácticas en frameworks como SLSA y NIST SSDF. Adoptas los componentes de la solución de forma gradual, según tus prioridades y necesidades.

¿Qué sigue?