Hva er sikker koding?
Sikker koding søker å unngå lett å forebygge kodingsfeil som skaper sikkerhetsrisiko. Forskning på programvaresårbarhet viser at et stort antall utnyttelser er forankret i en liten gruppe vanlige programmeringsfeil. Analytikere publiserer informasjon om disse feilene for å gjøre koderne oppmerksom på problemet og oppfordrer dem til å bruke bedre sikkerhet i design og implementering av programvare. Spesifikke protokoller er utviklet for noen programmeringsspråk, for eksempel Java ™, for å gi veiledning til programmerere og hjelpe dem med å unngå vanlige fallgruver.
I denne prosessen bruker kodere standarder og praksis som eliminerer vanlige sikkerhetsproblemer. Problemer med kode kan oppstå av forskjellige årsaker, inkludert dårlig kontroll med tillatelser og knoppbufferprotokoller. Disse kan ikke identifiseres under utvikling eller testing, men kan bli synlige etter utgivelse. Hackere som søker utnyttelse kan spesifikt være linjer for vanlige svake punkter i programvare og kan finne dem ved å teste grensene, som lar dem utvikle målrettede angrep. Sikker koding kan eliminere disse enkle utnyttelsene.
Protokoller som brukes i sikker koding skaper en defensiv tilnærming til programvareutvikling. Når folk implementerer funksjoner for å gi funksjonalitet og tilfredsstille kundenes behov, lukker de også eventuelle smutthull som kan utvikle seg under designprosessen. Sikker koding kan være et spesielt problem med kode designet for bruk på nettet, der brukere kan ha slappe innstillinger i nettleserne sine, forutsatt at kode som stammer fra et kjent nettsted er klarert. Hvis koden til et nettsted er sårbar for hacking, kan det bli kapret og plante skadelig kode på datamaskinene og mobile enheter til besøkende.
Programvareutviklere har en balanse mellom funksjonalitet og sikkerhet. Noen sikkerhetstiltak vil gjøre programmer ekstremt vanskelige å bruke og kan utgjøre hindringer for full bruk. Å la folk bruke programmer uten sikkerhet, kan imidlertid utsette dem for fare. Det kan også være en trussel mot datanettverk som helhet; en bruker med en infisert datamaskin på et college-nettverk, for eksempel, kan forårsake problemer for mange andre brukere, inkludert sensitive laboratorier som kan være koblet til nettverket for tilgang.
Individuelle programmerere kan bruke en rekke taktikker i sikker koding, i tillegg til å følge protokoller etablert for spesifikke programmeringsspråk. Disse kan inkludere konsistens og klarhet i koding for å begrense forvirring og gjøre det mulig for andre programmerere å jobbe med den samme koden. I samarbeid kan forsøk på å fjerne en annen kode skape problemer som byr på sikkerhetsproblemer.