Información general
Introducción
Este manual tiene como objetivo guiar al usuario a través de las funcionalidades clave de la plataforma, proporcionando instrucciones claras y detalladas para que puedan aprovechar al máximo las capacidades de Dependency Track. Nuestro objetivo es ofrecer un recurso fácil de comprender y utilizar, que facilite la gestión de dependencias y la mitigación de vulnerabilidades.
Motivación
En un entorno de desarrollo de software, es crucial mantener un control riguroso sobre las dependencias utilizadas. Las vulnerabilidades en las dependencias pueden comprometer la seguridad de todo el proyecto, exponiendo a la organización a riesgos significativos. Dependency Track facilita la identificación y gestión de estas vulnerabilidades, permitiendo a los equipos de desarrollo y seguridad tomar decisiones informadas y mitigar riesgos de manera efectiva. Este manual está diseñado para ayudar a los usuarios a navegar por la plataforma de manera eficiente, asegurando que puedan identificar y resolver problemas de seguridad con rapidez y precisión.
Visualizar proyectos
La visualización de proyectos permite tener una visión general de todos los proyectos gestionados en Dependency Track. A continuación, se expone las distintas opciones para la visualización del contenido existente en la herramienta. Esto es fundamental para mantener un control organizado y eficiente de los proyectos y sus dependencias.
Acceder a la Lista de Proyectos
Tras realizar el proceso de login en la herramienta el usuario deberá hacer clic en el panel izquierdo en la sección de "Proyectos” desde el menú principal.

Se abrirá una ventana con la lista completa de todos los proyectos gestionados.

Desde esta vista el usuario podrá ver el estado general de su(s) proyecto(s), conocer cuál es la puntuación de riesgo, que viene dada por la presencia de una o más vulnerabilidades. Además, se tiene a disposición una caja de texto para buscar directamente por el nombre del proyecto.
Aplicar Filtros y Ordenación
Dentro del apartado de proyectos, el usuario podrá utilizar la caja de texto que dispone en este panel para aplicar un filtro de búsqueda por nombre y buscar el/los proyectos que tengan el mismo patrón.

Se podrá ordenar la lista que ofrece este panel por diferentes criterios como nombre, fecha de actualización, criticidad y también seleccionar los campos que desea ver en este apartado, tal como se puede apreciar en la siguiente captura.

Nota: El orden en cada lista se hace alfanuméricamente y en sentido ascendente o descendente.
Ver Detalles del Proyecto
Para ver el contenido del proyecto, es necesario que el usuario haga clic en un proyecto para acceder a una vista detallada.

Esta vista incluye información sobre las dependencias, vulnerabilidades y el historial de análisis del proyecto.
Explorar un Proyecto
Explorar un proyecto en detalle permite al usuario acceder a información más específica para entender mejor las dependencias y vulnerabilidades de cada proyecto. Esto es esencial para el proceso de gestión y mitigación de riesgos asociados al componente. En la siguiente captura se puede observar la vista general dentro del proyecto.

Acceder a la Información de Dependencias
Dentro de un proyecto, se debe hacer clic en la sección de componentes.

El usuario podrá visualizar un listado de todas las dependencias utilizadas en el proyecto, además de conocer otros detalles como la versión, el grupo, la licencia y los puntos de riesgo. Este último campo se calcula en base a diversos factores y se utiliza para priorizar las vulnerabilidades y guiar las acciones de remediación.
Utilizar Filtros y Búsqueda
Al igual que en el filtrado de proyectos, en este panel el usuario podrá organizar y analizar de manera eficiente la información sobre las dependencias de su proyecto. Se puede organizar alfanuméricamente por nombre, versión y puntuación de Riesgo.

El usuario puede buscar un componente por su nombre utilizando la caja de texto disponible en panel, como se muestra en la imagen anterior, también se muestran las coincidencias bajo el mismo patrón de nombre.
Ver Detalles de una Dependencia
Al hacer clic en una dependencia, se mostrará un panel con la descripción general del componente/dependencia.

