Nytt programspråk för att täppa till informationsluckor i mjukvara
Dagens metod att förhindra att användare och obehöriga kommer åt information de inte ska ha tillgång till i dataprogram baseras ofta på att kodgranskare går igenom koden manuellt och letar efter brister. Niklas Broberg vid Göteborgs universitet har nu utvecklat ett nytt programspråk som automatiskt upptäcker risker för informationsläckor redan när programmet skrivs.
De vanligaste orsakerna till säkerhetsproblem i dagens mjukvara är varken bristande nätverkssäkerhet, dåliga säkerhetsprotokoll eller svag krypteringsteknik. Oftast handlar det helt enkelt om att programmen är bristfälligt skrivna och innehåller möjliga informationsläckor. Genom att utnyttja läckor och kryphål som introducerats av misstag under programmeringen kan användare komma åt mer information än vad de egentligen borde ha tillgång till. Obehöriga kan också komma åt att manipulera känslig information i systemet, till exempel i en databas. Den vanligaste metoden för att förhindra läckor, kryphål och manipulation är idag att förlita sig på så kallade kodgranskare som manuellt ”korrekturläser” koden för att finna fel och brister efter att programmerarna är klara med koden.
Paragon upptäcker risker för informationsläckor redan när programmet skrivs
För att komma runt de här problemen har Niklas Broberg utvecklat programspråket Paragon. Tekniken presenteras i hans avhandling Practical, Flexible Programming with Information Flow Control som lades fram i augusti 2011.
– Styrkan i Paragon är programmets förmåga att automatiskt upptäcka risker för informationsläckor redan när programmet skrivs, säger Niklas Broberg. Paragon är en utveckling av det vanligt förekommande programspråket Java och är designat för att vara enkelt att använda. En programmerare ska lätt kunna lägga till mina specifikationer till sina Java-program, och därigenom få de starka säkerhetsgarantier som språket ger.
Säkerhetsprocess i två steg
Niklas Brobergs teknik består av två steg. I det första steget specificeras hur information i programvaran får användas, vem som får ha tillgång till den och under vilka förutsättningar. Steg två i säkerhetsprocessen sker under kompileringen, där programmens användning av informationen analyseras på djupet. Finns det risk att känslig information kan läcka eller manipuleras ger kompilatorn ett felmeddelande, vilket ger programmeraren möjlighet att rätta till problemen omedelbart. Den analysteknik som används har bevisats ge starkare garantier än alla tidigare försök på området.
– För att uppnå informationssäkerhet i ett system krävs en kedja av olika åtgärder, där systemet inte är säkrare än dess svagaste länk, säger Niklas Broberg. Vi kan ha aldrig så verksamma metoder för att garantera autentisering av användare eller kryptering av data, men som på grund av informationsläckor kan kringgås i praktiken. Säkerhetshål i mjukvara är idag den vanligaste källan till svagheter i våra datorsystem, och det är hög tid att vi börjar ta dessa problem på allvar.
Kontakt:
Niklas Broberg, institutionen för data- och informationsteknik, Göteborgs universitet, telefon: 031–772 1058, 070–649 35 46, e-post: niklas.broberg@gu.se
Catharina Jerkbrant
Kommunikatör
Telefon: 031-772 4898
E-post: catharina.jerkbrant@gu.se
Göteborgs universitet är ett av de stora i Europa med 39 000 studenter och 5 700 anställda. Verksamheten bedrivs av åtta fakulteter, till allra största del i centrala Göteborg. Utbildning och forskning har stor bredd och hög kvalitet – det vittnar sökandetryck och nobelpris om. www.gu.se.
Taggar: