Sjekklisten for sikkerhet
Sikkerhet handler ikke bare om tekniske tiltak og kodeskanning, men også mye annet. Denne sjekklisten gir et utgangspunkt for å vurdere sikkerhetsnivå, ansvar og risiko i leveranser, og alle utviklingsteam skal ha et forhold til innholdet med mindre annet er avtalt med kunden.
Det er ikke gitt at alle punktene er relevante i alle prosjekter, eller at innføring av alle tiltak er ønskelig. Hvert enkelt team og leveranseansvarlig må selv vurdere kost/nytte og hvilket ansvar og risiko en påtar seg ved å ikke innføre tiltak. Sikkerhet krever kontinuerlig arbeid, så se over sjekklista jevnlig for å se om det er tiltak som kan eller bør innføres slik at en ikke overser noe.
Last ned sjekklisten og implementer den som en del av kildekoden i ditt prosjekt!
Planlegge
- Er det klart hvilket ansvar vi har i leveransen og er øvrig ansvar klart fordelt?
- Er data i systemet klassifisert og håndteres deretter?
- Håndteres data i utvikling- og test-miljø også i henhold til klassifisering?
- Dersom applikasjonen blir utilgjengelig i kortere eller lengre perioder, hvilke følger får dette for oss og kunden?
- Er det definert en SLA for applikasjonen?
- Ved en hendelse, har vi avklart hvem som skal kontaktes i Bouvet og hos kunden?
- Er det definert en plan for hvordan og hvor ofte backup skal tas?
- Er det definert en plan for disaster recovery?
- Har teamet avklart hvilke verktøy som skal brukes og hvordan disse skal håndteres?
- Er det definert kontrollmekanismer for å opprettholde sikkerhet i prosjektet?
Designe
- Er det klart hvilke sikkerhetskrav som gjelder for løsningen?
- Er nødvendige skisser/diagrammer av systemet laget og oppdatert?
- Har teamet den nødvendige oversikten over nettverket som systemet bruker?
- Er miljøene segregert for å redusere eksponering av hendelser?
- Er det satt opp nødvendig autentisering på tilgang til systemet?
- Er det satt opp nødvendig autorisering på handlinger i systemet?
- Er det gjennomført trusselmodellering av løsningen?
- Har teamet den nødvendige kompetansen for prosjektet?
Utvikle
- Er utviklingsmiljøene godt beskrevet?
- Håndteres hemmeligheter og liknende i henhold til gjeldende best-practice?
- Valideres data som hentes fra andre systemer?
- Er det rutiner for å sikre mot dagens vanligste angrepstyper?
- Er det rutiner for å sikre seg mot software supply chain angrep?
- Er det rutiner for å sikre interne komponenter som driftes av teamet?
- Analyseres sikkerheten gjennom testing eller annen form for analyse?
- Er nødvendig informasjon om systemet dokumentert, oppdatert og lagret på et sikkert sted?
Deploye
- Er det satt opp automatiserte sikkerhetstiltak?
- Har teamet et forhold til sikring av byggmiljø?
- Kjøres det review i forkant av deployment?
- Er det planlagt for penetrasjonstesting i forbindelse med deployment?
Forvalte
- Har teamet verifisert at nettverksdiagrammet er korrekt implementert?
- Dersom kunde eller andre krever audit av løsningen, har teamet planlagt for hvordan dette kan foregå?
- Er det satt opp nødvendig logging for å oppdage og få oversikt over uønskede hendelser?
- Lagres loggene slik at de ikke kan manipuleres?
- Har teamet en rutine for å sikre mot sårbare avhengigheter?
- Har teamet en rutine for å øve på gjenoppretting av systemet?
- Har teamet en prosedyre for hendelseshåndtering og en beredskapsplan dersom løsningen angripes eller går ned?