Delen via


GitHub Advanced Security voor Azure DevOps configureren

GitHub Advanced Security for Azure DevOps voegt de suite met beveiligingsfuncties van GitHub Advanced Security toe aan Azure-opslagplaatsen en bevat de volgende functies:

  • Beveiliging tegen het scannen van geheimen: controleer of codepushes geheimen blootleggen, zoals inloggegevens.
  • Scannen van geheime opslagplaatsen: scan uw opslagplaats en zoek naar blootgestelde geheimen die per ongeluk zijn doorgevoerd
  • Afhankelijkheid scannen: zoeken naar bekende beveiligingsproblemen in opensource-afhankelijkheden (direct en transitief)
  • Codescan: gebruik de engine voor statische analyse van CodeQL om beveiligingsproblemen op toepassingsniveau op codeniveau te identificeren, zoals SQL-injectie en verificatie-bypass

GitHub Advanced Security voor Azure DevOps is alleen beschikbaar voor Azure DevOps Services en specifiek voor Code Git-opslagplaatsen.

GitHub Advanced Security voor Azure DevOps werkt met Azure Repos. Zie GitHub Advanced Securityvoor informatie over het gebruik van GitHub Advanced Security met GitHub-opslagplaatsen.

Vereisten

Categorie Vereisten
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.

Extra vereisten voor zelf-hostende agents

Als uw organisatie zelf-hostende agents gebruikt, voegt u de volgende URL's toe aan uw Acceptatielijst, zodat de taak voor het scannen van afhankelijkheden adviesgegevens over beveiligingsproblemen kan ophalen. Zie toegestane IP-adressen en domein-URL'svoor meer informatie.

Domein-URL Beschrijving
https://governance.dev.azure.com Organisaties die het dev.azure.com-domein gebruiken om toegang te krijgen tot hun DevOps-exemplaar
https://dev.azure.com Organisaties die het dev.azure.com-domein gebruiken om toegang te krijgen tot hun DevOps-exemplaar
https://advsec.dev.azure.com Organisaties die het dev.azure.com-domein gebruiken om toegang te krijgen tot hun DevOps-exemplaar
https://{organization_name}.governance.visualstudio.com Organisaties die het domein {organization_name}.visualstudio.com gebruiken voor toegang tot hun DevOps-exemplaar
https://{organization_name}.visualstudio.com  Organisaties die het domein {organization_name}.visualstudio.com gebruiken voor toegang tot hun DevOps-exemplaar
https://{organization_name}.advsec.visualstudio.com Organisaties die het domein {organization_name}.visualstudio.com gebruiken voor toegang tot hun DevOps-exemplaar
  • Voer een compatibele versie van de .NET-runtime uit (momenteel .NET 8.x). Als er geen compatibele versie aanwezig is op de agent, downloadt de build-taak voor het scannen van afhankelijkheden .NET.

  • Zorg ervoor dat de CodeQL-bundel is geïnstalleerd in de cache van het agenthulpprogramma op uw agent. U kunt de enableAutomaticCodeQLInstall: true variabele gebruiken met de AdvancedSecurity-Codeql-Init@1 pijplijntaak voor YAML-pijplijnen of het selectievakje Enable automatic CodeQL detection and installation voor klassieke pijplijnen inschakelen. Als alternatief kunt u voor handmatige installatie-instructies de codescans voor GitHub Advanced Security voor Azure DevOps raadplegen.

Geavanceerde beveiliging van GitHub inschakelen

U kunt Advanced Security inschakelen op organisatie-, project- of opslagplaatsniveau. Als u toegang wilt krijgen tot elk van de scanhulpprogramma's en resultaten, moet u eerst Advanced Security inschakelen. Zodra u Geavanceerde beveiliging hebt ingeschakeld, worden toekomstige pushes die geheimen bevatten naar een opslagplaats waarvoor dit beleid is ingeschakeld, geblokkeerd en wordt het scannen van opslagplaatsgeheimen op de achtergrond uitgevoerd.

