Grundlæggende Docker og DevOps · Lektion

Sikkerhedsscanning af containerimages

Integrer værktøjer til imagescanning i Deres CI/CD-pipeline for at identificere sårbarheder i Docker-images.

Lektion 1 af 411 trin

Sikkerhedsscanning af containerimages er en gratis Grundlæggende Docker og DevOps-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Grundlæggende Docker og DevOps, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Grundlæggende Docker og DevOps-kurset indeholder 4 lektioner i alt.

Hvorfor scanne containerafbildninger?

Containerafbildninger er grundlaget for moderne applikationer. Ligesom al anden software kan de indeholde skjulte sikkerhedsbrister. Scanning af afbildninger er en afgørende praksis til at finde disse brister, før du implementerer dine applikationer.

Det hjælper med at sikre, at den software, du kører, er sikker og fri for kendte sårbarheder.

Sikkerhedsscanning af containerimages — illustration 1

Skjulte farer i afbildninger

Hvilke sårbarheder kan gemme sig i dine containerafbildninger?

  • Forældede basisafbildninger: Brug af gamle versioner af operativsystemer (som Ubuntu eller Alpine), der har kendte sikkerhedsfejl.
  • Sårbare biblioteker: Alle ekstra softwarepakker eller afhængigheder, du installerer i din afbildning, kan have sikkerhedsbrister (CVE'er).
  • Fejlkonfigurationer: Selvom scanning primært leder efter kendte CVE'er, kan forkerte indstillinger også medføre risici.

Sådan fungerer scannere til afbildninger

Scannere til containerafbildninger fungerer ved at:

  • Analysere lag: De undersøger hvert lag i din Docker-afbildning.
  • Udtrække komponenter: Identificere alle installerede pakker, biblioteker og afhængigheder (f.eks. operativsystempakker, Python-biblioteker og Node.js-moduler).
  • Sammenligne med databaser: Sammenholde disse komponenter med omfattende, regelmæssigt opdaterede databaser over sårbarheder (som CVE-databaser).
  • Generere rapporter: Give en detaljeret liste over identificerede sårbarheder, deres alvorlighed og ofte foreslåede løsninger.

Værktøjer til opgaven

Der findes flere effektive værktøjer til scanning af containerafbildninger, både open source-værktøjer og kommercielle værktøjer:

  • Trivy: En populær open source-scanner, der er kendt for sin brugervenlighed og omfattende dækning.
  • Clair: En anden robust open source-mulighed, som ofte integreres i større containerregistre.
  • Docker Scout (via docker scan): Indbygget i Docker Desktop og baseret på Snyks database over sårbarheder, så den hurtigt kan scanne lokalt.

Scanning af et image lokalt

Lad os udføre en hurtig scanning af et almindeligt Docker-image ved hjælp af den indbyggede docker scan-kommando. Denne kommando bruger Docker Scout (drevet af Snyk) til at kontrollere, om der er sårbarheder.

Prøv at køre dette eksempel:

docker scan nginx:latest

Forstå resultaterne

Efter en scanning får du en rapport. Her er det, du skal se efter:

  • CVE-id: En entydig identifikator for sårbarheden (f.eks. CVE-2023-1234).
  • Alvorlighedsgrad: Hvor kritisk sårbarheden er (f.eks. Kritisk, Høj, Middel, Lav).
  • Pakke: Den specifikke softwarekomponent eller det bibliotek, der indeholder fejlen.
  • Rettet version: Rapporten foreslår ofte en version af pakken eller basisimaget, der løser problemet.

Scanning i dit arbejdsforløb

Den virkelige styrke ved scanning af images viser sig, når den integreres i dit udviklingsarbejdsforløb. Ved at føje scanning til din pipeline til kontinuerlig integration (CI) kan du:

  • Opdage problemer tidligt: Identificere sårbarheder, så snart ny kode er lagt ind, eller et image er bygget.
  • Automatisere sikkerhedskontroller: Gøre sikkerhed til en standardiseret, automatiseret del af din byggeproces.
  • Forhindre udrulning: Konfigurere din CI-pipeline til at fejle under bygningen, hvis der opdages kritiske sårbarheder, så usikre images ikke når frem til produktionen.

Automatisering af scanninger med CI

Her er et konceptuelt eksempel på, hvordan du kan integrere Trivy-scanning i et GitHub Actions-arbejdsforløb. Det sikrer, at hvert image, der bygges, automatisk bliver scannet.

# .github/workflows/scan.yml
name: Image Scan

on:
  push:
    branches: [ main ]

jobs:
  build-and-scan:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Build Docker Image
      run: docker build -t my-app:latest .
    - name: Run Trivy Scan
      uses: aquasecurity/trivy-action@master
      with:
        image-ref: 'my-app:latest'
        format: 'table'
        exit-code: '1' # Fail build on critical issues

Løs det, du finder

At finde sårbarheder er kun halvdelen af arbejdet; den anden halvdel er at løse dem! Her er almindelige strategier til afhjælpning:

  • Opdater basisimages: Brug altid de nyeste, fejlrettede versioner af det valgte basisimage.
  • Minimer afhængigheder: Installer kun de pakker, der er absolut nødvendige for, at din applikation kan køre.
  • Bygning i flere trin: Brug Dockerfiler med flere trin for at reducere den endelige størrelse på imaget og fjerne værktøjer, der kun bruges under bygningen og ikke er nødvendige under kørsel.
  • Opdatering med rettelser: Anvend specifikke sikkerhedsrettelser, hvis de findes til sårbare komponenter.

Kontrol af scanning

Scanning af images er en vigtig del af sikker udvikling med containere. Lad os teste din forståelse.

Vigtigste pointer

Du har lært, hvilken afgørende rolle scanning af containersikkerhed spiller:

  • Den identificerer kendte sårbarheder (CVE'er) i dine basisimages og afhængigheder.
  • Værktøjer som Trivy, Clair og Docker Scout hjælper med at automatisere denne proces.
  • Integration af scanning i din CI/CD-pipeline sikrer tidlig opdagelse og forhindrer, at usikre images bliver udrullet.
  • Opdater images regelmæssigt, og minimér afhængighederne for at reducere din angrebsflade.

Bliv ved med at scanne dine images for at opretholde et stærkt sikkerhedsniveau!

Gratis at komme i gang

Lær Grundlæggende Docker og DevOps med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Sikkerhedsscanning af containerimages” gratis?

Ja — alle 3 lektioner i læringssporet Grundlæggende Docker og DevOps, inklusive “Sikkerhedsscanning af containerimages”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Grundlæggende Docker og DevOps-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Sikkerhedsscanning af containerimages”?

Integrer værktøjer til imagescanning i Deres CI/CD-pipeline for at identificere sårbarheder i Docker-images. Du øver dig i Grundlæggende Docker og DevOps med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Grundlæggende Docker og DevOps?

Der kræves ingen tidligere erfaring. Grundlæggende Docker og DevOps på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Sikkerhedsscanning af containerimages”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Grundlæggende Docker og DevOps-lektion?

Ja. Alle Grundlæggende Docker og DevOps-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Sikkerhedsscanning af containerimages
  2. Containersikkerhed under kørsel
  3. Håndtering af Secrets og RBAC
  4. Netværkspolitikker og netværk med mindst mulige privilegier
← Tilbage til Grundlæggende Docker og DevOps