En esta guía, se describe cómo aumentar tu postura de seguridad habilitando la función de análisis de vulnerabilidades en Secure Source Manager.
El análisis de vulnerabilidades detecta automáticamente las vulnerabilidades conocidas en las dependencias de tu código fuente, analizando cada confirmación nueva en una solicitud de extracción. Las vulnerabilidades se presentan tanto en las vistas de solicitud de extracción como en una pestaña Seguridad en todo el repositorio.
Habilitar el análisis de vulnerabilidades
Asegúrate de que los siguientes roles y parámetros de configuración estén habilitados para tu repositorio.
Roles obligatorios
Para obtener el permiso que
necesitas para habilitar el análisis de vulnerabilidades,
pídele a tu administrador que te otorgue el rol de IAM de
administrador del repositorio de Secure Source Manager (roles/securesourcemanager.repoAdmin) en el repositorio de Secure Source Manager.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene el permiso
securesourcemanager.repositories.update,
que se requiere para
habilitar el análisis de vulnerabilidades.
También puedes obtener este permiso con roles personalizados o con otros roles predefinidos.
Para obtener información sobre cómo otorgar roles de Secure Source Manager, consulta Control de acceso con IAM y Otorga acceso a la instancia a los usuarios.
Actualiza la configuración del repositorio
Puedes activar el análisis de vulnerabilidades para tus repositorios a través de la interfaz de Secure Source Manager:
- Navega al repositorio en el que deseas habilitar el análisis de vulnerabilidades.
- Luego, haz clic en el ícono de configuración.
- Busca el botón de activación Análisis de vulnerabilidades.
- Haz clic en el botón de activación para llevarlo a la posición Activado.
- Haz clic en el botón Actualizar configuración (Update Settings).
Trabaja con el análisis de vulnerabilidades
Después de habilitar el análisis de vulnerabilidades, se realizan los siguientes análisis automáticamente:
- Análisis programados: Las confirmaciones de encabezado de todas las ramas, una vez al día.
- Análisis de solicitudes de extracción:
- Las confirmaciones principales de las solicitudes de extracción nuevas, en el momento de su creación.
- Nuevas confirmaciones enviadas a solicitudes de extracción, en el envío.
Solo se detectan vulnerabilidades de las dependencias de tu código. Los análisis de vulnerabilidades detectan las vulnerabilidades que se indican en las bases de datos públicas, incluidas, entre otras, la Base de datos nacional de vulnerabilidades y la base de datos de asesoría de GitHub. Las vulnerabilidades detectadas incluyen un vínculo externo a los datos de la base de datos pública sobre la vulnerabilidad y, cuando está disponible, el ID de CVE.
Pestaña Seguridad
Después de habilitar el análisis de vulnerabilidades, se muestra una pestaña Seguridad en la barra de navegación del repositorio, que puedes usar para buscar vulnerabilidades analizadas hasta un período de retención de 3 años.
La pestaña Seguridad incluye los resultados de los análisis programados y de las solicitud de extracción.
De forma predeterminada, el filtro Encontrado en de la pestaña Seguridad se establecerá en la rama explorada más recientemente (o en la rama predeterminada del repositorio). Para ver otras vulnerabilidades, ajusta o borra el filtro Se encontró en.
La pestaña Seguridad incluye los siguientes datos sobre cada vulnerabilidad:
- Gravedad: Es la gravedad de seguridad de la vulnerabilidad, según la calificación de la fuente de la base de datos de vulnerabilidades pública.
- ID: El ID de CVE público, si está disponible; de lo contrario, otro identificador, como el ID de GHSA. Además, si está disponible, un vínculo externo a la entrada de la base de datos pública para la vulnerabilidad.
- Se encontró en: El SHA de confirmación de Git que se analizó, así como una lista de todas las ramas de Git, las etiquetas de Git o las solicitudes de extracción para las que esta es la confirmación más reciente.
- Archivo: Es el archivo de origen del repositorio que incluyó la dependencia vulnerable y, si está disponible, el número de línea.
- Paquete: Es el nombre del paquete dependiente y su versión que contiene la vulnerabilidad. Si se conoce, también se indica la versión del paquete que aborda la vulnerabilidad.
- Descripción: Si está disponible, una descripción de la vulnerabilidad.
- Detectada: Es la fecha del análisis en el que se detectó la vulnerabilidad.
Los siguientes filtros están disponibles en la pestaña Seguridad:
- Gravedad: Solo muestra las vulnerabilidades con la gravedad especificada
(
CRITICAL,HIGH,MEDIUMoLOW). - Se encontró en: Solo muestra las vulnerabilidades detectadas en la rama, la etiqueta o el SHA de confirmación de Git especificados.
- Archivo: Solo muestra las vulnerabilidades detectadas en la ruta de acceso de origen
especificada. Acepta substrings; por ejemplo, se puede usar
project/para filtrar las dependencias vulnerables en el directorioproject/. - Vulnerabilidad: Busca una vulnerabilidad por sus datos públicos, como su ID, descripción o nombre del paquete afectado. Acepta substrings.
- Fecha desde y hasta: Solo muestra las vulnerabilidades que se detectaron
después o antes de las fechas dadas, respectivamente. Formato:
YYYY-MM-DD.
Solicitudes de extracción
Una vez que se completa un análisis de solicitud de extracción, las vulnerabilidades detectadas se muestran en la pestaña Conversación de la solicitud de extracción. Los análisis verifican todos los archivos del repositorio. Es posible que se incluyan vulnerabilidades de archivos que no se modificaron en la solicitud de extracción.
Las solicitudes de extracción muestran una vista resumida de las principales vulnerabilidades detectadas. Para ver la lista completa y los detalles de las vulnerabilidades de la solicitud de extracción, haz clic en el vínculo Resultados completos para verlos en la pestaña Seguridad del repositorio.
Las vulnerabilidades no impiden que se combinen las solicitudes de extracción.
Tipos de archivos admitidos
Se analizarán los archivos de paquetes de los siguientes lenguajes en busca de vulnerabilidades de dependencias:
| Admitido | |
|---|---|
| Go | |
| Java | |
| JavaScript | |
| Node.js | |
| PHP | |
| Python | |
| Ruby | |
| Rust | |
| TypeScript | |
| .NET |