Investigación de Snyk y Redhunt Labs: análisis de las 1000 principales organizaciones de GitHub
22 de junio de 2023
0 minutos de lecturaEl código abierto es fundamental para el desarrollo moderno. Permite a los desarrolladores ampliar la funcionalidad de sus aplicaciones y reducir el tiempo total de desarrollo. Sin embargo, el sistema no es perfecto. La naturaleza del software de terceros y sus dependencias suele crear oportunidades para que las vulnerabilidades de seguridad se oculten en bibliotecas y descargas.
Una solución a este problema son los administradores de paquetes. Muchos lenguajes, como JavaScript o Python, cuentan con administradores de paquetes como npm (Node Package Manager) y pip (Preferred Installer Program), que se basan en los archivos específicos que leen para determinar qué dependencias deben descargarse. Si una dependencia indica explícitamente una versión, el administrador de paquetes descargará esa versión. Sin embargo, esas versiones suelen estar obsoletas y podrían contener vulnerabilidades de seguridad.
En un proyecto de investigación reciente, Snyk y Redhunt Labs se propusieron conocer mejor la postura de seguridad de los repositorios populares de GitHub. Analizaron las 1000 principales organizaciones de GitHub para detectar dependencias inseguras en sus repositorios de código fuente. Al extraer sus dependencias y comparar sus versiones con vulnerabilidades de seguridad ampliamente conocidas, los investigadores intentaron evaluar el estado de seguridad de esos repositorios. En el informe se presentan por separado los resultados de los repositorios de Java, JavaScript, Python y Ruby.
Para enfocarse en los repositorios con un posible impacto, la investigación filtró los repositorios según la cantidad de estrellas y ciertas palabras clave. En total, se examinaron 11.900 repositorios y se encontraron 1.229.601 vulnerabilidades en 15.584 archivos de dependencias vulnerables.
Algunos de los hallazgos incluyen:
La deserialización de datos no confiables fue el tipo de vulnerabilidad más frecuente, con la sorprendente cifra de 130.831 casos en los repositorios de Java, lo que representa el 40 % del total de vulnerabilidades identificadas.
La contaminación de prototipos fue la vulnerabilidad más común identificada en JavaScript (62%), y los repositorios contenían 549.566 vulnerabilidades en total.
De las 72.082 vulnerabilidades encontradas en los 2.602 archivos de dependencias de los repositorios de Python, 16.590 eran de gravedad alta o crítica.
Por último, en los repositorios de Ruby, el 50% de las vulnerabilidades son de gravedad crítica o alta.
El estudio también destaca a los diez investigadores que reportaron más vulnerabilidades.
Descarga el informe hoy para conocer más sobre el enfoque, la metodología y los resultados de este interesante estudio con RedHunt Labs.
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.
