Konfigurace rozšířeného zabezpečení GitHub pro Azure DevOps

GitHub Advanced Security pro Azure DevOps přidá 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í – hledání známých ohrožení zabezpečení v open source 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ě. GitHub Rozšířené zabezpečení pro Azure DevOps je k dispozici jako GitHub Ochrana tajných kódů pro Azure DevOps a zabezpečení kódu GitHub 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

GitHub Advanced Security pro Azure DevOps je k dispozici pouze pro Azure DevOps Services a speciálně pro úložiště Git kódu.

GitHub Advanced Security for 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.
– Zavření výstrah v rozšířeném zabezpečení: oprávnění správce Project.
– Správa oprávnění v rozšířeném zabezpečení: Člen skupiny Projektová kolekce Správci nebo oprávnění Rozšířené zabezpečení: správa nastavení nastavené 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á místně hostované agenty, přidejte do seznamu povolených následující adresy URL, aby úloha skenování závislostí mohla načíst data bezpečnostních doporučení. 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. Od dubna 2026 je aktuální verze stále .NET 8.x. Pokud na agentovi není přítomna kompatibilní verze, úloha sestavení kontroly 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í. Alternativně najdete pokyny k ruční instalaci v tématu Analýza kódu pro GitHub Advanced Security pro Azure DevOps.

Povolení rozšířeného zabezpečení GitHub

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 na nastavení projektu pro váš projekt Azure DevOps.
  2. Vyberte Repos>Repositories.
  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.

Screenshot povolení GitHub Advanced Security.

onboarding na úrovni projektu

  1. Přejděte na nastavení projektu pro váš projekt Azure DevOps.
  2. Vyberte Repos.
  3. Vyberte kartu Nastavení.
  4. Vyberte Povolit vše a uvidíte odhad počtu aktivních přispěvatelů pro váš projekt. Tato akce povolí pouze produkt pro existující úložiště.
  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 Automaticky povolit rozšířené zabezpečení pro nová úložiště, aby při jejich vytváření bylo pro nová úložiště automaticky povoleno rozšířené zabezpečení. Toto nastavení je oddělené od akce Povolit vše a musí být vybráno nezávisle.

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

Onboarding na úrovni organizace

  1. Přejděte do nastavení Organization 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. Tato akce povolí pouze produkt pro existující úložiště.
  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 Automaticky povolit rozšířené zabezpečení pro nové projekty , aby při vytváření byly povolené všechny nově vytvořené projekty. Toto nastavení je oddělené od akce Povolit vše a musí být vybráno nezávisle.

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

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 na nastavení projektu pro váš projekt Azure DevOps.
  2. Vyberte Repos>Repositories.
  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í.

Screenshot povolení GitHub Advanced Security.

onboarding na úrovni projektu

  1. Přejděte na nastavení projektu pro váš projekt Azure DevOps.
  2. Vyberte Repos.
  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. Tato akce povolí jenom vybraný produkt pro existující úložiště.
  5. Přepněte požadované produkty tajné ochrany nebo zabezpečení kódu a všech přidružených dílčích součástí.
  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ě, aby při vytváření nových úložišť byly povoleny funkce ochrany tajemství nebo ochrana kódu. Toto nastavení je oddělené od akce Povolit vše a musí být vybráno nezávisle.

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

Onboarding na úrovni organizace

  1. Přejděte do nastavení Organization 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. Tato akce povolí jenom vybraný produkt pro existující úložiště.
  4. Přepněte požadované produkty tajné ochrany nebo zabezpečení kódu a všech přidružených dílčích součástí.
  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 přepnout Automatické povolení rozšířeného zabezpečení pro nové projekty, aby byly nově vytvořené projekty automaticky při vytváření vybaveny ochranou tajemství nebo zabezpečením kódu. Toto nastavení je oddělené od akce Povolit vše a musí být vybráno nezávisle.

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í

Když pro vybrané úložiště zapnete Rozšířené zabezpečení, automaticky spustí kontrolu tajných kódů na úrovni úložiště.

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í

