Skip to main content

Aumento del 88 % en las vulnerabilidades de bibliotecas de aplicaciones en dos años

Escrito por
the state op open source small

26 de febrero de 2019

0 minutos de lectura

Te damos la bienvenida al informe anual de Snyk sobre el estado de la seguridad del código abierto de 2019. Este informe se divide en varias publicaciones:

También puedes descargar nuestro atractivo informe en PDF, elaborado artesanalmente, que reúne toda esta información y más en un solo lugar.

Descarga el informe sobre el estado de la seguridad del código abierto de 2019

Una vulnerabilidad es una vulnerabilidad, se conozca o no. La diferencia clave entre ambas es la probabilidad de que un atacante esté al tanto de ella e intente explotarla. Por eso, cuanto más conocida sea una vulnerabilidad, más urgente será resolverla.

Una vulnerabilidad conocida puede tener asociado un ID de CVE como parte de una divulgación responsable, o simplemente puede haberse divulgado en Internet o estar registrada en bases de datos abiertas. Todos estos son tipos de vulnerabilidades conocidas que debes priorizar y eliminar, ya que tienen más probabilidades de ser atacadas en producción. Después, debes considerar las vulnerabilidades registradas en bases de datos privadas o incluso compartidas en la web oscura.

Las vulnerabilidades aparecen cada vez más rápido: casi se duplicaron en los últimos dos años

Vulnerabilidades conocidas en bibliotecas de aplicaciones

Hoy observamos un aumento en la cantidad de vulnerabilidades reportadas en muchos de los ecosistemas que monitoreamos, incluidos PHP Packagist, Maven Central Repository, Golang, npm, NuGet, RubyGems y PyPI.

En 2017, observamos un aumento del 43 % en las vulnerabilidades reportadas en todos los registros, y en 2018 la cantidad de vulnerabilidades creció un 33 % más.

Al analizar los cinco ecosistemas —PHP, Java, JavaScript, Python y Go—, observamos que desde 2014 aumenta la cantidad de vulnerabilidades divulgadas en todos ellos.

Es posible que las cifras de 2018 sigan creciendo debido a vulnerabilidades aún no divulgadas que se harán públicas más adelante este año, lo que reforzaría esta tendencia.

En 2018, las nuevas divulgaciones en npm aumentaron un 47 % y en Maven Central, un 27 %

Gráfico de líneas que muestra el aumento de nuevas vulnerabilidades entre 2014 y 2018 en los ecosistemas de PHP Packagist, Maven Central, npm, Golang y PyPI.

En 2018, las vulnerabilidades divulgadas para PHP Packagist aumentaron un impresionante 56 %, mientras que las divulgaciones en Maven Central crecieron un 27 %. Aunque Golang es un ecosistema más pequeño, la investigación de seguridad va en aumento y en 2018 se reportaron un 52 % más de vulnerabilidades que en 2017.

Al revisar los datos desde 2014 en la base de datos de vulnerabilidades de Snyk, observamos un fuerte aumento general en la cantidad de vulnerabilidades.

Hoy monitoreamos 1766 vulnerabilidades en Maven Central Repository, 1268 en npm, 746 en PHP Packagist, 807 en PyPI y 94 en Golang.

Desde 2014, la cantidad de vulnerabilidades en la base de datos de Snyk aumentó un sorprendente 371 %; las vulnerabilidades en npm crecieron un impresionante 954 % y las de Maven Central, un 346 %.

Desde 2014, la cantidad de vulnerabilidades en la base de datos de Snyk para npm aumentó un 954 % y para Maven Central, un 346 %

Tendencias en la gravedad

Al analizar la gravedad de las vulnerabilidades divulgadas en bibliotecas de aplicaciones durante los últimos tres años en todos los ecosistemas de lenguajes, observamos que en 2018 hubo menos vulnerabilidades de gravedad alta que el año anterior.

Sin embargo, un dato interesante de 2017 y 2018 es que hubo más vulnerabilidades de gravedad alta que de gravedad media o baja, en comparación con 2016.

Gráfico de barras que muestra la gravedad de las vulnerabilidades por año: hallazgos de nivel bajo, medio y alto en 2016, 2017 y 2018.

