Řízení zabezpečení v3: Zabezpečení DevOps

DevOps Security se zabývá ovládacími prvky souvisejícími s technikou zabezpečení a operacemi v procesech DevOps, včetně nasazení důležitých kontrol zabezpečení (jako je testování zabezpečení statických aplikací nebo správa ohrožení zabezpečení) před fází nasazení, aby se zajistilo zabezpečení v celém procesu DevOps. zahrnuje také běžná témata, jako je modelování hrozeb a zabezpečení dodávek softwaru.

DS-1: Modelování hrozeb

ID ovládacích prvků CIS v8 NIST SP 800-53 r4 ID(s) ID PCI-DSS verze 3.2.1
16.10, 16.14 SA-15 6.5, 12.2

Princip zabezpečení: Proveďte modelování hrozeb, abyste identifikovali potenciální hrozby a vyčíslil kontrolní mechanismy pro zmírnění rizik. Ujistěte se, že modelování hrozeb slouží k následujícím účelům:

  • Zabezpečte své aplikace a služby ve fázi produkčního běhu.
  • Zabezpečte artefakty, základní kanál CI/CD a další prostředí nástrojů používané k sestavení, testování a nasazení.

Modelování hrozeb by mělo zahrnovat alespoň následující aspekty:

  • Definujte požadavky na zabezpečení aplikace. Zajistěte, aby byly tyto požadavky odpovídajícím způsobem vyřešeny při modelování hrozeb.
  • Analýza komponent aplikace, datových připojení a jejich vztahů Ujistěte se, že tato analýza zahrnuje také upstreamová a podřízená připojení mimo rozsah vaší aplikace.
  • Uveďte seznam potenciálních hrozeb a vektorů útoku, kterým můžou být vystaveny komponenty vaší aplikace, datová připojení a upstreamové a podřízené služby.
  • Identifikujte příslušné bezpečnostní prvky, které se dají použít ke zmírnění vyčíslených hrozeb, a identifikujte případné nedostatky kontrolních mechanismů (např. ohrožení zabezpečení), které mohou vyžadovat další plány léčby.
  • Vytvořte výčet a návrh ovládacích prvků, které můžou zmírnit zjištěné chyby zabezpečení.

Pokyny pro Azure: K řízení procesu modelování hrozeb použijte nástroje pro modelování hrozeb, jako je nástroj Microsoftu pro modelování hrozeb, a vloženou šablonu modelu hrozeb Azure. Pomocí modelu STRIDE můžete vytvořit výčet hrozeb z interních i externích a identifikovat použitelné ovládací prvky. Ujistěte se, že proces modelování hrozeb zahrnuje scénáře hrozeb v procesu DevOps, jako je injektáž škodlivého kódu prostřednictvím nezabezpečeného úložiště artefaktů s chybně nakonfigurovanými zásadami řízení přístupu.

Pokud není použití nástroje pro modelování hrozeb použitelné, měli byste k identifikaci hrozeb použít minimálně proces modelování hrozeb založený na dotazníku.

Ujistěte se, že se výsledky modelování hrozeb nebo analýzy zaznamenávají a aktualizují, když ve vaší aplikaci nebo v oblasti hrozeb dojde k významné změně s dopadem na zabezpečení.

Implementace a další kontext:

Účastníci zabezpečení zákazníků (další informace):

DS-2: Zajištění zabezpečení dodavatelského řetězce softwaru

ID ovládacích prvků CIS v8 NIST SP 800-53 r4 ID(s) ID PCI-DSS verze 3.2.1
16.4, 16.6, 16.11 SA-12, SA-15 6.3, 6.5

Princip zabezpečení: Ujistěte se, že SDLC (životní cyklus vývoje softwaru) nebo proces vašeho podniku obsahuje sadu bezpečnostních prvků, které řídí interní softwarové komponenty a komponenty softwaru třetích stran (včetně proprietárního i opensourcového softwaru), kde mají vaše aplikace závislosti. Definujte kritéria pro určení, abyste zabránili integraci a nasazení ohrožených nebo škodlivých komponent do prostředí.

Bezpečnostní kontroly dodavatelského řetězce softwaru by měly zahrnovat alespoň následující aspekty:

  • Identifikujte upstreamové závislosti vyžadované ve fázi vývoje, sestavení, integrace a nasazení.
  • Inventarizaci a sledování interních softwarových komponent a softwarových komponent třetích stran z hlediska známého ohrožení zabezpečení v případě, že je v upstreamu k dispozici oprava.
  • Vyhodnoťte ohrožení zabezpečení a malware v softwarových komponentách pomocí statického a dynamického testování aplikací z hlediska neznámých ohrožení zabezpečení.
  • Ujistěte se, že ohrožení zabezpečení a malware jsou zmírněné pomocí vhodného přístupu. To může zahrnovat místní nebo upstreamovou opravu zdrojového kódu, vyloučení funkcí nebo použití kompenzačních ovládacích prvků, pokud přímé zmírnění rizik není k dispozici.

Pokud se ve vašem produkčním prostředí používají uzavřené zdrojové komponenty třetích stran, můžete mít omezený přehled o stavu zabezpečení. Měli byste zvážit další ovládací prvky, jako je řízení přístupu, izolace sítě a zabezpečení koncových bodů, abyste minimalizovali dopad, pokud je s komponentou spojená škodlivá aktivita nebo ohrožení zabezpečení.

Pokyny pro Azure: Pro platformu GitHub zajistěte zabezpečení softwarového dodavatelského řetězce pomocí následujících funkcí nebo nástrojů z GitHub Advanced Security nebo nativní funkce GitHubu:

  • Pomocí graphu závislostí můžete kontrolovat, inventarizaci a identifikovat všechny závislosti a související ohrožení zabezpečení projektu prostřednictvím databáze advisory.
  • Pomocí Dependabotu se ujistěte, že je ohrožená závislost sledována a napravena, a ujistěte se, že vaše úložiště automaticky udržuje krok s nejnovějšími verzemi balíčků a aplikací, na kterých závisí.
  • Při získávání kódu z externího zdroje použijte funkci nativní kontroly kódu GitHubu ke kontrole zdrojového kódu.
  • Pomocí Azure Defenderu for Cloud můžete integrovat posouzení ohrožení zabezpečení pro image kontejneru do pracovního postupu CI/CD.

V případě Azure DevOps můžete pomocí rozšíření třetích stran implementovat podobné ovládací prvky pro inventarizaci, analýzu a nápravu softwarových komponent třetích stran a jejich ohrožení zabezpečení.

Implementace a další kontext:

Účastníci zabezpečení zákazníků (další informace):

DS-3: Zabezpečená infrastruktura DevOps

ID ovládacích prvků CIS v8 NIST SP 800-53 r4 ID(s) ID PCI-DSS verze 3.2.1
16.7 CM-2, CM-6, AC-2, AC-3, AC-6 2.2, 6.3, 7.1

Princip zabezpečení: Ujistěte se, že infrastruktura a kanál DevOps dodržují osvědčené postupy zabezpečení napříč prostředími, včetně fází sestavení, testování a produkce. To obvykle zahrnuje ovládací prvky zabezpečení pro následující obor:

  • Úložiště artefaktů, která ukládají zdrojový kód, sestavené balíčky a obrázky, artefakty projektů a obchodní data.
  • Servery, služby a nástroje, které hostují kanály CI/CD.
  • Konfigurace kanálu CI/CD.

Pokyny pro Azure: V rámci použití srovnávacího testu zabezpečení Azure na ovládací prvky zabezpečení infrastruktury DevOps upřednostněte následující ovládací prvky:

  • Chraňte artefakty a podkladové prostředí, abyste zajistili, že se kanály CI/CD nestanou cestou k vložení škodlivého kódu. Zkontrolujte například kanál CI/CD a identifikujte případné chybné konfigurace v základních oblastech Azure DevOps, jako jsou organizace, projekty, uživatelé, kanály (build & verze), připojení a agent sestavení, a identifikujte případné chybné konfigurace, jako je otevřený přístup, slabé ověřování, nezabezpečené nastavení připojení atd. Pro GitHub použijte k zabezpečení úrovní oprávnění organizace podobné ovládací prvky.
  • Nakonfigurujte oprávnění identita/role a zásady oprávnění v Azure AD, nativních službách a nástrojích CI/CD ve vašem kanálu, abyste zajistili, že změny v kanálech budou autorizované.
  • Vyhněte se poskytování trvalého privilegovaného přístupu k lidským účtům, jako jsou vývojáři nebo testeři, pomocí funkcí, jako jsou spravované identifikaci Azure, přístup za běhu.
  • Odeberte klíče, přihlašovací údaje a tajné kódy z kódu a skriptů používaných v úlohách pracovních postupů CI/CD a uchovávejte je v úložišti klíčů nebo v Azure Key Vault.
  • Pokud používáte agenty sestavení/nasazení v místním prostředí, postupujte podle kontrolních mechanismů srovnávacích testů zabezpečení Azure, včetně zabezpečení sítě, správy stavu a ohrožení zabezpečení a zabezpečení koncových bodů a zabezpečte své prostředí.

Implementace a další kontext:

Účastníci zabezpečení zákazníků (další informace):

DS-4: Integrace testování zabezpečení statických aplikací do kanálu DevOps

ID ovládacích prvků CIS v8 NIST SP 800-53 r4 ID(s) ID PCI-DSS verze 3.2.1
16.12 SA-11 6.3, 6.5

Princip zabezpečení: Ujistěte se, že testování zabezpečení statických aplikací (SAST) je součástí ovládacích prvků pro vytváření dat v pracovním postupu CI/CD. Postup je možné nastavit na základě výsledků testování, aby se zabránilo potvrzení ohrožených balíčků do úložiště, sestavení do balíčků nebo nasazení do produkčního prostředí.

Pokyny pro Azure: Integrace SAST do kanálu, aby bylo možné v pracovním postupu CI/CD automaticky zkontrolovat zdrojový kód. Azure DevOps Pipeline nebo GitHub mohou do pracovního postupu integrovat následující nástroje a nástroje SAST třetích stran.

  • GitHub CodeQL pro analýzu zdrojového kódu.
  • Binární analýza Microsoft BinSkim pro Windows a binární analýza *nix.
  • Kontrola přihlašovacích údajů Azure DevOps a nativního tajného klíče GitHubu pro kontrolu přihlašovacích údajů ve zdrojovém kódu.

Implementace a další kontext:

Účastníci zabezpečení zákazníků (další informace):

DS-5: Integrace dynamického testování zabezpečení aplikací do kanálu DevOps

ID ovládacích prvků CIS v8 NIST SP 800-53 r4 ID(s) ID PCI-DSS verze 3.2.1
16.12 SA-11 6.3, 6.5

Princip zabezpečení: Ujistěte se, že dynamické testování zabezpečení aplikací (DAST) je součástí ovládacích prvků pro vytváření dat v pracovním postupu CI/CD. Postup je možné nastavit na základě výsledků testování, aby se zabránilo ohrožení zabezpečení v zabudování do balíčků nebo nasazení do produkčního prostředí.

Pokyny pro Azure: Integrujte dast do kanálu, aby bylo možné automaticky testovat aplikaci modulu runtime v sadě pracovních postupů CI/CD v Azure DevOps nebo GitHubu. Součástí dast by mělo být také automatizované penetrační testování (s ručním asistovaným ověřením).

Azure DevOps Pipeline nebo GitHub podporuje integraci nástrojů DAST třetích stran do pracovního postupu CI/CD.

Implementace a další kontext:

Účastníci zabezpečení zákazníků (další informace):

DS-6: Vynucování zabezpečení úloh během celého životního cyklu DevOps

ID ovládacích prvků CIS v8 NIST SP 800-53 r4 ID(s) ID PCI-DSS verze 3.2.1
7.5, 7.6, 7.7, 16.1, 16.7 CM-2, CM-6, AC-2, AC-3, AC-6 6.1, 6.2, 6.3

