Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Erfahren Sie, wie Sie Abhängigkeitsscanprobleme in GitHub Advanced Security für Azure DevOps beheben.
Voraussetzungen
| Kategorie | Anforderungen |
|---|---|
| Berechtigungen | – Um eine Zusammenfassung aller Warnungen für ein Repository anzuzeigen: Beitragsberechtigungen für das Repository. - Um Warnhinweise in der erweiterten Sicherheit zu verwerfen: Projektadministrator Berechtigungen. – So verwalten Sie Berechtigungen in Advanced Security: Mitglied der Gruppe "Project Collection Administrators" oder Berechtigung "Advanced Security: Einstellungen verwalten" auf „Zulassen“ gesetzt. |
Weitere Informationen zu Erweiterten Sicherheitsberechtigungen finden Sie unter "Verwalten erweiterter Sicherheitsberechtigungen".
Manuelles Einrichten von Abhängigkeitsscanaufgaben
Tipp
Fügen Sie für die genauesten Scanergebnisse die Abhängigkeitsüberprüfungsaufgabe nach den Buildschritten oder Paketwiederherstellungsschritten in einer Pipeline hinzu, in der der code erstellt wird, den Sie überprüfen möchten.
Fügen Sie den Task „Advanced Security Abhängigkeitsüberprüfung“ (AdvancedSecurity-Dependency-Scanning@1) Ihrer YAML-Pipelinedatei direkt hinzu, oder wählen Sie im Task-Assistenten den Task Advanced Security -Abhängigkeitsüberprüfung aus.
Abhängigkeitsscans identifizieren keine Komponenten
Wenn die Abhängigkeitsüberprüfungsaufgabe abgeschlossen wird, ohne Komponenten zu kennzeichnen und Benachrichtigungen für Komponenten mit bekannten Sicherheitsrisiken nicht zu generieren, stellen Sie sicher, dass Sie vor der AdvancedSecurity-Dependency-Scanning@1 Aufgabe über einen Paketwiederherstellungsschritt verfügen.
Für ein C#-Projekt (.NET Core) finden Sie hier einen Beispiel-YAML-Codeausschnitt:
- 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
Für ein JavaScript-Projekt finden Sie hier einen Beispiel-YAML-Codeausschnitt:
- task: Npm@1
displayName: 'npm install'
inputs:
command: 'install'
workingDir: '$(System.DefaultWorkingDirectory)'
- task: AdvancedSecurity-Dependency-Scanning@1
Timeout der Aufgabe zum Scannen von Abhängigkeiten
Die Standardzeit für die Ausführung des Abhängigkeitsüberprüfungstasks, bevor ein Timeout auftritt, beträgt 300 Sekunden (5 Minuten). Wenn die Aufgabe vor dem Abschluss abgelaufen ist, können Sie eine Pipeline-Variable DependencyScanning.Timeout festlegen, die eine ganze Zahl erwartet, die Sekunden darstellt, wie DependencyScanning.Timeout: 600. Alles unter dem Standardtimeout von 300 Sekunden hat keine Auswirkung.
Um diese Variable zu verwenden, fügen Sie sie als Pipelinevariable hinzu DependencyScanning.Timeout :
- task: AdvancedSecurity-Dependency-Scanning@1
env:
DependencyScanning.Timeout: 600
Anpassen des Scanverzeichnisses
Standardmäßig verarbeitet die Abhängigkeitsscanaufgabe das Agent.BuildDirectory Verzeichnis. Wenn Sie ihren Scan auf einen bestimmten Ordner beschränken möchten, können Sie eine Pipelinevariable DependencyScanning.SourcePath auf einen beliebigen Verzeichnisdateipfad im Build-Agent festlegen, den Sie analysieren möchten. Die Ausführung mehrerer Abhängigkeits-Scan-Aufgaben im selben Pipeline-Auftrag wird nicht unterstützt. Wenn der Scanpfad auf ein Unterverzeichnis festgelegt ist, können Sie die Aufgabe nicht erneut hinzufügen, um ein anderes Verzeichnis zu scannen.
- task: AdvancedSecurity-Dependency-Scanning@1
env:
DependencyScanning.SourcePath: scan/code/path
Ergebnisse des Abhängigkeitsscannings im unbeabsichtigten Repository veröffentlichen
Wenn sich eine Pipeline-Definition in einem Repository befindet und sich der von GitHub Advanced Security zu scannende Quellcode in einem anderen befindet, können die Ergebnisse verarbeitet und an das falsche Repository gesendet werden, wobei die Veröffentlichung in dem Repository erfolgt, das die Pipeline-Definition und nicht das Quellcode-Repository enthält.
Um das beabsichtigte Ergebnisrouting zu aktivieren, legen Sie die Pipeline-Umgebungsvariable advancedsecurity.publish.repository.infer: true so fest, dass das Repository im Arbeitsverzeichnis ermittelt wird, aus dem veröffentlicht werden soll.
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"
Fehlende Abhängigkeits-Scan-Pull-Request-Anmerkungen beim Anpassen, wo Ergebnisse veröffentlicht werden
Wenn Sie entweder advancedsecurity.publish.repository.infer verwenden oder eine Alternative advancedsecurity.publish.repository definieren, müssen Sie möglicherweise DependencyScanning.SourcePath: $(System.DefaultWorkingDirectory) festlegen, damit der Pfad der Dateien genau bestimmt wird und die Anmerkung zur Pull-Anfrage erwartungsgemäß angezeigt wird.
- task: AdvancedSecurity-Dependency-Scanning@1
env:
DependencyScanning.SourcePath: $(System.DefaultWorkingDirectory)
Break-Glass-Szenario für Buildtask
Wenn der Buildtask für die Abhängigkeitsüberprüfung eine erfolgreiche Ausführung Ihrer Pipeline blockiert und Sie den Buildtask dringend überspringen müssen, können Sie eine Pipelinevariable DependencyScanning.Skip: true festlegen.
Berechtigungen für Abhängigkeitsüberprüfungsaufgaben
Die Buildaufgabe zum Überprüfen von Abhängigkeiten verwendet die Pipelineidentität, um die Advanced Security REST-APIs aufzurufen. Standardmäßig haben Pipelines im selben Projekt Zugriff auf das Abrufen von Warnungen. Wenn Sie diese Berechtigungen aus dem Builddienstkonto entfernen oder über ein benutzerdefiniertes Setup verfügen, z. B. eine in einem anderen Projekt gehostete Pipeline als das Repository, erteilen Sie diese Berechtigungen manuell.
Erteilen Sie die Advanced Security: View Alerts-Berechtigung für das in Ihrer Pipeline verwendete Builddienstkonto, für projektbezogene Pipelines [Project Name] Build Service ([Organization Name]) und für Sammlungs-bezogene Pipelines Project Collection Build Service ([Organization Name]).