Alexandre Bartel, professor vid Umeå universitet, har i samarbete med europeiska forskare upptäckt omfattande svagheter i ett av världens mest använda programmeringsspråk.
– Det handlar om brister i de processer som hämtar, tar emot och återskapar information – till exempel kundkonton, transaktioner eller patientjournaler.
-Det här kan skapa stora kostnader för företag och myndigheter och vi rekommenderar att helt ta bort funktioner som förlitar sig på deserialisering.
Java ligger bakom applikationer som används i mobilspel, robotar och inbyggda system. Flera säkerhetsbrister har under åren rapporterats och nu har de europeiska forskarna gått till botten av problemen och undersökt om, och hur dessa har åtgärdats.
De har tittat på alla Java-produkter som använder sig av deserialisering, en process där paketerad information återskapas till sitt tidigare tillstånd, till exempel användarinställningar, spelfunktioner, kundvagnar eller bankapplikationer, och genomfört en djupgående analys av befintliga sårbarheter och genomförda attacker.
– Vi har identifierat svagheter och hur bristerna har åtgärdats. Problemet är att programmerarna verkar upprepa samma misstag om och om igen och därför återinför sårbarheterna, säger Alexandre Bartel som är professor i programvaruteknik och datasäkerhet.
Stora bolag påverkade
I studien ”An In-Depth Study of Java Deserialization Remote-Code Execution Exploits and Vulnerabilities”, som genomfördes i samarbete med Eric Bodden, professor vid Paderborn University, Tyskland, Yves Le Traon, professor vid Université du Luxembourg i Luxemburg och forskaren Imen Sayar vid Institut de Recherche en Informatique de Toulouse, (IRIT), i Frankrike, ges flera exempel:
⦁ Brister i PayPals kritiska applikationer – gav tillgång till produktionsdatabaser
⦁ Sårbarheter på San Fransiscos transportmyndighet – angriparna fick kontroll över 2 000 datorer och blockerade betalningssystemen
⦁ Equifax, USA:s största kreditupplysningsföretaget i USA, – utsattes för en attack där angriparen lyckades stjäla 147,7 miljoner personuppgifter
De europeiska forskarna kan se att byteflödet, (informationsflödet) öppnar upp för modifiering av angripare.
– Det är under själva deserialiseringsprocessen, när man återskapar informationen, som angriparen får total kontroll över det mottagande systemet. Även mycket små förändringar i koden kan göra systemen sårbara för attacker, säger Alexandre Bartel.
Nya angrepp
De flesta Java-program är beroende av externa bibliotek och det finns inget enkelt sätt att åtgärda de drabbade systemen. Alexandre Bartel menar att utvecklare bör undvika att använda deserialisering helt och hållet för att förhindra att säkerhetsbrister introduceras i ny kod.
– Våra resultat tyder på att hela leveranskedjan för den utvecklade applikationen bör verifieras noggrant under hela applikationens livscykel. Resultaten är mycket allvarliga då de har potential att bli kostsamma, inte bara för företag utan även för samhället i stort, säger Alexandre Bartel.
Rönt stort intresse
Studien har publicerats i ansedda och selektiva TOSEM, tidskriften för ACM Transactions on Software Engineering and Methodology och har också presenterats på ICSE, International Conference on Software Engineering, en av de mest prestigefyllda konferenserna inom mjukvaruutveckling.
– Målet för oss är nu att utveckla metoder för att mer effektivt upptäcka dessa sårbarheter och förhindra attacker, säger Alexandre Bartel.