Konfigurace kontroly kódu bez agentů (Preview)

Kontrola kódu bez agentů v Microsoft Defenderu pro cloud nabízí rychlé a škálovatelné pokrytí zabezpečení pro všechna úložiště v Azure DevOps a GitHubu. Kontrola kódu bez agentů automaticky kontroluje kód, opensourcové závislosti a infrastrukturu jako kód (IaC) a zjišťuje ohrožení zabezpečení a chybné konfigurace bez nutnosti jakýchkoli změn v kanálech sestavení nebo nasazení. Tento přístup zjednodušuje nastavení a údržbu pomocí jediného konektoru Azure DevOps nebo GitHubu a poskytuje široké pokrytí, průběžné přehledy a užitečná zjištění zabezpečení. Umožňuje týmům zabezpečení a vývoj se soustředit na bezproblémové řešení rizik bez přerušení vývojových pracovních postupů.

Můžete přizpůsobit, které skenery se mají spouštět, a definovat přesně, které organizace, projekty nebo úložiště chcete zahrnout nebo vyloučit z kontroly.

Požadavky

Role a oprávnění:

  • Nastavení a konfigurace konektoru:

    • Správce kolekce projektů: Vyžaduje se v Azure DevOps k provedení počátečního nastavení.
    • Přispěvatel předplatného: K vytvoření a konfiguraci konektoru potřebujete předplatné Azure.
  • Zobrazení výsledků zabezpečení:

    • Správce zabezpečení: Může spravovat nastavení zabezpečení, zásady a výstrahy, ale nemůže upravit konektor.
    • Čtečka zabezpečení: Může zobrazit doporučení, výstrahy a zásady, ale není oprávněn provádět žádné změny.

Klíčové výhody

Mezi klíčové výhody kontroly kódu bez agentů v programu Microsoft Defender for Cloud patří:

  • Proaktivní řízení rizik: Identifikujte rizika v rané fázi procesu vývoje. To umožňuje zabezpečené postupy kódování a snižuje ohrožení zabezpečení před dosažením produkčního prostředí. 
  • Snadné uvedení do provozu: Rychlé nastavení s minimální konfigurací a bez změn procesů. 
  • Centralizovaná správa na podnikové úrovni: Automaticky prohledávat kód napříč několika úložišti pomocí jediného konektoru. To nabízí rozsáhlé pokrytí pro velká prostředí. 
  • Rychlé přehledy pro rychlou nápravu: Získejte přehledy o ohrožení zabezpečení s možností reakce hned po onboardingu. To umožňuje rychlé opravy a zkracuje dobu vystavení. 
  • Přívětivé a bezproblémové pro vývojáře: Provoz nezávisle na kanálech kontinuální integrace a průběžného nasazování (CI/CD) bez nutnosti změn nebo přímého zapojení vývojářů. To umožňuje nepřetržité monitorování zabezpečení bez narušení produktivity nebo pracovních postupů vývojářů.
  • Flexibilní pokrytí a řízení: Zvolte, které skenery běží a co se naskenuje. Můžete pokrýt všechno ve výchozím nastavení nebo přizpůsobit nastavení tak, aby zahrnovala nebo vyloučila konkrétní organizace, projekty nebo úložiště. To vám umožní shodovat pokrytí zabezpečení s vašimi rizikovými potřebami a provozními potřebami bez větší složitosti.
  • Vytvoření softwarového vyúčtování materiálů (SBOM): Automatické generování SBOM při každé kontrole poskytuje týmům přesný a dotazovatelný inventář závislostí a verzí v úložištích bez dalších změn pracovního postupu. To umožňuje rychlou analýzu dopadu, rychlejší reakci na nově zpřístupněná ohrožení zabezpečení a sebevědomé rozhodování při posuzování expozice konkrétním balíčkům nebo verzím.

Možnosti detekce rizik

