Konfigurace GitHub Advanced Security pro Azure DevOps.
GitHub Advanced Security pro Azure DevOps přidává sadu funkcí zabezpečení GitHub Advanced Security do Azure Repos.
Pokročilé zabezpečení GitHubu pro Azure DevOps zahrnuje:
- Ochrana nabízených oznámení pro kontrolu tajných kódů: Zkontrolujte, jestli nabízené kódy obsahují potvrzení, která zpřístupňují tajné kódy, jako jsou přihlašovací údaje.
- Prohledávání úložiště pro kontrolu tajných kódů: zkontrolujte úložiště a vyhledejte tajné kódy, které byly potvrzeny omylem.
- Kontrola závislostí – vyhledávání známých ohrožení zabezpečení v opensourcových závislostech (přímé a tranzitivní)
- Kontrola kódu – použití statického analytického modulu CodeQL k identifikaci ohrožení zabezpečení aplikací na úrovni kódu, jako je injektáž SQL a obejití ověřování
V tuto chvíli je gitHub Advanced Security pro Azure DevOps dostupný jenom pro Azure DevOps Services a nemáme v úmyslu tento produkt přenést na Azure DevOps Server. Pokročilé zabezpečení GitHubu pro Azure DevOps je dostupné jenom pro úložiště Git kódu.
Pokročilé zabezpečení GitHubu pro Azure DevOps funguje s Azure Repos. Pokud chcete používat GitHub Advanced Security s úložišti GitHub, přečtěte si téma GitHub Advanced Security.
Požadavky
Musíte mít přidělená oprávnění jako člen skupiny Správci kolekce projektů. Pokud chcete přidat členy do skupiny Správci kolekce projektů nebo změnit oprávnění na úrovni sbírky projektů, přečtěte si téma Změna oprávnění na úrovni kolekce projektů.
Další požadavky pro agenty v místním prostředí
Pokud vaše organizace používá agenty v místním prostředí, existují další požadavky:
- Přidejte tyto adresy URL do seznamu povolených, aby úloha kontroly závislostí mohla načíst data rady k ohrožení zabezpečení. Přečtěte si další informace o povolených IP adresách a adresách URL domény.
Adresa URL domény | Popis |
---|---|
https://governance.dev.azure.com |
Pro organizace používající doménu dev.azure.com pro přístup k instanci DevOps |
https://dev.azure.com |
Pro organizace používající doménu dev.azure.com pro přístup k instanci DevOps |
https://advsec.dev.azure.com |
Pro organizace používající doménu dev.azure.com pro přístup k instanci DevOps |
https://{organization_name}.governance.visualstudio.com |
Pro organizace používající doménu {organization_name}.visualstudio.com pro přístup k instanci DevOps |
https://{organization_name}.visualstudio.com |
Pro organizace používající doménu {organization_name}.visualstudio.com pro přístup k instanci DevOps |
https://{organization_name}.advsec.visualstudio.com |
Pro organizace používající doménu {organization_name}.visualstudio.com pro přístup k instanci DevOps |
Spusťte kompatibilní verzi modulu runtime .NET (aktuálně .NET 8.x). Pokud v agentovi není kompatibilní verze, úloha sestavení pro kontrolu závislostí stáhne .NET.
Ujistěte se, že je sada CodeQL nainstalovaná do mezipaměti nástrojů agenta ve vašem agentu. Proměnnou
enableAutomaticCodeQLInstall: true
můžete využít s úlohouAdvanced-Security-CodeQL@1
kanálu pro kanály YAML nebo zaškrtnoutEnable automatic CodeQL detection and installation
políčko pro klasické kanály. Pokyny k ruční instalaci najdete v tématu Kontrola kódu pro GitHub Advanced Security pro Azure DevOps.
Povolení rozšířeného zabezpečení GitHubu
Rozšířené zabezpečení můžete povolit na úrovni organizace, projektu nebo úložiště. Pokud chcete získat přístup ke každému nástroji a výsledkům kontroly, musíte nejprve povolit rozšířené zabezpečení. Po povolení rozšířeného zabezpečení se zablokují všechny budoucí vložení obsahující tajné kódy do úložiště s povolenou zásadou a kontrola tajných kódů úložiště probíhá na pozadí.
Onboarding na úrovni úložiště
- Přejděte do nastavení projektu Azure DevOps.
- Vyberte úložiště úložišť Repos>.
- Vyberte úložiště, pro které chcete povolit rozšířené zabezpečení.
- Pokud chcete aktivovat Rozšířené zabezpečení, vyberte Povolit a zahájit fakturaci. Ikona štítu se teď zobrazí v zobrazení úložiště pro všechna úložiště s povoleným pokročilým zabezpečením.
Onboarding na úrovni projektu
- Přejděte do nastavení projektu Azure DevOps.
- Vyberte Úložiště.
- Vyberte kartu Nastavení.
- Vyberte Povolit vše a podívejte se na odhad počtu aktivních potvrzení pro váš projekt.
- Výběrem možnosti Zahájit fakturaci aktivujte Rozšířené zabezpečení pro každé existující úložiště ve vašem projektu.
- Volitelně můžete vybrat možnost Automatické povolení rozšířeného zabezpečení pro nová úložiště , aby při vytváření bylo povoleno rozšířené zabezpečení všech nově vytvořených úložišť.
Onboarding na úrovni organizace
- Přejděte do nastavení organizace pro vaši organizaci Azure DevOps.
- Vyberte Úložiště.
- Vyberte Povolit vše a podívejte se na odhad počtu aktivních potvrzení pro vaši organizaci.
- Výběrem možnosti Zahájit fakturaci aktivujte Rozšířené zabezpečení pro každé existující úložiště v každém projektu ve vaší organizaci.
- Volitelně můžete vybrat možnost Automatické povolení rozšířeného zabezpečení pro nová úložiště , aby při vytváření byly povolené všechny nově vytvořené projekty s pokročilým zabezpečením.
Nastavení kontroly tajných kódů
Při zapnutí rozšířeného zabezpečení se automaticky povolí kontrola nabízených oznámení a prohledávání úložiště pro kontrolu tajných kódů. Ochranu před tajnými oznámeními můžete povolit nebo zakázat na stránce nastavení úložiště.
Jak už bylo zmíněno, kontrola úložiště pro kontrolu tajných kódů se automaticky spustí při povolení rozšířeného zabezpečení pro vybrané úložiště.
Nastavení kontroly závislostí
Kontrola závislostí je nástroj pro kontrolu na základě kanálu. Výsledky se agregují na každé úložiště. Doporučujeme přidat úlohu kontroly závislostí do všech kanálů, které chcete zkontrolovat.
Tip
Pro nejpřesnější výsledky kontroly nezapomeňte přidat úlohu kontroly závislostí podle kroků sestavení nebo obnovení balíčku kanálu, který sestaví kód, který chcete zkontrolovat.
Přidejte úlohu Advanced Security Dependency Scan (AdvancedSecurity-Dependency-Scanning@1) přímo do souboru kanálu YAML nebo vyberte úlohu Rozšířené vyhledávání závislostí zabezpečení z pomocníka úloh.
Nastavení kontroly kódu
Skenování kódu je také nástroj pro kontrolu na základě kanálu, kde se výsledky agregují na úložiště.
Tip
Doporučujeme přidat úlohu kontroly kódu do samostatného naklonovaného kanálu hlavního produkčního kanálu nebo vytvořit nový kanál. Je to proto, že prohledávání kódu může být časově náročnější úlohou sestavení.
Přidejte úkoly v následujícím pořadí:
- Advanced Security Initialize CodeQL (AdvancedSecurity-Codeql-Init@1)
- Vlastní kroky sestavení
- Advanced Security Perform CodeQL Analysis (AdvancedSecurity-Codeql-Analyze@1)
Kromě toho musíte určit, které jazyky analyzujete v úloze Initialize CodeQL. Seznam oddělený čárkami lze použít k analýze více jazyků najednou. Podporované jazyky jsou csharp, cpp, go, java, javascript, python, ruby, swift
. Pokud používáte agenty v místním prostředí, můžete také přidat enableAutomaticCodeQLInstall: true
proměnnou, která automaticky nainstaluje nejnovější bity CodeQL pro vašeho agenta.
Tady je příklad úvodního kanálu:
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
Analýza CodeQL pro Kotlin/Swift je v současné době v beta verzi. Během beta verze bude analýza těchto jazyků méně komplexní než analýza CodeQL ostatních.
Slouží java
k analýze kódu napsaného v Javě, Kotlinu nebo obojím.
Slouží javascript
k analýze kódu napsaného v JavaScriptu, TypeScriptu nebo obojím.
Pokud je cpp, java, csharp
zadaný jazyk nebo swift
je vyžadován vlastní postup sestavení.
Nastavení poznámek žádostí o přijetí změn
Pro kontrolu závislostí i kontrolu kódu se poznámky automaticky konfigurují pro žádosti o přijetí změn, kde se zásady ověření sestavení vztahují na kontrolu závislostí nebo úlohy kontroly kódu zahrnuté v kanálu. Další informace o konfiguraci zásad ověřování sestavení najdete v tématu Ověření sestavení.
Další informace o řešení výstrah pro větve žádostí o přijetí změn najdete v tématu Správa výstrah kontroly závislostí na žádostech o přijetí změn a správa výstrah kontroly kódu u žádostí o přijetí změn.
Pokud z jakéhokoli důvodu potřebujete zakázat rozšířené zabezpečení, budou se všechna upozornění a stav výstrah uchovávat na kartě Rozšířené zabezpečení při příštím opětovném povolení rozšířeného zabezpečení pro vaše úložiště.
Další kroky
- Upozornění kontroly kódu pro GitHub Advanced Security pro Azure DevOps
- Upozornění kontroly závislostí pro GitHub Advanced Security pro Azure DevOps
- Upozornění kontroly tajných kódů pro GitHub Advanced Security pro Azure DevOps
- Oprávnění pro GitHub Advanced Security pro Azure DevOps
- Fakturace pro GitHub Advanced Security pro Azure DevOps