Sdílet prostřednictvím


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 a obsahuje následující funkce:

  • 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.
  • Skenování tajných informací v úložišti: prohledejte úložiště a hledejte odhalená tajemství, která byla neúmyslně potvrzena.
  • 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í

Ochranu rozšířeného zabezpečení můžete přenést do podniku s flexibilitou, která umožňuje správnou úroveň ochrany pro vaše úložiště. Pokročilé zabezpečení GitHubu pro Azure DevOps je k dispozici jako GitHub Secret Protection pro Azure DevOps a GitHub Code Security pro Azure DevOps.

Ochrana tajných kódů zahrnuje následující funkce:

  • Ochrana před únikem tajných informací ještě před tím, než k nim dojde.
  • Upozornění na skenování tajných informací s oznámeními, aby zachytily případné úniky dříve, než se stanou problémem
  • Přehled zabezpečení, který poskytuje přehled o úrovni rizika a ochrany zabezpečení vaší organizace

Zabezpečení kódu zahrnuje následující funkce:

  • Upozornění závislostí pro vyhledání ohrožení zabezpečení v opensourcových závislostech
  • Kontrola CodeQL za účelem zjištění ohrožení zabezpečení přímo ve vašem kódu
  • Zjištění zabezpečení pro nástroje třetích stran
  • Přehled zabezpečení, který poskytuje přehled o úrovni rizika a ochrany zabezpečení vaší organizace

Pokročilé zabezpečení GitHubu pro Azure DevOps je k dispozici pouze pro Azure DevOps Services a speciálně 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

Kategorie Požadavky
Oprávnění – Zobrazení souhrnu všech výstrah pro úložiště: Přispěvatel oprávnění k úložišti.
– Chcete-li zavřít výstrahy v rozšířeném zabezpečení: oprávnění pro správce projektu.
- Správa oprávnění v rozšířeném zabezpečení: Člen skupiny správců kolekce projektů nebo Rozšířené zabezpečení: správa nastavení oprávnění nastavena na Povolit.

Další informace o pokročilých oprávněních zabezpečení naleznete v tématu Správa oprávnění Advanced Security.

Další požadavky pro agenty v místním prostředí

Pokud vaše organizace používá agenti hostovaní sami sebou, přidejte do seznamu povolení následující adresy URL, aby úloha kontroly závislostí mohla načíst poradenská data o zranitelnostech. Další informace najdete v tématu Povolené IP adresy a adresy 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 úlohou AdvancedSecurity-Codeql-Init@1 v YAML potrubích nebo zaškrtnout políčko Enable automatic CodeQL detection and installation pro klasická potrubí. 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 repozitáře

  1. Přejděte do nastavení projektu Azure DevOps.
  2. Vyberte Repozitáře>Skladové úložiště.
  3. Vyberte úložiště, pro které chcete povolit rozšířené zabezpečení.
  4. Vyberte Povolit a zahájit fakturaci pro aktivaci Rozšířeného zabezpečení. 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.

Snímek obrazovky s povolením služby GitHub Advanced Security

Onboarding na úrovni projektu

  1. Přejděte do nastavení projektu Azure DevOps.
  2. Vyberte Úložiště.
  3. Vyberte kartu Nastavení.
  4. Vyberte Povolit vše a uvidíte odhad počtu aktivních přispěvatelů pro váš projekt.
  5. 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.
  6. 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šť.

Snímek obrazovky umožňující pokročilé zabezpečení na úrovni projektu

Onboarding na úrovni organizace

  1. Přejděte do nastavení organizace pro vaši organizaci Azure DevOps.
  2. Vyberte Úložiště.
  3. Vyberte Povolit vše a zobrazí se odhad počtu aktivních přispěvatelů pro vaši organizaci.
  4. 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.
  5. 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.

Snímek obrazovky s povolením na úrovni organizace pro pokročilé zabezpečení

Nastavení kontroly tajných kódů

Při zapnutí pokročilého zabezpečení se automaticky povolí ochrana při skenování tajných informací a prohledávání úložiště. Ochranu před tajnými oznámeními můžete povolit nebo zakázat na stránce nastavení úložiště.

Snímek obrazovky s povolením ochrany push oznámení

Při povolení rozšířeného zabezpečení pro vybrané úložiště se automaticky spustí kontrola úložiště pro kontrolu tajných kódů.

Nastavení kontroly závislostí

Ochranu tajných kódů nebo zabezpečení kódu můžete povolit na úrovni organizace, projektu nebo úložiště.

Onboarding na úrovni repozitáře

  1. Přejděte do nastavení projektu Azure DevOps.
  2. Vyberte Repozitáře>Skladové úložiště.
  3. Vyberte úložiště, pro které chcete povolit rozšířené zabezpečení.
  4. Přepněte ochranu tajných kódů nebo zabezpečení kódu.
  5. Vyberte Zahájit fakturaci. Ikona štítu se teď zobrazí v zobrazení úložiště pro všechna úložiště s povoleným produktem.
  6. Pokud chcete volitelně povolit výchozí nastavení kontroly závislostí, zaškrtněte políčko Možnosti a povolte výchozí nastavení kontroly závislostí.

Snímek obrazovky s povolením služby GitHub Advanced Security