Kontrola kódu bez agentů zlepšuje zabezpečení tím, že poskytuje cílená doporučení pro kód aplikace, šablony infrastruktury jako kódu (IaC) a závislosti třetích stran. To je kromě doporučení pro řízení bezpečnosti cloudového prostředí poskytovaných prostřednictvím konektoru. Mezi možnosti detekce klíčů patří:

  • Ohrožení zabezpečení kódu: V několika programovacích jazycích najdete běžné chyby kódování, nebezpečné postupy kódování a známé chyby zabezpečení.
  • Chybné konfigurace infrastruktury jako kódu: Detekce chybných konfigurací zabezpečení v šablonách IaC, které můžou vést k nezabezpečeným nasazením.
  • Zranitelnosti závislostí: Identifikujte známé zranitelnosti v opensourcových balíčcích a balících operačního systému v úložištích.
  • SBOM (Software Bill of Materials): Automaticky vygeneruje komplexní, dotazovatelný inventář závislostí a jejich verzí pro každé úložiště.

Vytvoření konektoru vylepšuje zabezpečení tím, že poskytuje základní doporučení pro správu stavu cloudového zabezpečení pro úložiště, kanály a připojení služeb.

Nástroje pro skenování

Kontrola kódu bez agentů používá různé opensourcové nástroje k vyhledání ohrožení zabezpečení a chybných konfigurací v šablonách kódu a infrastruktury jako kódu (IaC):

Nástroj Podporované IaC/jazyky Licence
Analyzátor šablon Šablony ARM IaC, šablony Bicep IaC MIT
Checkov Šablony Terraform IaC, soubory plánů Terraformu, šablony AWS CloudFormation, soubory manifestu Kubernetes, soubory Helm chartů, Dockerfiles, šablony Azure Resource Manager (ARM) IaC, šablony Azure Bicep IaC, šablony AWS SAM (Serverless Application Model), soubory Kustomize, šablony Serverless frameworku, soubory specifikace OpenAPI Apache 2.0
Bandita Python Apache 2.0
ESLint JavaScript, TypeScript, JSX, TSX MIT
Trivy Prohledávání zranitelností závislostí a balíčků operačního systému včetně manifestů úložišť a souborů lockfile (režim systému souborů) Apache 2.0
Syft Alpine (apk), Bitnami packages, C (conan), C++ (conan), Dart (pubs), Debian (dpkg), Dotnet (deps.json), Objective-C (cocoapods), Elixir (mix), Erlang (rebar3), Go (go.mod, Go binárky), GitHub (pracovní postupy, akce), Haskell (cabal, stack), Java (jar, ear, war, par, sar, nar, rar, native-image), JavaScript (npm, yarn), Jenkins pluginy (jpi, hpi), Linuxové archivy jádra (vmlinuz), moduly jádra Linuxu (ko), Nix (výstupy v /nix/store), PHP (Composer, PECL, Pear), Python (kolo, vejce, báseň, requirements.txt, uv), Red Hat (rpm), Ruby (gem), Rust (cargo.lock, auditable binary), Swift (cocoapods, swift-package-manager), Wordpress pluginy, Terraform provideři (.terraform.lock.hcl) Apache 2.0

Tyto nástroje podporují širokou škálu jazyků a architektur IaC (infrastruktura jako kód) a zajišťují důkladnou analýzu zabezpečení napříč vaším základem kódu.

Podporované systémy a typy souborů

Systémy správy verzí

  • Azure DevOps: Úplná podpora úložišť připojených přes konektor Azure DevOps

  • GitHub: Úplná podpora úložišť připojených přes konektor GitHub.

Programovací jazyky

  • Statická analýza kódu: Python; JavaScript/TypeScript.

  • Ekosystémy závislostí (prostřednictvím trivy): Node.js (npm, yarn), Python (pip, Pipenv, Poety), Java (Maven, Gradle), .NET (NuGet), moduly Go, Ruby (RubyGems), PHP (Composer), Rust (Cargo) a další podporované jazyky a ekosystémy balíčků prostřednictvím manifestů a lockfiles.

Platformy a konfigurace infrastruktury jako kódu (IaC)

