Cloud & IT Cert Prep · Les

DevSecOps: beveiliging naar links verschuiven in pipelines

Integreer SAST, DAST, containerscanning en IaC-beveiligingscontroles in CI/CD-pipelines, zodat security gates automatisch bij elke commit worden afgedwongen.

Les 4 van 413 stappen

DevSecOps: beveiliging naar links verschuiven in pipelines is een gratis Cloud & IT Cert Prep-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Cloud & IT Cert Prep. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Cloud & IT Cert Prep bevat in totaal 4 lessen.

Wat betekent beveiliging naar voren halen?

Beveiliging naar voren halen betekent dat je beveiligingsactiviteiten eerder in de levenscyclus van softwareontwikkeling integreert — in de IDE van de ontwikkelaar, tijdens codebeoordeling en in de CI/CD-pijplijn — in plaats van beveiliging pas als laatste controle vóór de implementatie te testen. Traditionele beveiligingsbeoordelingen vonden aan het einde van de ontwikkelcyclus plaats, waardoor oplossingen duur en tijdrovend werden. Een kwetsbaarheid tijdens de ontwikkeling vinden, kost ongeveer 100 keer minder om te verhelpen dan wanneer je deze na een inbreuk in productie ontdekt.

Wat is DevSecOps?

DevSecOps breidt het DevOps-model uit door beveiliging gedurende de hele SDLC als een gedeelde verantwoordelijkheid van ontwikkel-, operations- en beveiligingsteams te integreren. Het doel is om beveiligingstests te automatiseren, zodat ze in elke fase worden uitgevoerd zonder de oplevering te vertragen. Beveiliging wordt zo een doorlopend kenmerk van de pijplijn in plaats van een eenmalig controlepunt. In volwassen DevSecOps-programma's krijgen ontwikkelaars binnen enkele seconden nadat ze code hebben geschreven feedback over beveiliging, in plaats van weken na een handmatige beoordeling.

SAST: statische beveiligingstests van toepassingen

SAST (statische beveiligingstests van toepassingen) analyseert broncode, bytecode of binaire code zonder de toepassing uit te voeren. SAST-tools zoeken naar patronen die op kwetsbaarheden wijzen: SQL-samenvoeging, niet-geschoonde uitvoer, gebruik van verboden functies, hardgecodeerde inloggegevens en onveilig gebruik van cryptografie. SAST wordt bij elke commit in de CI-pijplijn uitgevoerd, zodat problemen worden gevonden voordat ze QA of productie bereiken. Populaire tools zijn onder andere Semgrep, SonarQube, Checkmarx en 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 found

DAST: dynamische beveiligingstests van toepassingen

DAST (dynamische beveiligingstests van toepassingen) test een draaiende toepassing door schadelijke ladingen te verzenden en reacties te observeren — als simulatie van het gedrag van een echte aanvaller. In tegenstelling tot SAST vindt DAST kwetsbaarheden die alleen tijdens runtime optreden: fouten in authenticatie, problemen met sessiebeheer, fouten in bedrijfslogica en injectiekwetsbaarheden in complexe gegevensstromen. Populaire DAST-tools zijn onder andere OWASP ZAP (gratis), Burp Suite Enterprise en Acunetix. DAST wordt in de pijplijn uitgevoerd tegen een testomgeving.

# 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 redirects

Scannen van containerimages

Containerimages worden opgebouwd vanuit basisimages die besturingssysteempakketten, taalruntimes en afhankelijkheden van toepassingen bevatten — allemaal mogelijke bronnen van bekende kwetsbaarheden. Tools voor het scannen van containerimages analyseren imagelagen en identificeren kwetsbare pakketten. Trivy (gratis en snel), Grype (Anchore) en Clair worden veel gebruikt. Scans worden uitgevoerd als onderdeel van de pijplijn voor het opbouwen van de image. Zo wordt voorkomen dat images met kritieke CVE's naar productieregisters worden gepromoveerd.

# 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 registry

Beveiligingsscans van Infrastructure as Code (IaC)

IaC-beveiligingsscans analyseren Terraform, CloudFormation, Kubernetes-manifesten en Helm-charts op onveilige configuraties voordat ze worden toegepast. Tools zoals Checkov en tfsec controleren op overtredingen zoals S3-buckets zonder versleuteling aan de serverzijde, beveiligingsgroepen die al het inkomende verkeer toestaan, IAM-rollen met jokertekenmachtigingen en Kubernetes-pods die als root draaien. IaC-scans voorkomen onveilige cloudconfiguraties voordat die een omgeving bereiken.

# 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: 0

Geheimen scannen in pijplijnen

Tools voor het scannen van geheimen controleren broncode en commits op per ongeluk opgenomen inloggegevens. Tools zoals truffleHog, GitLeaks en detect-secrets scannen de Git-geschiedenis en nieuwe commits op patronen die overeenkomen met API-sleutels, verbindingsreeksen, privésleutels en JWT-tokens. Als pre-commit-hook voorkomt het scannen van geheimen dat commits met inloggegevens worden uitgevoerd. Als CI-controle scant het bij elke push alle bestanden in de opslagplaats en mislukt het bouwen als er geheimen worden gevonden.

