Skip to main content

Sikring av CI/CD

Systembrukere og miljø som benyttes i CI/CD har ofte vide og brede tilganger til det meste. Kildekode, Secrets, og Infrastruktur. Dette gjør et prosjekts CI/CD til et svært attraktivt mål.

Secrets

Secrets (passord, tokens, ssh-nøkler, osv.) er ofte nødvendig for at systemet skal ha tilgang til å gjøre det det skal.
Da det er disse som gir tilgang til beskyttede ressurser er det svært viktig at de behandles riktig og ikke kommer på avveie.

  • Bruk CI/CD-systemets eget system for å legge inn og bruke secrets
    • Ikke lag egne løsninger for å mate inn secrets (lesing fra fil, miljøvariabler, etc.)
  • Alle secrets bør ha en begrenset gyldighets periode (expire/utløpstid)
  • Unngå maskinbrukere og delte brukere
  • Kontroler at secrets ikke blir printet i loggene. Også når operasjoner feiler.
  • Send secrets kun til de stegene i jobben som har behov for de

Konfigurasjon

Da CI/CD-systemet vil være en kritisk del av den totale IT-løsningen, er det viktig å kunne gjenskape det raskt og korrekt ved eventuelle feil. Derfor bør konfigurasjonen og oppsettet av CI/CD være tekstbasert og en del av kildekoden som er under versjonskontroll.

Kjøremiljø

Om miljøet CI/CD skulle bli kompromitert kan det få alvorlige følger. Da kan publisert kildekode modifiseres, secrets bli hentet ut, og man kan kunne komme seg videre inn i systemet.
For generell sikring av virtuelle maskiner og containere finnes det egne sider om det.

  • Unngå å drifte kjøretidsmiljø for CI/CD selv (self hosted runners)
  • Unngå Jenkins (om du må, vær svært nøye med å oppdatere og hvilke plugins som brukes.)
  • Bruk Github Actions, men pass på...
    • Eksterne actions. Bør unngåes, ellers samme prinsipp som ved bruk av biblioteker. Kan også låses til commit SHA
    • Ikke tillat pull requests fra forks å kjøre i self hosted runners
    • Vurder å bruke environment secrets (per branch). Husk; alle som kan kjøre jobber har tilgang til alle secrets
    • Vurder federated identity credential (Azure + Github)
OWASP CI/CD Top 10

Om du ønsker å lese mer om det å sikre en CI/CD, anbefaler vi OWASP CI/CD Top 10