Resumen
-
Qué hace: El escaneo de dependencias, también conocido como Análisis de Composición de Software (SCA), identifica automáticamente vulnerabilidades de seguridad conocidas en las dependencias y bibliotecas de terceros de tu proyecto. Escanea archivos de manifiestos de dependencias (como
package.json,requirements.txt,pom.xml) y proporciona información detallada sobre vulnerabilidades, incluyendo identificadores CVE, puntuaciones CVSS y orientación para remediación. - Para quién es: Esta función está dirigida a equipos de seguridad, desarrolladores, ingenieros de DevOps y cualquier persona responsable de mantener aplicaciones seguras. Resulta especialmente útil en proyectos con numerosas dependencias de terceros cuyos equipos deben conocer las vulnerabilidades que pueden afectar a sus aplicaciones.
Características y beneficios principales
- Cobertura integral de ecosistemas: Analiza dependencias de 25+ lenguajes y ecosistemas, como Python, JavaScript/Node.js, Java, Go, Ruby, PHP, C# y Swift
Ver todas las fuentes de datos de vulnerabilidades
Ver todas las fuentes de datos de vulnerabilidades
- Fuentes de datos reconocidas: Utiliza numerosas bases de datos de vulnerabilidades fiables, entre ellas:
- GitHub Advisory Database (CC-BY 4.0)
- PyPI Advisory Database (CC-BY 4.0)
- Go Vulnerability Database (CC-BY 4.0)
- Rust Advisory Database (CC0 1.0)
- Global Security Database (CC0 1.0)
- OSS-Fuzz (CC-BY 4.0)
- Rocky Linux (BSD)
- AlmaLinux (MIT)
- Avisos de seguridad de Haskell (CC0 1.0)
- RConsortium Advisory Database (Apache 2.0)
- Paquetes maliciosos OpenSSF (Apache 2.0)
- Base de datos de Python Software Foundation (CC-BY 4.0)
- Base de datos de vulnerabilidades de Bitnami (Apache 2.0)
- Ubuntu (GPL v3)
- Y muchas más fuentes autorizadas
- Información detallada sobre vulnerabilidades: Proporciona:
- Identificadores CVE e identificadores alternativos de vulnerabilidades
- Puntuaciones y calificaciones de gravedad CVSS (Crítica, Alta, Media, Baja)
- Versiones de paquetes afectadas y correcciones disponibles
- Descripciones detalladas de vulnerabilidades y referencias
- Enlaces a avisos de fuentes como GitHub Advisory Database, NVD y los proveedores, cuando estén disponibles
- Fechas de publicación y enlaces externos
- Lógica de escaneo inteligente: Detecta automáticamente cuando hay archivos de dependencia presentes y optimiza el rendimiento de escaneo
Instrucciones de configuración
Pasos de configuración
Verificar archivos de dependencia
- Python
- JavaScript/Node.js
- Java
- Ve
- Ruby
- PHP
- C#
- Swift
Configurar el alcance de escaneo
Configurar notificaciones
Guía de uso
Flujos de trabajo clave
- Detección automática: El sistema identifica automáticamente los archivos de dependencias en el directorio de tu proyecto
- Escaneo exhaustivo: Analiza todos los archivos de dependencias compatibles y compara los paquetes con bases de datos de vulnerabilidades
- Procesamiento de vulnerabilidades: Analiza los resultados y los enriquece con información de seguridad adicional
- Creación de hallazgos: Crea un hallazgo con seguimiento por cada vulnerabilidad detectada
- Informes: Genera informes completos con recomendaciones prácticas de remediación
Filtros de la vista de dependencias

