Seguridad de la cadena de suministro del software

Los frameworks y enfoques modernos para el desarrollo de software se centran 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 desplazamiento a la izquierda en la seguridad, muchas otras prácticas de DevOps contribuyen a entregar software más seguro. Una mayor colaboración con las partes interesadas, la visibilidad del trabajo, las compilaciones reproducibles, las pruebas automatizadas y los cambios incrementales son prácticas que pueden respaldar la seguridad del software. De hecho, en el Informe Accelerate State of DevOps de 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 CI/CD ayuda a implementar prácticas de seguridad.

Sin embargo, los frameworks de desarrollo modernos carecen de una guía que ayude a las organizaciones a comprender las amenazas a su software, evaluar su capacidad para detectar amenazas y responder a ellas, y también implementar mitigaciones. También tienden a enfocarse en el código y los procesos dentro de una organización y desestimar 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 se base directa o indirectamente en ese paquete. Los ataques a la cadena de suministro de software como estos aumentaron considerablemente desde 2020.

Cadenas de suministro de software

Una cadena de suministro de software consta de todo el código, las personas, los sistemas y los procesos que contribuyen al desarrollo y la entrega de tu software, tanto dentro como fuera de tu organización. En él se incluye lo siguiente:

  • 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 para el acceso al sistema, la prueba, la revisión, la supervisión y los comentarios, la comunicación y la aprobación.
  • Sistemas de confianza para desarrollar, compilar, almacenar y ejecutar tu software y sus dependencias.

Debido al amplio alcance y la complejidad de la cadena de suministro de software, existen varias 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 blancos, como el ataque al sistema de compilación SolarWinds, otras amenazas son indirectas o ingresan en la cadena de suministro a través de debilidades en el proceso o descuido.

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 notó que había más de 17,000 paquetes afectados en Maven Central. La mayoría de los paquetes afectados no dependeban de forma directa del paquete log4j-core vulnerable, sino 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 un código incorrecto ingrese de manera involuntaria en la cadena de suministro. Del mismo modo, es posible que ingrese código incorrecto en tu software si compilas con código fuente fuera del sistema de control de versión confiable, o si empaquetas e implementas aplicaciones desde sistemas fuera del sistema de compilación y repositorios de artefactos de confianza.

Según el Estado de la cadena de suministro de software de 2021, tanto el uso de software de código abierto como los ataques a las cadenas de suministro de software crecieron drásticamente entre 2020 y 2021:

  • En 2021, los ataques a la cadena de suministro de software experimentaron un aumento del 650% interanual.
  • La disponibilidad y la demanda de paquetes de código abierto siguen 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 postura de seguridad, es decir, qué tan preparada está tu organización para detectar amenazas, responder a ellas y solucionarlas.

Requisitos de cumplimiento y frameworks de evaluación

La creciente preocupación por la seguridad de la cadena de suministro impulsó 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 postura de seguridad y aprender sobre las mitigaciones de amenazas.

Estos frameworks toman prácticas de seguridad de software establecidas y las estructuran en un formato que te ayuda a identificar las amenazas de seguridad que debes abordar y qué acciones tomar para mitigar las amenazas.

Protege tu cadena de suministro de software en Google Cloud

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

¿Qué sigue?