Log4j – een uitleg

Log4J

Wat is log4j?

De afgelopen dagen knallen de berichten rondom log4j je om de oren. Als je LinkedIn bekijkt, of het security nieuws volgt gaat het over weinig anders. Ik kreeg van heel wat mensen vragen met betrekking tot log4j. Wat is het? Raakt het hen ook? Wat moet je doen om ervoor te zorgen dat Log4Shell ver weg blijft?

Op 9 december meldde het security team van Alibaba de eerste berichten over een kwetsbaarheid in Log4j. Er bleek een security risico gevonden te zijn in de open-source library voor Java die de logging verzorgt. Log4j houdt dus bij wat er op de server gebeurt. Log4j wordt ontwikkeld door Apache Software Foundation. Die ken je misschien wel van de server software om sites op te hosten.

Nu denk je misschien: ik gebruik geen Apache. Ik beheer geen websites. Ik log helemaal niets. En dat is misschien wel de grootste fout die veel mensen maken. Ze denken dat het hen niet overkomt. Echter, verschillende softwareleveranciers gebruiken Log4j al ruim 20 jaar op enorm veel systemen.

Het probleem wat ontstaan is, is deze: de taal Java is in staat om samen met Log4j code op afstand uit te voeren. Dat is nog geen kwetsbaarheid. Normaal gesproken wordt dat alleen gedaan door geautoriseerde gebruiker zoals een administrator. Interessant hier: de kwetsbaarheid die gevonden is laat ook niet-geautoriseerde gebruikers code uitvoeren door middel van Log4j. Dat is uiteraard niet de bedoeling.

Waarom is het zo’n groot probleem?

Het probleem is enorm groot omdat van Log4j ontzettend veel gebruik gemaakt wordt. Alle versies tussen 2015 en 5 december 2021 van Log4j zijn kwetsbaar en actief misbruikt. Het is dus niet de vraag óf er bedrijven zijn die geraakt worden maar wanneer. De kan is groot dat criminelen nu al in systemen aanwezig zijn en zich later openbaren in de vorm van ransomware aanvallen of op andere manieren.

Wat kun je doen?

Volg deze stappen:

  1. Controleer of je een kwetsbare versie hebt draaien op je eigen systemen (binnen je netwerk). Dit kun je doen met PowerShell Checker of Log4J Scan. De laatstgenoemde leg ik verderop uit.
  2. Controleer of je software leveranciers patches hebben klaarstaan om uitgerold te worden.
  3. Is dat niet het geval? Dan adviseert Apache om het volgende te doen:
    1. Voor versie 2.10 en hoger geldt: stel log4j.formatMSgNoLookups in op true.
    1. Voor versie 2.7 en hoger geldt: gebruik %m{nolookups} in de PatternLayout config.
    1. Bij alle versies geldt in ieder geval dat JdniLookup en JdniManager classes verwijdert dienen te worden uit log4j.core.
  4. Kan dit niet? Zet de systemen dan uit.

Hoe werkt log4J-scan?

Log4j-scan is een open-source tool die je kunt gebruiken om hiermee kwetsbare systemen op te zoeken en te controleren.

Je kunt de laatste versie via GitHub downloaden: https://github.com/fullhunt/log4j-scan

Ik doe dit via Linux (Kali):

  1. Via de terminal: git clone https://github.com/fullhunt/log4j-scan
  • cd in de map log4j-scan
  • Voer pip3 install -r requirements.txt uit
  • Hiermee installeer je de benodigde bestanden
  • Je kunt nu een van de volgende commando’s uitvoeren:
    • python3 log4j-scan.py -u https://<<url>> //dit scant slechts 1 url
    • python3 log4j-scan.py -l urls.txt //in de urls.txt noteer je alle urls die je wilt scannen.
  • Je kunt ook nog kiezen om extra parameters mee te geven aan het commando:
    • –waf-bypass // wanneer er WAF aanwezig is, wordt deze omzeild
    • –run-al-tests // alle request methodes worden uitgevoerd (GET, POST), JSON
  • Voor meer info: -h

Pentest laten uitvoeren?

Wil je meer weten over hoe veilig de applicaties in jouw organisatie zijn? Neem dan gerust eens contact met ons op, of lees er meer over op onze website.