Když pro vybrané úložiště zapnete ochranu tajných kódů, automaticky spustí kontrolu tajných kódů na úrovni úložiště.

Ochrana pushů vyhodnocuje pouze pushy, k nimž dojde až po povolení této funkce. Kontrola tajných údajů na úrovni úložiště odhaluje a upozorňuje na existující tajné údaje, včetně těch z historických commitů.

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ě. Tato funkce automaticky zahrne úlohu kontroly závislostí do libovolného pipeline směřujícího na vaši výchozí větev nebo do libovolného sestavení pull requestu směřujícího na vaši 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 naleznete v části Skener závislostí v 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ě. Kontrolu kódu můžete povolit pomocí výchozího nastavení nebo rozšířeného nastavení. V závislosti na vašich potřebách a úrovni kontroly skenování můžete spustit oboje ve stejné organizaci.

Výchozí nastavení je nejrychlejší způsob, jak povolit kontrolu kódu. Výchozí nastavení se spouští podle plánu pomocí Azure Pipelines, rozpozná podporované jazyky ve vašem úložišti a automaticky nakonfiguruje vyhledávání. Pokud se jazyky ve vašem úložišti změní, konfigurace skenování se automaticky aktualizuje. Výchozí nastavení aktuálně podporuje C#, C/C++, Java, JavaScript/TypeScript, Python, Ruby a Rust. Go a Swift nejsou ve výchozím nastavení podporované. pomocí upřesňujícího nastavení je můžete zkontrolovat.

Agent pool a plán skenování pro výchozí nastavení se sdílí mezi všemi úložišti v organizaci. Tyto možnosti můžete nakonfigurovat z nastavení organizace>úložišť v rozevíracím seznamu Konfigurovatelné možnosti výchozího nastavení CodeQL. Další podrobnosti o jednotlivých možnostech najdete v tématu Konfigurace výchozích možností nastavení.

Pokročilé nastavení poskytuje úplnou kontrolu nad konfigurací skenování přidáním úloh kanálu CodeQL přímo do kanálů. Podrobnosti o konfiguraci rozšířeného nastavení najdete v tématu Nastavení skenování kódu.

Návod

Doporučujeme začít s výchozím nastavením. Pokud potřebujete větší kontrolu nad konfigurací skenování, jako jsou různé fondy agentů, vlastní kroky sestavení pro kompilované jazyky nebo prohledávání ve více větvích, můžete spustit výchozí nastavení i pokročilé nastavení ve stejné organizaci. Další informace najdete v tématu Nastavení kontroly kódu.

Pokud chcete generovat výstrahy, spustí se výchozí nastavení týdně. Všechna zjištěná ohrožení zabezpečení se zobrazí na kartě Rozšířené zabezpečení. Když povolíte výchozí nastavení CodeQL na úrovni organizace nebo projektu, počáteční spuštění kontroly se automaticky zařadí do fronty pro všechna ovlivněná úložiště, takže výsledky začnou vypadat bez čekání na další naplánované spuštění.

Copilot Automatická oprava pro skenování kódu

Copilot Autofix je funkce založená na umělé inteligenci, která analyzuje výstrahy z analýzy kódu CodeQL a navrhuje konkrétní opravy. Když vygenerujete opravu pro podporovanou výstrahu, Copilot autofix vytvoří žádost o přijetí změn s navrženou změnou kódu, abyste ji mohli zkontrolovat, upravit a sloučit prostřednictvím normálního pracovního postupu žádosti o přijetí změn.

Funkci Copilot Autofix můžete povolit na úrovni organizace, projektu nebo úložiště.

Note

Copilot Autofix je k dispozici v omezené veřejné verzi Preview. Microsoft momentálně nepřijímá další uživatele pro verzi Preview.

Funkce se můžou změnit nebo odebrat bez předchozího upozornění. Funkce preview nemají žádnou smlouvu o úrovni služeb (SLA) a omezenou podporu.

