Nasazení integrace Pokročilého zabezpečení GitHubu

Tato příručka obsahuje kroky nastavení a další akce, které vám pomůžou integrovat GitHub Advanced Security (GHAS) a Microsoft Defender for Cloud a pak ověřit konec integrace. Integrace pomáhá maximalizovat zabezpečení aplikací nativních pro cloud Microsoft tím, že koreluje rizika modulu runtime a kontext s původním kódem, aby se urychlila náprava založená na umělé inteligenci.

Podle této příručky:

  • Nastavte úložiště GitHubu pro pokrytí cloudu v programu Defender.
  • Vytvořte faktor rizika během běhu
  • Otestujte skutečné případy použití v defenderu pro cloud.
  • Propojte kód s prostředky modulu runtime.
  • Zahajte kampaň zabezpečení na GitHubu. Tato kampaň používá kontext modulu runtime k určení priority výstrah zabezpečení GHAS.
  • Vytvořte problémy s GitHubem z Defenderu pro cloud a spusťte nápravu.
  • Uzavřete cyklus mezi inženýrskými a bezpečnostními týmy.

Předpoklady

Aspect Podrobnosti
Požadavky na životní prostředí – Účet GitHubu s konektorem vytvořeným v defenderu pro cloud
– GitHub licence GHAS (Advanced Security) v připojených úložištích
– Defender plán správy stavu cloudového zabezpečení (DCSPM) povolený pro předplatné
– Microsoft Security Copilot (volitelné pro automatizované nápravy využívající AI)
Role a oprávnění – Oprávnění správce zabezpečení
– Správce zabezpečení v předplatném Azure (pro zobrazení zjištění v Defender for Cloud)
– GitHub vlastníka organizace (pro připojení úložišť a konfiguraci kampaní zabezpečení)
Cloudová prostředí – Dostupné jenom v komerčních cloudech (ne ve službě Azure Government, Azure provozované společností 21Vianet nebo jinými suverénními cloudy)

Příprava prostředí

Před ověřením integrace dokončete následující kroky k nastavení repozitáře GitHub a Defender for Cloud.

Krok 1: Nastavení úložiště GitHub a spuštění pracovního postupu

Pro testování integrace použijte vlastní repozitáře nebo ukázkový sandboxový projekt. Projekt sandbox poskytuje testovací GitHub repozitář se vším, co potřebujete k vytvoření zranitelného obrazu kontejneru.

  1. Přihlaste se do Azure Portalu.

  2. Přejděte na Microsoft Defender for Cloud>zabezpečení DevOps.

  3. Do vyhledávacího řádku zadejte název úložiště kódu (příklad: zava-webshop).

  4. Ověřte, že patří do organizace, kterou monitorujete, například organizaci zava-corporation .

  5. Zkontrolujte, zda existují nějaké nálezy pro repozitář.

  6. Ujistěte se , že je stav rozšířeného zabezpečenízapnutý. To znamená, že GitHub Rozšířené zabezpečení je v monitorovaném úložišti povolené.

  7. Pokud vaše repozitář není nalezen, podívejte se na GitHub Connector Onboarding quickstart pro řešení problémů a nastavení.

  8. Ujistěte se, že je pro váš konektor GitHub zapnutá kontrola bez agentů.

    Screenshot konfigurace plánu v Defender CSPM s zapnutou kontrolou kódu bez použití agentů a aktivované všechny možnosti skeneru.

Krok 2: Ověření připravenosti vašeho prostředí

Tato validace prostředí potvrzuje, že vaše repozitář a cloudové zdroje jsou správně nastavené. Kontroluje, zda Defender dokáže zobrazit doporučení pro přechod kódu do běhu a přinést užitečné výsledky. Během kroku ověřování prostředí Defender ověřuje, že:

Validace plné viditelnosti kódu do runtime

  • Microsoft Defender for Cloud nepřetržitě monitoruje úložiště zdrojového kódu z hlediska ohrožení zabezpečení.
  • Artefakty sestavení, například image kontejnerů, jsou před nasazením skenovány v registrech kontejnerů.
  • Úlohy runtime nasazené do clusterů Kubernetes se monitorují kvůli bezpečnostním rizikům.
  • Defender for Cloud koreluje a trasuje každý artefakt od kódu přes sestavení a nasazení až po runtime a zpět.

Note

Zobrazení následujících výsledků může trvat až 24 hodin po použití předchozích kroků.

Otestujte, že kontrola bez agentů GitHubu převezme úložiště.

Přejděte na Microsoft Defender for Cloud>Cloud Security Explorer a proveďte dotaz. Ověřovací dotazy testují, jestli Defender dokáže identifikovat artefakty vytvořené vašimi kanály a úlohami. Pokud dotazy vrátí výsledky, znamená to, že kontrola a korelace fungují podle očekávání.

Screenshot Defender for Cloud's Cloud Security Explorer zobrazující dotaz na GitHub repository push do obrazů kontejnerů.

Note

Pokud se nevrátí žádné výsledky, může to znamenat, že artefakty ještě nejsou generovány, kontrola není nakonfigurovaná nebo chybí oprávnění. Další informace najdete v tématu Role a oprávnění uživatele .

  1. Ověřte, že Defender for Cloud (ve službě Azure Container Registry) naskenuje image kontejneru a použil ji k vytvoření kontejneru.

  2. Do dotazu přidejte podmínky pro konkrétní nasazení.

    Screenshot Cloud Security Explorer produktu Defender for Cloud zobrazující dotaz na odesílání z GitHub úložiště do imagí kontejnerů se zranitelnými místy.

  3. Ověřte, že je kontejner spuštěný a že Defender for Cloud naskenuje cluster AKS.

    Screenshot Průzkumníka cloudových zabezpečení Defender for Cloud s dotazem na GitHub přitlačení změn do image kontejnerů se zranitelnostmi.

  4. Ověřte, že jsou rizikové faktory správně nakonfigurované na straně Defenderu pro cloud. Vyhledejte název kontejneru na stránce inventáře Defenderu pro cloud a měli byste vidět, že je označený jako kritický.

Note

Tento krok se vyžaduje jenom v případě, že ve vašem prostředí ještě nejsou nakonfigurované rizikové faktory. Pokud už používáte rizikové faktory, můžete jejich konfiguraci ověřit v nastavení > Závažnost prostředků.

Úspěšné ověření zajišťuje, že další kroky, jako jsou doporučení, kampaně a GitHub generování problémů, vytvoří smysluplné výsledky.

Note

Po klasifikaci prostředku jako kritického může trvat až 12 hodin, než Defender for Cloud odešle data do GitHubu. Pochopte upozornění v produkčním kódu.

Krok 3: Vytvoření GitHub kampaně

Pokud chcete vytvořit skenovací kampaň, musíte pracovat na úrovni GitHub organizace. Toto prostředí není k dispozici na úrovni jednotlivých úložišť.

  1. Na GitHubu přejděte do organizace GitHubu, kterou jste použili k testování nastavení.

  2. Vyberte Kampaně zabezpečení>>Vytvořit kampaň>z filtrů skenování kódu.

  3. Kampaň za runtime risk pomáhá upřednostnit zjištění GitHub Advanced Security (GHAS), která patří do skutečně nasazeného a běžícího kódu.

  4. Vyberte filtry rizik za běhu pro kampaň.

    Screenshot vytváření kampaně skenování kódu na GitHubu s lištou filtru, tlačítkem Filtr a bublinovou nápovědou o filtrování podle metadat artefaktů.

    Screenshot dialogového okna rozšířených filtrů ve vytváření kampaně v GitHubu s filtrem rizika za běhu a s otevřenou nabídkou pro výběr rizikových faktorů.

  5. Vyberte Uložit>publikovat jako kampaň. Zadejte požadované informace a pak kampaň publikujte.

  6. Sledujte pokrok v kampaních. Snímek obrazovky stránky kampaně na GitHubu ukazující stav po splatnosti, ukazatel průběhu kampaně, seznam kritických upozornění a možnosti filtrování.

Krok 4: Jednajte podle doporučení

Využijte funkčnost doporučení VA kontejnerů pro přechod od kódu k modulu runtime a korelaci identifikovaných CVE s výstrahami zabezpečení Dependabot, abyste porozuměli stavu bezpečnostních problémů. Pak můžete příslušnému inženýrskému týmu přiřadit doporučení k řešení na základě mapování kódu na runtime.

  1. Na portálu Defender for Cloud přejděte na kartu Doporučení .

  2. Vyhledejte název kontejneru, který jste vytvořili z úložiště kódu.

  3. Otevřete jedno z doporučení pro aktualizace softwaru ; název doporučení začíná aktualizací.

  4. Na kartě Přidružené CVE se zobrazí výstrahy zabezpečení jako součást toku vyhodnocení doporučení. Tyto výstrahy poskytují indicie o zjištěních služby GitHub Advanced Security, která jsou technickému týmu již známá. Všimněte si, že některá ID CVE mají ve sloupci Související výstrahy na GitHubu odkaz zobrazit na GitHub.

    Snímek obrazovky karty Nálezy v Defenderu pro Cloud zobrazující upozornění CVE-2024-21409, stav opravy, skóre CVSS a vyskakovací okno s podrobnostmi alertu GitHub.

Výběrem odkazu otevřete příslušné výstrahy zabezpečení GHAS. (Pokud chcete zobrazit obsah upozornění GHAS v GitHub, musíte mít přístupová oprávnění k příslušnému úložišti GitHub. Pokud nemáte přístupová oprávnění, můžete kdykoli zkopírovat odkaz pro další použití nebo kontaktovat správce GitHub.)

Pokud sloupec Související upozornění na GitHub ukazuje shodné upozornění Dependabotu, je zranitelnost již inženýrům známa. Pokud je stav upozornění Aktivní, nikdo to zatím nevyřešil a problém je třeba prioritizovat pro opravu.

Pokud se ve sloupci neobjeví žádné odpovídající upozornění GitHub, CVE představuje runtime riziko, které inženýrství neznají a které je třeba upřednostnit pro opravu.

Další kroky Jak bych věděl, kdo je relevantním týmem pro opravu? Jak mohu zjistit, který kontext může pomoci inženýrům s opravou?

Vytvořit problém na GitHubu

Pokud chcete zavřít smyčku mezi bezpečnostními a technickými týmy, můžete vytvořit problém GitHubu, který upřednostňuje problémy se zabezpečením, na které by se technický tým měl zaměřit. Toto stanovení priority může zahrnovat předávání zjištění, která GHAS nezachytila, ale která však Defender for Cloud zjistil u ID CVE, která nejsou součástí přímých závislostí. Tato zjištění můžou zahrnovat ohrožení zabezpečení v základní imagi, operačním systému nebo softwaru, jako je NGINX.

Issue na GitHubu se automaticky vytvoří v repozitáři zdrojového kódu se všemi ID CVE nalezenými v rámci doporučení, včetně dalších kontextů souvisejících s runtime, kontejnery a životním cyklem vývoje softwaru (SDLC), které mohou pomoci s opravou a testováním.

Ze zobrazení doporučení můžete přímo vygenerovat GitHub issue, které bude sloužit ke sledování nápravných prací.

  1. Přejděte na kartu Remediation Insights a zobrazte diagram toku od kódu k runtime. Diagram mapuje váš běžící kontejner na image kontejneru v úložišti kódu a na původní úložiště kódu na GitHubu.

    Snímek obrazovky s přehledy nápravy zobrazující diagram kódu na modul runtime s úrovněmi rizik a otevřenou nabídkou Akce v poli Runtime

    1. Na kartě Remediation Insights zkontrolujte dotčenou sekci Runtime.

    2. Ověřte, zda již na GitHub existuje issue. Pokud GitHub problém již existuje, v poli se zobrazí ikona GitHub. Najeďte myší na ikonu a zobrazte podrobnosti o problému.

    3. Pokud žádný problém neexistuje a máte požadovaná oprávnění, můžete vygenerovat nový GitHub problém. Vyberte Provést akci.

    4. V místní nabídce vyberte možnost Vytvořit problém na GitHubu.

    5. Pokud se problém úspěšně vytvořil, zobrazí se automaticky otevírané oznámení s odkazem na problém. Problém se vytvoří v úložišti kódu původu.

      Snímek obrazovky se seznamem problémů na GitHubu zobrazující otevřené problémy s závislostmi s označeními, jako je Defender for Cloud a bezpečnost.

    Note

    Pokud možnost problému Generate GitHub není dostupná, možná chybí požadovaná oprávnění k GitHub nebo úložišti. Obraťte se na správce GitHubu nebo úložiště a požádejte o přístup.

    Snímek obrazovky zobrazující vygenerovaný problém v GitHubu pro otevřenou závislost s programem Defender for Cloud a popisky zabezpečení.

    1. Sledujte vlastnictví a aktualizace stavu – změny stavu problému nebo přiřazení provedené na GitHubu se promítnou do Microsoft Defenderu for Cloud, takže můžete ze zobrazení Doporučení sledovat přiřazení odpovědnosti a průběh nápravy.

      Snímek obrazovky stránky s doporučeními Microsoft Defender pro cloud zobrazující problémy s vysokým rizikem s vyskakovacím oknem s podrobnostmi o problému na GitHubu.

Agentní opravy

Pokud máte na straně GitHubu licenci GitHub Copilot, můžete problém vyřešit pomocí agenta kódování GitHubu:

  1. Přiřaďte úkolu agenta GitHub pro kódování.
  2. Zkontrolujte vygenerovanou opravu.
  3. Pokud se oprava zdá rozumná, použijte ji.
  4. Sledujte, jak Defender for Cloud aktualizuje stav problému na Uzavřeno.

Zjistěte více o GitHub Advanced Security a Defender for Cloud: