Säkerhet

Värsta sårbarheten på åratal – så fungerar Log4shell

Foto: Øijord, Thomas Winje
Foto: Øijord, Thomas Winje
Jonas Lejon driver säkerhetsfirman Triop. Foto: Triop
Jonas Lejon driver säkerhetsfirman Triop. Foto: Triop

En säkerhetslucka i ett loggsystemet Log4j som används av miljontals system har skakat om internet. Men varför fruktar alla Log4shell?

Publicerad

Artikeln har uppdaterats.

Vad har hänt?  

På torsdag kväll förra veckan spreds rapporter om hackare som använde sig av en sårbarhet i loggsystemet Log4j för att ta över bland annat Minecraft-servrar.  

Säkerhetshålet kallas för Log4shell (CVE-2021-44228) och listan över sårbara system bara växer och växer. Troligen handlar det om miljontals it-system som är drabbade. Det har redan kallats ett av de största säkerhetshålen under gångna decenniet.  

– Det här är den allvarligaste sårbarhet vi sett på flera år, den berör så många olika produkter och system, säger Jonas Lejon som driver it-säkerhetsföretaget Triop.

Under onsdagen släppte it-säkerhetsfirman Checkpoint en rapport som visar att många hackergrupper aktivt försöker hitta sårbara nätverk. De senaste 72 timmarna har bolaget detekterat 846 000 attacker där angriparen använt sig av Log4j-buggen.

Av bolagets svenska kunder ska 52 procent ha utsatts för hackerangrepp relaterade till sårbarheten i Log4j under samma tidsperiod.

Vad är Log4j? 

Apache Log4j är ett loggningssystem med öppen källkod för program som byggts i programmeringsspråket Java. Det används för att föra loggfiler över vad som sker i applikationer eller i ett system. 

– Brister i loggningssystemet är det sista man vill ha. Det är där man kan spåra allvarliga händelser, och där finns ofta känslig information och data, säger Jonas Lejon. 

Listan över företag som använder Log4j är mycket lång. Apple, AWS, Cisco, Cloudflare, Google, Huawei, Microsoft och Salesforce har alla tjänster eller applikationer bekräftas vara eller har varit drabbade. 

– Har man en mjukvara som är skriven i Java bör man kolla om den använder Log4j, det är lite de facto standard att använda när man utvecklar i Java, säger Jonas Lejon. 

Sårbarheten går att spåra tillbaka till version 2.0 av Log4j, som släpptes 2014.

Hur fungerar sårbarheten?  

Att upptäcka sårbarheten i ett system är relativt enkelt. Det gäller att få loggsystemet att läsa en särskild kodsträng som triggar sårbarheten. Hur det går till varierar förstås mellan system, med det finns gott om exempel publicerade på nätet. 

Någon har lyckats hacka en mejlserver genom att skriva kodsträngen i mejlets ämnesrad, någon annan genom att skriva kodsträngen i ett chattsystem eller genom att skicka den i ett sms.  

– Jag såg någon som testat och fick anrop tillbaka i sökfältet på Linkedin, någon annan hade testat på sin Tesla, säger Jonas Lejon. 

I kodsträngen kan hackaren bädda in ip-adressen till en server som loggsystemet ska anropa. Det går sedan att lura loggsystemet att läsa in skadlig kod, och hackaren kan i förlängningen ta kontroll över det.  

Det innebär till att börja med att det går att läsa och ändra i loggarna. Men hackaren kan också under många omständigheter komma åt filer och funktioner på både själva loggsystem och de system som gör logginlägg i det.  

– Oftast får man en rätt hög behörighet på systemet som kör loggfunktionen, säger Jonas Lejon. 

Många säkerhetsexperter är kritiska till att ett loggsystem över huvud taget läser och kör kodsträngar.  

– Det är en designmiss i katastrofal skala, säger Free Wortley som är vd för säkerhetsföretaget Lunasec till Wired.

Vad går det att göra åt sårbarheten? 

För slutanvändare och konsumenter är det inte mycket att göra, mer än att i sedvanlig ordning hålla program uppdaterade till den senaste versionen. Det stora jobbet hamnar hos tjänsteleverantörer och företag.  

Till att börja med finns en förebyggande åtgärd, som kanske inte hjälper den som är nödställd i dag. 

– Vi som designar och bygger säkra system har alltid sagt att loggsystemet är det känsligaste och det man ska skydda allra mest. Det bör inte ha någon åtkomst till internet, säger Jonas Lejon.  

För de flesta handlar det i dagsläget annars om att först och främst ta reda på om man har produkter eller tjänster som använder sig av Log4j.  

– Man kan också söka direkt efter sårbara system på sina klienter och servrar, och använda verktyg som aktivt söker efter sårbarheter (så kallade EDR-system, reds. anm.) och så klart kolla med sina mjukvaruleverantörer om de åtgärdat sårbarheten. Gör man det bör man vara relativt säker, säger Jonas Lejon. 

Troligen kommer dock många system att förbli sårbara för Log4shell. Sårbarheten har funnits i åtminstone sju år, och finns troligen i miljontals system. Äldre applikationer och tjänster som av olika skäl slutat få säkerhetsuppdateringar kan alltså komma att fortsätta vara sårbara.  

– I föråldrade system kommer en sådan här sårbarhet att leva kvar, säger Jonas Lejon.