Při používání funkce Copilot Autofix mějte na paměti následující skutečnosti:

  • Automatická oprava se vztahuje pouze na výstrahy kontroly kódu založené na CodeQL. Negeneruje opravy pro upozornění ze skenování závislostí ani ze skenování tajných klíčů.
  • Autofix navrhne opravu, ale upozornění automaticky nevyřeší. Před uzavřením upozornění musíte zkontrolovat pull request, ověřit, že je změna správná, a ručně ho sloučit.
  • Pokud se spuštění nástroje Autofix nezdaří, v zobrazení detailu výstrahy se zřetelně zobrazí informace o selhání s možností spuštění zopakovat.

Další informace o povolení a používání nástroje Copilot Autofix najdete v tématu Copilot Autofix pro kontrolu 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 platí zásady ověřování sestavení, včetně úloh kontroly závislostí a/nebo kontroly kódu zahrnutých ve vašem pipeline. 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.

Nastavení kontrol stavu u pull requestů

Pokročilé kontroly stavu zabezpečení umožňují blokovat sloučení žádostí o přijetí změn při zjištění ohrožení zabezpečení. Tyto kontroly stavu vyhodnocují skenování závislostí, skenování kódu a výsledky kontroly citlivých údajů a na základě zjištění aktualizují stav vaší slučovací žádosti.

K dispozici jsou dvě kontroly stavu:

  • Blokovat všechna kritická a vysoká ohrožení zabezpečení (AdvancedSecurity/AllHighAndCritical): Pomocí této kontroly vynucujte, aby se před sloučením vyřešila všechna kritická a vysoce závažná upozornění v úložišti.
  • Blokovat nové kritické a vysoké chyby zabezpečení (AdvancedSecurity/NewHighAndCritical): Tuto kontrolu použijte, pokud chcete zabránit zavedení nových ohrožení zabezpečení, aniž by bylo nutné nejprve opravit všechna existující ohrožení zabezpečení. Tato kontrola vyžaduje zásadu ověření sestavení s úlohami rozšířeného zabezpečení ke kontrole větve žádosti o přijetí změn.

Konfigurace kontrol stavu jako zásad větví

Pokud chcete před sloučením žádostí o přijetí změn vyžadovat kontroly stavu rozšířeného zabezpečení, nakonfigurujte je jako zásady větve. Můžete je nastavit pro každé úložiště nebo pro projekt.

  1. Přejděte na nastavení Project>Repos.
  2. Volitelně můžete vybrat úložiště, které chcete nakonfigurovat.
  3. Vyberte Zásady a pak vyberte větev, kterou chcete chránit. Výchozí větev vašich úložišť bude ve výchozím nastavení chráněná.
  4. Pokud ještě není vytvořená, přidejte zásadu ověření sestavení. To je nutné, aby obě kontroly stavu fungovaly správně. Pokud máte v kanálu ověření sestavení více úloh rozšířeného zabezpečení, povolte Wait for Processing vlastnost pro úlohy AdvancedSecurity-CodeQL-Analyze a AdvancedSecurity-Publish .
  5. V části Kontroly stavu vyberte + , jestli chcete přidat novou zásadu kontroly stavu.
  6. V nabídce Stav pro kontrolu zadejte AdvancedSecurity pro žánr a AllHighAndCritical nebo NewHighAndCritical pro název. (Tyto možnosti se zobrazí po prvním úspěšném běhu pipeline s úlohami Advanced Security.)
  7. Zvolte požadavek na zásadu (povinné nebo volitelné) a nastavte další požadované možnosti. Ponechte rozšířené možnosti ve výchozím nastavení – změna autorizované identity nebo vyžadování ID iterace zabraňuje odesílání kontrol stavu.
  8. Vyberte Uložit.

Snímek obrazovky při přidání kontroly stavu pokročilého zabezpečení

Další informace o konfiguraci zásad kontroly stavu najdete v tématu Kontroly stavu.

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ě.