Las 1000 mejores bibliotecas de código abierto

Cuando piensa en proyectos importantes de código abierto, es casi seguro que recuerda Linux, el servidor web Apache, LibreOffice, etc. Y, eso es verdad. Estos son vitales, pero debajo de estos se encuentran las bibliotecas de software críticas que potencian a cientos de miles de otros programas. Estos son mucho menos conocidos. Es por eso que el Laboratorio de Harvard para la Ciencia de la Innovación (LISH) y la Fundación de Seguridad de Código Abierto de la Fundación Linux (OpenSSF), recientemente realizaron una encuesta exhaustiva, el Censo II de Software Libre y de Código Abierto – Bibliotecas de Aplicaciones, de estos críticos bajo el capó programas

Este es el segundo estudio de este tipo. El primero, «Vulnerabilidades en el núcleo» de 2020, un informe preliminar y el Censo II de software de código abierto, se centró en las bibliotecas y utilidades críticas del sistema operativo de nivel inferior. Este nuevo informe agrega datos de más de medio millón de observaciones de software libre y abierto. -bibliotecas de origen (FOSS) utilizadas en aplicaciones de producción en miles de empresas.

Los datos de este informe provienen de los análisis de análisis de composición de software (SCA) de las bases de código de miles de empresas. Estos datos fueron proporcionados por Snyk, Synopsys Cybersecurity Research Center (CyRC) y FOSSA.

El propósito de esto, además de simplemente querer saber cuáles fueron de hecho las bibliotecas, paquetes y componentes de aplicaciones de código abierto más populares, es ayudar a asegurar estos proyectos. Hasta que sepa que eso es importante, no puede saber qué necesita asegurar primero.

Por ejemplo, el hasta ahora relativamente desconocido paquete de registro log4j se convirtió en un gran problema de seguridad cuando se reveló el día cero de Log4Shell. Jen Easterly, directora de la Agencia de Seguridad de Infraestructura y Ciberseguridad (CISA) del Departamento de Seguridad Nacional (DHS) de los Estados Unidos, lo calificó como «la vulnerabilidad más grave que he visto en mis décadas de carrera». Este error afectó a decenas o cientos de millones de dispositivos y programas.

Kevin Wang, fundador y director ejecutivo de FOSSA, observó: La naturaleza omnipresente del OSS significa que las vulnerabilidades graves, como Log4Shell, pueden tener un impacto devastador y generalizado. El montaje de una defensa integral contra las amenazas de la cadena de suministro comienza con el establecimiento de una fuerte visibilidad del software». Solo al comprender nuestras «dependencias de código abierto podemos mejorar la transparencia y la confianza en la cadena de suministro del software».

Mike Dolan, vicepresidente sénior de Proyectos de la Fundación Linux, agregó: «Comprender qué paquetes de software libre son los más críticos para la sociedad nos permite respaldar de manera proactiva los proyectos que justifican las operaciones y el soporte de seguridad. El software de código abierto es la base sobre la cual nuestro día- las vidas de hoy corren, desde nuestras instituciones bancarias hasta nuestras escuelas y lugares de trabajo».

Este censo desglosa los 500 paquetes FOSS más utilizados en ocho áreas diferentes. Estos incluyen diferentes segmentos de los datos, incluido el administrador de paquetes versionado/independiente de la versión, npm/non-npm y llamadas de paquete directas/directas e indirectas. Por ejemplo, los 10 principales paquetes de JavaScript npm independientes de la versión que se llaman directamente son:

  1. lodash

  2. reaccionar

  3. axios

  4. depurar

  5. @babel/núcleo

  6. Rápido

  7. sever

  8. uuid

  9. reaccionar-dom

  10. jquery

Estas y las otras bibliotecas principales deben ser vigiladas de cerca por cualquier problema de seguridad.

Además de simplemente enumerarlos, los autores de la encuesta, de la Universidad de Harvard, hicieron cinco hallazgos generales:

1) Existe la necesidad de un esquema de nombres estandarizado para los componentes de software. Tal como están las cosas, los nombres no son aleatorios, pero tampoco tienen mucha rima o razón.

2) Necesitamos limpiar las complejidades del control de versiones de paquetes. ¿Puedes decir de un vistazo qué versión es un paquete? Puede hacerlo si trabaja en ese programa, pero si solo lo usa como un ladrillo en su software de nivel superior, puede ser un misterio.

3) Gran parte del FOSS más utilizado es desarrollado por solo un puñado de colaboradores. Todo el mundo conoce la caricatura XKCD de una pila de software gigante que depende de un solo desarrollador en Nebraska. Lo triste y divertido de esto es que no es una broma. Todavía dependemos del código que se basa en un único programador.

4) Mejorar la seguridad de la cuenta de desarrollador individual se está volviendo crítico. Con los ataques de piratería a los desarrolladores cada vez más comunes, debemos proteger sus cuentas como las joyas de la corona del desarrollo que son.

5) Es necesario limpiar el software heredado en el espacio de código abierto. Por lo general, pensamos en el software heredado en términos de ese tipo que todos conocemos que todavía ejecuta Windows XP. Pero, el código antiguo y tosco sigue vivo en los repositorios de código abierto también.

Dicho esto, si bien esta encuesta es útil, el trabajo está lejos de terminar. Se necesita hacer más y más trabajo. Todos los participantes en este informe planean trabajar en otro estudio. Esto es solo un precursor de estudios más exhaustivos para llegar a comprender mejor estos pilares críticos de nuestra infraestructura de información.

Historias relacionadas:

Deja un comentario