DevSecOps představuje strategii, která integruje bezpečnost do všech fází životního cyklu DevOps, s využitím specializovaných nástrojů.
V kontextu vývoje softwaru je DevOps metodologie, která propojuje vývojářské aktivity s IT operacemi. Hlavním cílem tohoto spojení je zvýšení kvality softwaru a dosažení kontinuálního poskytování aktualizací.
Přidáním aspektů zabezpečení se DevOps transformuje na DevSecOps. Tato disciplína klade důraz na sdílenou odpovědnost za bezpečnost mezi IT a vývojářskými týmy.
Dříve byla bezpečnost výhradní doménou specializovaného týmu, který vstupoval do projektů až v jejich závěrečné fázi. Tento přístup byl funkční v případě dlouhých vývojových cyklů, které trvaly měsíce nebo roky. Nicméně v agilních metodologiích, kde se vývojové cykly měří v týdnech, je nutné brát v úvahu bezpečnostní opatření od počátku až do konce projektu. Zodpovědnost za bezpečnost by měla být sdílena všemi členy vývojových a IT týmů.
Pro efektivní fungování DevSecOps v souladu s agilními principy je nutná automatizace bezpečnostních procesů. Pouze tak se zajistí, že integrace zabezpečení nezpomalí pracovní postup DevOps. Tato automatizace vyžaduje vhodné mechanismy, které umožní propojení vývojových nástrojů, jako jsou IDE, s bezpečnostními funkcemi.
Různé druhy nástrojů DevSecOps
Propojení bezpečnosti s metodologií DevOps může mít různé podoby. Proto existuje celá řada nástrojů DevSecOps, které lze kategorizovat následovně:
- Skenování zranitelností v komponentách s otevřeným zdrojovým kódem: Tyto nástroje identifikují potenciální zranitelnosti v open-source komponentách a knihovnách, které se nacházejí v analyzovaném kódu, včetně všech jejich závislostí.
- Statické a dynamické testování zabezpečení aplikací (SAST/DAST): Statické testování analyzuje zdrojový kód, hledá v něm nezabezpečené části, které by mohly vést k bezpečnostním problémům. Dynamické testování se zaměřuje na bezpečnost běžících aplikací, a to bez potřeby přístupu ke zdrojovému kódu.
- Skenování obrazů: Tyto nástroje hledají zranitelnosti v kontejnerech Docker.
- Automatizace infrastruktury: Slouží k identifikaci a opravě různých konfiguračních problémů a zranitelností v nastavení infrastruktury, zejména v cloudových prostředích.
- Vizualizace: Poskytuje přehled o klíčových metrikách a trendech, aby bylo možné sledovat vývoj počtu zranitelností v čase.
- Modelování hrozeb: Umožňuje proaktivní rozhodování tím, že předvídá rizika hrozeb v celém rozsahu útoku.
- Upozornění: Upozorňuje bezpečnostní tým pouze v případě, že je detekována anomální událost, která je vyhodnocena jako hrozba. To snižuje objem falešných poplachů a minimalizuje narušení pracovních procesů DevSecOps.
Následující seznam představuje vybrané nástroje DevSecOps, které vám mohou pomoci při integraci bezpečnosti do vašich DevOps postupů.
Invicti
Invicti je nástroj, který můžete integrovat do svého SDLC, aby bylo možné spravovat bezpečnost vašich softwarových produktů a zároveň udržet agilitu vývojového procesu.
Analýzy prováděné Invicti jsou komplexní a poskytují přesnost při identifikaci problémů, aniž by snižovaly rychlost správy SDLC.
Díky možnostem automatizace, které Invicti nabízí, odpadá potřeba lidského zásahu při provádění bezpečnostních úkolů, což vašemu týmu ušetří stovky hodin měsíčně.
Tyto úspory jsou dále vylepšeny identifikací zranitelností, které jsou skutečně kritické, a jejich automatickým přiřazením k nejvhodnějším zdrojům pro nápravu.
Invicti také poskytuje kompletní přehled o zranitelnostech ve vašich aplikacích ve vývoji a o úsilí věnovaném snížení rizik.
SonarQube
SonarQube automaticky kontroluje kód, hledá chyby a zranitelnosti, které by se mohly stát hrozbou. V současné době podporuje téměř 30 různých programovacích jazyků.
Jedinečné QualityGates SonarQube nabízí jednoduchý způsob, jak zabránit problémům dřív, než se produkt dostane do produkce. Poskytují také vývojářskému týmu společný pohled na kvalitu a umožňují každému znát standardy a to, zda je jejich vývoj splňuje.
SonarQube se snadno integruje do vašeho kanálu DevSecOps a zajišťuje, že všichni členové týmu mají přístup k sestavám a zpětné vazbě, které tento nástroj generuje.
Pouhou instalací SonarQube jasně ukáže, zda jsou vaše odevzdání čistá a zda jsou vaše projekty připraveny k vydání. V případě problému vás nástroj okamžitě informuje o jeho umístění a možném řešení.
Aqua
Aqua vám umožňuje vizualizovat a zastavit hrozby v každé fázi životního cyklu vašich softwarových produktů, od psaní kódu až po nasazení aplikace v cloudu.
Tento nástroj funguje jako cloudová nativní platforma pro ochranu aplikací (CNAPP) a nabízí kontroly zabezpečení dodavatelského řetězce softwaru, skenování rizik a zranitelnosti a pokročilou ochranu proti malwaru.
Díky možnostem integrace společnosti Aqua můžete zabezpečit vaše aplikace bez ohledu na platformy a mechanismy, které používáte pro vývoj a nasazení, ať už jde o cloud, kontejnery, serverless prostředí, CI/CD kanály nebo orchestrátory. Integruje se také s platformami SIEM a analytickými nástroji.
Významnou funkcí Aqua je schopnost kontrolovat zabezpečení v kontejnerech Kubernetes pomocí KSPM (Kubernetes Security Posture Management) a poskytovat pokročilou ochranu v běhovém prostředí Kubernetes. Využití nativních funkcí K8s umožňuje ochranu řízenou zásadami pro celý životní cyklus aplikací nasazených v kontejnerech.
ProwlerPro
ProwlerPro je open-source nástroj určený speciálně pro zabezpečení vývojových prostředí Amazon Web Services (AWS).
ProwlerPro je navržen tak, aby bylo možné vytvořit si účet a zahájit skenování vašich vývojových kanálů během několika minut. Nástroj nabízí celkový pohled na vaši infrastrukturu bez ohledu na region. Jeho vizualizační nástroje umožňují zobrazit stav zabezpečení všech vašich služeb AWS v jediném okně.
Po vytvoření účtu ProwlerPro a jeho spuštění můžete nakonfigurovat automatické provádění série doporučených kontrol každých 24 hodin. Skenování v ProwlerPro běží paralelně, aby se zajistila rychlost a nezpomalovaly se pracovní postupy DevSecOps.
Výsledky skenování jsou zobrazeny na řadě předdefinovaných řídicích panelů, které lze snadno sdílet a procházet. Podrobná analýza poskytuje přehled o jakékoli úrovni detailů zabezpečení.
Probely
Pokud již máte zavedený pracovní postup DevOps a chcete do něj integrovat bezpečnostní skenování, Probely vám to umožní během několika minut díky nástrojům a rozhraním API pro skenování zranitelností webových aplikací.
Přístup Probely se opírá o API-first vývoj, což znamená, že každá nová funkce nástroje je nejprve zpřístupněna přes API a teprve poté je přidána do rozhraní. Tato strategie umožňuje integraci Probely s vlastními pracovními postupy nebo softwarem pomocí jeho API.
Můžete také registrovat webhooky, aby vaše aplikace dostávaly upozornění na každou událost, kterou Probely vygeneruje.
Vzhledem k tomu, že Probely nabízí řadu přednastavených integrací, je pravděpodobné, že pro integraci s vašimi nástroji nebudete muset jeho API využívat. Pokud již ve svých pracovních postupech používáte Jiru a Jenkins, integrace bude okamžitá.
Probely automaticky zahájí skenování v CI/CD kanálech a zaznamená nalezené zranitelnosti jako problémy v Jira. Po vyřešení zranitelností je nástroj znovu otestuje a v případě potřeby znovu otevře nevyřešený problém v Jira.
Checkov
Checkov skenuje konfigurace cloudové infrastruktury s cílem odhalit konfigurační chyby před nasazením softwarového produktu. Pomocí jednotného rozhraní příkazového řádku skenuje výsledky na různých platformách, jako jsou Kubernetes, Terraform, Helm, CloudFormation, ARM Templates a Serverless frameworks.
Díky schématu zásad založenému na atributech vám Checkov umožňuje skenovat cloudové zdroje během kompilace a identifikovat chyby konfigurace v atributech pomocí jednoduchého frameworku Python typu policy-as-code. Checkov mimo jiné analyzuje vztahy mezi cloudovými prostředky pomocí YAML zásad založených na grafech.
Díky integraci do CI/CD kanálů a systémů pro správu verzí, Checkov spouští, testuje a upravuje parametry runnerů v kontextu cílového úložiště.
Díky rozšiřitelnému integračnímu rozhraní lze jeho architekturu rozšířit o definování vlastních zásad, podmínek potlačení a poskytovatelů. Jeho rozhraní také umožňuje integraci s podpůrnými platformami, procesy sestavení a vlastními systémy vydání.
Faraday
S Faraday můžete automatizovat správu zranitelností a kontrolovat akce, abyste se mohli soustředit na skutečně důležitou práci. Jeho pracovní postupy vám umožňují spouštět libovolnou akci pomocí vlastních událostí, abyste se vyhnuli opakování úkolů.
Faraday vám dává možnost standardizovat a integrovat vaše bezpečnostní nástroje do vašich pracovních postupů a získávat informace o zranitelnostech z více než 80 skenovacích nástrojů. Pomocí agentů jsou skenery automaticky integrovány do vašich pracovních postupů, aby maximálně snadno přijímaly a normalizovaly data a generovaly výsledky, které lze zobrazit prostřednictvím webového rozhraní.
Pozoruhodným a zajímavým aspektem Faradaye je to, že používá centralizované úložiště k ukládání informací o zabezpečení, které lze snadno analyzovat a testovat různými členy týmu DevSecOps.
To přináší další výhodu, kterou je schopnost identifikovat a kombinovat duplicitní problémy hlášené různými nástroji. To snižuje úsilí členů týmu a předchází opakovanému řešení stejných problémů.
CircleCI
Chcete-li integrovat CircleCI s oblíbenými bezpečnostními nástroji DevOps, musíte do svých vývojových kanálů zahrnout jednoho z mnoha partnerů. Partneři CircleCI jsou poskytovatelé řešení v několika kategoriích, včetně SAST, DAST, analýzy statických kontejnerů, vynucování zásad, správy tajemství a zabezpečení API.
Pokud potřebujete v rámci zabezpečení vývojového kanálu provést něco, co nelze realizovat pomocí dostupných orbů, můžete využít toho, že orby jsou open source. Přidání funkcí do existujícího orbu je v takovém případě jen otázkou získání souhlasu pro váš PR a jeho následného sloučení.
I když máte případ použití, který podle vás není pokryt orbami v registru CircleCI, můžete si jej vytvořit a přispět do komunity. Společnost publikuje seznam osvědčených postupů pro vytváření automatizovaných sestavení a testovacích kanálů, které vám usnadní cestu.
Pro zabezpečení kanálu je vhodné eliminovat potřebu vlastního vývoje a umožnit vašemu týmu využívat služby třetích stran. Při používání CircleCI orbs bude váš tým potřebovat pouze vědět, jak tyto služby používat, aniž byste se museli učit, jak je integrovat nebo spravovat.
Trivy
Trivy je open-source bezpečnostní nástroj s několika skenery, které dokážou detekovat bezpečnostní problémy na různých místech. Trivy skenuje souborový systém, obrazy kontejnerů, úložiště Git, obrazy virtuálních strojů, úložiště Kubernetes a AWS.
Díky skenování těchto potenciálních cílů může Trivy odhalit známé zranitelnosti, konfigurační chyby, tajemství nebo citlivé informace, softwarové licence a problémy v dodavatelském řetězci softwaru, včetně závislostí na softwaru a balíčcích operačních systémů.
Seznam platforem a aplikací, se kterými se Trivy integruje, najdete na stránce Ekosystém. Tento seznam zahrnuje oblíbené nástroje jako CircleCI, GitHub Actions, VS Code, Kubernetes nebo JetBrains.
Trivy je k dispozici ve verzích apt, yum, brew a dockerhub. Nemá žádné předpoklady, jako jsou databáze, prostředí nasazení nebo systémové knihovny, a první skenování je odhadováno na pouhých 10 sekund.
GitLeaks
Gitleaks je open-source nástroj s rozhraním příkazového řádku, který lze nainstalovat pomocí Docker, Homebrew nebo Go. Je také dostupný jako spustitelný binární soubor pro nejpopulárnější platformy a operační systémy. Nástroj lze také nasadit přímo do repozitáře jako pre-commit hook nebo jako GitHub action prostřednictvím Gitleaks-Action.
Jeho příkazové rozhraní je jednoduché a minimalistické. Skládá se z pouhých 5 příkazů pro detekci tajemství v kódu, ochranu tajemství, generování skriptů, získání nápovědy nebo zobrazení verze nástroje. Příkaz `detect` umožňuje skenování úložišť, souborů a adresářů. Může se používat jak na vývojových stanicích, tak v prostředích CI.
Většina práce s GitLeaks se provádí pomocí příkazů `detect` a `protect`. Tyto příkazy pracují s repozitáři Git, analyzují výstup příkazů git log nebo git diff a generují patche, které GitLeaks použije k detekci a ochraně tajných informací.
Udržujte si konkurenceschopnost a zabezpečení
Agilita a rychlost vašich CI/CD kanálů jsou klíčové pro rychlé uvedení produktů na trh, což je zásadní pro zachování konkurenceschopnosti v oblasti vývoje softwaru.
Na druhou stranu, zahrnutí bezpečnostních nástrojů do vašich vývojových procesů je nezbytné. Chcete-li integrovat zabezpečení bez negativního dopadu na časovou osu SDLC, jsou nástroje DevSecOps ideálním řešením.