Onboarding op opslagplaatsniveau

  1. Ga naar uw Project-instellingen voor uw Azure DevOps-project.
  2. Selecteer Repos>Repositories.
  3. Selecteer de opslagplaats waarvoor u Advanced Security wilt inschakelen.
  4. Selecteer Inschakelen en Facturering starten om Advanced Security te activeren. Er wordt nu een schildpictogram weergegeven in de opslagplaatsweergave voor elke opslagplaats waarvoor Geavanceerde beveiliging is ingeschakeld.

Schermopname van het inschakelen van GitHub Advanced Security.

Onboarding op projectniveau

  1. Ga naar uw Project-instellingen voor uw Azure DevOps-project.
  2. Selecteer Repositories.
  3. Selecteer het tabblad Instellingen.
  4. Selecteer Alles inschakelen en zie een schatting van het aantal actieve bijdragers voor uw project verschijnen.
  5. Selecteer Facturering starten om Advanced Security te activeren voor elke bestaande opslagplaats in uw project.
  6. Selecteer desgewenst Automatisch geavanceerde beveiliging inschakelen voor nieuwe opslagplaatsen, zodat elke nieuw aangemaakte opslagplaats automatisch geavanceerde beveiliging heeft ingeschakeld bij het aanmaken.

Schermopname van het inschakelen op projectniveau voor Advanced Security.

Onboarding op organisatieniveau

  1. Ga naar de organisatie-instellingen voor uw Azure DevOps-organisatie.
  2. Selecteer Opslagplaatsen.
  3. Selecteer Inschakelen voor alles en bekijk een schatting van het aantal actieve committers voor uw organisatie.
  4. Selecteer Facturering starten om Advanced Security te activeren voor elke bestaande opslagplaats in elk project in uw organisatie.
  5. Selecteer desgewenst Automatisch geavanceerde beveiliging inschakelen voor nieuwe opslagplaatsen, zodat nieuwe projecten Advanced Security zijn ingeschakeld bij het maken.

Schermopname van inschakeling op organisatieniveau voor Geavanceerde beveiliging.

Geheimen scannen configureren

Scannen van geheimen voor pushbeveiliging en scannen van opslagplaatsen worden automatisch ingeschakeld wanneer u Geavanceerde Beveiliging inschakelt. U kunt geheime pushbeveiliging in- of uitschakelen vanaf de pagina met instellingen van de opslagplaats.

Schermopname van het inschakelen van pushbeveiliging.

Zoals vermeld, wordt scannen van geheime opslagplaatsen automatisch gestart bij het inschakelen van Geavanceerde beveiliging voor een geselecteerde opslagplaats.

** Afhankelijkheidsscan instellen

Afhankelijkheidsscanning is een pijplijngebaseerd hulpprogramma voor scannen. De resultaten worden geaggregeerd per opslagplaats. We raden aan dat u de scantaak voor afhankelijkheden toevoegt aan alle pijplijnen die u wilt scannen.

Tip

Voor de meest nauwkeurige scanresultaten voegt u de scantaak voor afhankelijkheden toe na de buildstappen of pakketherstelstap in een pijplijn die de code bouwt die u wilt scannen.

Voeg de taak Advanced Security Dependency Scanning (AdvancedSecurity-Dependency-Scanning@1) rechtstreeks toe aan uw YAML-pijplijnbestand of selecteer de taak Advanced Security Dependency Scanning in de taakassistent.

Schermopname van het instellen van de pijplijn voor het scannen van afhankelijkheden voor YAML.

Code scannen instellen

Codescans zijn ook een op pijplijnen gebaseerde scanningtool waarbij de resultaten per opslagplaats worden gebundeld.

Tip

Codescanning kan een meer tijdrovende taak binnen de build zijn, dus we raden u aan om de codescanningtaak toe te voegen aan een afzonderlijke, gekloonde pijplijn van uw productiepijplijn of om een nieuwe pijplijn te maken.

Voeg de taken in de volgende volgorde toe:

  1. Advanced Security Initialize CodeQL (AdvancedSecurity-Codeql-Init@1)
  2. Uw aangepaste buildstappen
  3. Geavanceerde beveiliging Voer CodeQL-analyse uit (AdvancedSecurity-Codeql-Analyze@1)

Schermopname van het instellen van de pijplijn voor het scannen van code voor YAML.

Geef ook op welke taal u analyseert in de Initialize CodeQL taak. U kunt een door komma's gescheiden lijst gebruiken om meerdere talen tegelijk te analyseren. De ondersteunde talen zijn csharp, cpp, go, java, javascript, python, ruby, swift. Als u zelf-hostende agents gebruikt, kunt u ook de enableAutomaticCodeQLInstall: true variabele toevoegen om automatisch de meest recente CodeQL-bits voor uw agent te installeren.

Hier volgt een voorbeeld van een starterspijplijn:

trigger:
  - main

pool:
  # Additional hosted image options are available: https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted#software
  vmImage: ubuntu-latest

steps:

  - task: AdvancedSecurity-Codeql-Init@1
    inputs:
      languages: "java"
      # Supported languages: csharp, cpp, go, java, javascript, python, ruby, swift
      # You can customize the initialize task: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/advanced-security-codeql-init-v1?view=azure-pipelines
      # If you're using a self-hosted agent to run CodeQL, use `enableAutomaticCodeQLInstall` to automatically use the latest CodeQL bits on your agent:
      enableAutomaticCodeQLInstall: true

#   Add your custom build steps here
# - Ensure that all code to be scanned is compiled (often using a `clean` command to ensure you're building from a clean state).
# - Disable the use of any build caching mechanisms as this can interfere with CodeQL's ability to capture all the necessary data during the build.
# - Disable the use of any distributed/multithreaded/incremental builds as CodeQL needs to monitor executions of the compiler to construct an accurate representation of the application.
# - For dependency scanning, ensure you have a package restore step for more accurate results.

# If you had a Maven app:
#   - task: Maven@4
#     inputs:
#       mavenPomFile: 'pom.xml'
#       goals: 'clean package'
#       publishJUnitResults: true
#       testResultsFiles: '**/TEST-*.xml'
#       javaHomeOption: 'JDKVersion'
#       jdkVersionOption: '1.17'
#       mavenVersionOption: 'Default'

# Or a general script:
#   - script: |
#       echo "Run, Build Application using script"
#       ./location_of_script_within_repo/buildscript.sh

  - task: AdvancedSecurity-Dependency-Scanning@1 # More details on this task: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/advanced-security-dependency-scanning-v1?view=azure-pipelines

  - task: AdvancedSecurity-Codeql-Analyze@1 # More details on this task: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/advanced-security-codeql-analyze-v1?view=azure-pipelines

Tip

CodeQL-analyse voor Kotlin/Swift is momenteel bèta. Tijdens de bètaversie is analyse van deze talen minder uitgebreid dan CodeQL-analyse van andere talen.

  • Gebruik java deze functie om code te analyseren die is geschreven in Java, Kotlin of beide.
  • Gebruik javascript dit om code te analyseren die is geschreven in JavaScript, TypeScript of beide.

Als de opgegeven taal is cpp, java, csharp of swift, zijn aangepaste buildstappen vereist.

Aantekeningen voor pull-aanvragen instellen

Voor zowel afhankelijkheidsscans als codescanning worden annotaties automatisch geconfigureerd voor pull requests waarbij een buildvalidatiebeleid van toepassing is, inclusief afhankelijkheidsscans en/of codescantaken die zijn opgenomen in uw pijplijn. Zie Buildvalidatie voor meer informatie over het configureren van buildvalidatiebeleid.

Aantekeningen bij pull-aanvragen vereisen ook een Advanced Security-scan op uw standaardbranch en doelbranch voordat uw bronbranch (pull request) wordt gescand. Voor meer informatie over het oplossen van waarschuwingen voor pull-aanvragen, zie Beheer van waarschuwingen voor afhankelijkheidsscans bij pull requests en Beheer van waarschuwingen voor codescans bij pull requests.

Als u Geavanceerde beveiliging wilt uitschakelen, worden waarschuwingen en status van waarschuwingen bewaard op het tabblad Geavanceerde beveiliging voor de volgende keer dat u Geavanceerde beveiliging opnieuw inschakelt voor uw opslagplaats.