Librerías de open source: análisis de las herramientas de seguridad

La seguridad a la hora de trabajar en procesos DevOps es crucial. Actualmente, existe un gran riesgo de introducir vulnerabilidades en las aplicaciones que desarrollamos por el uso de librerías de terceros. Podemos entregar a nuestros equipos todo lo que queramos en conceptos de desarrollo seguro, pero si utilizan una librería vulnerable, comprometemos a toda la aplicación. En este post, comentamos algunas opciones que existen para minimizar este riesgo.

Durante el mes de febrero, hemos estado colaborando para ayudar a uno de nuestros clientes a incluir seguridad en su pipeline de DevOps. Su interés principal ha sido que introduzcamos un proceso de análisis en las librerías de open source para verificar lo siguiente:

  • ¿La librería de open source tiene alguna vulnerabilidad conocida públicamente?
  • ¿La librería de open source tiene alguna licencia especial? Si es así, ¿podemos utilizarla en nuestros proyectos?

Para trabajar de una manera automática y efectiva, hemos estado buscando diferentes herramientas de distintos proveedores, y hemos identificado un par de flujos de trabajo para lograr nuestro objetivo:

Pipeline Workflow

Como se puede ver, cuando iniciamos la ejecución del pipeline, estamos incorporando un escaneo de las librerías open source. Las diferentes herramientas las identificarán y revisarán sus bases de datos internas para encontrar cualquier vulnerabilidad que puedan tener, así como para verificar su licencia y comprobar si cumplen con unas políticas que definimos nosotros mismos.

Artifactory Clean workflow

Nuestro cliente usa Artifactory como su repositorio de artefactos. Aquí es de donde los desarrolladores descargarán sus librerías de open source. Los proveedores que usan este workflow (como Xray de JFrog) escanean Artifactory cada vez que su bases de datos internas se actualizan y cuando se agrega un artefacto nuevo a Artifactory. Si se encuentra un componente vulnerable de open source (o con una licencia prohibida), la herramienta prohibirá la descarga de las librerías.

La comparación

Hemos encontrado unas 15 herramientas diferentes que pueden realizar las acciones que el cliente nos solicitó. Finalmente, redujimos la lista de proveedores a cuatro, basándonos en diferentes informes de Gartner y Forrester. Adicionalmente, consultamos  la página web del proveedor para verificar si las herramientas son compatibles con el ecosistema de herramientas del cliente. Después de hablar con los proveedores directamente completamos las siguientes tablas que comparan las diferentes características que tiene cada producto:

ProductoNo necesita instalación en el servidorCompatible con WindowsCompatible con Linux
Blackduck
Whitesource
X-Ray
Veracode
ProductoIntegración en ArtifactoryIntegración en BrowserIntegración en NugetIntegración en TFSIntegración en Visual Studio
Blackduck
Whitesource
X-Ray*
Veracode
ProductoIntegración en SonarQubeOpción On premisePipeline workflowArtifactory clean workflowBase de datos CrowdsourcingSin códigos fuera de la compañíaIntegración en CheckMarx
Blackduck***
Whitesource**
X-Ray
Veracode

* Debe integrarse utilizando la API de X-Ray.
** A través del plugin. El escaneo de Artifactory se activará al agregar un artefacto nuevo o con una nueva tarea cron. Los artefactos rechazados se pueden mover a un repositorio de cuarentena en Artifactory.
*** A través del plugin. El escaneo de Artifactory se activará al agregar un artefacto nuevo o con una nueva tarea cron. Los artefactos rechazados se pueden mover a un repositorio de cuarentena en Artifactory. También se puede integrar con X-Ray para una mayor flexibilidad y administración de políticas, que es la manera que recomienda JFrog.

Clasificación de soluciones

Después de la primera comparativa sobre las características de cada producto, intentamos compararlos según una serie de factores de interés para nuestro cliente: seguridad, facilidad de integración y coste:

Seguridad:

  • Bases de datos de vulnerabilidades y licencias: ¿sus fuentes son referencias de la industria o tienen buena reputación?
  • Reputación del producto en la web: ¿hay alguna buena crítica del producto en la web? ¿Ha aparecido en algún informe de Forrester / Gartner?
  • Administración de políticas: ¿es una herramienta fácil de usar y tiene una gestión de políticas versátil?
  • Datos fuera de la empresa: ¿la herramienta necesita enviar el código propio de la empresa al exterior para que se analice?
  • Funcionalidad adicional: ¿la herramienta hace algo extra que no es un requisito de nuestro cliente?

Facilidad de integración

  • Plataforma: ¿el producto necesita estar instalado en una máquina aparte? Si es así, ¿en qué sistema operativo?
  • Plugins: ¿el producto tiene algún complemento para el ecosistema de herramientas actual de nuestro cliente? ¿Estos complementos son fáciles de integrar, o son solo soluciones temporales?

Coste:

  • Comparación del rango de precios: los costes se han verificado en la página web del producto o se han discutido con el responsable de ventas. El precio final deberá ser negociado siempre entre proveedor y cliente.

Teniendo en cuenta estos factores, el ranking queda de la siguiente forma:

ProductoSeguridadFacilidad de integraciónCoste
Blackduck906050
Whitesource809570
X-Ray605090
Veracode509070

Para compararlos, dimos un valor del 0 al 100 a cada uno de los proveedores, dependiendo de qué workflow usasen:

PipelineWorkflow

SeguridadFacilidad de integraciónCosteRecomendación general
1ª OpciónBlackduckWhitesourceX-RayWhitesource
2ª OpciónWhitesourceVeracodeVeracode / WhitesourceBlackduck
3ª OpciónX-RayBlackduckVeracode / WhitesourceX-Ray
4ª OpciónVeracodeX-RayBlackduckVeracode

Artifactory Clean Workflow

SeguridadFacilidad de integraciónCosteRecomendación general
1ª OpciónBlackduck + X-RayX-RayX-RayX-Ray
2ª OpciónWhitesourceBlackduckBlackduckWhitesource
3ª OpciónBlackduckWhitesourceWhitesourceBlackduck + X-Ray
4ª OpciónX-RayBlackduck + X-RayBlackduck + X-RayBlackduck

Conclusiones

Esta investigación ha ayudado a nuestro cliente a decidirse por uno de los productos que hemos estudiado. Las últimas reuniones que hemos mantenido con ellos nos hacen creer que su decisión final estará entre Whitesource y Blackduck. Continuaremos trabajando con el equipo de seguridad de nuestro cliente para recopilar más requisitos que puedan interesarles y finalmente integrar la solución escogida en sus sistemas.

GreenCoding

Con GreenCoding el desarrollo de software se convierte en parte integrante de tu programa de sostenibilidad

Más información