- Buscar: Encuentra hallazgos por CVE, nombre de paquete o resumen
- Gravedad: Limita los resultados a hallazgos críticos, altos, medios o bajos
- Estado del SLA: Muestra los hallazgos de dependencias vencidos o escalados cuando se aplica un SLA de SCA
- Ecosistema: Limita los resultados a un ecosistema de paquetes concreto
- Proyecto: Filtra a un proyecto específico por nombre (muestra solo proyectos a los que puedes acceder)
- Licencia: Filtra por la licencia de la dependencia
- Tipo de dependencia: Muestra dependencias directas, transitivas, de desarrollo u opcionales
- Alcanzabilidad: Muestra hallazgos alcanzables, inalcanzables, no utilizados o cuyo análisis sigue en curso. Consulta Análisis de alcanzabilidad
- Corrección disponible: Muestra solo hallazgos con una corrección conocida
Exportar dependencias a CSV
Haz clic en Exportar CSV en la vista de Dependencias para descargar los resultados que coincidan con tu búsqueda y filtros actuales. La exportación incluye detalles de paquetes y vulnerabilidades, tipo de dependencia y alcance alcanzable, proyecto y rama, y la ruta del manifiesto afectada. Cuando el Control de Acceso al Proyecto está activado, la exportación incluye solo los proyectos a los que puedes acceder.Dependencias transitivas
Muchas vulnerabilidades de los proyectos modernos se encuentran en dependencias transitivas: paquetes que no añadiste directamente, sino que incorporaron otras dependencias. Corgea resuelve el grafo completo para mostrar exactamente de qué depende la aplicación y por qué.Tipos de dependencias
En los resultados de escaneo, los grupos de paquetes incluyen insignias que muestran de dónde proviene una dependencia vulnerable:- Direct: El paquete vulnerable es una dependencia directa declarada en tu manifiesto (por ejemplo,
package.jsonopom.xml). - Transitivo: El paquete vulnerable se incorpora indirectamente mediante otra dependencia.
- Dev: El paquete vulnerable se utiliza como dependencia de desarrollo (compilación, prueba o herramienta) en lugar de en tiempo de ejecución.
- Opcional: El paquete vulnerable se marca como dependencia opcional.
Cómo se construye el grafo de dependencias
Corgea construye el árbol de dependencias combinando los paquetes que declaras con los paquetes que tu build realmente resuelve:- Las dependencias directas se leen de los manifiestos (
package.json,pom.xml,requirements.txt,go.mod,Gemfiley otros). - Las dependencias transitivas se resuelven a partir de lockfiles —como
package-lock.json,yarn.lock,poetry.lockygo.sum— y de un SBOM generado, que contiene las versiones resueltas exactas y sus relaciones jerárquicas. - Cuando falta un lockfile, Corgea intenta generarlo automáticamente en los ecosistemas compatibles (por ejemplo, resolviendo dependencias de Python o .NET) para poder analizar también los paquetes transitivos.
Vista del árbol de dependencias
La vista de dependencias puede representarlas como un árbol desplegable, donde puedes expandir una dependencia directa para ver todos los paquetes que incorpora:Ecosistemas compatibles
Ver los 25+ ecosistemas compatibles
Ver los 25+ ecosistemas compatibles
- AlmaLinux - Paquetes de Linux empresarial
- Alpine - Paquetes de Linux Alpine
- Android - Dependencias de aplicaciones Android
- Bitnami - Paquetes de aplicaciones Bitnami
- crates.io - Paquetes de Rust
- Curl - vulnerabilidades en la biblioteca cURL
- Debian GNU/Linux - Paquetes de Debian
- Git - Repositorios Git (incluyendo C/C++)
- GitHub Actions - Workflows de GitHub Actions
- Go - Módulos y paquetes de Go
- Haskell - Paquetes de Haskell
- Hex - Paquetes de Elixir
- Kernel de Linux - Vulnerabilidades del kernel de Linux
- Maven - Dependencias de Java Maven
- npm - Paquetes de Node.js
- NuGet - Paquetes .NET
- OSS-Fuzz - El servicio de fuzzing continuo de Google
- Packagist - Paquetes PHP
- Pub - Paquetes de Dart
- PyPI - Paquetes en Python
- Python - Vulnerabilidades del lenguaje Python
- R - Paquetes R (CRAN y Bioconductor)
- Rocky Linux - Paquetes de Rocky Linux
- RubyGems - Paquetes de Ruby
- SwiftURL - Paquetes Swift
- Ubuntu OS - Paquetes de Ubuntu
Ejemplo de proyecto multiecosistema
Desglose de la gravedad de la vulnerabilidad
- Alto: Debe abordarse con prontitud, impacto significativo en la seguridad
- Medio: Debería tratarse en ciclos de mantenimiento regulares
- Bajo: Hallazgos menores que pueden abordarse cuando resulte conveniente
Análisis de alcanzabilidad
Un paquete vulnerable en el árbol de dependencias no implica necesariamente que la aplicación esté expuesta. El análisis de alcanzabilidad ayuda a priorizar al determinar si el código puede activar la vulnerabilidad. Por cada dependencia directa vulnerable, Corgea responde a dos preguntas:- ¿Se usa el paquete? Corgea busca importaciones y usos del paquete en tu código. Un paquete que se declara pero nunca se importa conlleva un riesgo mucho menor.
- ¿Es accesible la función vulnerable? Para los paquetes que se usan, Corgea analiza si tu código realmente llama a las funciones específicas afectadas por la vulnerabilidad.
Estados de alcanzabilidad
Cada hallazgo analizado recibe uno de los siguientes estados, que también puedes utilizar como filtros en la vista de dependencias:- Accesible: Tu código llama a la funcionalidad vulnerable. Estas son la máxima prioridad, especialmente para dependencias directas.
- Inalcanzable: Se utiliza el paquete, pero no se llaman las funciones vulnerables.
- No utilizado: El paquete está declarado pero no se usa en tu código.
- Analizando: El análisis de alcanzabilidad del hallazgo sigue en curso.
Visualización de la alcanzabilidad
En los hallazgos alcanzables, Corgea puede representar la ruta desde los puntos de entrada de la aplicación hasta el código vulnerable. Muestra cómo fluye la ejecución desde los endpoints, pasa por funciones intermedias y llega a la función vulnerable, lo que permite comprender y validar la alcanzabilidad.Recomendaciones de corrección
Cuando existe una corrección, Corgea recomienda la versión corregida más próxima, es decir, la versión más baja que resuelve la vulnerabilidad, y la muestra junto a la instalada. Así, la actualización es lo más pequeña posible y se reduce el riesgo de cambios incompatibles. En las dependencias directas, puedes aplicar la corrección actualizando la versión en el manifiesto. En las dependencias transitivas, normalmente no puedes sustituir la versión directamente porque la controla un paquete padre. Corgea muestra la ruta de dependencias y la dependencia padre que debes actualizar para incorporar la versión transitiva corregida. Consulta Dependencias transitivas para saber cómo se construye la ruta.Escaneo de licencias
Durante el escaneo de dependencias, Corgea captura la licencia de software asociada a cada dependencia, dándote visibilidad sobre las licencias presentes en todo tu proyecto. La información de licencias aparece de dos formas:- Filtro de licencias: En la vista de dependencias, filtra los hallazgos por licencia (consulta Filtros de la vista de dependencias).
- Exportación CSV: La información de licencia se incluye al exportar dependencias a CSV.
Escaneo de imágenes en contenedor
Corgea también escanea las imágenes de contenedor de las que depende el proyecto e identifica vulnerabilidades en paquetes base del sistema operativo y en otros programas instalados en sus capas. Las imágenes se detectan automáticamente en archivosDockerfile y Docker Compose, sin configuración adicional.
Para conocer los métodos de detección, los registros compatibles y los límites, consulta Escaneo de imágenes de contenedor.
Detección de paquetes maliciosos
Como parte del escaneo de dependencias, Corgea identifica paquetes maliciosos o comprometidos conocidos, como typosquats, versiones secuestradas y versiones con puertas traseras, mediante OpenSSF Malicious Packages y fuentes de avisos relacionadas. Para obtener más información, consulta Detección de paquetes maliciosos.Mejores prácticas
- Escaneo periódico: Habilita el escaneo automático para detectar vulnerabilidades nuevas a medida que se publican
- Actualizaciones de dependencias: Actualiza rápidamente las dependencias cuando haya correcciones disponibles
- Priorización por gravedad: Aborda primero las vulnerabilidades críticas y de gravedad alta
- Evaluación de riesgos: Evalúa si las vulnerabilidades afectan realmente a la superficie de ataque de tu aplicación
- Higiene de dependencias: Revisa y elimina periódicamente las dependencias sin usar para reducir la superficie de ataque
- Versiones fijas: Utiliza números de versión concretos en los archivos de dependencias para obtener resultados coherentes
- Monitorización: Configura alertas para nuevas vulnerabilidades descubiertas en tus dependencias
- Documentación: Mantén registros de los riesgos aceptados y de las decisiones de remediación
Resolución de problemas
No se han encontrado vulnerabilidades, pero sí hay dependencias
No se han encontrado vulnerabilidades, pero sí hay dependencias
Los resultados del escaneo parecen incompletos
Los resultados del escaneo parecen incompletos
Se notifican vulnerabilidades que son falsos positivos
Se notifican vulnerabilidades que son falsos positivos
El rendimiento del escaneo es lento
El rendimiento del escaneo es lento