Platforma IaC Podporované typy souborů Poznámky
Terraform .tf, .tfvars Podporuje šablony Terraform IaC v jazyce HCL2, včetně souborů proměnných v .tfvars.
Terraform Plan Soubory JSON Obsahuje soubory JSON představující plánované konfigurace, které se používají k analýze a kontrole.
AWS CloudFormation Soubory JSON, YAML Podporuje šablony AWS CloudFormation pro definování prostředků AWS.
Kubernetes YAML, soubory JSON Podporuje soubory manifestu Kubernetes pro definování konfigurací v clusterech.
Kormidlo Adresářová struktura Helm chartu, soubory YAML Sleduje standardní strukturu chartu Helmu; podporuje soubory chartů Helm v3.
Docker Soubory s názvem Dockerfile Podporuje soubory Dockerfile pro konfigurace kontejnerů.
Šablony Azure ARM Soubory JSON Podporuje šablony IaC Azure Resource Manageru (ARM) ve formátu JSON.
Azure Bicep .bicep soubory Podporuje šablony Bicep IaC, jazyk specifický pro konkrétní doménu (DSL) pro ARM.
AWS SAM Soubory YAML Podporuje šablony bezserverového aplikačního modelu (SAM) AWS pro bezserverové prostředky.
Kustomize Soubory YAML Podporuje konfigurační soubory pro přizpůsobení Kubernetes (Kustomize).
Bezserverová architektura Soubory YAML Podporuje šablony pro architekturu bez serveru při definování bezserverových architektur.
OpenAPI YAML, soubory JSON Podporuje soubory specifikace OpenAPI pro definování rozhraní RESTful API.

Povolení kontroly kódu bez agentů v organizacích Azure DevOps a GitHubu

K programu Defender for Cloud můžete připojit organizace Azure DevOps i GitHub a povolit tak kontrolu kódu bez agentů. Postupujte podle kroků v části Propojení organizací Azure DevOps nebo Propojení organizací GitHub, abyste mohli začít.

Obrázek GIF znázorňující proces nastavení pro povolení kontroly kódu bez agentů

Přizpůsobení pokrytí a rozsahu skeneru

U GitHubu i Azure DevOps můžete řídit, které skenery běží, a určit přesně, která úložiště jsou zahrnutá nebo vyloučená z kontroly bez agentů.

Snímek obrazovky znázorňující vlastní nastavení kontroly kódu bez agentů

  • Vyberte skenery: Zapněte nebo vypněte skenery pro kód a infrastrukturu jako kód (IaC) na základě vašich potřeb.

  • Nastavit obor skenování: Rozhodněte se, jestli chcete ve výchozím nastavení kontrolovat všechna úložiště, nebo definovat vlastní obor, který bude zahrnovat nebo vyloučit konkrétní organizace, projekty nebo úložiště.

    • Režim vyloučení: Prohledat všechno kromě toho, co uvedete.
    • Režim zahrnutí: Zkontrolujte jenom to, co vypíšete.
  • Možnosti vlastního oboru:

    • U GitHubu nastavte obor podle vlastníka nebo úložiště.
    • Pro Azure DevOps nastavte obor podle organizace, projektu nebo úložiště.
  • Automatické zjišťování nových úložišť: Automatické zjišťování nových úložišť je vždy omezeno na organizace nebo projekty zahrnuté v rozsahu konektoru. Ve výchozím nastavení je povolená při použití režimu vyloučení a není nastavený žádný vlastní seznam oborů. Nově vytvořená úložiště se automaticky naskenují.

    Automatické zjišťování není dostupné v režimu zahrnutí, protože se prohledávají pouze vyjmenovaná úložiště.

    Díky tomu můžete sladit skenování s potřebami zabezpečení, udržovat pokrytí aktuální, jak vaše prostředí roste, a vyhnout se zbytečným skenům nebo neprozkoumaným oblastem.

Jak funguje kontrola kódu bez agentů

Kontrola kódu bez agentů funguje nezávisle na kanálech CI/CD. Používá konektor Azure DevOps nebo GitHub k automatické kontrole konfigurace kódu a infrastruktury jako kódu (IaC). Nemusíte upravovat kanály ani přidávat rozšíření. Toto nastavení umožňuje širokou a průběžnou analýzu zabezpečení napříč několika úložišti. Výsledky se zpracovávají a zobrazují přímo v programu Microsoft Defender for Cloud.

Diagram znázorňující architekturu skenování kódu bez agentů

Proces skenování