El usuario puede ver la lista de vulnerabilidades que tiene cada componente/dependencia. Para acceder a la información se debe hacer clic en panel de “vulnerabilidades”, como aparece en la siguiente imagen y se mostrará el listado de vulnerabilidades.

Se puede filtrar por el nombre o CVE de la vulnerabilidad utilizando el cuadro de texto y organizar alfabéticamente por nombre y publicado (fecha).
Información para Análisis de Vulnerabilidades
El análisis de vulnerabilidades es crucial para identificar y abordar posibles riesgos de seguridad en los proyectos. Dependency Track proporciona información detallada sobre cada vulnerabilidad detectada.
Ver Información Detallada de una Vulnerabilidad
Cada vulnerabilidad incluye detalles como el CVSS score, la descripción y las recomendaciones de mitigación. Para acceder a este submenú, es necesario entrar en el componente afectado y seleccionar una vulnerabilidad de la lista.

Así el usuario podrá visualizar toda la información que puede utilizar para analizar la vulnerabilidad.

Descripción generada automáticamente](data:image/png;base64...)**
Gráfico de Dependencia
El gráfico de dependencia permite visualizar las relaciones entre las dependencias del proyecto. Esto es útil para identificar dependencias transitivas y posibles vulnerabilidades en estas.
Identificar relaciones entre Dependencias
Dentro de cada proyecto se puede acceder al grafico de dependencias haciendo clic en el panel con el mismo nombre. El usuario podrá observar la estructura del proyecto, los componentes y las relaciones que existen entre diferentes componentes.

Este gráfico una herramienta visual que permite a los usuarios tener una representación clara y concisa de las relaciones entre los componentes de software de un proyecto.
Con el uso de “Resaltar componentes obsoletos”, se podrá identificar rápidamente aquellas partes del software que están desactualizadas y, por lo tanto, podrían presentar vulnerabilidades de seguridad o problemas de compatibilidad.

Auditar Vulnerabilidades
Dentro de cada proyecto existe un panel dedicado a la auditoria de vulnerabilidades, permite al usuario acceder a una vista donde puede realizar la gestión sobre las decisiones/acciones que se deben tomar con respecto a las vulnerabilidades detectadas. Para acceder a este panel dentro de un proyecto seleccionado hay que buscar y hacer clic en la sección "Vulnerabilidades de auditoría".

Esta sección ofrece una visión general del estado de seguridad del proyecto. Incluye métricas como el número total de vulnerabilidades, su gravedad y las dependencias más vulnerables.
Búsqueda y filtro de datos
El usuario cuenta con una caja de texto para busca por nombre componente y obtener un listado de las vulnerabilidades que tiene dicho componente, tal y como se puede ver en la siguiente imagen.

Gestión de vulnerabilidades en los componentes.
En el proceso de análisis de las vulnerabilidades, un usuario puede añadir comentarios sobre dicha vulnerabilidad.
Cuando el usuario haga clic en el botón indicado (1), se desplegará una pequeña vista, que permitirá hacer algunas acciones de gestión sobre la vulnerabilidad en concreto:
- Ver en “Pista de auditoria” todos los cambios y estados de la vulnerabilidad.
- Añadir comentarios de las acciones realizadas sobre dicha vulnerabilidad.
- Cambiar el estado de acuerdo con el análisis realizado (entre ellos No establecido, explotable, en triaje, resuelto, Falso positivo y No afectado).

- Justificar el estado, donde el usuario deberá aportar información concreta sobre el estado asignado.

Actualizar el estado de las dependencias para reflejar si una vulnerabilidad ha sido mitigada, aceptada o si se necesita más investigación.
Explotar predicciones
En el panel “explotar predicciones”, lo usuarios contaran con una vista grafica que les ayudará a priorizar las vulnerabilidades en función de su criticidad, utilizando métricas como CVSS, EPS y Percentil EPSS.
Para acceder a este panel, se debe localizar el proyecto que se desea analizar y hacer clic en “Explotar predicciones”, así como se muestra en la imagen a continuación.

