Přeskočit na hlavní obsah

Zabezpečení Infrastructure as Code (IaC)

  • Softwarově definovaná infrastruktura - definována jako kód
  • Umožňuje rychlejší a konzistentní konfiguraci a nasazení komponent infrastruktury
  • Umožňuje opakovatelné nasazení v různých prostředích

Vývoj a distribuce

  • IDE pluginy
    • Bezpečnostní zásuvné moduly v IDE pomáhají odhalit potenciální rizika
    • Zkracují dobu řešení problémů v pozdější fázi vývoje
    • TFLint, Checkov, Docker Linter, docker-vulnerability-extension, Security Scan, Contrast Security
  • Modelování hrozeb
    1. Vytvořte model hrozeb v ranné fázi vývojového cyklu
    2. Zajistěte dostatečný přehled o vysoce rizikových a objemných aspektech kódu a flexibilitu
  • Správa secrets
    • Aplikační tokeny, hesla, SSH klíče
    • Problémem nejsou secrets, ale místo jejich uložení
    • V gitu, textovém souboru mohou být snadno odhalena a zneužita
    • K odhalení zranitelnosti využijte truffleHog, git-secrets, GitGuardian
    1. Využijte specializované vault úložiště
  • Version control
    1. Zajistěte, aby byl IaC verzovaný a umožněte správu verzí
    • GitHub, Bitbucket
  • Princip least privilege
    1. Definujte správu přístupu na základě principu nejmenšího oprávnění
    • Kdo je oprávněn vytvářet, upravovat, spouštet, mazat skripty atp.
  • Omezte oprávnění autorizovaných IaC uživatelů na nezbytně nutnou úroveň
    1. Omezte oprávnění jiných zdrojů na nezbytně nutnou úroveň pro výkon jejich práce
  • Statická analýza
    1. Analyzujte kód a identifikujte rizika nebo chybnou konfiguraci
    • kubescan, Snyk, Coverity
  • Kontrola open source závislostí
    1. Analyzujte open source závislosti - balíčky, knihovny a identifikujte potenciální rizika
    • BlackDuck, Snyk, WhiteSource Bolt
  • Container image sken
    • Proces analýzy obsahu a procesu sestavení image kontejneru
    • Nástroje: Dagda, Clair, Anchore
    1. Integrujte analýzu do CI/CD (např. Jenkins)
  • Podepisování artifacts
    • Digitální podepisování artefaktů chrání před manipulací mezi buildem a spuštěním
    • Zajišťuje integritu a původ artefaktu
    1. Použijte open source nástroje jako je TUF

Deploy

  1. Označte, logujte a sledujte resource při každém nasazení (commissioning)
  2. Vymažte základní konfigurace a bezpečně odstraňte data při vyřazování resourcu (decommissioning)
  3. Označujte cloudové assety (tagging)
    • Neoznačené assety ztěžují detekci, vizualizaci a porovnatelnost v cloud prostředí
      • Mohou zvýšit náklady, ztížit údržbu a ovlivnit spolehlivost
  4. Dynamicky analyzujte všechna prostředí a služby, na kterých poběží, nebo se kterými spolupracuje
    • Odhaluje rizika způsobená interoperabilitou
    • Nástroje: ZAP, Burp, GVM

Runtime

  1. Zajistěte neměnnost infrastruktury
    1. Vytvořte novou infrastrukturu, pokud je vyžadována nová specifikace a předchozí vyřaďte z provozu
  2. Logujte
    • Logy pomáhají vyhodnocovat bezpečnostní rizika a analýze příčin incidentů
    • Nástroje: ELK
  3. Monitorujte
    • Monitoring pomáhá při vyhledávání porušení zabezpečení, identifikaci útoků a upozorňuje na incidenty
    • Některá řešení zahrnují AI
    • Nástroje statické analýzy: Prometheus, Grafana
  4. Detekujte hrozby za běhu
    • Rozpozná neočekávané chování a upozorní na hrozby
    • Některé nástroje (Contrast) detekují OWASP Top 10 a pomáhají je blokovat
    • Nástroje: Falco