Jakmile povolíte funkci kontroly kódu bez agenta v rámci konektoru, proces skenování zahrnuje tyto kroky:

  1. Zjišťování úložiště: Systém automaticky identifikuje všechna úložiště propojená prostřednictvím konektoru Azure DevOps a GitHubu hned po vytvoření konektoru a pak každých 8 hodin.

  2. Načítání kódu: Bezpečně načte nejnovější kód z výchozí (hlavní) větve každého úložiště pro analýzu, zpočátku po nastavení konektoru a pak každý den.

  3. Analýza: Systém používá sadu integrovaných nástrojů pro kontrolu spravovaných a aktualizovaných v programu Microsoft Defender for Cloud k vyhledání ohrožení zabezpečení a chyb konfigurace v šablonách kódu a infrastruktury jako kódu (IaC). Vytvoří také SBOM, který umožňuje dotazovatelnou správu balíčků.

  4. Zpracování zjištění: Zjištění z testů se zpracovávají prostřednictvím back-endu služby Defender pro Cloud, což vede k vytváření realizovatelných doporučení zabezpečení.

  5. Doručování výsledků: Systém zobrazuje zjištění jako doporučení zabezpečení v defenderu pro cloud, což týmům zabezpečení umožňuje kontrolovat a řešit problémy.

Frekvence a doba trvání kontroly

  • Frekvence skenování:

    • Stav zabezpečení úložišť, kanálů a připojení služeb se posuzuje při vytváření konektoru a pak každých osm hodin.
    • Po vytvoření konektoru systém prohledá kód a šablony infrastruktury jako kódu (IaC) na zranitelnosti a poté denně.
  • Doba trvání kontroly: Prohledávání se obvykle dokončí do 15 až 60 minut v závislosti na velikosti a složitosti úložiště.

Zobrazení a správa výsledků kontroly

Po dokončení kontrol budete mít přístup ke zjištěním zabezpečení v programu Microsoft Defender for Cloud.

Zjištění přístupu

  1. V Programu Microsoft Defender for Cloud přejděte na kartu Doporučení zabezpečení.

  2. Projděte si doporučení pro úložiště Azure DevOps i GitHub, například:

  3. Celou řadu doporučení podporovaných pro obě platformy najdete v tématech: Doporučení k zabezpečení Azure DevOps a GitHubu.

    Mezi doporučení patří například vyžadování schválení více revidujících, omezení přístupu k tajným kódům a vynucování osvědčených postupů pro prostředí Azure DevOps i GitHub.

    Výběrem libovolného doporučení zobrazíte podrobnosti o ovlivněných souborech, závažnosti a nápravném postupu.

Rozdíl mezi kontrolou kódu bez agentů a kontrolou v kanálu

Skenování kódu bez použití agenta a skenování v rámci pipeline pomocí rozšíření zabezpečení od Microsoftu DevOps nabízí kontrolu zabezpečení v Azure DevOps a GitHubu. Slouží různým potřebám, ale vzájemně se doplňují. Následující tabulka uvádí hlavní rozdíly, které vám pomůžou vybrat možnost, která nejlépe vyhovuje vašim potřebám zabezpečení a vývoje.

Aspekt Kontrola kódu bez agentů Prohledávání v kanálu
Přizpůsobit velikost písmen použití Nabízí široké pokrytí s minimálním narušením práce vývojářů. Poskytuje podrobné skeny integrované do potrubí s přizpůsobitelnými ovládacími prvky.
Rozsah a pokrytí skenování Zaměřuje se na zranitelnosti infrastruktury jako kódu (IaC), zranitelnosti kódu a zranitelnosti open-source závislostí podle naplánovaného harmonogramu (denně). Poskytuje rozsáhlé pokrytí, zahrnující binární soubory a obrazy kontejnerů, aktivované při každém spuštění pipeline.
Nastavení a konfigurace Nevyžaduje další nastavení po vytvoření konektoru. Vyžaduje ruční instalaci a konfiguraci v každém CI/CD pipeline.
Integrace pipeline Spouští se nezávisle na kanálech (CI/CD) bez úprav pracovních postupů. Integruje se v rámci kanálu CI/CD, který vyžaduje konfiguraci v každém kanálu.
Přizpůsobení skeneru Umožňuje vybrat, které skenery se spouštějí. Umožňuje přizpůsobení pomocí konkrétních skenerů, kategorií, jazyků, úrovní citlivosti a nástrojů jiných společností než Microsoft.
Výsledky a zpětná vazba Poskytuje přístup ke zjištěním v programu Defender for Cloud. Nabízí zpětnou vazbu téměř v reálném čase v rámci kanálu CI/CD s výsledky viditelnými také v programu Defender for Cloud.
Kritéria přerušení a selhání Nejde přerušit sestavení Je možné nakonfigurovat tak, aby přerušila sestavení na základě závažnosti zjištění zabezpečení.

