Modern och kraftfull säkerhetsteknik som skyddar mot hackerangrepp används i mycket låg utsträckning – trots att den funnits tillgänglig för utvecklare i över ett decennium. Nu kan forskare vid Umeå universitet avslöja varför och presenterar en automatiserad lösning för att enkelt ta tekniken i bruk.
Resultaten publiceras i en avhandling av Sabine Houy, doktorand vid Institutionen för datavetenskap.
I vanliga operativsystem som Windows, Android och iOS, liksom i webbläsare som Chrome och Edge, finns en inbyggd säkerhetsmekanism – Controll Flow Integrity, CFI. Den förhindrar angripare från att kapa programvara genom att utnyttja buggar eller minnesfel, särskilt i program skrivna i språk som C och C++.
– Angripare kan använda sådana brister för att omdirigera programflödet och köra skadlig kod, förklarar Sabine Houy.
CFI – ett robust skyddsräcke
Trots att tekniken är väl etablerad och tekniskt mogen är användningen förvånansvärt låg.
– Mindre än en procent av programvarupaketen i stora Linux-distributioner använder CFI. Android har bara aktiverat tekniken för utvalda komponenter, och detta är i sig anmärkningsvärt. CFI bygger robusta skyddsräcken och har funnits tillgänglig i över ett decennium, säger Sabine Houy.
I sin forskning har Houy undersökt vad detta beror på. När hon och hennes kollegor försökte aktivera CFI i Open JDK – den öppna källkodsversionen av Java – stötte de snabbt på omfattande problem. Programvaran vägrade att kompilera, kraschade eller betedde sig oförutsägbart.
– Att lösa problemen krävde omfattande manuellt arbete för att förstå varför säkerhetsverktyget krockade med hur programvaran var byggd, säger Sabine Houy.
Hon menar att problemet inte handlar om att CFI inte fungerar, utan snarare att verklig programvara är komplex och ofta bryter mot de antaganden som CFI bygger på.
För att lösa detta introducerar Houy nu ett verktyg som automatiskt upptäcker och reparerar dessa kompatibilitetsproblem, kallat CFIghter.
– I tester på verkliga programvaruprojekt lyckades vår lösning aktivera CFI där manuella försök hade varit både tidskrävande och tekniskt svåra, säger hon.
Direkt avgörande för säkerheten i kritiska system
Hennes resultat har omedelbar betydelse för programvarusäkerhet i kritiska miljöer. Operativsystem, webbläsare och industriella styrsystem använder alla programmeringsspråk som CFI kan skydda. Sabine Houys automatiserade verktyg kan hjälpa företag att införa säkerhetsskydd i större skala – något som blir allt viktigare när cyberattacker nu blir allt mer sofistikerade.
– Utvecklare vill använda säkerhetstekniker, men tröskeln blir för hög när verktygen inte fungerar som de ska. Det här innebär en smart och säker lösning som avlastar, säger hon.
CFI kommer dock inte att eliminera alla säkerhetsrisker.
– Men genom att göra det mer tillgängligt kan man avsevärt höja ribban för angripare som utnyttjar minneskänsligheter i kritiska mjukvarusystem, säger Sabine Houy.
Om avhandlingen
Tisdagen den 17 februari försvarar Sabine Houy, Institutionen för datavetenskap, sin avhandling med titeln Control Flow Integrity in Practice: Retrospectives, Realities, and Automated Enforcement.
På bilden: Säkerhetstekniker misslyckas inte för att de är ineffektiva, utan för att de är svåra att integrera i befintliga system. – Att göra säkerhetsverktyg enklare att använda är lika viktigt som att göra dem tekniskt solida, säger Sabine Houy som utvecklat den nya lösningen CFIghter
Foto: Victoria Skeidsvoll