GNU/Linux >> Znalost Linux >  >> Linux

Zabezpečení CI/CD – Jak zabezpečit kanál CI/CD

Úvod

CI/CD potrubí je pilířem vývoje softwaru a jednou z hlavních součástí potrubí DevOps. Proces nepřetržité integrace/doručování (nebo implementace) definuje řadu kroků pro softwarové inženýry k dodávání nových programů.

Přestože se efektivita výroby s CI/CD zvyšuje, je tento proces náchylný k zanedbávání zabezpečení. Databáze, proprietární kód, přihlašovací údaje, klíče, tajemství a hesla používané v produkčním a testovacím prostředí jsou rovněž bezpečnostním rizikem.

Tento článek vysvětluje zabezpečení CI/CD, problémy a osvědčené postupy pro zabezpečení vaší softwarové produkce.

Co je zabezpečení CI/CD?

Zabezpečení CI/CD představuje kroky k ochraně automatizovaného výrobního potrubí softwaru. I když je celkové zabezpečení softwaru důležité, musí být spolehlivé i dodávky aktualizací a oprav softwaru.

CI/CD kanál je tok automatické integrace aplikací a dodání (nebo nasazení). Metoda implementuje časté aktualizace a opravy chyb, aby vyhovovaly potřebám klientů. V důsledku toho je hlavní důraz kladen na kompletní automatizaci dodávání softwaru pro kontinuální výrobu.

Nicméně přehlíženým faktorem v potrubí CI/CD je potrubí samotné zabezpečení. Prostřednictvím automatizace testů a neustálého monitorování by měli správci zabezpečení implementovat hodnocení zranitelnosti prostřednictvím různých kroků ve vývoji softwaru.

Běžné bezpečnostní výzvy v kanálu CI/CD

Při stínění potrubí CI/CD je třeba vzít v úvahu řadu bezpečnostních problémů:

  • Soulad údajů v neprodukčním prostředí je zásadní výzvou. Čím více lidí pracuje na stejném projektu, tím vyšší je počet možných bodů porušení.
  • Dobře definovaná pravidla řízení přístupu a zásady hesel pro všechny uživatele jsou nutností. V případě kompromisu připravený plán reakce na incident by měl existovat.
  • Automatizace a orchestrace vyžadují četné části softwaru a jednorázové kódové bity. Průběžné monitorování a audit kódu a softwaru třetích stran.

Rychlé prostředí s neustálými aktualizacemi ponechává velký prostor pro nehody a nezamýšlené kompromisy. Nejlepším postupem je zabudovat zabezpečení do potrubí .

Osvědčené postupy zabezpečení CI/CD

Nejlepší postupy zabezpečení CI/CD závisí na infrastruktuře kanálu DevOps. Níže je deset obecných užitečných příruček k zabezpečení potrubí při práci v prostředí CI/CD.

1. Mapovat a modelovat hrozby

Proveďte průzkum potenciálních bezpečnostních hrozeb. Identifikujte body, kde jsou nutné další vrstvy zabezpečení , modelovat tyto hrozby a vytvářet cvičení ke zvýšení povědomí o potenciálních bezpečnostních problémech.

Většina bezpečnostních hrozeb se nachází v bodech připojení . Vše, co se připojuje k potrubí, by mělo být pravidelně opravováno a aktualizováno. Blokujte všechna zařízení, která odpovídajícím způsobem nesplňují požadavky na zabezpečení.

2. Zabezpečení před provedením

Vytvořte bezpečnostní kontroly před odesláním kódu do systému správy verzí. Většina IDE poskytuje bezpečnostní zásuvné moduly a během psaní varuje před zranitelností kódu.

Vzájemné hodnocení práce od nezkušených vývojářů před odevzdáním kódu do Gitu. Použijte menší kusy kódu a kontrolní seznamy, abyste zajistili, že kód splňuje všechny bezpečnostní protokoly a standardy. Vyvarujte se také kopírování a publikování klíčů API, tokenů a dalších citlivých dat.

3. Zkontrolovat Committed Code

Jakmile kód potvrdíte, znovu zkontrolujte, zda je vše rozumné. Použijte nástroje pro analýzu statického kódu získat zpětnou vazbu k odevzdání. Analytické nástroje nevyžadují, aby aplikace běžela, a mnohé z nich spolu se zprávou poskytují užitečné rady.

Odešlete zprávy o skenování kódu bezpečnostnímu týmu, aby zkontroloval případné další kroky. Používejte systémy sledování chyb a protokolujte výsledky, abyste zajistili, že všechny chyby budou opraveny a nebudou zapomenuty. Dále analyzujte historii Git pro jakoukoli podezřelou aktivitu.

4. Zabezpečte svůj Git

Git je pro hackery obzvláště cenným cílem. Ujistěte se, že vývojáři jsou vždy poučeni o tom, jak používat Git, a informováni o firemních postupech.

Použijte soubor .gitignore aby se zabránilo náhodnému odevzdání standardních a vygenerovaných souborů v mezipaměti. Mít lokálně uloženou a zabezpečenou zálohu jako součást celkové politiky zálohování.

5. Zkontrolujte zranitelnosti open source

Knihovny s otevřeným zdrojovým kódem jsou klíčovou součástí při vytváření aplikací. Software třetích stran je však náchylný ke změnám kódu, které mohou nepřímo ovlivnit zabezpečení vaší aplikace.

Nezapomeňte analyzovat a prohledat balíčky s otevřeným zdrojovým kódem na známé bezpečnostní problémy. Použijte nástroje pro analýzu složení softwaru k analýze softwaru, součástí a souborů třetích stran.

Nakonec označte všechny problémy udržet kvalitu kódu na maximu.

6. Automatizujte pomocí IaC

Infrastructure as code (IaC) poskytuje konzistentní podmínky vývoje a testování. Namísto ručního nastavování prostředí pomáhají nástroje IaC, jako je Ansible, Terraform nebo Puppet, neustále automaticky dodávat zabezpečenou infrastrukturu.

Poznámka: Zůstaňte na vrcholu nejnovějších požadavků na automatizaci s Bare Metal Cloud od společnosti phoenixNAP. Použijte naše API pro automatizované zřizování k vytvoření bezpečných dedikovaných serverových clusterů. BMC je ideálním řešením pro nástroje IaC, jako jsou Ansible a Terraform.

Nasaďte server Bare Metal Cloud již za 0,10 $/hod.

Další výhodou je, že IaC bezproblémově funguje v řetězci nástrojů DevOps. Neustále testované opakovaně použitelné konfigurace a vynucené postupy zajišťují vynikající výsledky výroby a kvalitní kód.

7. Monitor po nasazení

Po nasazení aplikace neustále skenujte a monitorujte, abyste zabránili jakýmkoli hrozbám. Monitorování pomáhá odhalit a napravit podezřelou aktivitu na základě poskytnutých dat.

Použijte nástroje jako Grafana nebo Kibana k vytvoření interaktivních vizuálních panelů, abyste dostali upozornění na jakoukoli podezřelou aktivitu.

8. Oddělte úkoly a vynucení oprávnění

Oprávnění zpomalují a dokonce narušují proces testování. Nicméně stanovení a vynucení oprávnění provádět pouze základní úkoly je z bezpečnostního hlediska zásadní.

Pokud jde o Git, definujte přístupové role pro každý repozitář a implementujte dvoufaktorové ověřování pro každé potvrzení. Pokuste se oddělit úkoly, abyste udrželi kanál bezpečný a zároveň měli nepřetržité doručování.

9. Uchovávejte přihlašovací údaje v bezpečí

Zabezpečte všechny přihlašovací údaje které poskytují přístup k softwaru a službám, jako jsou API tokeny, hesla, klíče SSH, šifrovací klíče atd. Nesprávné zabezpečení přihlašovacích údajů poskytuje cestu pro hackery, což vede k narušení dat a intelektuální krádeži.

Proto použijte platformu pro správu klíčů pro bezpečný a automatizovaný přístup ke klíčům. Software zajišťuje použití tajemství, když je to výslovně požadováno. Pro správu více složitých hesel použijte software pro správu hesel.

10. Pilně uklízejte

V prostředí CI/CD se procesy a úlohy pohybují rychle bez řádného vyčištění. Nezapomeňte vypnout všechny zbývající dočasné prostředky, jako jsou virtuální počítače, kontejnery nebo procesy. Kromě toho zaveďte obecně vhodnou údržbu zabezpečení a odstraňte veškeré nadbytečné nástroje a nástroje.


Linux
  1. Jak zabezpečit své e-mailové služby Linux pomocí SSL/TLS

  2. Jak zabezpečit váš server ISPConfig 3 proti útoku pudle SSL

  3. Jak můžete chránit svůj počítač?

  1. Zabezpečte své kontejnery pomocí SELinux

  2. Jak zabezpečit PostgreSQL Server

  3. Jak zabezpečit server Ubuntu pomocí brány firewall CSF

  1. Jak nastavit tiskárnu v systému Linux

  2. 6 Doporučené postupy zabezpečení Kubernetes:Zabezpečte svou pracovní zátěž

  3. Základy Linuxu:Jak skrýt, zamknout, zašifrovat a zabezpečit soubory v Linuxu