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.

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 úlohou Advanced-Security-CodeQL@1 kanálu pro kanály YAML nebo zaškrtnout Enable 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ě

  1. Přejděte do nastavení projektu Azure DevOps.
  2. Vyberte úložiště úložišť Repos>.
  3. Vyberte úložiště, pro které chcete povolit rozšířené zabezpečení.
  4. 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.

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 podívejte se na odhad počtu aktivních potvrzení 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 s povolením na úrovni projektu pro pokročilé zabezpečení

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 podívejte se na odhad počtu aktivních potvrzení 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í 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ě.

Snímek obrazovky s povolením ochrany nabízených oznámení

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.

Snímek obrazovky s nastavením kanálu kontroly závislostí pro YAML

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í:

  1. Advanced Security Initialize CodeQL (AdvancedSecurity-Codeql-Init@1)
  2. Vlastní kroky sestavení
  3. Advanced Security Perform CodeQL Analysis (AdvancedSecurity-Codeql-Analyze@1)

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

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