Trace Id is missing
Přeskočit na hlavní obsah
Zabezpečení od Microsoftu

Co je DevSecOps?

Zjistěte, jak integrovat postupy zabezpečení do každé fáze životního cyklu vývoje softwaru napříč multicloudovým prostředím.

Definice DevSecOps

DevSecOps, což je zkratka z anglického Development, Security a Operations (Vývoj, zabezpečení a provoz), je architektura, která integruje zabezpečení do všech fází životního cyklu vývoje softwaru. Organizace tento přístup používají, aby snížily riziko uvolnění kódu obsahujícího ohrožení zabezpečení. Díky spolupráci, automatizaci a jasným procesům sdílejí týmy odpovědnost za zabezpečení a nenechávají ho až na konec, kdy může být řešení problémů mnohem obtížnější a nákladnější. DevSecOps je důležitou součástí strategie multicloudového zabezpečení.

DevSecOps versus DevOps

Při tradičním vývoji softwaru jsou projekty rozděleny do jednotlivých fází plánování, návrhu, vývoje, integrace a testování, které probíhají postupně několik měsíců nebo dokonce let. Ačkoli je tento přístup velmi metodický, mnoho organizací zjistilo, že je příliš pomalý, což ztěžuje plnění očekávání zákazníků ohledně neustálého zdokonalování produktů. Kromě toho se zabezpečení obvykle řeší až na samém konci, čímž se společnosti vystavují riziku narušení zabezpečení.

Aby společnosti mohly zůstat konkurenceschopné, zavedla řada z nich model DevOps, v rámci kterého se upřednostňuje doručování menších balíčků vysoce kvalitního kódu před projekty s velkým množstvím funkcí, jejichž dokončení trvá déle. V rámci této strategie spolupracují týmy odpovědné za vývoj a provoz softwaru na tom, aby celý proces zahrnoval testování a integraci. Automatizace, standardizované procesy a spolupráce pomáhají týmům postupovat rychle bez obětování kvality.

DevSecOps je vylepšením přístupu DevOps, který začleňuje zabezpečení do všech aspektů procesu. Cílem je řešit otázky zabezpečení od samého začátku projektu. V rámci této strategie nese celý tým odpovědnost nejen za zajištění kvality a integraci kódu, ale také za zabezpečení. V praxi to znamená, že týmy diskutují o dopadech na zabezpečení již během plánování, začínají při testování odhalovat potenciální problémy se zabezpečením již ve vývojových prostředích a nečekají až na konec. Tento přístup se také označuje jako princip „shift left security“.

Proč je přístup DevSecOps důležitý?

Útočníci používají k získání přístupu k datům a prostředkům organizace celou řadu metod, ale běžnou taktikou je zneužití softwarových chyb (ohrožení) zabezpečení. Tyto typy případů narušení zabezpečení jsou nákladné, časově náročné a v závislosti na jejich závažnosti mohou poškodit dobrou pověst společnosti. Architektura DevSecOps snižuje riziko nasazení softwaru s chybnými konfiguracemi a dalšími ohroženími zabezpečení, které by mohli útočníci zneužít.

Klíčové součásti procesu DevSecOps

Úspěšný proces DevSecOps zahrnuje následující součásti:

  • Kontinuální integrace

    Díky kontinuální integraci vývojáři potvrzují svůj kód do centrálního úložiště několikrát denně. Kód se pak automaticky integruje a testuje. Tento přístup umožňuje týmům zachytit problémy s integrací a chyby v rané fázi procesu a nečekat až na konec, kdy by pak mohlo být potřeba vyřešit větší počet problémů najednou.

  • Průběžné doručování

    Průběžné doručování navazuje na kontinuální integraci a automatizuje proces přesunu kódu z prostředí sestavení do přípravného prostředí. Při přípravě se kromě testování částí automaticky testuje software, aby se zajistilo, že uživatelské rozhraní funguje, kód se úspěšně integruje, že rozhraní API jsou spolehlivá a že software zvládne očekávaný objem provozu. Cílem tohoto přístupu je konzistentně doručovat kód připravený pro produkční prostředí, který bude zákazníkům poskytovat hodnotu.

  • Nepřetržité zabezpečení

    Klíčovou součástí DevSecOps je začlenění zabezpečení do celého životního cyklu vývoje softwaru. To zahrnuje modelování hrozeb v rané fázi procesu a automatizované testování zabezpečení v průběhu celého životního cyklu, počínaje vlastním prostředím vývojářů. Díky včasnému, častému a důkladnému testování softwaru na bezpečnostní problémy mohou organizace efektivně doručovat software s minimem problémů.

  • Komunikace a spolupráce

    Proces DevSecOps je velmi závislý na úzké spolupráci jednotlivců a týmů. Kontinuální integrace vyžaduje spolupráci lidí při řešení konfliktů v kódu a týmy musí efektivně komunikovat, aby se dokázaly shodnout na stejných cílech.

