30 januari 2024
FOI Totalförsvarets forskningsinstitut

Därför har mjukvaror sårbarheter

Ofta beror problem med mjukvara i datorer på bristande teknik. Men det kan lika gärna bero på att utvecklaren saknar motivation eller kompetens, enligt en studie från FOI.

Trots årtionden av forskning och utveckling inom mjukvarusäkerhet är det fortfarande vanligt med sårbarheter, det vill säga säkerhetsbrister i koden som kan utnyttjas av en angripare.
I en förstudie från FOI – Varför har mjukvaror sårbarheter? – har fyra forskare undersökt vilka faktorer som kan förklara uppkomsten av sårbarheter.

I förstudien, som är en sammanställning av tidigare forskning, menar forskarna att man inte ska stirra sig blind på tekniska anledningar till sårbarheter. Man ska även titta närmare på den mänskliga faktorn, till exempel bristande motivation och kommunikation hos dem som utvecklat koden.

– Utvecklare generellt tycker inte om att dokumentera vad de har gjort. De vill hellre skriva flera rader kod än att förklara vad de gjort, säger Henrik Karlzén, en av forskarna bakom studien.

Han nämner ytterligare en aspekt: många utvecklare använder kod som redan finns.

– Man googlar till exempel ”Jag har det här problemet. Hur brukar man lösa det?”, och så ser man en kod på nåt diskussionsforum och kopierar den. Då kanske det inte blir så bra, ifall den koden inte är anpassad för den specifika situationen.

Därtill är ofta flera programmerare inblandade i samma utvecklingsprojekt och har inte alltid koll på vad de andra gör.

– En programmerare som skriver sin kod förstår ju själv vad det står där. Men sen kommer någon annan in och ska göra en ändring i koden. Då gäller det att den personen kan sätta sig in i vad den första har gjort för någonting, och det är inte alltid så enkelt.

Säkerhetsaspekten eftersatt

En annan orsak enligt studien är att it-företagen inte alltid är så säkerhetsinriktade. Dessutom tänker många företag att det alltid går att uppdatera mjukvaran i efterhand.

– Man säger ofta att ”vi kunde inte upptäcka alla sårbarheter i förväg”, men hade man lyssnat på dem som är mer säkerhetskunniga så hade många av problemen undvikits.

Henrik Karlzén menar att det finns en tradition i IT-branschen att skicka ut mjukvaran och sedan låta användaren själv uppdatera sin dator och ha säkerhetsprogram, antivirusskydd med mera.

– Men det finns ju massor med inställningar på en dator som är väldigt svåra att förstå sig på. Det är lite slappt att man lägger över så mycket ansvar på användarna.

Ett tredje problem är att säkerhetsaspekten i utbildningarna på universiteten är eftersatt.

– Samtidigt som vi skrev den här rapporten så skedde en intervju med en chef för en stor myndighet i USA, som är lite grann som MSB, som sa att man kunde bli programmerare utan att ha gått någon säkerhetskurs. Det är ett tydligt exempel på att man inte tar det seriöst.

Studien lyfter även fram ett antal förslag på vidare forskningsområden. Forskarna resonerar bland annat kring att svensk företagskultur kan göra att vi utvecklar mjukvara på särskilda sätt.

Ett annat framtida forskningsområde är hur säkerhetsinriktade de svenska utvecklarna är, speciellt de som gör mjukvara åt Försvarsmakten.

– Tänker de mer på säkerheten och är de kanske duktigare för att de vet vem kunden kommer bli?, säger Henrik Karlzén.

Den forskningen skulle även kunna inbegripa hur man kan öka kvaliteten hos utvecklarna när det gäller säkerhet.

– Kan man ha speciella anställningstester för att hitta de personer som redan har kunskap eller framför allt rätt inställning och motivation? Det finns ju en del organisationer som är bättre än andra på att utveckla bra mjukvara, då skulle man vilja ta reda på varför. Är det någon särskild kultur och går den i så fall att föra över till andra organisationer, säger Henrik Karlzén.