Dopad na škálovatelnost a výkon

Kontrola kódu bez použití agentů zabraňuje vytváření prostředků v předplatném a nevyžaduje kontrolu během procesu pipeline. K načtení metadat a kódu používá rozhraní REST API Azure DevOps a GitHubu. To znamená, že volání rozhraní API se započítávají do limitů rychlosti Azure DevOps a GitHubu, ale neúčtují se vám přímé náklady na přenos dat. Služba spravuje kontroly, aby se zajistilo, že zůstanou v rámci limitů rychlosti Azure DevOps a GitHubu, aniž by přerušila vývojové prostředí. Tato metoda poskytuje efektivní vysoce výkonnou kontrolu napříč úložišti, aniž by to mělo vliv na pracovní postupy DevOps. Další informace najdete v tématu Omezení rychlosti a využití Azure DevOps aomezení rychlosti pro rozhraní REST API GitHubu.

Zabezpečení dat, dodržování předpisů a řízení přístupu pro kontrolu kódu bez agentů

Služba kontroly kódu bez agentů v programu Microsoft Defender for Cloud zajišťuje zabezpečené a vyhovující zpracování kódu implementací striktních opatření zabezpečení dat a ochrany osobních údajů:

  • Šifrování dat a řízení přístupu: Systém šifruje všechna přenášená data pomocí standardních protokolů. K vašemu kódu má přístup pouze autorizovaný Defender pro cloudové služby.
  • Rezidence a uchovávání dat: Kontroly probíhají ve stejné geografické oblasti jako konektory Azure DevOps a GitHubu (USA nebo EU), aby byly v souladu se zákony na ochranu dat. Systém zpracovává kód pouze během skenování a bezpečně ho následně odstraní bez dlouhodobého úložiště.
  • Přístup k úložištím: Služba vygeneruje zabezpečený přístupový token pro Azure DevOps a GitHub k provádění kontrol. Tento token umožňuje načtení potřebných metadat a kódu bez vytváření prostředků ve vašem předplatném. K ochraně integrity dat mají přístup jenom komponenty Defenderu pro cloud.
  • Podpora dodržování předpisů: Služba odpovídá zákonným standardům a standardům zabezpečení pro zpracování dat a ochranu osobních údajů a zajišťuje zabezpečené zpracování a kontrolu kódu zákazníka v souladu s požadavky na regionální ochranu dat.

Tato opatření zajišťují zabezpečený, vyhovující a efektivní proces skenování kódu, který zachovává ochranu osobních údajů a integritu vašich dat.

Omezení (Public Preview)

Během fáze public Preview platí následující omezení:

  • Bez binární kontroly: Spustí se pouze kód (SAST) a nástroje pro kontrolu IaC.
  • Frekvence skenování: Při povolování prohledává úložiště a pak denně.
  • Velikost úložiště: Omezuje kontrolu na úložiště pod 1 GB.
  • Pokrytí větví: Skenuje pouze výchozí větev (obvykle main).
  • Přizpůsobení nástroje: Nástroje pro skenování nelze přizpůsobit.

Syft (SBOM) má v současné době následující omezení:

  • SBOMs nejde stáhnout, výsledky Syftu je možné použít k dotazování konkrétních balíčků a úložišť, která je používají.

  • Úložiště potřebuje zamknout soubor, jinak budou nalezeny pouze přímé závislosti.

  • Omezení velikosti SBOM je omezeno na 1 MB. Pokud je identifikováno velké množství balíčků, náš příjem dat do cloudové mapy selže.

  • Povolení SBOM není možné konfigurovat ani stáhnout. SBOM se vygeneruje při každé kontrole bez použití agentů.

  • Časový limit je nastavený na 15 minut, než se nástroj SBOM spustí.

  • Zakázání funkce Agentless neodstraní doporučení SBOM.