Jak DevSecOps implementovat

Přidání zabezpečení do procesu DevOps vyžaduje pečlivé plánování. Začněte pomalu s procesy, které jsou pro týmy nejméně problematické a u kterých lze očekávat největší přínos z hlediska zabezpečení. Uvádíme několik způsobů, jak do typického vývojového sprintu DevOps přidat zabezpečení.

  • Plánování a vývoj

    Zavedení zabezpečení na začátku vývojových sprintů nejenže pomáhá omezit ohrožení zabezpečení v pozdějších fázích vývoje, ale také šetří čas, protože je snazší řešit problémy dříve, než je kód zkompilován a integrován. Během plánování a vývoje pomocí modelování hrozeb identifikujte a zmírněte potenciální hrozby pro aplikaci. Pomůže vám to začlenit zabezpečení do aplikace hned od začátku. Abyste dokázali odhalit problémy se zabezpečením ještě před potvrzením kódu do sdíleného úložiště, implementujte automatické kontroly, jako jsou například moduly plug-in pro zabezpečení integrovaného vývojového prostředí (IDE), které vývojářům poskytnou okamžitou zpětnou vazbu, pokud by se v kódu, který napsali, objevilo potenciální bezpečnostní riziko. Během revize kódu požádejte někoho s odbornými znalostmi v oblasti zabezpečení, aby vám poradil, jak kód vylepšit.

  • Potvrzení kódu

    Jedním z klíčů k úspěšnému procesu DevSecOps je kontinuální integrace. Vývojáři obvykle svůj kód potvrzují do centrálního úložiště několikrát denně, aby se zajistilo, že budou včas zachyceny problémy s integrací. V této fázi je důležité přidat automatické kontroly zabezpečení. Může jít o kontrolu knihoven a závislostí třetích stran, testování částí a statické testování zabezpečení aplikací (SAST –⁠ Static Application Security Testing). Důležité je také nasadit řízení přístupu na základě rolí, aby byla infrastruktura pro kontinuální integraci a průběžné doručování chráněna před útočníky, kteří by mohli chtít spustit škodlivý kód nebo odcizit přihlašovací údaje.

  • Sestavování a testování

    Spouštění automatizovaných skriptů zabezpečení v testovacím prostředí pomáhá odhalit potenciální problémy, které se dříve nezjistily. Mezi testy zabezpečení, které můžete v této fázi spustit, patří dynamické testování zabezpečení aplikací, kontrola infrastruktury, kontrola kontejnerů, ověření konfigurace cloudu a akceptační testování zabezpečení.

  • Produkční prostředí

    Po nasazení aplikace do produkčního prostředí provádějí některé organizace penetrační testování, aby se pokusily najít slabá místa v živém prostředí. Při penetračním testování jde o to vžít se do role útočníka a hledat způsoby, jak aplikaci prolomit.

  • Provoz

    Ani sebelepší proces DevSecOps nedokáže zachytit vše, je proto velmi důležité monitorovat aplikace z hlediska ohrožení zabezpečení a hrozeb nepřetržitě. Analytická data vám můžou pomoct vyhodnotit, jestli se vaše pozice z hlediska stavu zabezpečení zlepšuje, a upozornit na oblasti, kde by mohl být prostor pro optimalizaci.

Nástroje a technologie DevSecOps

