Intensiv DevOps-uddannelse · Lektion

Bedste praksis for sikkerhed i CI/CD

Forstå almindelige sikkerhedssårbarheder i pipelines og bedste praksis til at begrænse risici gennem hele udviklingslivscyklussen.

Lektion 1 af 411 trin

Bedste praksis for sikkerhed i CI/CD er en gratis Intensiv DevOps-uddannelse-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 Intensiv DevOps-uddannelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.

Hvorfor CI/CD-sikkerhed er vigtig

I moderne softwareudvikling er CI/CD-forløb afgørende. De automatiserer bygning, afprøvning og udrulning af din kode.

Men med stor magt følger stort ansvar! Det er afgørende at sikre disse forløb for at beskytte din kode, dine data og din infrastruktur mod ondsindede angreb eller utilsigtede sikkerhedsbrister.

Identificer sårbarheder i CI/CD-forløbet

Før vi sikrer forløbet, skal vi forstå, hvad vi beskytter det mod. CI/CD-forløb kan være sårbare over for flere typer angreb:

  • Kompromitterede legitimationsoplysninger: Stjålne API-nøgler eller adgangstokens.
  • Ondsindede afhængigheder: Brug af biblioteker med kendte sikkerhedsfejl.
  • Usikre konfigurationer: Forkert konfigurerede adgangskontroller eller byggetrin.
  • Angreb på forsyningskæden: Manipulation af selve byggeprocessen.

Anvend princippet om mindst mulige privilegier

Princippet om mindst mulige privilegier (PoLP) betyder, at brugere og automatiserede processer (f.eks. CI/CD-jobs) kun får de minimumstilladelser, de skal bruge for at udføre deres opgave, og ikke flere.

Det begrænser den potentielle skade, hvis en legitimationsoplysning eller et job kompromitteres. For GitHub Actions skal du definere specifikke tilladelser for hvert job.

jobs:
  build:
    runs-on: ubuntu-latest
    permissions:
      contents: read # Only read access to repo code
      packages: write # Only write to package registry
      id-token: write # Needed for OIDC authentication
    steps:
      - uses: actions/checkout@v4
      - run: echo "Build logic here"

Beskyt kode og afhængigheder

Din kildekode er hjertet i din applikation. Sørg for, at den er sikker fra starten.

  • Kodegennemgange: Gennemgange udført af kolleger opdager potentielle sikkerhedsfejl.
  • Statisk analyse: Brug værktøjer til at scanne koden for sårbarheder (selvom dedikeret SAST er et senere afsnit).
  • Sårbarhedsscanning af afhængigheder: Kontrollér regelmæssigt tredjepartsbiblioteker for kendte sårbarheder.

Håndter tredjepartsafhængigheder

De fleste projekter er afhængige af open source-biblioteker. Selvom de er nyttige, kan de introducere sårbarheder, hvis de ikke håndteres omhyggeligt.

  • Brug en afhængighedsscanner: Integrer værktøjer som Dependabot for automatisk at kontrollere for kendte sårbarheder.
  • Fastlås afhængigheder: Angiv præcise versioner af afhængigheder for at undgå uventede ændringer.
  • Regelmæssige opdateringer: Hold afhængighederne opdaterede, så du får gavn af sikkerhedsrettelser.

Hærd dit byggemiljø

Miljøet, hvor din kode bygges og afprøves, bør være så sikkert som muligt. Betragt det som et renrum for din software.

  • Midlertidige runners: Brug friske, isolerede miljøer til hvert job. GitHub-hostede runners er som standard midlertidige.
  • Minimale værktøjer: Installer kun de nødvendige værktøjer for at reducere angrebsfladen.
  • Sikre basisafbildninger: Hvis du bruger containere, skal du bruge pålidelige, hærdede basisafbildninger.

Hardkod aldrig hemmeligheder

Følsomme oplysninger som API-nøgler, databaselegitimationsoplysninger eller private tokens må ALDRIG hardkodes direkte i dit repository eller i dine workflowfiler.

Brug altid et sikkert system til håndtering af hemmeligheder. Det holder følsomme data ude af versionsstyringen og krypteret.

Valider inddata til workflows

Hvis dit workflow modtager eksterne inddata (f.eks. fra en manuel udløsning eller en kommentar til en pull request), skal disse inddata valideres og renses.

Ubetroede inddata kan bruges som angrebsvektor til injektionsangreb, ligesom webapplikationer validerer brugerinput.

on:
  workflow_dispatch:
    inputs:
      deploy_env:
        description: 'Environment to deploy to (e.g., staging, production)'
        required: true
        type: choice
        options:
          - 'staging'
          - 'production'
      version_tag:
        description: 'Git tag for the release version'
        required: true
        type: string

Logfør og overvåg CI/CD-forløbets aktivitet

Indblik i aktiviteten i dit CI/CD-forløb er en vigtig sikkerhedskontrol. God logføring hjælper dig med hurtigt at opdage og reagere på mistænkelig adfærd.

  • Omfattende logføring: Logfør alle væsentlige hændelser og handlinger i dine workflows.
  • Overvåg afvigelser: Se efter mislykkede sikkerhedstjek, uautoriserede adgangsforsøg eller usædvanlige byggetider.
  • Alarmering: Konfigurer alarmer for kritiske sikkerhedshændelser.

Tjek din forståelse

Lad os teste din viden om bedste praksis for CI/CD-sikkerhed.

Opsummering af lektionen og næste trin

Tillykke! Du har lært vigtige sikkerhedspraksisser for dine CI/CD-forløb.

  • Anvend princippet om mindst mulige privilegier.
  • Beskyt din kildekode, og håndter afhængigheder.
  • Hærd dine byggemiljøer.
  • Hardkod aldrig hemmeligheder.
  • Valider alle inddata til workflows.
  • Implementer solid logføring og overvågning.

Disse praksisser udgør et stærkt grundlag for en sikker DevOps-livscyklus. I kommende lektioner går vi i dybden med specifikke værktøjer og teknikker som GitHub Secrets og SAST.

Gratis at komme i gang

Lær Intensiv DevOps-uddannelse 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
142
Lektioner
568

Ofte stillede spørgsmål

Er lektionen “Bedste praksis for sikkerhed i CI/CD” gratis?

Ja — alle 3 lektioner i læringssporet Intensiv DevOps-uddannelse, inklusive “Bedste praksis for sikkerhed i CI/CD”, 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. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Bedste praksis for sikkerhed i CI/CD”?

Forstå almindelige sikkerhedssårbarheder i pipelines og bedste praksis til at begrænse risici gennem hele udviklingslivscyklussen. Du øver dig i Intensiv DevOps-uddannelse 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å Intensiv DevOps-uddannelse?

Der kræves ingen tidligere erfaring. Intensiv DevOps-uddannelse 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 “Bedste praksis for sikkerhed i CI/CD”?

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 Intensiv DevOps-uddannelse-lektion?

Ja. Alle Intensiv DevOps-uddannelse-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. Bedste praksis for sikkerhed i CI/CD
  2. Håndtering af secrets med GitHub
  3. Static Application Security Testing (SAST)
  4. Sikkerhed i afhængigheder og forsyningskæden (SCA)
← Tilbage til Intensiv DevOps-uddannelse