Priorizar Vulnerabilidades
Para entender el objetivo del panel “Explotar vulnerabilidades”, es necesario conocer tres elementos claves en el análisis de vulnerabilidades, antes realizar alguna priorización.
- CVSS: Es como una calificación general de la gravedad de una vulnerabilidad, considerando factores como qué tan fácil es explotarla y cuánto daño puede causar.
- EPS: Esta métrica estima la probabilidad de que un posible atacante intente explotar esa vulnerabilidad en concreto.
- Percentil EPSS: Te indica dónde se ubica una vulnerabilidad en comparación con otras, es decir, qué tan grave es con relación a todas las demás vulnerabilidades.
A continuación, se puede ver un ejemplo de un proyecto que contiene varias vulnerabilidades y un gráfico de probabilidades de explotación.

En la imagen anterior se señalan dos vulnerabilidades con distintos valores, se debe priorizar aquellas con valores más altos de EPSS aun cuando existan otras vulnerabilidades con CVSS más alto.
Un ejemplo más claro, la librería log4j-core 2.3 tiene un valor de criticidad CVSS 5.9 (escala de criticidad 0 a 10) y una probabilidad que ocurra (EPS) 0.95998 (escala de 0 a 1).

En contraste la librería o componente xerceslmpl 2.6.2 que aparece en la siguiente imagen, tiene una criticidad 7.1 mucho más alta que la del componente anterior y la probabilidad que ocurra es baja en comparación EPS 0.01871.

Basado en el ejemplo anterior y con acceso a esta información, el usuario deberá priorizar la mitigación de las vulnerabilidades en función de aquellas que sean más probable que sean explotadas, ya que representan un riesgo más próximo.
Filtro y búsqueda
En el panel de explotar predicciones, el usuario también cuenta con un listado que podrá filtrar usando la caja de texto disponible y organizar de acuerdo con los campos que permite la tabla filtrar (Aquellos que cuentan con flechas), sin embargo, es importante que tenga mayor atención a los campos CVSS, EPS y Percentil EPSS.

El proceso de priorización para mitigar las vulnerabilidades se enfocará en aquellos componentes que tengan la más alta probabilidad de que ocurran, para evitar que se produzcan esos incidentes de seguridad.
Violaciones de políticas
Revisar las violaciones de políticas permite asegurarse de que el proyecto cumple con las políticas establecidas dentro de la organización y tomar acciones correctoras cuando sea necesario.
Revisar violaciones existentes
Para acceder a la sección de “Violaciones de políticas", cada usuario dentro de un proyecto en específico deberá hacer clic en el panel de “Violaciones de políticas”.

El usuario podrá ver el listado de todas las políticas infringidas con la implementación de los componentes detectados. Cada política incluye detalles sobre la regla específica y realizar las acciones recomendadas para cumplir con las políticas.

Glosario de términos
En este manual de usuario de Dependency Track, se incluyen varios términos técnicos y específicos relacionados con la gestión de dependencias y vulnerabilidades en proyectos de software. Este glosario tiene como objetivo facilitar la comprensión de estos conceptos clave, que pueden no ser tan comunes para todos los usuarios.
- Dependencias transitivas: Dependencias que no son directamente utilizadas por el proyecto, pero que son requeridas por otras dependencias del proyecto.
- CVSS (Common Vulnerability Scoring System): Sistema estándar para evaluar la gravedad de las vulnerabilidades de seguridad.
- EPS (Exploit Prediction Scoring): Métrica que estima la probabilidad de que una vulnerabilidad sea explotada.
- Percentil EPSS: Indica la posición de una vulnerabilidad en comparación con otras, en términos de probabilidad de explotación.
- Puntuación de Riesgo: Valor calculado basado en diversos factores para priorizar vulnerabilidades y guiar acciones de remediación.
- Pista de auditoría: Registro de todos los cambios y estados de una vulnerabilidad.
- Dependencias obsoletas: Componentes de software que están desactualizados y pueden presentar vulnerabilidades de seguridad o problemas de compatibilidad.
- Violaciones de políticas: Incumplimientos de las normas establecidas dentro de una organización, detectados en los componentes del proyecto.
- Gráfico de dependencia: Herramienta visual que muestra las relaciones entre las dependencias de un proyecto, útil para identificar dependencias transitivas y posibles vulnerabilidades.