Při výběru nástrojů zabezpečení je důležité vybrat takové, které budou dobře spolupracovat s vaší aktuální technologií DevOps. To usnadní začlenění zabezpečení do celého procesu. Níže uvádíme několik typů nástrojů, které byste mohli potřebovat:

  • Nástroje pro kontrolu infrastruktury jako kódu

    Pro zvýšení efektivity používají týmy DevSecOps obvykle opensourcové nástroje (například Terraform) ke správě a zřizování infrastruktury (například sítě, virtuální počítače a nástroje pro vyrovnávání zatížení) prostřednictvím kódu, místo aby to dělaly ručně. Terraform pomáhá zajistit konzistentní nastavení a aktualizaci infrastruktury na stovkách nebo tisících serverů. Aby se snížilo riziko nasazení chybných konfigurací do produkčního prostředí, nástroje pro kontrolu infrastruktury jako kódu automaticky kontrolují infrastrukturu na úrovni kódu, aby se zjistilo, jestli někde není v rozporu se zásadami a standardy zabezpečení.

  • Statické testování zabezpečení aplikací (SAST)

    Ještě před zkompilováním kódu začnou vývojáři DevSecOps testovat svůj vlastní kód na chyby (ohrožení) zabezpečení. To jim pomůže vyřešit problémy, aniž by to mělo vliv na sestavení. Nástroje pro statické testování zabezpečení aplikací (SAST) tento proces usnadňují díky automatickým kontrolám a zpětné vazbě v reálném čase. Mnohé nástroje dokážou přesně určit, který kód je rizikový, a nabízet navrhované opravy.

  • Analýza složení softwaru

    Jedním ze způsobů, jak mohou týmy efektivněji sestavovat aplikace a funkce, je používání modulů plug-in a architektur třetích stran. Tyto předpřipravené nástroje šetří čas, ale mohou také přinášet rizika, jako jsou problémy s licencováním, špatně napsaný kód nebo chyby (ohrožení) zabezpečení. Nástroje pro analýzu složení softwaru identifikují opensourcové součásti v aplikacích a vyhodnocují je oproti proprietárním nebo bezplatným databázím, aby odhalily nedodržení licenčních podmínek a problémy se zabezpečením a kvalitou.

  • Interaktivní testování zabezpečení aplikací (IAST)

    Během testování pro kontrolu kvality nebo při používání aplikace kontrolují nástroje pro interaktivní testování zabezpečení aplikací kód na výskyt ohrožení zabezpečení a generují reporty s informacemi o tom, kde v kódu se problém vyskytuje.

  • Dynamické testování zabezpečení aplikací (DAST)

    Dynamické testování zabezpečení aplikací napodobuje metody, které by mohl útočník použít k napadení aplikace. Toto testování probíhá za běhu aplikace a je založeno na předem definovaných případech použití.

  • Kontrola kontejnerů

    Kontejnery jsou v DevSecOps hojně využívány, protože pomáhají vývojářům snadno nasadit samostatné jednotky kódu. Kontejner obsahuje image kontejneru zahrnující kód, který spouští procesy pro kontejner. Tyto image se však často vytvářejí na základě existujících imagí nebo se získávají z veřejných úložišť. Nástroje pro kontrolu kontejnerů kontrolují kontejnery a porovnávají je s veřejnými nebo proprietárními databázemi ohrožení zabezpečení, aby odhalily potenciální problémy se zabezpečením.

Osvědčené postupy DevSecOps

DevSecOps je jak o změně kultury, tak o procesech a nástrojích. Tady je několik osvědčených postupů, které vám pomůžou přijmout tento koncept co nejúspěšněji.

  • Posun kultury

    Je potřeba si uvědomit, že pro lidi může být obtížné změnit způsob práce a že mohou vznikat konflikty. Abyste jim pomohli přizpůsobit se, informujte je jasně o cílech a očekáváních organizace, zajistěte dostatek příležitostí k otevřenému dialogu a počítejte s tím, že budete muset být flexibilní, dokud týmy nenajdou nástroje, postupy a tempo, které jim budou nejlépe vyhovovat.

  • Definování požadavků a metrik

    Stanovte minimální základní úroveň zabezpečení. Pokyny najdete v oborových a zákonných požadavcích nebo v dokumentu The Open Worldwide Application Security Project® (OWASP) Top Ten s deseti nejzávažnějšími riziky pro webové aplikace a v dokumentu SANS Top 25 uvádějícím 25 nejzávažnějších softwarových chyb. Po definování požadavků určete, které metriky chcete sledovat, abyste mohli monitorovat svůj pokrok.

  • Začněte v malém

    Nástroje pro automatizaci zabezpečení nabízejí mnoho možností kontroly kódu na výskyt problémů, ale když je zapnete všechny, zejména na začátku zavádění DevSecOps, může to váš tým zahltit. Rozmyslete si, které nástroje použijete a jaké množství problémů budete chtít detekovat.

  • Modelování hrozeb

    Vytvořte si proces modelování hrozeb, který může být tak jednoduchý nebo tak podrobný a technický, jak budete potřebovat. Pomocí tohoto přístupu zdokumentujte realistický pohled na zabezpečení vaší aplikace, který zahrnuje následující:

    • Jak mohou útočníci zneužít návrh aplikace
    • Jak opravit ohrožení zabezpečení
    • Priorita různých problémů
  • Implementace automatizace

    Automatizace je klíčem k zajištění kvality i rychlosti procesu DevSecOps. Začleněním automatizovaných kontrol zabezpečení do všech fází životního cyklu kontinuální integrace a průběžného doručování budete schopni zlepšit zabezpečení svých aplikací, aniž by se proces výrazně zpomalil.

  • Správa závislostí

    Většina vývojářů používá k efektivnímu sestavování aplikací balíčky a knihovny třetích stran. Problémem je v tom, že některá z těchto řešení mají bezpečnostní chyby a vývojáři je ne vždy pečlivě udržují v aktualizovaném stavu. Pro snížení rizika se ujistěte, že součásti, které používáte, jsou prověřeny z hlediska bezpečnostních rizik, a vytvořte standardizovaný proces jejich aktualizace.

  • Vyhodnocování a vylepšování

    Pravidelně vyhodnocujte, jak proces funguje, a podle potřeby ho upravujte, abyste zajistili, že vaše organizace dosahuje svých cílů. Po skončení sprintu může následná analýza zaměřená čistě na to, jak k problému došlo, nikoli na to, kdo ho zavinil, pomoct odhalit příležitosti ke zlepšení. Analytická data a analýza hrozeb vám také pomohou zjistit, jestli neexistují potřeby ohledně zabezpečení, které váš současný přístup nesplňuje.

DevSecOps pro aplikace nativní pro cloud

Aplikace nativní pro cloud jsou navrženy pro cloud a jsou obvykle nezávislé na dodavateli, takže je lze přenášet mezi cloudy. Jsou navrženy tak, aby byly vysoce škálovatelné a odolné, a vývojové týmy je obvykle vytvářejí pomocí mikroslužeb, kontejnerů a automatizace, jsou proto ideální pro proces DevSecOps. Začlenění nepřetržitého zabezpečení, kontinuální integrace a průběžného doručování do procesu vývoje aplikací nativních pro cloud umožňuje škálovatelnost bez kompromisů v oblasti zabezpečení. Pomocí automatizovaných řešení zabezpečení, jako je Microsoft Defender for DevOps, můžete zabezpečit svůj kód a celý kanál DevOps. Po nasazení aplikace do cloudu ji dál monitorujte z hlediska rizik. Platformy ochrany cloudových pracovních workloadů (CWPP) pomáhají chránit tyto aplikace a podkladová data tím, že detekují a zmírňují hrozby pro úlohy v multicloudových prostředích. Řešení správy stavu cloudového zabezpečení (CSPM) odhalují a odstraňují chybné konfigurace a ohrožení zabezpečení napříč celým prostředím.

Další informace o zabezpečení od Microsoftu

Microsoft Defender for Cloud

Chraňte multicloudová a hybridní prostředí od vývoje až po provoz pomocí komplexní platformy pro ochranu nativních cloudových aplikací.

Microsoft Defender for Cloud Apps

Modernizujte způsob zabezpečení aplikací, chraňte svá data a zvyšte úroveň stavu zabezpečení aplikací pomocí tohoto řešení software jako služba (SaaS).

Správa stavu zabezpečení v programu Microsoft Defender for Cloud

Zaměřte se na nejzásadnější rizika ve vašem multicloudovém prostředí pomocí kontextové správy stavu cloudového zabezpečení.

Microsoft Defender for DevOps

Získejte jednotnou správu zabezpečení DevOps pro multicloudová a multikanálová prostředí.

Časté otázky

  • DevSecOps je proces, který integruje zabezpečení do celého životního cyklu vývoje softwaru. Organizace tento přístup používají, aby snížily riziko uvolnění kódu obsahujícího ohrožení zabezpečení. Díky spolupráci, automatizaci a jasným procesům sdílejí týmy odpovědnost za zabezpečení a nenechávají ji až na konec, kdy může být řešení problémů mnohem obtížnější a nákladnější.

  • DevSecOps je zkratka z anglického Development, Security a Operations (Vývoj, zabezpečení a provoz). Jedná se o proces integrace zabezpečení do všech fází vývoje softwaru.

  • Shift left (posun doleva) je koncept v DevSecOps, který odkazuje na začlenění postupů zabezpečení již od samého začátku procesu vývoje.

  • Architektura DevSecOps zahrnuje kontinuální integraci, průběžné doručování a nepřetržité zabezpečení. Jedná se o metodu, pomocí níž týmy zabezpečení a provozu spolupracují a sdílejí odpovědnost za rychlé doručování kvalitního softwaru při současném snižování počtu chyb (ohrožení) zabezpečení.

  • Neexistuje žádný univerzální proces DevSecOps, ale běžně se tyto projekty řídí tak, že se práce rozdělí do sprintů, z nichž každý zahrnuje následující součásti: plánování a vývoj, sestavení a testování a produkční prostředí. V průběhu sprintu používají týmy automatizaci k průběžnému řešení problémů se zajištěním kvality, průběžné integraci a průběžnému testování na rizika zabezpečení.

Sledujte zabezpečení od Microsoftu