La cadena de suministros del software abarca a todo aquello que cumple una función en el desarrollo de una aplicación, en algún punto de su ciclo de vida de desarrollo (SDLC). Debido a que los elementos que forman una cadena de suministros de software suelen ser muchos y muy variados – éstos incluyen herramientas de desarrollo, código propietario y de terceros, métodos de deploy, interfaces y protocolos, infraestructura, prácticas de desarrollo, por mencionar algunos – los riesgos que amenazan la seguridad de la cadena de suministro de software son altos. Para mitigar esos riesgos se requieren técnicas y herramientas especializadas.
A medida que crecen las tendencias a reutilizar código y a adoptar estrategias nativas de nube, los atacantes cibernéticos encuentran nuevos lugares desde donde lanzar sus ataques. Cualquier debilidad en la seguridad de la cadena de suministro de software permite la entrada a los atacantes, que una vez dentro pueden recorrer toda la cadena, robando información sensible, tomando el control de los sistemas o instalando malware. Por esa razón es que existen herramientas específicas para mantener bajo control a los riesgos que amenazan a la cadena de suministros de software.
Si aún no te decides por Bitbucket o GitHub para usar como repositorio de código fuente, en este artículo te ayudo e elegir el más conveniente para tus necesidades.
Mitigando los riesgos en la cadena de suministros
La solución ideal de seguridad para cadena de suministros debe facilitar la detección de vulnerabilidades, permitiendo escanear imágenes, contenedores, código fuente, bibliotecas, entre otros elementos que componen la cadena de suministros del software. Adicionalmente, es útil que dicha solución pueda también eliminar las amenazas, o por lo menos alertar adecuadamente sobre su existencia y sugerir formas de eliminación.
Por otra parte, una solución de seguridad para cadena de suministros de software puede brindar como valor agregado la posibilidad de generar el Software Bill of Materials (SBOM) de un proyecto, de forma tal de dar visibilidad a los elementos que componen la cadena de suministros. Para una empresa que necesita optimizar al máximo la utilización de sus recursos de desarrollo de software, es importante que este tipo de soluciones de seguridad se integren en sus workflows y automaticen su operación, para no consumir tiempo que necesita destinarse a tareas de desarrollo.
Algunos ejemplos de ataques de supply chain
La empresa ClickStudios, creadora del software Passwordstate, fue víctima de un ataque de supply chain cuando atacantes hackearon el servidor de actualizaciones del software para colocar en él software malicioso en forma de DLLs que los usuarios del producto descargaron en sus servidores web. El servidor de actualizaciones de Passwordstate vulnerado estaba alojado en una CDN de terceros. Al instalarse en las infraestructuras de los clientes, el software malicioso consiguió descifrar los datos almacenados en sus bases de datos SQL. Los atacantes pudieron exfiltrar los datos en forma de texto plano a sus propios servidores, gracias a que Passwordstate no utiliza cifrado del lado del cliente.
Para los ciberdelincuentes, el ataque a una cadena de suministro de software es una buena forma de hacer llegar su malware a un gran número de personas. Un ejemplo de ello es el famoso caso del troyano Shylock, que expandió una infección en sitios web legítimos de banca electrónica a través de creadores de sitios web reclutados por agencias de contenidos digitales. Estos creadores empleaban sin saberlo un script de redirección que enviaba a los usuarios a un sitio malicioso, propiedad de los creadores de Shylock. A partir de allí, los sistemas de los visitantes se infectaban con malware.
A continuación te ofrecemos una revisión de las 6 principales herramientas de seguridad específicas para controlar la seguridad de la cadena de suministro de software.
Docker
Docker es un conjunto de servicios de plataforma que emplea virtualización a nivel de sistema operativo para posibilitar su arquitectura de containers. Como parte de los servicios que brinda Docker en relación a sus containers está la posibilidad de asegurar y eliminar vulnerabilidades en la construcción, compartición y ejecución de las aplicaciones, todo a lo largo de la cadena de suministros del software. Si aún no has comenzado a usar Docker, te ayudo a dar tus primeros pasos con contenedores Docker.
Otro aspecto interesante de Docker es que utiliza su marketplace de componentes, llamado Docker Hub (uno de los más grandes del mundo), para proteger a las empresas contra ataques dirigidos a las cadenas de suministros. Para ello, en su Docker Hub ofrece componentes Trusted Content certificados, incluyendo:
- Imágenes oficiales Docker
- Imágenes de terceros verificadas por Docker
- Herramientas de escaneo de vulnerabilidades de Snyk
- Administración de acceso a imágenes Docker
Mediante las herramientas de escaneo de vulnerabilidades de Snyk, Docker brinda visibilidad de las vulnerabilidades de sus imágenes, permitiéndole usar Docker Scan directamente sobre Docker Hub o Docker Desktop. Además, permite a los equipos de desarrollo incluir el testeo de vulnerabilidades como parte de sus ciclos de desarrollo iterativo.
Por otra parte, los usuarios de Docker Business cuentan con más herramientas para proteger a su cadena de suministros contra potenciales amenazas de seguridad y vulnerabilidades. Docker Business cuenta con una función de acceso a imágenes de Docker que permite a las organizaciones controlar dónde obtienen su software. Este enfoque traslada el control del acceso y los permisos de los desarrolladores al nivel del sitio, con opciones de alternancia para configurar fácilmente las opciones y el control de acceso basado en roles (RBAC) disponible para gestionar la autorización a escala. Este control ayuda a garantizar que los desarrolladores sólo utilicen imágenes aprobadas y seguras.
Cuando su empresa tiene cientos de desarrolladores, el seguimiento de lo que cada ingeniero de software está instalando inocentemente se convierte en un reto. Los usuarios de Docker Business obtienen un registro de auditoría que registra la creación, eliminación y edición de equipos y repositorios para mejorar la visibilidad.
Slim.ai
Slim.ai ofrece seguridad continua en la cadena de suministros de software específicamente para containers. Con Slim.ai puedes asegurar los containers que usas en tu workflow de desarrollo sin que tengas tocar ni una línea de código. La herramienta encuentra y reduce las vulnerabilidades automáticamente en el software de sus apps containerizadas antes de que salgan a producción.
Al trabajar sobre los containers, Slim.ai consigue reducir sus superficies de ataque. La plataforma Slim fortalece y optimiza los contenedores en sus workflows, dándole insights sobre sus contenidos y efectuando un análisis profundo de las capas, paquetes y metadatos que contienen.
Slim.ai ofrece seguridad para sus containers, desde el escritorio del desarrollador hasta el servidor de producción, pasando por todos los pipelines de build. Para ayudarlo a protegerse contra riesgos potenciales y amenazas a la seguridad de su cadena de suministros, la herramienta incluye Vulnerability Diff, una utilidad que compara el factor de riesgo en diferentes containers. Con esto, puede tomar decisiones en cuanto a las imágenes base, entender los cambios en las vulnerabilidades y compartir los resultados del análisis de vulnerabilidades con todo su equipo de desarrollo.
La plataforma Slim admite automatización e integración dentro de sus pipelines de CI/CD, con sólidas integraciones que le permiten erradicar las tareas manuales en la administración de riesgos de seguridad. Además, se encarga de cubrir toda la trayectoria de los containers, desde el escritorio del desarrollador hasta los ambientes de producción. Una característica destacada de Slim es Vulnerability Diff, la cual compara los factores de riesgo de diferentes containers y toma decisiones sobre imágenes base, comprendiendo los cambios en vulnerabilidades y compartiendo los resultados del análisis de vulnerabilidad con todo el equipo de desarrollo.
Para ayudarlo a ganar velocidad con la plataforma, puede usar los Slim Starter Kits: plantillas listas para usar, con las que puede crear su aplicación en cualquier framework y en el lenguaje de su preferencia.
Si busca optimizar sus pipelines de desarrollo, le sugiero leer sobre herramientas de integración continua para optimizar procesos de desarrollo.
CycloneDX
Más que un producto, CycloneDX es un estándar liviano para Software Bill of Materials (SBOM), originado en la comunidad OWASP, una organización dedicada a mejorar la seguridad del software. SBOM es, en pocas palabras, la lista de ingredientes de un producto de software, y se ha convertido en la piedra fundamental de la seguridad del software y del control de riesgos en la cadena de suministros del software.
CycloneDX cubre e incluso supera los requerimientos definidos por La Administración Nacional de Telecomunicaciones e Información (NTIA) de Estados Unidos en respuesta a la Orden ejecutiva 14028 sobre la mejora de la ciberseguridad de la nación en su documento “The Minimum Elements For a Software Bill of Materials (SBOM)”. La adopción de CycloneDX permite a las empresas cumplir esos requisitos mínimos en un corto plazo y avanzar hacia casos de uso más complejos en materia de ciberseguridad. Además, CycloneDX cumple los requisitos SBOM definidos en el Estándar de Verificación de Componentes de Software (SCVS) de OWASP.
La propuesta de CycloneDX contempla e integra la iniciativa Vulnerability Exploitability eXchange (VEX). VEX es una herramienta de seguridad cuyo objetivo es dar a conocer las vulnerabilidades conocidas de los componentes de software en el contexto del producto del que forman parte. VEX hace posible que los vendors de software divulguen el estado de explotabilidad de ciertas vulnerabilidades. De esta forma, ofrecen claridad en cuanto a las vulnerabilidades que representan riesgos y las que no, reduciendo los esfuerzos necesarios para mitigar riesgos a la seguridad a lo largo de la cadena de suministros.
Aqua
Aqua acompaña a sus proyectos de software a lo largo de todo su ciclo de vida, permitiéndole detectar y corregir vulnerabilidades y otros riesgos – secretos, malware, configuraciones IAC erróneas, problemas de licencias de código abierto – desde las primeras fases del SDLC. Además, Aqua refuerza su entorno de DevOps y le permite acelerar la producción de código seguro, evitando que los problemas de seguridad encuentren su camino hasta la salida a producción.
Una particularidad destacable de Aqua es el escaneo universal de código: en cuestión de minutos, la herramienta escanea todo el código fuente de su organización, informándole mediante alertas de nuevos riesgos a medida que se producen cambios de código. El escaneo a través del motor Aqua Trivy Premium asegura la obtención de resultados consistentes a lo largo de todo el ciclo de desarrollo de sus productos de software.
Las alertas que emite Aqua se mantienen dentro de su ambiente de trabajo para evitar distracciones. Puede recibirlar en su IDE mientras escribe código, en su herramienta de administración de código fuente (SCM) o en su pipeline de CI antes de liberar una versión.
La plataforma Aqua se encuentra entre las plataformas de protección de aplicaciones nativas de nube (NCAPP) con mayor grado de integración. Esto lo ayuda a protegerse contra potenciales amenazas a la cadena de suministros de sus aplicaciones de nube, utilizando una estrategia de seguridad proactiva a lo largo de todo el ciclo de vida de desarrollo de software. Para ataques que se descubren en tiempo de ejecución, la plataforma permite identificar los componentes afectados, siguiendo el rastro de las amenazas hasta la línea de código donde se genera la vulnerabilidad, de forma tal de que la remediación sea más rápida y precisa.
ReversingLabs
La solución secure.software de ReversingLabs ofrece protección de la cadena de suministros de software para workflows de CI/CD, paquetes de liberación y contenedores, dando a los equipos de DevSecOps la tranquilidad de liberar sus productos de software con absoluta confianza.
Con secure.software puede analizar rápidamente todos los componentes de su cadena de suministros en busca de amenazas, identificando, priorizando y remediando problemas de alto riesgo, aunque estén ocultos bajo varias capas de dependencias de software.
Secure.software inspecciona la totalidad de sus paquetes, incluyendo dependencias, para detectar issues de seguridad. Independientemente del set de herramientas que elija o de la envergadura de sus paquetes de software, su equipo podrá descubrir los riesgos y amenazas ocultos en su interior. Además, secure.software le permite crear políticas de aprobación personalizadas con las que puede establecer un nivel claro en la calidad de la seguridad, antes de que sus productos salgan a producción o lleguen a sus clientes.
Uno de los objetivos de secure.software es que pueda ver más allá de las vulnerabilidades y proteger a sus clientes y usuarios de acciones maliciosas que intenten introducir malware, cambios de comportamienteo no autorizados y puertas traseras en su software.
Snyk
Snyk facilita la aplicación de mejores prácticas a la seguridad de su cadena de suministro de software, dándole visibilidad a los problemas de seguridad de su cadena de suministro y ofreciéndole consejos para solucionar esos problemas con suma rapidez.
La propuesta de Snyk está compuesta por Snyk Open Source, Snyk Container y un conjunto de servicios de auditoría. Con todo eso puede analizar sus proyectos para generar un SBOM que incluya la lista de todos sus paquetes open source, junto con un detalle de vulnerabilidades conocidas y los consejos de remediación que hagan falta. Además, Snyk se integra con las herramientas más populares para insertarse en sus pipelines y workflows, de forma tal que la aplicación de mejores prácticas de DevSecOps no insuma tiempo de su equipo de desarrollo.
Dentro de la solución Snyk, se destaca Snyk Container, el cual escanea paquetes dentro de los containers, ya sea que residan en imágenes base o los instalen los usuarios. Si alguno de ellos (o sus dependencias) estuviese comprometido, Snyk Container lo informará para limpiarlo con las herramientas correspondientes. Cabe aclarar que Snyk no es un sustituto para las herramientas específicas de tratamiento de malware.
Con sus facilidades de integración en IDEs, repos y workflows, más la posibilidad de escaneo continuo mientras desarrolla y remediación con un solo clic, Snyk asegura ser capaz de encontrar y resolver vulnerabilidades en tan sólo 5 minutos.
La importancia de proteger la cadena de suministro
La creciente sofisticación de las técnicas de la ciberdelincuencia obliga a que la mitigación de riesgos deba comenzar desde la misma gestación del software que se utiliza y consume. A medida que los ciberatacantes buscan nuevos resquicios para acceder a sitios no autorizados, es vital reforzar la seguridad de la cadena de suministro de software para cerrar el paso a los ciberdelincuentes. La situación se ha vuelto tan importante que el gobierno de Estados Unidos ha emitido una orden ejecutiva para que varios líderes de organizaciones federales creen directrices de seguridad para reforzar la seguridad de sus cadenas de suministro de software.
Siguiendo el ejemplo del gobierno estadounidense, cualquier organización que desarrolle software debe aplicar urgentemente medidas para evitar la manipulación de sus principales activos, y también para evitar que las vulnerabilidades de su cadena de suministro se trasladen a las redes de sus clientes y usuarios.
Conclusión
A lo largo de este artículo hemos hablado de la creciente importancia de proteger la cadena de suministro de los pipelines de desarrollo de software, ya que es un objetivo principal para que los ciberdelincuentes introduzcan malware que pueda distribuirse como parte de un producto de software sin ser identificado.
Entre las 6 soluciones comentadas anteriormente puede encontrar la que mejor se adapte a sus necesidades y le dé la tranquilidad de que su entorno de desarrollo se mantenga aséptico. Y que de él sólo salgan soluciones de software libres de malware.
Escritor y periodista especializado en tecnología, desde el año 1992.
1 comentario en «6 soluciones para mitigar riesgos en la seguridad de la cadena de suministro de software»