Princip zabezpečení: Ujistěte se, že je úloha zabezpečená po celý životní cyklus ve fázi vývoje, testování a nasazení. Pomocí srovnávacího testu zabezpečení Azure vyhodnoťte ovládací prvky (jako je zabezpečení sítě, správa identit, privilegovaný přístup atd.), které je možné ve výchozím nastavení nastavit jako mantinely nebo posunout doleva před fází nasazení. Ujistěte se zejména, že jsou v procesu DevOps zavedeny následující ovládací prvky:

  • Automatizujte nasazení pomocí nástrojů Azure nebo třetích stran v pracovním postupu CI/CD, správě infrastruktury (infrastruktura jako kód) a testování, abyste omezili výskyt lidských chyb a možností útoku.
  • Ujistěte se, že virtuální počítače, image kontejnerů a další artefakty jsou zabezpečené před škodlivou manipulací.
  • Zkontrolujte artefakty úloh (jinými slovy image kontejnerů, závislosti, kontroly SAST a DAST) před nasazením v pracovním postupu CI/CD.
  • Nasaďte funkce posouzení ohrožení zabezpečení a detekce hrozeb do produkčního prostředí a tyto funkce používejte nepřetržitě za běhu.

Pokyny k Azure: Pokyny pro virtuální počítače Azure:

  • Pomocí Azure Shared Image Gallery můžete sdílet a řídit přístup k vašim imagím různými uživateli, instančními objekty nebo skupinami AD v rámci vaší organizace. Pomocí řízení přístupu na základě role v Azure (Azure RBAC) zajistěte, aby k vašim vlastním imagím měli přístup jenom autorizovaní uživatelé.
  • Definujte standardní hodnoty zabezpečené konfigurace pro virtuální počítače, abyste eliminovali nepotřebné přihlašovací údaje, oprávnění a balíčky. Prostřednictvím vlastních imagí azure Resource Manager šablony nebo Azure Policy konfigurace hosta k nasazení a vynucení těchto standardních hodnot konfigurace.

Doprovodné materiály ke službě Azure Container Services:

  • Pomocí Azure Container Registry (ACR) vytvořte registr privátního kontejneru, kde je možné prostřednictvím Azure RBAC omezit podrobný přístup, aby ke kontejnerům v privátním registru mohly přistupovat jenom autorizované služby a účty.
  • K posouzení ohrožení zabezpečení imagí v privátních Azure Container Registry použijte Defender for Azure Container Registry. Kromě toho můžete v rámci pracovních postupů CI/CD použít Azure Defender for Cloud k ingrate container images scan.

U bezserverových služeb Azure přijměte podobné ovládací prvky, abyste zajistili, že se ovládací prvky zabezpečení posunou doleva do fáze před nasazením.

Implementace a další kontext:

Účastníci zabezpečení zákazníků (další informace):

DS-7: Povolení protokolování a monitorování v DevOps

ID ovládacích prvků CIS v8 NIST SP 800-53 r4 ID(s) ID PCI-DSS verze 3.2.1
8.2, 8.5, 8.9, 8.11 AU-3, AU-6, AU-12, SI-4 10.1, 10.2, 10.3, 10.6

Princip zabezpečení: Ujistěte se, že rozsah protokolování a monitorování zahrnuje neprodukční prostředí a prvky pracovního postupu CI/CD používané v DevOps (a všech dalších vývojových procesech). Ohrožení zabezpečení a hrozby, které cílí na tato prostředí, můžou představovat významná rizika pro produkční prostředí, pokud nejsou správně monitorovaná. Události z pracovního postupu sestavení, testování a nasazení CI/CD by měly být také monitorovány, aby bylo možné identifikovat případné odchylky v úlohách pracovního postupu CI/CD.

Pokyny pro Azure: Povolte a nakonfigurujte možnosti protokolování auditu v neprodukčním prostředí a prostředí nástrojů CI/CD (jako je Azure DevOps a GitHub) používané v celém procesu DevOps.

Události z Ci/CD Azure DevOps a GitHubu fungují pro úlohy sestavení, testování a nasazení, aby bylo možné identifikovat případné výsledky výjimek v úlohách CI/CD.

Ingestujte výše uvedené protokoly a události do Služby Azure Sentinel nebo jiných nástrojů SIEM prostřednictvím streamu protokolování nebo rozhraní API, abyste zajistili správné monitorování a třídění incidentů zabezpečení pro zpracování.

Při implementaci ovládacích prvků protokolování a monitorování pro úlohy postupujte podle srovnávacího testu zabezpečení Azure – Protokolování a detekce hrozeb.

Implementace a další kontext:

Účastníci zabezpečení zákazníků (další informace):