Onboarding na úrovni projektu

  1. Přejděte do nastavení projektu Azure DevOps.
  2. Vyberte Úložiště.
  3. Vyberte kartu Nastavení.
  4. Vyberte Povolit vše a uvidíte odhad počtu aktivních přispěvatelů na každý produkt ve vašem projektu.
  5. Přepněte požadované produkty tajné ochrany nebo zabezpečení kódu.
  6. Výběrem možnosti Zahájit fakturaci aktivujte ochranu tajných kódů nebo zabezpečení kódu pro každé existující úložiště ve vašem projektu.
  7. Volitelně můžete zapnout automatické povolení rozšířeného zabezpečení pro nová úložiště tak, aby při vytváření byly povoleny všechna nově vytvořená úložiště s povolenou ochranou tajných kódů nebo zabezpečením kódu .

Snímek obrazovky umožňující pokročilé zabezpečení na úrovni projektu

Onboarding na úrovni organizace

  1. Přejděte do nastavení organizace pro vaši organizaci Azure DevOps.
  2. Vyberte Úložiště.
  3. Vyberte Povolit vše a zobrazí se vám odhad počtu aktivních přispěvatelů na produkt ve vaší organizaci.
  4. Přepněte požadované produkty tajné ochrany nebo zabezpečení kódu.
  5. 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.
  6. Volitelně můžete zapnout automatické povolení rozšířeného zabezpečení pro nová úložiště tak, aby všechny nově vytvořené projekty měly při vytváření povolenou ochranu tajných kódů nebo zabezpečení kódu .

Snímek obrazovky s povolením na úrovni organizace pro pokročilé zabezpečení

Nastavení kontroly tajných kódů

Při zapnutí Ochrany tajných údajů se automaticky povolí ochrana před úniky a prohledávání úložišť. Ochranu před tajnými oznámeními můžete povolit nebo zakázat na stránce nastavení úložiště.

Snímek obrazovky s povolením ochrany push oznámení

Jak už bylo zmíněno, skenování úložiště pro tajemství se automaticky spustí po povolení ochrany tajemství pro vybrané úložiště.

Nastavení kontroly závislostí

Pokud chcete získat přístup k funkcím kontroly závislostí, potřebujete pro úložiště povolený produkt Zabezpečení kódu .

Kontrola závislostí je nástroj pro skenování na základě pipeline. Výsledky se agregují na každé úložiště. Ke kontrole výchozí větve můžete použít nastavení Vyhledat ohrožené závislosti na stránce nastavení úložiště. To bude automaticky zahrnovat úlohu kontroly závislostí do libovolného kanálu, který cílí na výchozí větev, nebo jakékoli sestavení žádosti o přijetí změn, které cílí na výchozí větev.

Pokud chcete nastavit pokročilejší nastavení nebo pokud chcete prohledat všechny větve, doporučujeme přidat úlohu kontroly závislostí do všech kanálů, které chcete zkontrolovat. Další podrobnosti najdete v tématu Kontrola závislostí pro GitHub Advanced Security pro Azure DevOps .

Nastavení kontroly kódu

Pokud chcete získat přístup k funkcím kontroly kódu, potřebujete pro úložiště povolený produkt Zabezpečení kódu .

Skenování kódu je také nástroj pro kontrolu založený na pipeline, kde se výsledky agregují pro každé úložiště.

Návod

Skenování kódu může být časově náročnější úlohou sestavení, proto 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.

Přidejte úkoly v následujícím pořadí:

  1. Advanced Security Initialize CodeQL (AdvancedSecurity-Codeql-Init@1)
  2. Vlastní kroky sestavení
  3. Pokročilá bezpečnost: Proveďte analýzu CodeQL (AdvancedSecurity-Codeql-Analyze@1)

Snímek obrazovky s nastavením kanálu kontroly kódu pro YAML

Určete také jazyk, který v Initialize CodeQL úkolu analyzujete. K analýze více jazyků najednou můžete použít čárkami oddělený seznam. 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

Určete také jazyk, který v Initialize CodeQL úkolu analyzujete. Pokud je swiftzadaný jazyk, je nutné provést vlastní kroky sestavení.

Návod

  • 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 používáte agenta v místním prostředí, vyberte Enable automatic CodeQL detection and installation možnost automatického použití nejnovějších bitů CodeQL ve vašem agentovi, pokud jste ručně nenainstalovali nejnovější sadu CodeQL do mezipaměti nástrojů agenta.

Pokud chcete generovat upozornění, spusťte první kontrolu s potrubím, které zahrnuje úlohy kontroly kódu.

Nastavení poznámek pull requestů

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í, které se vztahují na úlohy skenování závislostí a/nebo skenování kódu, zahrnují v rámci vašeho pracovního postupu. Další informace o konfiguraci zásad ověřování sestavení najdete v tématu Ověření sestavení.

Anotace pull requestů také vyžadují kontrolu rozšířeného zabezpečení ve vaší výchozí a cílové větvi před kontrolou zdrojové větve (pull requestu). 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 chcete rozšířené zabezpečení zakázat, všechny výstrahy a stav výstrah se zachovají na kartě Rozšířené zabezpečení při příštím povolení rozšířeného zabezpečení pro vaše úložiště.