Slik etablerer bedriften gode sikkerhetstiltak i produktutviklingen

Manglende sikkerhet i programvarekoden kan utsette organisasjonen for unødvendig risiko, noe som i verste fall kan føre til økonomiske tap og skade. Her deler vi tips om hva du bør gjøre for å minimere sårbarheter.

Joachim Deisz, Knut Erik Hollund

Trykk på taggene for å lese mer om hvor og hvordan vi benytter samme fag og teknologi


Sikker systemutvikling er en disiplin eller arbeidsmetodikk som skal hjelpe deg å minimere risikoen for sikkerhetshull. For å løfte et utviklingsteam opp til et virkelig godt sikkerhetsnivå, krever det kontinuerlig arbeid og tilgang på rett kompetanse. 

Vi opplever ofte at applikasjonssikkerhet dessverre bare er et sjekkpunkt helt på slutten av produktutviklingsprosessen.

Vi opplever ofte at applikasjonssikkerhet dessverre bare er et sjekkpunkt helt på slutten av produktutviklingsprosessen. Når sikkerhetshullene da oppdages er de som regel vanskelige og kostbare å utbedre. I verste fall blir de ikke oppdaget i det hele tatt, på grunn av mangel på kompetanse eller rutiner. 

Beste praksis er å integrere sikkerhet i alle steg av utviklingsprosessen, fra design, planlegging og utvikling, og til testing, produksjonssetting og monitorering. Grunnet rask utvikling og hyppige produksjonssettinger er det også nødvendig å ha kompetanse på testautomatisering. 

Viktige elementer for god applikasjonssikkerhet er: 

  • Forstå hva sikker kodestandard er, og etablere og vedlikeholde kompetanse og rutiner i teamet 

  • Utpek en Security Champion i teamet og budsjettér med tid til å bli god i rollen 

  • Kontinuerlig oppdatere trusselmodellering og risikovurdering 

  • Etablere automatisert statisk og dynamisk sikkerhetstesting av programkode 

  • Konfigurere byggemiljø og pipelines 

  • Sette opp kontinuerlig søk etter sårbarheter i tredjepartsbiblioteker og containere 

  • Sette opp søk etter sårbarheter i infrastrukturkonfigurasjon 

  • Penetrasjonstesting av "ready to ship" løsninger 

I Bouvet jobber vi primært med fire hovedområder for å oppnå god sikkerhet i kodebasen. Nedenfor er noen eksempler på hva vi jobber med innenfor disse områdene.  

Her noen eksempler på hva vi jobber med innenfor disse områdene:

  1. Organisering av aktivitetene 
    For å bygge sikkerhet inn i utviklingsprosessen, må de som er involvert ha tilstrekkelig kompetanse og tydelig mandat. Vi anbefaler å ha en Security Champion i teamet, og å budsjettere med tid til å bli god i rollen. Prosesser må være godt nok definert og fungere i praksis, og ha nødvendige teknologiske løsninger for å støtte automatisering og testing. 

  1. Beskytte koden  
    Alle delene av koden må beskyttes mot uautorisert tilgang og endringer. Det må være mulig for kunder eller brukere å verifisere at programmet ikke har blitt endret på veien fra utviklerne eller distributør, og tidligere versjoner må være tilgjengelige for fremtidige behov. Gamle versjoner må derfor også være beskyttet. 

  1. Unngå sårbarheter i koden 
    Må sikre at koden har færrest mulig sårbarheter når den blir publisert. Dette arbeidet begynner med spesifikasjon, design og arkitektur. For selve kodingen må det etableres god praksis, og det må verifisere at praksisen etterleves. Teamet må konfigurere byggeprosessen riktig for å heve sikkerhetsnivået. Det er også viktig å ha kontroll på kode fra tredjeparter, og automatisere overvåkning av tilgjengelige oppdateringer for publisert kode. 

  1. Håndtere sårbarheter i koden 
    Gjennom monitorering og penetrasjonstesting kan vi identifisere sårbarheter i koden. Sårbarhetene må håndteres, og teamet må lære av erfaringene for å forhindre at lignende sårbarheter publiseres. 

Automatisk og manuell sikkerhetstesting er viktig 

Sikkerhetstesting består ofte i hovedsak av disse type tester: 

  • Statisk: analyse av koden mot regler, uten å eksekvere (kjøre) koden

  • Dynamisk: teste selve programmet med mange ulike typer inndata

  • Interaktiv testing: det å etterligne en bruker 

  • Komponentanalyse – se på avhengigheter av biblioteker o.a. 

 
Utfordringen er å velge de testene som gir mest effekt, verktøyene som passer best sammen med resten av utviklingsmiljøet, og konfigurere eller skrive tester slik at falske alarmer reduseres til et minimum. Ofte er det også behov for å jobbe med hvordan resultatet fra testene bør håndteres på en best mulig måte. 

 

Ta kontakt om din organisasjon vil vite mer om sikkerhet i produktutvikling 

Bouvet har ekspertise på sikkerhet i alle deler av en produktutviklingsprosess, og bistår både produktteam og utviklingsteam med å bli sikrere versjoner av seg selv. 

 

Joachim Deisz
Avdelingsleder
Knut Erik Hollund
Enhetsleder