Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Meer informatie over het oplossen van problemen met het scannen van afhankelijkheden in GitHub Advanced Security voor Azure DevOps.
Vereiste voorwaarden
Categorie | Behoeften |
---|---|
toestemmingen | - Een overzicht van alle waarschuwingen voor een opslagplaats weergeven: Inzender machtigingen voor de opslagplaats. - Waarschuwingen verwijderen in Geavanceerde beveiliging: Projectbeheerder machtigingen. - Voor het beheren van machtigingen in Geavanceerde beveiliging: lid van de beheerders van projectverzamelingen groep of Geavanceerde beveiliging: instellingen beheren machtigingen ingesteld op Toestaan. |
Zie Geavanceerde beveiligingsmachtigingen beherenvoor meer informatie over geavanceerde beveiligingsmachtigingen.
Afhankelijkheid scannen identificeert geen onderdelen
Als de scantaak voor afhankelijkheden wordt voltooid zonder dat er onderdelen worden gemarkeerd en er geen waarschuwingen worden gegenereerd voor onderdelen met bekende kwetsbaarheden, moet u ervoor zorgen dat u vóór de AdvancedSecurity-Dependency-Scanning@1
taak een herstelstap voor pakketten hebt.
Voor een C#-project (.NET Core) ziet u hier bijvoorbeeld een YAML-voorbeeldfragment:
- 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
Voor een JavaScript-project ziet u hier een YAML-voorbeeldfragment:
- task: Npm@1
displayName: 'npm install'
inputs:
command: 'install'
workingDir: '$(System.DefaultWorkingDirectory)'
- task: AdvancedSecurity-Dependency-Scanning@1
Time-out voor het scannen van afhankelijkheden
De standaardtijd waarop de afhankelijkheidenscan wordt uitgevoerd voordat er een time-out optreedt, is 300 seconden of 5 minuten. Als er een time-out optreedt voordat de taak is voltooid, kunt u een pijplijnvariabele DependencyScanning.Timeout
instellen, die een geheel getal verwacht dat seconden vertegenwoordigt, zoals DependencyScanning.Timeout: 600
. Alles onder de standaardtime-out van 300 seconden heeft geen effect.
Als u deze variabele wilt gebruiken, voegt u deze toe DependencyScanning.Timeout
als een pijplijnvariabele:
- task: AdvancedSecurity-Dependency-Scanning@1
env:
DependencyScanning.Timeout: 600
Het aanpassen van uw scanmap
De scantaak voor afhankelijkheden verwerkt standaard de Agent.BuildDirectory
map. Als u de scan wilt instellen op een specifieke map, kunt u een pijplijnvariabele DependencyScanning.SourcePath
instellen op een mapbestandspad in de buildagent die u wilt analyseren. Uitvoeringen van taken voor het scannen van afhankelijkheid in dezelfde pijplijntaak worden niet ondersteund. Als het scanpad is gericht op submap, kunt u de taak niet opnieuw toevoegen om een andere map te scannen.
- task: AdvancedSecurity-Dependency-Scanning@1
env:
DependencyScanning.SourcePath: scan/code/path
Publicatieresultaten van afhankelijkheden scannen naar de onbedoelde opslagplaats
Als u een pijplijndefinitie in de ene opslagplaats hebt en de broncode die moet worden gescand door GitHub Advanced Security zich in een andere bevindt, kunnen resultaten worden verwerkt en verzonden naar de onjuiste opslagplaats, en worden ze gepubliceerd naar de opslagplaats die de pijplijndefinitie bevat in plaats van de broncodeopslagplaats.
Als u beoogde resultaatroutering wilt inschakelen, stelt u de omgevingsvariabele advancedsecurity.publish.repository.infer: true
voor de pijplijn in om de opslagplaats af te leiden van de opslagplaats in de werkmap.
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"
Ontbrekende annotaties voor afhankelijkheidsscan-pull-aanvragen bij het aanpassen van de publicatielocatie van resultaten
Als u ofwel advancedsecurity.publish.repository.infer
gebruikt of een alternatief advancedsecurity.publish.repository
definieert, dan moet u mogelijk DependencyScanning.SourcePath: $(System.DefaultWorkingDirectory)
instellen zodat bestandspaden nauwkeurig worden bepaald en de pull request-aantekening correct wordt weergegeven zoals verwacht.
- task: AdvancedSecurity-Dependency-Scanning@1
env:
DependencyScanning.SourcePath: $(System.DefaultWorkingDirectory)
Noodscenario voor bouwwerktaak
Als de build-taak voor het scannen van afhankelijkheden een geslaagde uitvoering van uw pijplijn blokkeert en u de buildtaak dringend moet overslaan, kunt u een pijplijnvariabele DependencyScanning.Skip: true
instellen.
Taakmachtigingen voor het scannen van afhankelijkheden
De build-taak voor het scannen van afhankelijkheden maakt gebruik van de pijplijnidentiteit om de Advanced Security REST API's aan te roepen. Pijplijnen in hetzelfde project hebben standaard toegang om waarschuwingen op te halen. Als u deze machtigingen verwijdert uit het buildserviceaccount of als u een aangepaste installatie hebt, bijvoorbeeld een pijplijn die wordt gehost in een ander project dan de opslagplaats, moet u deze machtigingen handmatig verlenen.
Verleen Advanced Security: View Alerts
toestemming aan het buildserviceaccount dat wordt gebruikt in uw pijplijn, wat voor pijplijnen met projectbereik [Project Name] Build Service ([Organization Name])
, en voor pijplijnen met een verzamelingsbereik Project Collection Build Service ([Organization Name])
is.