Beste praksis for sikkerhet i CI/CD
Forstå vanlige sikkerhetssårbarheter i pipelines og beste praksis for å redusere risiko gjennom hele utviklingslivssyklusen.
Beste praksis for sikkerhet i CI/CD er en gratis leksjon i DevOps-bootcamp på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i DevOps-bootcamp, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.
Hvorfor CI/CD-sikkerhet er viktig
I moderne programvareutvikling er CI/CD-pipeliner avgjørende. De automatiserer bygging, testing og utrulling av koden din.
Men med stor makt følger stort ansvar! Det er svært viktig å sikre disse pipelinene for å beskytte kode, data og infrastruktur mot ondsinnede angrep eller utilsiktede sårbarheter.
Identifiser sårbarheter i pipelinen
Før vi sikrer pipelinen, må vi forstå hva vi beskytter oss mot. CI/CD-pipeliner kan være sårbare for flere typer angrep:
- Kompromitterte tilgangsopplysninger: Stjålne API-nøkler eller tokens.
- Skadelige avhengigheter: Bruk av biblioteker med kjente sikkerhetssvakheter.
- Usikre konfigurasjoner: Feilkonfigurerte tilgangskontroller eller byggesteg.
- Angrep på leverandørkjeden: Tukling med selve byggeprosessen.
Bruk prinsippet om minste privilegium
Prinsippet om minste privilegium (PoLP) innebærer å gi brukere og automatiserte prosesser (som CI/CD-jobber) bare minimumstillatelsene de trenger for å utføre oppgaven sin, og ikke mer.
Dette begrenser den mulige skaden hvis en tilgangsopplysning eller jobb blir kompromittert. For GitHub Actions bør du definere spesifikke tillatelser for hver jobb.
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"Sikre kode og avhengigheter
Kildekoden er selve kjernen i applikasjonen din. Sørg for at den er sikker helt fra starten.
- Kodegjennomganger: Fagfellevurderinger avdekker potensielle sikkerhetsmangler.
- Statisk analyse: Bruk verktøy til å skanne kode for sårbarheter (selv om dedikert SAST kommer i en senere leksjon).
- Skanning av avhengigheter: Se regelmessig etter kjente sårbarheter i tredjepartsbiblioteker.
Håndter tredjepartsavhengigheter
De fleste prosjekter bygger på biblioteker med åpen kildekode. Selv om de er kraftige, kan de introdusere sårbarheter hvis de ikke håndteres på en forsvarlig måte.
- Bruk en skanner for avhengigheter: Integrer verktøy som Dependabot for automatisk å se etter kjente sårbarheter.
- Lås avhengigheter: Angi nøyaktige versjoner av avhengighetene for å unngå uventede endringer.
- Regelmessige oppdateringer: Hold avhengighetene oppdatert for å dra nytte av sikkerhetsoppdateringer.
Sikre byggemiljøet
Miljøet der koden bygges og testes, bør være så sikkert som mulig. Se på det som et renrom for programvaren din.
- Midlertidige runners: Bruk nye, isolerte miljøer for hver jobb. GitHub-hostede runners er som standard midlertidige.
- Minimalt med verktøy: Installer bare verktøyene som er nødvendige, for å redusere angrepsflaten.
- Sikre basisbilder: Hvis du bruker containere, bør du bruke pålitelige, herdet basisbilder.
Hardkod aldri hemmeligheter
Sensitiv informasjon som API-nøkler, databasepåloggingsopplysninger eller private tokens skal ALDRI hardkodes direkte i repositoriet eller arbeidsflytfilene dine.
Bruk alltid et sikkert system for håndtering av hemmeligheter. Da holdes sensitive data utenfor versjonskontrollen og kryptert.
Valider inndata til arbeidsflyter
Hvis arbeidsflyten din tar imot eksterne inndata (f.eks. fra en manuell utløsning eller en kommentar til en pull request), må disse inndataene valideres og renses.
Inndata du ikke stoler på, kan være en angrepsvektor for injeksjonsangrep, på samme måte som webapplikasjoner validerer brukerinndata.
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: stringLoggfør og overvåk pipelineaktivitet
God oversikt over aktivitet i pipelinen er et viktig sikkerhetstiltak. Gode logger gjør det enklere å oppdage og reagere raskt på mistenkelig atferd.
- Omfattende logging: Loggfør alle viktige hendelser og handlinger i arbeidsflytene dine.
- Overvåk avvik: Se etter mislykkede sikkerhetskontroller, uautoriserte tilgangsforsøk eller uvanlige byggetider.
- Varsling: Konfigurer varsler for kritiske sikkerhetshendelser.
Sjekk forståelsen din
La oss teste kunnskapene dine om beste praksis for CI/CD-sikkerhet.
Oppsummering av leksjonen og neste steg
Gratulerer! Du har lært viktige sikkerhetsanbefalinger for CI/CD-pipelinene dine.
- Bruk prinsippet om minste privilegium.
- Sikre kildekoden og håndter avhengighetene.
- Sikre byggemiljøene.
- Hardkod aldri hemmeligheter.
- Valider alle inndata til arbeidsflyter.
- Ta i bruk robust logging og overvåking.
Disse anbefalingene danner et solid grunnlag for en sikker DevOps-livssyklus. I kommende leksjoner går vi dypere inn i bestemte verktøy og teknikker, som GitHub Secrets og SAST.
Lær deg DevOps-bootcamp 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
- 142
- Leksjoner
- 568
Ofte stilte spørsmål
Er leksjonen «Beste praksis for sikkerhet i CI/CD» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien DevOps-bootcamp, inkludert «Beste praksis for sikkerhet i CI/CD», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.
Hva lærer jeg i «Beste praksis for sikkerhet i CI/CD»?
Forstå vanlige sikkerhetssårbarheter i pipelines og beste praksis for å redusere risiko gjennom hele utviklingslivssyklusen. Du øver på DevOps-bootcamp 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 DevOps-bootcamp?
Ingen tidligere erfaring er nødvendig. DevOps-bootcamp 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 1 av 4.
Hvor lang tid tar leksjonen «Beste praksis for sikkerhet i CI/CD»?
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 DevOps-bootcamp-leksjonen?
Ja. Alle DevOps-bootcamp-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
- Beste praksis for sikkerhet i CI/CD
- Håndtering av hemmeligheter med GitHub
- Statisk applikasjonssikkerhetstesting (SAST)
- Sikkerhet for avhengigheter og forsyningskjeden (SCA)