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.
GitHub Advanced Security pro Azure 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 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 Kolekce projektů Správa istrators. 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/{organization_name} |
Pro organizace používající doménu dev.azure.com pro přístup k instanci DevOps |
https://dev.azure.com/{organization_name} |
Pro organizace používající doménu dev.azure.com pro přístup k instanci DevOps |
https://advsec.dev.azure.com/{organization_name} |
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 6.0.x). Pokud v agentovi není kompatibilní verze, úloha sestavení pro kontrolu závislostí stáhne .NET.
Nainstalujte sadu CodeQL do mezipaměti nástrojů agenta pomocí instalačního skriptu pro vaši architekturu dostupnou na GitHubu. Tyto skripty vyžadují
$AGENT_TOOLSDIRECTORY
, aby proměnná prostředí byla nastavena na umístění adresáře nástrojů agenta v agentu, např.C:/agent/_work/_tool
. Případně můžete ručně implementovat následující kroky:- Vyberte nejnovější sadu verzí CodeQL z GitHubu.
- Stáhněte a rozbalte sadu do následujícího adresáře v adresáři nástrojů agenta, který se obvykle nachází v části
_work/_tool
:./CodeQL/0.0.0-[codeql-release-bundle-tag]/x64/
. Při použití aktuální verzev2.16.0
by název složky ../CodeQL/0.0.0-codeql-bundle-v2.16.0/x64/
Přečtěte si další informace o adresáři nástrojů agenta. - Vytvořte prázdný soubor s
x64.complete
názvem ve./CodeQL/0.0.0-[codeql-release-bundle-tag]
složce. V předchozím příkladu by měla být./CodeQL/0.0.0-codeql-bundle-v2.16.0/x64.complete
cesta kex64.complete
koncovému souboru .
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 zobrazí se 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 zobrazí se 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 budete muset 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
.
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
# Add your custom build steps here
# - Ensure that all code to be scanned is compiled (often using a `clean` command to ensure you are 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í nebo AutoBuild
buildový postup. Pokud je v jiných jazycích zahrnutý automatický nástroj AutoBuild, dokončí se krok úspěšně bez provedení jakékoli akce.
Pokud z jakéhokoli důvodu potřebujete zakázat rozšířené zabezpečení, budou se všechna upozornění a stav upozornění uchovávat 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
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro