Infrastruktur som kode: En revolusjon innen IT
Infrastruktur som kode (IaC) forvandler moderne IT-infrastruktur ved å øke sikkerheten, redusere kostnadene og forbedre ytelsen. Denne teknologiske utviklingen har ført til en markant økning i bruken av IaC, hvor organisasjoner i økende grad benytter seg av denne tilnærmingen for å etablere og distribuere sine skymiljøer. Sentrale teknologier i denne sammenhengen inkluderer Terraform, Azure Resource Manager-maler, AWS CloudFormation-maler og OpenFaaS YML.
Tidligere krevde etablering av IT-infrastruktur fysisk oppsetting av servere, datasentre for maskinvare, og kompleks konfigurering av nettverk. Med fremveksten av skyteknologi har denne prosessen blitt betydelig mer effektiv og tidsbesparende. IaC er en fundamental del av denne utviklingen, og det er essensielt å forstå hva dette innebærer.
Hva er IaC?
IaC benytter avansert, beskrivende kode for å automatisere leveransen av IT-infrastruktur. Denne automatiseringen eliminerer behovet for manuell administrasjon av servere, databasetilkoblinger, operativsystemer og lagring, noe som gir utviklere muligheten til å fokusere på utvikling, distribusjon og testing av programvare. For bedrifter som trenger rask og hyppig utrulling av applikasjoner, har automatisering av infrastruktur blitt en nødvendighet.
IaC er sentral for å akselerere forretningsprosesser, redusere risiko, kontrollere kostnader, øke sikkerheten og respondere raskt på konkurranse. Det er en uunnværlig DevOps-praksis for å fremme rask applikasjonslevering ved å effektivisere bygging og versjonskontroll av programvareinfrastruktur. Imidlertid medfører IaCs robusthet også et stort ansvar for å håndtere sikkerhetsrisiko.
Forskning fra DivvyCloud, rapportert av TechRepublic, anslår at feilkonfigurasjon av skyen kostet selskaper nesten 5 billioner dollar i perioden 2018-19. Dette understreker viktigheten av å følge beste praksis for å unngå sikkerhetsbrudd i skymiljøer. Konsekvenser av utilstrekkelig sikkerhet kan omfatte:
Nettverkseksponering
Usikker IaC-praksis kan åpne for nettverksangrep. Eksempler inkluderer offentlig tilgjengelig SSH, skylagringstjenester, Internett-tilgjengelige databaser og feilkonfigurerte sikkerhetsgrupper.
Konfigurasjonsdrift
Selv med god IaC-praksis, kan driftsteam tvinges til å endre konfigurasjoner i produksjonsmiljøet i nødsituasjoner. Slike endringer bryter med prinsippet om uforanderlighet i skyinfrastrukturen og bør unngås.
Uautorisert eskalering av privilegier
Organisasjoner benytter IaC for å drifte skymiljøer som kan inkludere programvarekontainere, mikrotjenester og Kubernetes. Bruken av privilegerte kontoer for drift av skyapplikasjoner kan skape risiko for eskalering av privilegier.
Brudd på samsvar
Ressurser som opprettes via IaC kan bli umerkede og vanskelig å oppdage i det reelle skymiljøet. Dette kan føre til brudd på samsvarskrav.
Løsningen er å sikre en grundig implementering av IaC, inkludert utvikling av beste praksis for å redusere risiko og utnytte teknologien fullt ut. En effektiv sikkerhetsskanner er et viktig verktøy for å identifisere og rette opp feilkonfigurasjoner og sikkerhetshull.
Hvorfor skanne IaC for sårbarheter?
En skanner automatiserer prosessen med å identifisere potensielle sikkerhetsfeil i enheter, applikasjoner eller nettverk. Regelmessige skanninger er nødvendige for å opprettholde et sikkert system.
Fordeler:
Økt sikkerhet
Skannerverktøy benytter nyeste sikkerhetspraksis for å redusere, adressere og korrigere trusler, og beskytter bedrifts- og kundedata.
Omdømmesikkerhet
Datatyveri kan føre til alvorlige omdømmetap. Sikkerhetsskanning bidrar til å forebygge dette.
Samsvarstilsyn
Organisasjoner må overholde gjeldende regelverk. Sikkerhetshull kan kompromittere dette og føre til alvorlige konsekvenser.
Følgende er noen av de beste verktøyene for å skanne IaC for sårbarheter:
Checkov
Med Checkov kan du eliminere feilkonfigurasjoner i skyen. Checkov er et verktøy for statisk kodeanalyse av IaC, som skanner skyinfrastrukturen som administreres i Kubernetes, Terraform og Cloudformation. Checkov er utviklet i Python, som gjør koding, administrasjon og versjonskontroll enklere. Checkovs innebygde retningslinjer dekker beste praksis for overholdelse og sikkerhet for Google Cloud, Azure og AWS.
Resultater fra skanningen kan vises i JSON, JUnit XML eller via CLI. Checkov håndterer variabler effektivt ved å bygge en graf som viser dynamisk kodeavhengighet. I tillegg forenkler det undertrykkelse av aksepterte risikoer. Verktøyet er åpen kildekode og enkelt å bruke. Trinnene inkluderer:
- Installere Checkov fra PyPI ved hjelp av pip
- Velge en mappe som inneholder Cloudformation- eller Terraform-filer som input
- Kjøre skanningen
- Eksportere resultatet til CLI-utskrift med fargekoding
- Integrere resultatet i CI/CD-pipelines
TFLint
TFLint er en Terraform linter som fokuserer på å identifisere potensielle feil og sørge for at sikkerhetsmessige beste praksiser blir fulgt. Terraform er et kraftig IaC-verktøy, men det validerer ikke nødvendigvis leverandørspesifikke problemer. Det er her TFLint er nyttig. Ved å bruke nyeste versjon kan skyarkitekturen din løse disse problemene.
For å installere TFLint:
- Bruk Chocolatey for Windows
- Bruk Homebrew for macOS
- Bruk TFLint via Docker
TFLint støtter også flere leverandører gjennom plugins som AWS, Google Cloud og Microsoft Azure.
Terrafirma
Terrafirma er et annet verktøy for statisk kodeanalyse av Terraform-planer. Det oppdager feilkonfigurasjoner og sikkerhetsrisikoer. Terrafirma gir utdata i tfjson. Verktøyet kan installeres ved hjelp av virtualenv og hjul.
Accurics
Accurics beskytter skyinfrastruktur mot feilkonfigurasjoner, datainnbrudd og brudd på retningslinjer. Accurics utfører kodeskanning for Kubernetes YAML, Terraform, OpenFaaS YAML og Dockerfile for å identifisere problemer før de påvirker infrastrukturen.
Verktøyet sikrer at det ikke er noen drift i infrastrukturkonfigurasjonen, og beskytter hele skystakken, inkludert containere, plattformer, infrastruktur og servere. Accurics bidrar til å fremtidssikre DevOps ved å håndheve overholdelse, sikkerhet og styring.
Accurics oppdager endringer i infrastrukturen og gir sanntidsinnsikt i hele infrastrukturen. Verktøyet kan varsle utviklere via verktøy som Slack, webhooks, e-post, JIRA og Splunk. Det støtter også DevOps-verktøy som GitHub og Jenkins.
Accurics er tilgjengelig som en skyløsning eller som en selv-hostet versjon. Det finnes også en åpen kildekode variant, Terrascan, som skanner Terraform mot over 500 sikkerhetspolicyer.
CloudSploit
CloudSploit reduserer sikkerhetsrisikoen ved å skanne Cloudformation-maler. Verktøyet kan skanne over 95 sikkerhetssårbarheter på tvers av over 40 ressurstyper i AWS. Det identifiserer risikoer og implementerer sikkerhetsfunksjoner før lansering av skyinfrastruktur. CloudSploit tilbyr også plugin-baserte skanninger hvor man kan legge til sikkerhetssjekker ved ressurstilføyelse til Cloudformation.
CloudSploit gir API-tilgang og tilbyr en dra-og-slipp funksjon for maler, som gir raske resultater. Etter opplasting av en mal sammenlignes ressursinnstillingene med forhåndsdefinerte verdier og produserer resultater – advarsel, bestått eller mislykket. Hvert resultat kan klikkes for å vise den berørte ressursen.
Konklusjon
IaC er en viktig trend i IT, og gir betydelige forbedringer i IT-infrastruktur. Det er viktig å være bevisst på potensielle sikkerhetshull, og bruke de riktige verktøyene for å skanne IaC for sårbarheter. Med de nevnte verktøyene kan sikkerheten opprettholdes.
Ønsker du å lære Terraform? Sjekk ut dette nettkurset.