# 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 pipeline

Dreigingsmodellering in de SDLC

Dreigingsmodellering is een gestructureerd proces om beveiligingsvereisten en ontwerpfouten te identificeren voordat er code wordt geschreven. Het STRIDE-model (Spoofing, Manipatie, Ontkenning, Informatieverstrekking, Denial-of-Service en Privilege-escalatie) helpt teams om systematisch dreigingen tegen het gegevensstroomdiagram van een systeem in kaart te brengen. Sessies voor dreigingsmodellering vinden plaats tijdens het ontwerp en leveren een geprioriteerde lijst met dreigingen op. Die lijst bepaalt de beveiligingsvereisten en helpt bij het kiezen van regels voor SAST en 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 checks

Beveiligingscontroles: blokkerend versus adviserend

DevSecOps-pijplijnen implementeren beveiligingscontroles als blokkerende controles (de build mislukt en implementatie wordt voorkomen) of als adviserende controles (bevindingen worden gerapporteerd, maar implementatie mag doorgaan). Bevindingen met een kritieke of hoge ernst uit SAST, containerscans en detectie van geheimen blokkeren doorgaans. Bevindingen met een gemiddelde of lage ernst leiden tot meldingen of tickets zonder te blokkeren. Deze balans voorkomt dat beveiliging elke oplevering stillegt en zorgt er tegelijk voor dat echt gevaarlijke situaties niet automatisch in productie terechtkomen.

Beveiligingsmetingen in DevSecOps

DevSecOps-programma's moeten met duidelijke metingen worden geëvalueerd. Belangrijke metingen zijn onder andere: de gemiddelde tijd tot herstel (MTTR) van bevindingen met een hoge ernst, de kwetsbaarheidsdichtheid (bevindingen per 1.000 coderegels in de loop van de tijd), het ontsnappingspercentage (het percentage kwetsbaarheden dat na productie wordt gevonden tegenover vóór productie) en het slagingspercentage van beveiligingscontroles in de pijplijn. Door deze metingen in de loop van de tijd te volgen, toon je de effectiviteit van het programma aan en kun je investeringsbeslissingen voor aanvullende tools of trainingen onderbouwen.

Cultuur: beveiliging als gedeelde verantwoordelijkheid

Het moeilijkste onderdeel van DevSecOps is cultureel, niet technisch. Beveiliging moet de verantwoordelijkheid van elke ontwikkelaar worden, niet alleen die van het beveiligingsteam. Hiervoor zijn het volgende nodig: beveiligingstraining voor ontwikkelaars (bewustwording van veilig programmeren), beveiligingsambassadeurs die in ontwikkelteams zijn opgenomen, evaluaties zonder schuldtoewijzing wanneer kwetsbaarheden productie bereiken (gericht op procesverbetering, niet op bestraffing) en steun van leidinggevenden om in te leveren op opleversnelheid wanneer een echt beveiligingsrisico dat vereist. Technologie zonder een cultuurverandering leidt tot scantools die ontwikkelaars leren negeren.

Korte kennistoets

Test je begrip van de concepten uit CompTIA Security+ (SY0-701) in deze les.

Samenvatting van de les

In deze les heb je geleerd dat DevSecOps SAST, DAST, het scannen van geheimen, het scannen van containers en IaC-scans integreert als geautomatiseerde controles in de pijplijn, dat het blokkeren van bevindingen met een hoge ernst voorkomt dat gevaarlijke situaties productie bereiken en dat het naar voren halen van beveiliging de herstelkosten sterk verlaagt doordat kwetsbaarheden tijdens de ontwikkeling worden gevonden in plaats van na de implementatie. Hierna bekijken we fysieke beveiligingsmaatregelen voor gebouwen en datacenters.

Gratis beginnen

Leer Cloud & IT Cert Prep met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
150
Lessen
600

Veelgestelde vragen

Is de les “DevSecOps: beveiliging naar links verschuiven in pipelines” gratis?

Ja — de volledige tekst van “DevSecOps: beveiliging naar links verschuiven in pipelines” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Cloud & IT Cert Prep wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Cloud & IT Cert Prep bevat in totaal 4 lessen.

Wat leer ik in “DevSecOps: beveiliging naar links verschuiven in pipelines”?

Integreer SAST, DAST, containerscanning en IaC-beveiligingscontroles in CI/CD-pipelines, zodat security gates automatisch bij elke commit worden afgedwongen. Je oefent met Cloud & IT Cert Prep door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Cloud & IT Cert Prep te beginnen?

Ervaring vooraf is niet nodig. Cloud & IT Cert Prep op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “DevSecOps: beveiliging naar links verschuiven in pipelines”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Cloud & IT Cert Prep?

Ja. Elke les over Cloud & IT Cert Prep bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Invoervalidatie en uitvoercodering
  2. Veilig beheer van secrets en omgevingsvariabelen
  3. Dependencybeveiliging en software composition analysis
  4. DevSecOps: beveiliging naar links verschuiven in pipelines
← Terug naar Cloud & IT Cert Prep