Presentation
KTH CHAINS

Bygger mer robusta programvarukedjor

Publicerad 12 juni 2024
Foto: Johan Marklund
Övre raden från vänster: Frank Reyes-Garcia, Martin Monperrus, Raphina Liu, Carmine Cesarano, Sofia Bobadilla, Mathias Ekstedt, Elias Lundell. Nedre raden från vänster: Aman Sharma, Monica Jin, Yekatierina Churakova, Vivi Andersson, Javier Ron. Foto: Johan Marklund
Övre raden från vänster: Frank Reyes-Garcia, Martin Monperrus, Raphina Liu, Carmine Cesarano, Sofia Bobadilla, Mathias Ekstedt, Elias Lundell. Nedre raden från vänster: Aman Sharma, Monica Jin, Yekatierina Churakova, Vivi Andersson, Javier Ron. Foto: Johan Marklund

På KTH forskar man för att hitta sätt att skapa hållbarare och säkrare programvarukedjor, på samma sätt som man gör för varuförsörjningskedjor. Efter ett drygt års forskning kan de konstatera att programvarukedjorna utgör ett ännu större kaos än vad de befarade.

I projektet CHAINS – Härdning och analys av programvaruleveranskedjor tar man fram avancerade tekniker och metoder för programvaruutveckling för att härda programvarubibliotek och utvecklingsverktyg. Här är målet är att minska risker gällande tillförlitlighet, underhåll och säkerhet. Bakgrunden är bland annat alla stora ransomeware-attacker som blockerat hela verksamheter under senare år, ett problem som behöver hanteras.
– Vi har sedan projektstarten i början av förra året nu fått ihop ett starkt forskarteam med ett antal duktiga forskarstudenter och de har påbörjat sina projekt. CHAINS jobbar med tre olika faser av programvaruutvecklingen. Vi utvecklar algoritmer och verktyg för hotmodellering under utvecklingsfasen, säkra och tillförlitliga byggsystem samt övervakning av exekverande kod i leveranskedjan, berättar Martin Monperrus, professor på avdelningen för Teoretisk datalogi på KTH.
Det handlar om forskning på programvaruförsörjningskedjan för att skapa en säkrare digital infrastruktur. I CHAINS fokuseras på att härda denna försörjningskedja av programvarubibliotek och verktyg, för att förbättra tillförlitligheten och säkerheten för applikationer som är distribuerade över branschen.
– Det gör vi genom att ta fram nya algoritmer för att förhindra att buggar och skadlig kod infekterar en programvaras leveranskedja av applikationer. Genom att hantera dessa risker gör vi applikationerna robustare och ökar därmed säkerheten för användarna, fortsätter han.

Vill bygga ett ramverk
Under den första fasen i programvaruutvecklingen handlar det om att förstå vilka hot som finns för att kunna undvika att få in dem i programvaran. Samtidigt kan man inte hantera alla hot, utan det gäller att kunna prioritera de som utgör största faran.
– Idag finns dock inga ramverk som går att lita på för att kunna identifiera olika hot. Vulnerability Exploitability eXchange (VEX) är en standard som är tänkt att hjälpa både leverantörer och användare att hålla reda på kända sårbarheter som utgör den mest omedelbara risken. Dock visar det sig att det inte går att lita på verktyg som tar fram VEX information och målet med mitt forskningsprojekt är att förstå tillförlitligheten i denna information, samt att förhoppningsvis bygga ett ramverk som kan nyttja denna information för att skapa bättre underlag för att bedöma risker med leveranskedjan, förklarar forskarstudenten Yekatierina Churakova.
Idag finns det stora problem både med att sårbarheter missas i verktygens rapportering och med överrapportering av sårbarheter som inte finns i programvaran. Hennes projekt handlar om att kunna förstå mer om potentiella sårbarheter.

Säkra program när de körs
I den andra fasen av programvaruutvecklingen som hanteras under projektet handlar det om att hitta sätt att hantera potentiella hot under processen då koden byggs ihop till en exekverbar modul.
– Jag kommer att titta på möjligheterna att skapa automatisk reparation om kodändringar, i synnerhet skadliga sådana, smyger sig in i de många beroenden som programkoden har till andra programkodsmoduler. Frågan är hur det kommer sig att ett helt program kan bryta samman på grund av en enda adderad rad i koden, berättar forskarstudenten Frank Reyes-Garcia.
Forskarstudenten Aman Sharma fokuserar i sitt projekt på den tredje fasen av programvaruutvecklingen som handlar om att skapa större säkerhet under användning av olika programvaror, att undvika oförutsedda hot under exekveringen av ett program.
– Det som händer idag är att när man kör ett program så pågår saker i bakgrunden som kan innebära att skadlig kod dynamiskt laddas in i programvaran när den exekveras. I mitt projekt ska jag bygga system som förebygger att det går att exekvera okänd kod under det att ett program körs i datorn. Jag vill bygga ett vaktsystem kring programmen, förklarar han.

Samverkan mellan expertkompetenser
I CHAINS-projektet samverkar expertkompetenser från tre olika områden på KTH som under många år forskat på säkerhetsfrågor kopplat till utveckling av programvaror, och som konstaterat att just försörjningskedjorna för programvaror är lite av en blind fläck inom forskningen.
– Två av de viktigaste resultaten från detta forskningsprojekt blir att vi utbildat ett antal forskare som kommer att ha en djup förståelse för problematiken med sårbarheter i programvaruleveranskedjor, och därtill ha ett antal verktyg för att kunna hjälpa samhället att bygga mer robust digital infrastruktur. De kommer att behövas för att bringa ordning i det kaos som programvarukedjorna visat sig utgöra, avslutar professor Mathias Ekstedt, professor på avdelningen för Nätverk och systemteknik på KTH.

KTH – CHAINS

CHAINS – Härdning och analys av programvaruleveranskedjor är ett projekt inom 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. I projektet samverkar två avdelningar på KTH: Teoretisk datalogi och Nätverk och systemteknik.

chains.proj.kth.se