Kredit:Pixabay/CC0 Public Domain
Log4Shell, en internetsårbarhet som påverkar miljontals datorer, involverar en obskyr men nästan allestädes närvarande mjukvara, Log4j. Programvaran används för att registrera alla slags aktiviteter som pågår under huven i ett brett utbud av datorsystem.
Jen Easterly, chef för U.S. Cybersecurity &Infrastructure Security Agency, kallade Log4Shell den allvarligaste sårbarheten hon sett i sin karriär. Det har redan gjorts hundratusentals, kanske miljoner, försök att utnyttja sårbarheten.
Så vad är denna ödmjuka bit av internetinfrastruktur, hur kan hackare utnyttja den och vilken typ av kaos kan uppstå?
Vad gör Log4j?
Log4j registrerar händelser – fel och rutinmässiga systemoperationer – och kommunicerar diagnostiska meddelanden om dem till systemadministratörer och användare. Det är öppen källkod som tillhandahålls av Apache Software Foundation.
Ett vanligt exempel på Log4j på jobbet är när du skriver in eller klickar på en dålig webblänk och får ett 404-felmeddelande. Webbservern som kör domänen för webblänken du försökte komma till berättar att det inte finns någon sådan webbsida. Den registrerar även den händelsen i en logg för serverns systemadministratörer som använder Log4j.
Liknande diagnostiska meddelanden används i alla program. Till exempel, i onlinespelet Minecraft, används Log4j av servern för att logga aktivitet som totalt använt minne och användarkommandon som skrivits in i konsolen.
Hur fungerar Log4Shell?
Log4Shell fungerar genom att missbruka en funktion i Log4j som tillåter användare att ange anpassad kod för att formatera ett loggmeddelande. Denna funktion tillåter Log4j att till exempel logga inte bara det användarnamn som är associerat med varje försök att logga in på servern utan även personens riktiga namn, om en separat server har en katalog som länkar användarnamn och riktiga namn. För att göra det måste Log4j-servern kommunicera med servern som har de riktiga namnen.
Tyvärr kan den här typen av kod användas för mer än att bara formatera loggmeddelanden. Log4j tillåter tredjepartsservrar att skicka in programvarukod som kan utföra alla typer av åtgärder på den riktade datorn. Detta öppnar dörren för skändliga aktiviteter som att stjäla känslig information, ta kontroll över det riktade systemet och släppa ut skadligt innehåll till andra användare som kommunicerar med den drabbade servern.
Det är relativt enkelt att utnyttja Log4Shell. Jag kunde återskapa problemet i min kopia av Ghidra, ett omvändt ramverk för säkerhetsforskare, på bara ett par minuter. Det finns ett mycket lågt gränsvärde för att använda denna exploatering, vilket innebär att ett större antal personer med skadliga avsikter kan använda den.
Log4j finns överallt
En av de största problemen med Log4Shell är Log4js position i mjukvarans ekosystem. Loggning är en grundläggande egenskap hos de flesta mjukvaror, vilket gör Log4j mycket utbrett. In addition to popular games like Minecraft, it's used in cloud services like Apple iCloud and Amazon Web Services, as well as a wide range of programs from software development tools to security tools.
This means hackers have a large menu of targets to choose from:home users, service providers, source code developers and even security researchers. So while big companies like Amazon can quickly patch their web services to prevent hackers from exploiting them, there are many more organizations that will take longer to patch their systems, and some that might not even know they need to.
The damage that can be done
Hackers are scanning through the internet to find vulnerable servers and setting up machines that can deliver malicious payloads. To carry out an attack, they query services (for example, web servers) and try to trigger a log message (for example, a 404 error). The query includes maliciously crafted text, which Log4j processes as instructions.
These instructions can create a reverse shell, which allows the attacking server to remotely control the targeted server, or they can make the target server part of a botnet. Botnets use multiple hijacked computers to carry out coordinated actions on behalf of the hackers.
A large number of hackers are already trying to abuse Log4Shell. These range from ransomware gangs locking down minecraft servers to hacker groups trying to mine bitcoin and hackers associated with China and North Korea trying to gain access to sensitive information from their geopolitical rivals. The Belgian ministry of defense reported that its computers were being attacked using Log4Shell.
Although the vulnerability first came to widespread attention on Dec. 10, 2021, people are still identifying new ways to cause harm through this mechanism.
Stopping the bleeding
It is hard to know whether Log4j is being used in any given software system because it is often bundled as part of other software. This requires system administrators to inventory their software to identify its presence. If some people don't even know they have a problem, it's that much harder to eradicate the vulnerability.
Another consequence of Log4j's diverse uses is there is no one-size-fits-all solution to patching it. Depending on how Log4j was incorporated in a given system, the fix will require different approaches. It could require a wholesale system update, as done for some Cisco routers, or updating to a new version of software, as done in Minecraft, or removing the vulnerable code manually for those who can't update the software.
Log4Shell is part of the software supply chain. Like physical objects people purchase, software travels through different organizations and software packages before it ends up in a final product. When something goes wrong, rather than going through a recall process, software is generally "patched," meaning fixed in place.
However, given that Log4j is present in various ways in software products, propagating a fix requires coordination from Log4j developers, developers of software that use Log4j, software distributors, system operators and users. Usually, this introduces a delay between the fix being available in Log4j code and people's computers actually closing the door on the vulnerability.
Some estimates for time-to-repair in software generally range from weeks to months. However, if past behavior is indicative of future performance, it is likely the Log4j vulnerability will crop up for years to come.
As a user, you are probably wondering what can you do about all this. Unfortunately, it is hard to know whether a software product you are using includes Log4j and whether it is using vulnerable versions of the software. However, you can help by heeding the common refrain from computer security experts:Make sure all of your software is up to date.