DevSecOps: flytting av sikkerhet til venstre i pipelinene
Bygg inn SAST-, DAST-, containerskanning- og IaC-sikkerhetskontroller i CI/CD-pipeliner, slik at sikkerhetsporter håndheves automatisk ved hver commit.
DevSecOps: flytting av sikkerhet til venstre i pipelinene er en gratis leksjon i Cloud & IT Cert Prep på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Cloud & IT Cert Prep, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Cloud & IT Cert Prep inneholder totalt 4 leksjoner.
Hva vil det si å flytte sikkerheten til venstre?
Å flytte sikkerheten til venstre betyr å integrere sikkerhetsaktiviteter tidligere i livssyklusen for programvareutvikling – i utviklerens IDE, i kodegjennomganger og i CI/CD-pipelinen – i stedet for å teste sikkerheten som en siste kontroll før utrulling. Tradisjonelle sikkerhetsgjennomganger fant sted på slutten av utviklingssyklusen, noe som gjorde rettinger kostbare og tidkrevende. Det koster omtrent 100 ganger mindre å rette en sårbarhet under utviklingen enn å oppdage den i produksjon etter et sikkerhetsbrudd.
Hva er DevSecOps?
DevSecOps utvider DevOps-modellen ved å integrere sikkerhet som et felles ansvar på tvers av utviklings-, drifts- og sikkerhetsteam gjennom hele SDLC-en. Målet er å automatisere sikkerhetstesting slik at den kjøres i alle faser uten å forsinke leveransen. Sikkerhet blir en kontinuerlig egenskap ved pipelinen i stedet for et engangskontrollpunkt. I modne DevSecOps-programmer får utviklere tilbakemelding om sikkerhet i løpet av sekunder etter at de har skrevet kode, ikke uker etter en manuell gjennomgang.
SAST: Statisk applikasjonssikkerhetstesting
SAST (Static Application Security Testing) analyserer kildekode, bytekode eller binærkode uten å kjøre applikasjonen. SAST-verktøy søker etter mønstre som tyder på sårbarheter: SQL-sammenkobling, utdata som ikke er renset, bruk av forbudte funksjoner, hardkodet påloggingsinformasjon og usikker bruk av kryptografi. SAST kjøres i CI-pipelinen ved hver commit og oppdager problemer før de når QA eller produksjon. Populære verktøy omfatter Semgrep, SonarQube, Checkmarx og Veracode.
# Semgrep SAST rule example:
# Detect raw SQL string concatenation (SQL injection risk):
# rules:
# - id: sql-injection-string-concat
# pattern: |
# $QUERY = '...' + $USER_INPUT
# $DB.execute($QUERY)
# message: 'SQL injection risk: use parameterized queries'
# severity: ERROR
# languages: [python]
# Running Semgrep in CI:
# semgrep --config auto --error src/
# -> Fails build if ERROR severity findings foundDAST: Dynamisk applikasjonssikkerhetstesting
DAST (Dynamic Application Security Testing) tester en applikasjon som kjører, ved å sende ondsinnede nyttelaster og observere svarene — som en simulering av en reell angripers atferd. I motsetning til SAST finner DAST sårbarheter som bare oppstår under kjøring: svakheter i autentisering, problemer med økthåndtering, feil i forretningslogikken og injeksjonssårbarheter i komplekse dataflyter. Populære DAST-verktøy omfatter OWASP ZAP (gratis), Burp Suite Enterprise og Acunetix. DAST kjøres mot et staging-miljø i pipelinen.
# OWASP ZAP automated DAST in CI pipeline:
# docker run -t owasp/zap2docker-stable zap-baseline.py \
# -t https://staging.myapp.com \
# -r zap-report.html \
# -I (do not fail on alerts, report only)
# For blocking builds on high findings:
# zap-full-scan.py -t https://staging.myapp.com \
# -l HIGH (fail if HIGH or CRITICAL alerts found)
# ZAP tests for:
# SQL injection, XSS, CSRF, insecure headers,
# path traversal, broken authentication, open redirectsSkanning av containeravbilder
Containeravbilder bygges fra basisavbilder som inneholder operativsystempakker, språkkjøremiljøer og applikasjonsavhengigheter — alle potensielle kilder til kjente sårbarheter. Verktøy for skanning av containeravbilder analyserer avbildningslagene og identifiserer sårbare pakker. Trivy (gratis og rask), Grype (Anchore) og Clair er mye brukt. Skanninger kjøres som en del av pipelinen for bygging av avbildet og hindrer at avbilder med kritiske CVE-er promoteres til produksjonsregistre.
# Trivy container scan in CI pipeline:
# trivy image --severity HIGH,CRITICAL \
# --exit-code 1 \
# myapp:latest
# Output example:
# library/python:3.9-slim (debian 11.6)
# ===================================
# CVE-2023-1234 CRITICAL openssl 1.1.1n-0+deb11u3 -> 1.1.1t
# CVE-2023-5678 HIGH libssl 1.1.1n -> 1.1.1t
# --exit-code 1 causes pipeline to fail
# on any HIGH or CRITICAL finding -> blocks push to registrySikkerhetsskanning av Infrastructure as Code (IaC)
IaC-sikkerhetsskanning analyserer Terraform, CloudFormation, Kubernetes-manifester og Helm-diagrammer for feilkonfigurasjoner før de tas i bruk. Verktøy som Checkov og tfsec ser etter brudd som: S3-bøtter uten kryptering på serversiden, sikkerhetsgrupper som tillater all innkommende trafikk, IAM-roller med jokertegntillatelser og Kubernetes-pods som kjører som root. IaC-skanning hindrer feilkonfigurasjoner i skyen før de når noe miljø.
# Checkov IaC scan example:
# checkov -d ./terraform/ --compact
# Findings example:
# FAILED: CKV_AWS_20: S3 Bucket has an ACL defined which allows public access
# File: /terraform/s3.tf, Line: 15
# FAILED: CKV_AWS_57: S3 Bucket has server access logging disabled
# File: /terraform/s3.tf, Line: 15
# FAILED: CKV_AWS_24: Ensure no security groups allow all ingress traffic
# File: /terraform/sg.tf, Line: 8
# Passed checks: 47, Failed: 3, Skipped: 0Skanning etter hemmeligheter i piper
Verktøy for skanning etter hemmeligheter undersøker kildekode og commiter etter påloggingsinformasjon som er tatt med ved et uhell. Verktøy som truffleHog, GitLeaks og detect-secrets skanner git-historikk og nye commiter etter mønstre som samsvarer med API-nøkler, tilkoblingsstrenger, private nøkler og JWT-tokener. Som en pre-commit-hook blokkerer skanning etter hemmeligheter commiter som inneholder påloggingsinformasjon. Som en CI-port skanner den alle filer i repositoriet ved hver push og feiler bygget hvis det oppdages hemmeligheter.
# GitLeaks pre-commit hook configuration:
# .gitleaks.toml:
# [allowlist]
# description = 'Known false positives'
# paths = ['test/fixtures/fake_key.txt']
# Install as pre-commit hook:
# gitleaks protect --staged
# (scans staged files before commit is created)
# In CI pipeline:
# gitleaks detect --source=. --report-format=json \
# --report-path=gitleaks-report.json
# exit code 1 = secrets found -> blocks pipelineTrusselmodellering i SDLC-en
Trusselmodellering er en strukturert prosess for å identifisere sikkerhetskrav og designfeil før koden skrives. STRIDE-modellen (Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege) hjelper team med å kartlegge trusler mot et systems dataflytdiagram på en systematisk måte. Trusselmodelleringsøkter gjennomføres under designfasen og resulterer i en prioritert liste over trusler som danner grunnlag for sikkerhetskrav og valg av regler for SAST/DAST.
# STRIDE threat categories applied to a web login API:
# S - Spoofing: Attacker impersonates valid user
# Control: Strong authentication, MFA
# T - Tampering: Attacker modifies login request
# Control: TLS, HMAC, input validation
# R - Repudiation: User denies actions taken
# Control: Audit logging with tamper-evident storage
# I - Info Disclosure: Password exposed in logs
# Control: Never log sensitive fields
# D - Denial of Service: Flood login endpoint
# Control: Rate limiting, CAPTCHA
# E - Elevation of Privilege: Bypass authorization
# Control: Server-side authorization checksSikkerhetsporter: blokkerende eller rådgivende
DevSecOps-piper implementerer sikkerhetskontroller enten som blokkerende porter (bygget feiler og utrulling hindres) eller som rådgivende kontroller (funn rapporteres, men utrullingen kan fortsette). Funn med kritisk eller høy alvorlighetsgrad fra SAST, containerskanning og deteksjon av hemmeligheter blokkerer vanligvis. Funn med middels eller lav alvorlighetsgrad genererer varsler eller saker uten å blokkere. Denne balansen hindrer sikkerhet i å stanse all levering, samtidig som den sørger for at virkelig farlige forhold ikke automatisk når produksjon.
Sikkerhetsmålinger i DevSecOps
DevSecOps-programmer bør måles ved hjelp av tydelige måltall. Viktige måltall omfatter: Mean Time to Remediate (MTTR) for funn med høy alvorlighetsgrad, sårbarhetstetthet (funn per 1 000 kodelinjer over tid), lekkasjerate (andelen sårbarheter som oppdages etter produksjonssetting sammenlignet med før produksjonssetting) og bestått-rate for sikkerhetsporter i pipelinen. Ved å følge utviklingen i disse måltallene over tid kan man vise hvor effektivt programmet er, og styre beslutninger om investeringer i flere verktøy eller mer opplæring.
Kultur: Sikkerhet som et felles ansvar
Den vanskeligste delen av DevSecOps er kulturell, ikke teknisk. Sikkerhet må bli alle utvikleres ansvar, ikke bare sikkerhetsteamets. Dette krever: sikkerhetsopplæring for utviklere (bevissthet om sikker koding), sikkerhetsforkjempere som er integrert i utviklingsteamene, skyldfrie ettergranskinger når sårbarheter når produksjon (fokus på prosessforbedring, ikke straff) og støtte fra ledelsen til å akseptere avveininger mot leveringshastigheten når reell sikkerhetsrisiko krever det. Teknologi uten en kulturendring fører til skanneverktøy som utviklerne lærer seg å ignorere.
Kunnskapssjekk
Test forståelsen Deres av CompTIA Security+-konsepter (SY0-701) fra denne leksjonen.
Oppsummering av leksjonen
I denne leksjonen har De lært at DevSecOps integrerer SAST, DAST, skanning etter hemmeligheter, containerskanning og IaC-skanning som automatiserte porter i pipelinen, at blokkering av funn med høy alvorlighetsgrad hindrer farlige forhold i å nå produksjon, og at det å flytte sikkerheten til et tidligere stadium reduserer kostnadene ved feilretting betydelig ved å oppdage sårbarheter under utviklingen i stedet for etter utrulling. Deretter skal vi se nærmere på fysiske sikkerhetskontroller for anlegg og datasentre.
Lær deg Cloud & IT Cert Prep med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 150
- Leksjoner
- 600
Ofte stilte spørsmål
Er leksjonen «DevSecOps: flytting av sikkerhet til venstre i pipelinene» gratis?
Ja – hele teksten i «DevSecOps: flytting av sikkerhet til venstre i pipelinene» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Cloud & IT Cert Prep-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Cloud & IT Cert Prep inneholder totalt 4 leksjoner.
Hva lærer jeg i «DevSecOps: flytting av sikkerhet til venstre i pipelinene»?
Bygg inn SAST-, DAST-, containerskanning- og IaC-sikkerhetskontroller i CI/CD-pipeliner, slik at sikkerhetsporter håndheves automatisk ved hver commit. Du øver på Cloud & IT Cert Prep med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Cloud & IT Cert Prep?
Ingen tidligere erfaring er nødvendig. Cloud & IT Cert Prep på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «DevSecOps: flytting av sikkerhet til venstre i pipelinene»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Cloud & IT Cert Prep-leksjonen?
Ja. Alle Cloud & IT Cert Prep-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Validering av inndata og koding av utdata
- Sikker håndtering av hemmeligheter og miljøvariabler
- Avhengighetssikkerhet og analyse av programvaresammensetning
- DevSecOps: flytting av sikkerhet til venstre i pipelinene