En detalle: Zip Slip

En 2018, el equipo de investigación de seguridad de Snyk divulgó responsablemente varios casos de una vulnerabilidad llamada Zip Slip, una vulnerabilidad crítica y generalizada que permite sobrescribir archivos arbitrarios. Se puede explotar mediante un archivo comprimido especialmente diseñado que contiene nombres de archivo con rutas de recorrido de directorios, y normalmente permite ejecutar comandos de forma remota.

El equipo de seguridad de Snyk la descubrió y divulgó responsablemente antes de su divulgación pública, el 5 de junio de 2018. Afecta a miles de proyectos, incluidos los de HP, Amazon, Apache, Pivotal y muchos otros.

La investigación, que abarcó varios ecosistemas, descubrió decenas de vulnerabilidades en bibliotecas como Apache Ant, adm-zip, SharpCompress y otras que usan miles de proyectos de Java, npm, NuGet, Go, .NET, Ruby, Python y C++. Se determinó que casi la mitad eran de gravedad alta.

«Cuando descubrimos el primer caso de la vulnerabilidad Zip Slip en un proyecto grande, fue muy emocionante. Fue nuestro momento eureka, pero cuando descubrimos que todas las demás aplicaciones tenían una implementación vulnerable, nos sorprendimos muchísimo. Nos dimos cuenta de que esta vulnerabilidad no afectaba solo a unas cuantas aplicaciones, sino a muchísimos proyectos de distintos ecosistemas».

SnykSnyk

Danny Grander

Founder / Chief Security Officer, Snyk

En detalle: vulnerabilidades sin CVE

Es común que los equipos de seguridad monitoreen y respondan a las nuevas vulnerabilidades a medida que se divulgan a través de la National Vulnerabilities Database (NVD) u otros repositorios públicos de CVE.

Sin embargo, muchas vulnerabilidades de seguridad se descubren y corrigen en canales no oficiales, por ejemplo, mediante la comunicación informal entre quienes mantienen los proyectos y sus usuarios en un rastreador de problemas.

La base de datos de Snyk está cuidadosamente seleccionada por un equipo interno de analistas de seguridad y registra vulnerabilidades que no están incluidas en estas fuentes oficiales, pero que se mencionan en lugares públicos como foros o notas de lanzamiento. Si usamos la base de datos de Snyk como referencia, vemos que descubre un 67 % más de vulnerabilidades que las bases de datos públicas.

Además de no ser exhaustivas, las bases de datos públicas y los CVE suelen tardar en agregar vulnerabilidades. Por ejemplo, si analizamos npm, las vulnerabilidades aparecen en npm audit, en promedio, 92 días después de registrarse en la base de datos de Snyk, y el 72 % de las veces se reportan con retraso.

Estas brechas indican que el sistema CVE y las bases de datos públicas de código abierto no logran seguir el ritmo ni el volumen de las vulnerabilidades del software de código abierto. Es necesario reevaluar estos mecanismos, y las organizaciones que priorizan la seguridad deberían recurrir a bases de datos comerciales para obtener una cobertura oportuna y amplia. Sigue leyendo:

Empieza con los desafíos de Capture the Flag

Aprende a resolver desafíos de captura la bandera con nuestro taller virtual introductorio a pedido.

Leer más

Blog

Los modelos de frontera encontraron las vulnerabilidades. Solo el atacante encontró las cadenas.

El análisis estático encontró las fallas, pero solo las pruebas de ataque en vivo demostraron cómo podían encadenarse para provocar brechas. Una comparación de Evo COS, Claude Security y Claude Code Security.

feature insights context
Blog

Los ataques autónomos ya están aquí. La defensa debe estar a su altura.

Los atacantes autónomos están reduciendo el tiempo disponible para defenderse. Descubre cómo el descubrimiento, la corrección, la validación y la prevención continuos pueden ayudar a los equipos de seguridad a seguirles el ritmo.

Blog

Por qué los agentes de programación con IA siguen generando fallas de control de acceso

Los agentes de programación con IA pueden generar lógica de autorización que compila y supera la revisión, pero expone los datos de un inquilino a otro. Descubre por qué es difícil detectar el control de acceso roto y cómo prevenirlo.