Många talar om vikten av hållbara och säkra varuförsörjningskedjor, men få talar om den minst lika avgörande försörjningskedjan för programvaror. När hela samhället digitaliseras med en mängd olika programvaror skapas beroenden mellan olika delar, vilket i sin tur öppnar för säkerhetsrisker.
Man har i media kunnat läsa skräckexempel där företag som COOP haft stora problem med ransomeware-attacker som blockerat hela verksamheten. Ett skäl till att sådana attacker kan genomföras är att det finns svagheter i försörjningskedjan för programvaror.
– Programvaruförsörjningskedjan definieras som all programvara som en organisation är beroende av för att driva sin verksamhet, från löner, resor, förvärv, till nätverksadministrationsverktyg, åtkomstkontroll och databaser. I den kedjan är det relativt lätt att skicka in olika virus genom exempelvis en uppdatering som alla företag kontinuerligt installerar. Därför måste den försörjningskedjan bli betydligt mer robust och säkrad för attacker, förklarar professor Benoit Baudry, professor i programvaruteknik på KTH.
Ett obeforskat område
Han och hans kollegor på KTH har under många år forskat på säkerhetsfrågor kopplat till utveckling av programvaror, och de har konstaterat att just försörjningskedjorna för programvaror är lite av en blind fläck inom forskningen.
– Vi bestämde oss därför för att kombinera våra expertkompetenser och ge oss i kast med den frågan. Att det är en viktig fråga visar inte minst det faktum att Vita Huset i USA har klassat programvaruförsörjningskedjan som en viktig risk för samhället, förklarar han vidare.
Det ledde till projektet ”Härdning och analys av programvaruleveranskedjor” som de just fått finansiering för.
Sårbarhet under tre faser
Programvaruförsörjningskedjan kan delas in i tre faser då olika typer av säkerhetsaspekter behöver adresseras.
– Den första fasen är under designstadiet då man utvecklar koden och väljer vilka delar som ska ingå och vilken försörjningskedja som ska gälla. Den andra fasen är när koden är klar och redo att byggas in i en produkt. Och avslutningsvis är det distributionsfasen, ut till kund. Under alla faser man kan göra mycket redan idag för att säkra upp försörjningskedjan och bygga säkrare och mer tillförlitliga produkter, förklarar Mathias Ekstedt, professor på avdelningen för nätverk och systemteknik på KTH.
Otroligt komplext system
Han berättar vidare att ett av de stora problemen som gör programvaruförsörjningskedjan så komplex, är att om det ingår 1000 delar i ett program så har vardera av dessa gått igenom de tre faserna, och de har i sin tur byggts av en mängd subkomponenter som även de gått igenom de tre faserna.
– När man förstår det blir det uppenbart hur viktigt det är att både medvetandegöra alla om att det är så verkligheten ser ut, och att utveckla sätt att i varje fas, för varje komponent och subkomponent, hjälpa programvaruutvecklare att skapa säkrare och mer robusta sätt att bygga system.
Medvetenheten om problemen är ett viktigt första steg enligt forskarna på KTH.
– När man vet det kan man redan från början försöka tänka smartare, kanske ifrågasätta om alla delar verkligen behövs eller om en del kan slopas på ett riskfritt sätt. Att kunna använda färre delar är ett av sätten man redan idag kan minska riskerna på, konstaterar Musard Balliu, docent i teoretisk datalogi på KTH.
De utvecklar nya verktyg
Hans kollega Martin Monperrus, professor i programvaruteknik, fortsätter med att förklara att det är i princip omöjligt att hitta säkerhetsrisker med var och en av av alla enskilda tusentals delar som används till en programvara.
– Vi behöver i ett första skede titta på olika kombinationer och den vägen hitta de som kan vara farliga, därefter kan vi gå ner och analysera dem en och en.
Projektets fokus är att både analysera programvaruförsörjningskedjan närmare för att förstå helheten och sedan utveckla nya verktyg som kan bidra till att göra programvaruförsörjningskedjan mer tillförlitlig, robust och säker.
– Vi kommer ta fram ett flertal olika verktyg för de olika delarna i leveranskedjan som vi sedan också ska testa. Vi kommer primärt att arbeta med öppen källkod vilket är bra för testbarheten. Men vi är också måna om att adressera samhällsviktiga funktioner och har därför involverat exempelvis företag som Primekey Solutions för att göra våra tester där, avslutar Martin Monperrus.
Sex forskningsprojekt får dela på 200 miljoner kronor i Stiftelsen för strategisk forsknings satsning på mjukvaruutveckling, SSF Future Software Systems – FuSS, med syfte att stimulera samverkande multidisciplinär forskning inom området av relevans för nuvarande eller framtida svenskbaserad industri och för samhället. Ett av dem är ”Härdning och analys av programvaruleveranskedjor” som fokuserar på forskning på den försörjningskedjan för att skapa en säkrare digital infrastruktur i samhället.
kth.se