GitHub Advanced Security voor Azure DevOps configureren
GitHub Advanced Security voor Azure DevOps voegt de suite met beveiligingsfuncties van GitHub Advanced Security toe aan Azure-opslagplaatsen.
GitHub Advanced Security voor Azure DevOps omvat:
- Beveiliging tegen het scannen van geheimen: controleer of codepushes doorvoeringen bevatten waarmee geheimen, zoals referenties, worden weergegeven
- 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
Op dit moment is GitHub Advanced Security voor Azure DevOps alleen beschikbaar voor Azure DevOps Services en zijn er geen plannen om dit product naar Azure DevOps Server te brengen. GitHub Advanced Security voor Azure DevOps is ook alleen beschikbaar voor git-codeopslagplaatsen.
GitHub Advanced Security voor Azure DevOps werkt met Azure-opslagplaatsen. Als u GitHub Advanced Security wilt gebruiken met GitHub-opslagplaatsen, raadpleegt u GitHub Advanced Security.
Vereisten
U moet machtigingen hebben die zijn toegewezen als lid van de groep Beheerders van projectverzamelingen. Zie Machtigingen op projectverzamelingsniveau wijzigen voor meer informatie over het toevoegen van leden aan de groep Berheerders van projectverzamelingen of om een machtiging op projectverzamelingsniveau te wijzigen.
Extra vereisten voor zelf-hostende agents
Als uw organisatie zelf-hostende agents gebruikt, zijn er meer vereisten:
- Voeg deze URL's toe aan de acceptatielijst om de taak voor het scannen van afhankelijkheden toe te staan om adviesgegevens over beveiligingsproblemen op te halen. Meer informatie over toegestane IP-adressen en domein-URL's.
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 deAdvanced-Security-CodeQL@1
pijplijntaak voor YAML-pijplijnen of hetEnable automatic CodeQL detection and installation
selectievakje voor klassieke pijplijnen inschakelen. Voor handmatige installatie-instructies raadpleegt u codescans voor GitHub Advanced Security voor Azure DevOps.
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
- Ga naar uw Project-instellingen voor uw Azure DevOps-project.
- Selecteer Opslagplaatsen voor opslagplaatsen>.
- Selecteer de opslagplaats waarvoor u Advanced Security wilt inschakelen.
- 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.
Onboarding op projectniveau
- Ga naar uw Project-instellingen voor uw Azure DevOps-project.
- Selecteer Opslagplaatsen.
- Selecteer het tabblad Instellingen.
- Selecteer Alles inschakelen en bekijk een schatting voor het aantal actieve doorvoerers voor uw project.
- Selecteer Facturering starten om Advanced Security te activeren voor elke bestaande opslagplaats in uw project.
- Selecteer desgewenst Automatisch geavanceerde beveiliging inschakelen voor nieuwe opslagplaatsen, zodat nieuwe opslagplaatsen Advanced Security zijn ingeschakeld bij het maken.
Onboarding op organisatieniveau
- Ga naar de organisatie-instellingen voor uw Azure DevOps-organisatie.
- Selecteer Opslagplaatsen.
- Selecteer Alles inschakelen en bekijk een schatting voor het aantal actieve doorvoerers voor uw organisatie.
- Selecteer Facturering starten om Advanced Security te activeren voor elke bestaande opslagplaats in elk project in uw organisatie.
- Selecteer desgewenst Automatisch geavanceerde beveiliging inschakelen voor nieuwe opslagplaatsen, zodat nieuwe projecten Advanced Security zijn ingeschakeld bij het maken.
Geheimen scannen configureren
Scannen van geheimen voor pushbeveiliging en scannen van opslagplaatsen wordt automatisch ingeschakeld wanneer u Geavanceerde beveiliging inschakelt. U kunt geheime pushbeveiliging in- of uitschakelen vanaf de pagina met instellingen van de opslagplaats.
Zoals vermeld, wordt scannen van geheime opslagplaatsen automatisch gestart bij het inschakelen van Geavanceerde beveiliging voor een geselecteerde opslagplaats.
Scannen op afhankelijkheden instellen
Afhankelijkheid scannen is een hulpprogramma voor scannen op basis van pijplijnen. De resultaten worden geaggregeerd per opslagplaats. Het is raadzaam om de scantaak voor afhankelijkheden toe te voegen aan alle pijplijnen die u wilt scannen.
Tip
Voor de meest nauwkeurige scanresultaten moet u de scantaak voor afhankelijkheden toevoegen volgens de buildstappen en/of pakketherstelstap van een pijplijn waarmee de code wordt gebouwd 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.
Scannen van code instellen
Codescans zijn ook een hulpprogramma voor scannen op basis van pijplijnen waarbij de resultaten per opslagplaats worden samengevoegd.
Tip
Het is raadzaam om de codescantaak toe te voegen aan een afzonderlijke, gekloonde pijplijn van uw hoofdproductiepijplijn of om een nieuwe pijplijn te maken. Dit komt doordat codescans een tijdrovendere buildtaak kunnen zijn.
Voeg de taken in de volgende volgorde toe:
- Advanced Security Initialize CodeQL (AdvancedSecurity-Codeql-Init@1)
- Uw aangepaste buildstappen
- Advanced Security Perform CodeQL Analysis (AdvancedSecurity-Codeql-Analyze@1)
Daarnaast moet u opgeven welke taal(en) u wilt analyseren in de CodeQL-taak initialiseren. Een door komma's gescheiden lijst kan worden gebruikt 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
aangepaste buildstappen zijn vereist.
Aantekeningen voor pull-aanvragen instellen
Voor zowel afhankelijkheidsscans als codescans worden aantekeningen automatisch geconfigureerd voor pull-aanvragen waarbij een buildvalidatiebeleid van toepassing is met 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 u vervolgens uw bron-vertakking (pull-aanvraag) scant. Zie Waarschuwingen voor het scannen van afhankelijkheden beheren op pull-aanvragen en het beheren van waarschuwingen voor codescans voor pull-aanvragen voor meer informatie over het oplossen van waarschuwingen voor pull-aanvragen.
Als u om welke reden dan ook Geavanceerde beveiliging moet uitschakelen, worden waarschuwingen en status van waarschuwingen bewaard op het tabblad Geavanceerde beveiliging voor de volgende keer dat u Geavanceerde beveiliging voor uw opslagplaats opnieuw inschakelt.
Volgende stappen
- Waarschuwingen voor het scannen van code voor GitHub Advanced Security voor Azure DevOps
- Waarschuwingen voor het scannen van afhankelijkheden voor GitHub Advanced Security voor Azure DevOps
- Waarschuwingen voor geheim scannen voor GitHub Advanced Security voor Azure DevOps
- Machtigingen voor GitHub Advanced Security voor Azure DevOps
- Facturering voor GitHub Advanced Security voor Azure DevOps