Security Control v3: zabezpečení DevOps
DevOps Security se zabývá kontrolami souvisejícími s technikou zabezpečení a provozem v procesech DevOps, včetně nasazení kritických kontrol zabezpečení (jako je testování zabezpečení statických aplikací, správa ohrožení zabezpečení) před fází nasazení, aby se zajistilo zabezpečení v celém DevOps proces; 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 | ID PCI-DSS v3.2.1 |
---|---|---|
16.10, 16.14 | SA-15 | 6.5, 12.2 |
Princip zabezpečení: Modelování hrozeb za účelem identifikace potenciálních hrozeb a vytvoření výčtu kontrolních mechanismů pro zmírnění rizik Zajistěte, aby modelování hrozeb sloužilo následujícím účelům:
- Zabezpečte své aplikace a služby v produkční fázi běhu.
- Zabezpečte artefakty, podkladový 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. Ujistěte se, že se tyto požadavky odpovídajícím způsobem řeší při modelování hrozeb.
- Analyzujte komponenty aplikací, datová 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 potenciální hrozby a vektory útoku, kterým mohou být vystaveny komponenty vaší aplikace, datová připojení a nadřazené a podřízené služby.
- Identifikujte příslušné bezpečnostní prvky, které je možné použít ke zmírnění hrozeb, které jsou výčtem 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 navrhujte ovládací prvky, které můžou zmírnit zjištěné chyby zabezpečení.
Pokyny k Azure: Použití nástrojů pro modelování hrozeb, jako je nástroj microsoftu pro modelování hrozeb s vloženou šablonou modelu hrozeb Azure, vám umožní řídit proces modelování hrozeb. 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 například injektáž škodlivého kódu prostřednictvím nezabezpečeného úložiště artefaktů s nesprávně nakonfigurovanými zásadami řízení přístupu.
Pokud použití nástroje pro modelování hrozeb není vhodné, 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 ke zásadní změně dopadu na zabezpečení.
Implementace a další kontext:
- Přehled modelování hrozeb
- Analýza hrozeb aplikací (včetně metody založené na strIDE + dotazníku)
- Šablona Azure – Vzorník modelu ohrožení zabezpečení Microsoftu
Úč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 | ID PCI-DSS v3.2.1 |
---|---|---|
16.4, 16.6, 16.11 | SA-12, SA-15 | 6.3, 6.5 |
Princip zabezpečení: Zajistěte, aby váš podnikový SDLC (životní cyklus vývoje softwaru) nebo proces zahrnoval sadu bezpečnostních prvků pro řízení interních a softwarových komponent třetích stran (včetně proprietárního i opensourcového softwaru), kde vaše aplikace mají závislosti. Definujte kritéria pro zabránění integraci a nasazení ohrožených nebo škodlivých komponent do prostředí.
Bezpečnostní mechanismy dodavatelského řetězce softwaru by měly zahrnovat alespoň následující aspekty:
- Identifikujte upstreamové závislosti potřebné ve fázi vývoje, sestavení, integrace a nasazení.
- Inventarizace a sledování interních softwarových komponent třetích stran pro známé ohrožení zabezpečení, pokud je v upstreamu k dispozici oprava.
- Posouzení ohrožení zabezpečení a malwaru v softwarových komponentách pomocí statického a dynamického testování aplikací z neznámých ohrožení zabezpečení
- Pomocí vhodného přístupu se ujistěte, že se zmírní ohrožení zabezpečení a malware. To může zahrnovat místní nebo upstreamové řešení 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í zavřené zdrojové komponenty třetích stran, je možné, že máte omezenou viditelnost stavu zabezpečení. Měli byste zvážit další kontroly, jako je řízení přístupu, izolace sítě a zabezpečení koncových bodů, abyste minimalizovali dopad, pokud je k komponentě přidružená škodlivá aktivita nebo ohrožení zabezpečení.
Pokyny k Azure: Pro platformu GitHub zajistěte zabezpečení softwarového dodavatelského řetězce prostřednictvím následujících možností nebo nástrojů z nativní funkce GitHub Advanced Security nebo GitHub:
- Pomocí Graph závislostí můžete prohledávat, inventarizace a identifikovat všechny závislosti projektu a související ohrožení zabezpečení prostřednictvím poradní databáze.
- Pomocí Dependabotu se ujistěte, že je ohrožená závislost sledována a opravována, a ujistěte se, že vaše úložiště automaticky udržuje nejnovější verze balíčků a aplikací, na kterých závisí.
- Ke kontrole zdrojového kódu použijte GitHub nativní funkci kontroly kódu při získávání kódu z externího kódu.
- Pomocí Azure Defender for Cloud můžete integrovat posouzení ohrožení zabezpečení pro image kontejneru v pracovním postupu CI/CD.
Pro Azure DevOps můžete použít rozšíření třetích stran k implementaci podobných ovládacích prvků, jako je inventář, analýza a náprava softwarových komponent třetích stran a jejich ohrožení zabezpečení.
Implementace a další kontext:
- Graph závislostí GitHub
- GitHub Dependabot
- Identifikace ohrožených imagí kontejnerů v pracovních postupech CI/CD
- Azure DevOps Marketplace – zabezpečení dodavatelského řetězce
Úč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 | ID PCI-DSS v3.2.1 |
---|---|---|
16.7 | CM-2, CM-6, AC-2, AC-3, AC-6 | 2.2, 6.3, 7.1 |
Princip zabezpečení: Zajistěte, aby infrastruktura DevOps a kanál dodržovaly osvědčené postupy zabezpečení napříč prostředími, včetně fází sestavení, testování a produkčních fází. To obvykle zahrnuje bezpečnostní prvky pro následující obor:
- Úložiště artefaktů, která ukládají zdrojový kód, sestavené balíčky a obrázky, artefakty projektu a obchodní data.
- Servery, služby a nástroje, které hostují kanály CI/CD.
- Konfigurace kanálu CI/CD
Doprovodné materiály k Azure: V rámci použití srovnávacího testu zabezpečení Azure na ovládací prvky zabezpečení infrastruktury DevOps určete prioritu následujících ovládacích prvků:
- Chraňte artefakty a podkladové prostředí, abyste zajistili, že se kanály CI/CD stanou cestami pro 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é, Pipelines (verze buildu&), 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 podobné ovládací prvky k zabezpečení úrovní oprávnění organizace.
- Nakonfigurujte v kanálu zásady oprávnění a oprávnění identit a rolí v nástrojích Azure AD, nativních službách a CI/CD, abyste zajistili, že jsou změny v kanálech autorizované.
- Vyhněte se zajištění trvalého privilegovaného přístupu k lidským účtům, jako jsou vývojáři nebo testery, pomocí funkcí, jako jsou spravované 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 spouštíte agenty sestavení nebo 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ě, stavu a správa ohrožení zabezpečení a zabezpečení koncových bodů.
Implementace a další kontext:
- Přehled ovládacích prvků DevSecOps – zabezpečené kanály
- Zabezpečení organizace GitHub
- kanál Azure DevOps – důležité informace o zabezpečení agenta hostovaného Microsoftem
Účastníci zabezpečení zákazníků (další informace):
- Zabezpečení aplikací a DevSecOps
- Správa stavu
- Zabezpečení infrastruktury a koncových bodů
- Architektura zabezpečení
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 | ID PCI-DSS v3.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ů v pracovním postupu CI/CD. Gating lze nastavit na základě výsledků testování, aby se ohrožené balíčky mohly do úložiště vkládat, sestavovat do balíčků nebo nasazovat do produkčního prostředí.
Pokyny k Azure: Integrace SAST do kanálu, aby se zdrojový kód mohl automaticky naskenovat v pracovním postupu CI/CD. Azure DevOps Pipeline nebo GitHub může do pracovního postupu integrovat nástroje níže a nástroje SAST třetích stran.
- GitHub CodeQL pro analýzu zdrojového kódu.
- Binární analyzátor Microsoft BinSkim pro Windows a *nix binary analysis.
- Azure DevOps skener přihlašovacích údajů a GitHub nativní vyhledávání tajných kódů pro kontrolu přihlašovacích údajů ve zdrojovém kódu.
Implementace a další kontext:
- GitHub CodeQL
- Binární analyzátor BinSkim
- kontrola přihlašovacích údajů Azure DevOps
- Skenování tajných kódů GitHubu
Účastníci zabezpečení zákazníků (další informace):
DS-5: Integrace dynamického testování zabezpečení aplikací do kanálu DevOps
Ovládací prvky CIS v8 ID | NIST SP 800-53 r4 ID | ID PCI-DSS v3.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ů v pracovním postupu CI/CD. Gating lze nastavit na základě výsledků testování, aby se zabránilo ohrožení zabezpečení v sestavování balíčků nebo nasazení do produkčního prostředí.
Pokyny k Azure: Integrace DAST do kanálu, aby bylo možné aplikaci runtime otestovat automaticky v pracovním postupu CI/CD nastaveném v Azure DevOps nebo GitHub. Automatizované penetrační testování (s ručním ověřováním s asistencí) by také mělo být součástí DAST.
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 v průběhu životního cyklu DevOps
Ovládací prvky CIS v8 ID | NIST SP 800-53 r4 ID | ID PCI-DSS v3.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 můžete vyhodnotit ovládací prvky (jako je zabezpečení sítě, správa identit, privilegovaný přístup atd.), které je možné nastavit jako ochranné mantinely ve výchozím nastavení nebo přesunout doleva před fází nasazení. Ujistěte se zejména, že jsou ve vašem procesu DevOps splněné 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 snížili lidské chyby a prostor pro útoky.
- 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 do produkčního prostředí možnosti posouzení ohrožení zabezpečení a detekci hrozeb a v době běhu tyto funkce průběžně používejte.
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 obrázkům různými uživateli, instančními objekty nebo skupinami AD ve vaší organizaci. Pomocí řízení přístupu na základě role Azure (Azure RBAC) se ujistěte, že k vašim vlastním imagím mají 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í, šablony Azure Resource Manager a/nebo Azure Policy konfigurace hosta pro nasazení a vynucování těchto standardních hodnot konfigurace.
Pokyny ke službám kontejneru Azure:
- Pomocí Azure Container Registry (ACR) vytvořte registr privátního kontejneru, kde je možné podrobný přístup omezit prostřednictvím Azure RBAC, takže ke kontejnerům v privátním registru mají přístup jenom autorizované služby a účty.
- Použijte Defender pro Azure Container Registry k posouzení ohrožení zabezpečení imagí ve vašem privátním Azure Container Registry. Kromě toho můžete použít Azure Defender for Cloud ke kontrole imagí kontejnerů jako součást pracovních postupů CI/CD.
U bezserverových služeb Azure přijměte podobné ovládací prvky, aby se zajistilo, že se ovládací prvky zabezpečení před nasazením posunou do fáze.
Implementace a další kontext:
- přehled Shared Image Gallery
- Implementace doporučení k posouzení ohrožení zabezpečení Defender for Cloud Azure
- Důležité informace o zabezpečení pro kontejner Azure
- Azure Defender pro registry kontejnerů
Účastníci zabezpečení zákazníků (další informace):
DS-7: Povolení protokolování a monitorování v DevOps
Ovládací prvky CIS v8 ID | NIST SP 800-53 r4 ID | ID PCI-DSS v3.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šechny další vývojové procesy). Ohrožení zabezpečení a hrozby zaměřené na tato prostředí můžou v produkčním prostředí představovat významná rizika, pokud nejsou správně monitorovány. Události z sestavení CI/CD, testovacího pracovního postupu a pracovního postupu nasazení by měly být také monitorovány a identifikovat případné odchylky v úlohách pracovního postupu CI/CD.
Pokyny k Azure: Povolte a nakonfigurujte možnosti protokolování auditu v neprodukčním prostředí a prostředí nástrojů CI/CD (například Azure DevOps a GitHub), které se používají v celém procesu DevOps.
Události z Azure DevOps a GitHub práce CI/CD pro sestavení, testovací úlohy a úlohy nasazení by měly být také monitorovány a identifikovat případné výjimky v úlohách CI/CD.
Ingestování výše uvedených protokolů a událostí do Služby Azure Sentinel nebo jiných nástrojů SIEM prostřednictvím streamu protokolování nebo rozhraní API za účelem zajištění správného monitorování a třídění incidentů zabezpečení pro zpracování.
Postupujte podle srovnávacího testu zabezpečení Azure – protokolování a detekce hrozeb jako vodítka k implementaci vašich kontrolních mechanismů protokolování a monitorování pro úlohy.
Implementace a další kontext:
Účastníci zabezpečení zákazníků (další informace):