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.
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:
-
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.
-
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.
-
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.
-
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.