Skip to main content

CI/CD

Et godt CI/CD-system (Continuous Integration / Continuous Deployment) kan brukes til å øke sikkerheten på sluttproduktet betydelig.
Her beskrives tiltak som bør være en del av de fleste CI/CD-systemer.

pre-commit

Et tips er å bruke pre-commit til å kjøre alt av linting, formatering, og testing, for så å bruke den samme pre-commit konfigurasjonen i CI/CD. Dette vil minimerer vedlikeholdet, gjøre det enkelt å teste lokalt, og fange opp problemer tidlig.

Merk; noen av verktøyene listet opp her har ulike lisense krav. Noen er helt gratis, andre kun for non-commercial use, og andre betales for. Hvilke verktøy man trenger, og ønsker å betale for må avklares i hvert prosjekt med hver enkelt kunde. For public repositories på Github for man automatisk enkelte funksjoner som må betales for i private repositories.

Software compostion analysis (SCA)

Software compostion analysis (SCA) kan settes opp automatisk som en del av CI/CD. Se Software composition analysis (SCA) for mer informasjon. Vær varsom med å hindre et bygg basert på tilbakemeldinger fra SCA-verktøy. Nye sårbarheter oppdages hele tiden, og ofte kan det være viktigere å få bygget systemet enn å måtte håndtere en nyoppdaget sårbarhet, som kanskje ikke er relevant for systemet.

Testing

Å kjøre tester i CI er lurt av flere grunner, men fra et sikkerhetsperspektiv er det enkelte tester som bør være med.

  • Test alle aktuelle endepunkter for 401/403 responser
  • Test kode som håndterer autorisasjon (hvem får gjøre hva). Her vil det være en fordel om all autorisasjonslogikk skjer på et sentralisert sted i kodebasen.
  • Test for strict JWT valdiation

Statisk kodeanalyse (SAST)

Statisk kodeanalyse bør konfigueres til å kjøres automatisk som en del av CI/CD. Se Statisk kodeanalyse (SAST) for mer informasjon. Man kan vurdere om et bygg skal feile dersom den statiske kodeanalysen oppdager alvorlige svakheter med koden eller lav testdekning.

Secret scanning

Om man skulle være så uheldig å pushe secrets til versjonskontrollsystemet, kan et CI/CD system redde deg ved å identifisere disse, og i noen tilfeller til og med gjøre de ugyldige mot den tjenesten de er ment for.

Noen alternativer: