Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Aprenda a solucionar problemas de análisis de dependencias en GitHub Advanced Security para Azure DevOps.
Prerrequisitos
Categoría | Requisitos |
---|---|
Permisos | - Para ver un resumen de todas las alertas de un repositorio: permisos de colaborador para el repositorio. - Para descartar alertas en Seguridad Avanzada: permisos de administrador de Project. - Para administrar permisos en Advanced Security: miembro del grupo Administradores de la colección de proyectos o del grupo Advanced Security: administrar configuración con el permiso configurado en Permitir. |
Para obtener más información sobre los permisos de Advanced Security, consulte Administrar permisos de Advanced Security.
Análisis de dependencias sin identificar ningún componente
Si la tarea de escaneo de dependencias se está completando sin marcar ningún componente y sin generar alertas para los componentes con vulnerabilidades conocidas, asegúrese de tener un paso de restauración de paquetes antes de la tarea AdvancedSecurity-Dependency-Scanning@1
.
Por ejemplo, para un proyecto de C# (.NET Core), este es un fragmento de código YAML de ejemplo:
- task: DotNetCoreCLI@2
displayName: 'Restore NuGet packages'
inputs:
command: 'restore'
projects: '**/*.csproj'
# If you are using a private package feed such as Azure Artifacts, you will need additional variables.
# For more information, see https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/dotnet-core-cli-v2?view=azure-pipelines
feedsToUse: 'select'
...
- task: AdvancedSecurity-Dependency-Scanning@1
Para un proyecto de JavaScript, este es un fragmento de código YAML de ejemplo:
- task: Npm@1
displayName: 'npm install'
inputs:
command: 'install'
workingDir: '$(System.DefaultWorkingDirectory)'
- task: AdvancedSecurity-Dependency-Scanning@1
Tiempo de espera de la tarea de examen de dependencias
La hora predeterminada en la que se ejecuta la tarea de análisis de dependencias antes de que se agote el tiempo de espera es de 300 segundos (5 minutos). Si la tarea agota el tiempo de espera antes de la finalización, puede establecer una variable de canalización DependencyScanning.Timeout
, que espera un entero que represente segundos, como DependencyScanning.Timeout: 600
. Cualquier cosa con el tiempo de espera predeterminado de 300 segundos no tiene ningún efecto.
Para usar esta variable, agregue DependencyScanning.Timeout
como una variable de canalización:
- task: AdvancedSecurity-Dependency-Scanning@1
env:
DependencyScanning.Timeout: 600
Ajustando el directorio de escaneo
De forma predeterminada, la tarea de análisis de dependencias procesará el Agent.BuildDirectory
directorio. Si quiere limitar el ámbito del examen a una carpeta específica, puede establecer una variable DependencyScanning.SourcePath
de canalización en cualquier ruta de acceso de archivo de directorio del agente de compilación que quiera analizar. No se admiten varias ejecuciones de tareas de examen de dependencias en el mismo trabajo de canalización. Si la ruta de escaneo está limitada a un subdirectorio, no se puede agregar nuevamente la tarea para escanear otro directorio.
- task: AdvancedSecurity-Dependency-Scanning@1
env:
DependencyScanning.SourcePath: scan/code/path
Publicación de los resultados del escaneo de dependencias en el repositorio no deseado
Si tiene una definición de canalización hospedada en un repositorio y el código fuente que va a examinar GitHub Advanced Security estaba en otro, los resultados se pueden procesar y enviar al repositorio incorrecto, publicar en el repositorio que contiene la definición de canalización en lugar del repositorio de código fuente.
Para habilitar el enrutamiento de resultados previsto, establezca la variable de entorno de la canalización advancedsecurity.publish.repository.infer: true
para inferir el repositorio desde el cual publicar en el directorio de trabajo.
trigger:
- main
resources:
repositories:
# PipelineRepo: The repository containing the pipeline definition.
# This is optional and only needed if you plan to reference files or scripts from this repo.
- repository: PipelineRepo
type: git
name: DevOpsPipelineRepo
ref: refs/heads/main
trigger:
- main
# SourceRepo: The repository where scanning and publishing will occur.
- repository: SourceRepo
type: git
name: code-to-analyze-repo
ref: refs/heads/main
trigger:
- main
jobs:
- job: "DependencyScan"
displayName: "Dependency Scanning with Inferred Publishing"
variables:
# Enable repository inference
advancedsecurity.publish.repository.infer: true
steps:
# Checkout the SourceRepo
- checkout: SourceRepo
# Perform Dependency Scanning
- task: AdvancedSecurity-Dependency-Scanning@1
displayName: "Analyze Dependencies for Vulnerabilities"
Faltan anotaciones de solicitud de incorporación de cambios de examen de dependencias al ajustar dónde se publican los resultados
Si usa advancedsecurity.publish.repository.infer
o define una alternativa advancedsecurity.publish.repository
, es posible que tenga que establecer DependencyScanning.SourcePath: $(System.DefaultWorkingDirectory)
para que las rutas de acceso de archivo se determinen con precisión para que la anotación de solicitud de incorporación de cambios aparezca según lo previsto.
- task: AdvancedSecurity-Dependency-Scanning@1
env:
DependencyScanning.SourcePath: $(System.DefaultWorkingDirectory)
Escenario de emergencia para la tarea de compilación
Si la tarea de compilación de examen de dependencias bloquea una ejecución correcta de la canalización y usted necesita omitir urgentemente la tarea de compilación, puede establecer una variable de canalización DependencyScanning.Skip: true
.
Permisos de tarea de examen de dependencias
La tarea de compilación de análisis de dependencias usa la identidad de canalización para llamar a las API de REST de Advanced Security. De forma predeterminada, las canalizaciones del mismo proyecto tienen acceso para capturar alertas. Si quita esos permisos de la cuenta de servicio de compilación o si tiene una configuración personalizada, por ejemplo, una canalización hospedada en un proyecto diferente al del repositorio, conceda estos permisos manualmente.
Conceda el permiso Advanced Security: View Alerts
a la cuenta de servicio de compilación que se usa en la canalización, que para las canalizaciones con ámbito de proyecto, es [Project Name] Build Service ([Organization Name])
y, para las canalizaciones con ámbito de recopilación, es Project Collection Build Service ([Organization Name])
.
Artículos relacionados
- Configuración del examen de código
- Configurar el escaneo de dependencias
- Configuración del examen de secretos
- Obtener información sobre GitHub Advanced Security para Azure DevOps Services