Udostępnij za pośrednictwem


Rozwiązywanie problemów ze skanowaniem zależności

Dowiedz się, jak rozwiązywać problemy ze skanowaniem zależności w usłudze GitHub Advanced Security dla usługi Azure DevOps.

Skanowanie zależności nie identyfikuje żadnych składników

Jeśli zadanie skanowania zależności kończy się bez flagowania żadnych składników i nie generuje alertów dotyczących składników ze znanymi lukami w zabezpieczeniach, upewnij się, że masz krok przywracania pakietu przed AdvancedSecurity-Dependency-Scanning@1 zadaniem.

Na przykład w przypadku projektu języka C# (.NET Core) oto przykładowy fragment kodu YAML:

- 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

W przypadku projektu JavaScript poniżej przedstawiono przykładowy fragment kodu YAML:

- task: Npm@1
  displayName: 'npm install'
  inputs:
    command: 'install'
    workingDir: '$(System.DefaultWorkingDirectory)'

- task: AdvancedSecurity-Dependency-Scanning@1

Przekroczenie limitu czasu zadania skanowania zależności

Domyślny czas uruchomienia zadania skanowania zależności przed przekroczeniem limitu czasu wynosi 300 sekund lub 5 minut. Jeśli zadanie przekracza limit czasu przed ukończeniem, można ustawić zmienną DependencyScanning.Timeoutpotoku , która oczekuje liczby całkowitej reprezentującej sekundy, na przykład DependencyScanning.Timeout: 600. Wszystkie elementy poniżej domyślnego limitu czasu 300 sekund nie mają żadnego wpływu.

Aby użyć tej zmiennej, dodaj DependencyScanning.Timeout jako zmienną potoku:

- task: AdvancedSecurity-Dependency-Scanning@1
  env:
    DependencyScanning.Timeout: 600

Scenariusz z przeszklonym szkłem do zadania kompilacji

Jeśli zadanie kompilacji skanowania zależności blokuje pomyślne wykonanie potoku i musisz pilnie pominąć zadanie kompilacji, możesz ustawić zmienną DependencyScanning.Skip: truepotoku .

Uprawnienia zadania skanowania zależności

Zadanie kompilacji skanowania zależności używa tożsamości potoku do wywoływania interfejsów API REST usługi Advanced Security. Domyślnie potoki w tym samym projekcie mają dostęp do pobierania alertów. Jeśli usuniesz te uprawnienia z konta usługi kompilacji lub masz konfigurację niestandardową (na przykład potok hostowany w innym projekcie niż repozytorium), musisz przyznać te uprawnienia ręcznie.

Udziel Advanced Security: View Alerts uprawnień do konta usługi kompilacji używanego w potoku, które dla potoków o zakresie projektu to [Project Name] Build Service ([Organization Name]), a w przypadku potoków o zakresie kolekcji jest .Project Collection Build Service ([Organization Name])