[Kritiek] Log4j kritieke kwetsbaarheid, een wolf in schaapsk...

Geschreven door Kasper de Waard on date 13 december 2021 Leestijd : 4 minuten

Update 15/12/2021: https://secity.nl/nl/blog/20211215-update-kritieke-kwetsbaarheid-log4j/

Het zal u vast niet ontgaan zijn dat er de afgelopen dagen veel nieuws naar buiten is gekomen over een nieuw kritiek beveiligingslek in een Java component genaamd log4j. Afgelopen zondag kwam de nationale cyberwaakhond NCSC zelfs bijeen om de situatie te bespreken en heeft de kwetsbaarheid HIGH/HIGH gecategoriseerd omdat de impact zeer hoog is.

Kort samengevat:

  • Het log4j component zit verweven in talloze applicaties en websites en biedt potentie om één van de grootste risico’s op het gebied van cyber security te worden.
  • Veel organisaties weten niet waar het component allemaal in zit waardoor patchen en mitigeren een grote uitdaging zal vormen.
  • Onderzoekers verwachten dat aanvallers binnen 1 á 2 dagen een worm ontwikkeld hebben waardoor de aanval geautomatiseerd en op grote schaal uitgevoerd kan worden.

Wat is log4j en waarom is het belangrijk?

Afgelopen donderdag (9 december) is er een 0-day waargenomen in de populaire java logging library (log4j versie 2). Met de gevonden kwetsbaarheid is het mogelijk om op afstand commando’s uit te voeren op de achterliggende systemen en systemen compleet over te nemen. We noemen dit een remote code execution (RCE) en de aanval wordt ook wel Log4Shell genoemd en heeft het CVE nummer "CVE-2021-44228" gekregen.

Vrijwel gelijk verschenen er op internet en GitHub diverse methodes om de aanval uit te voeren ook wel proof-of-concepts (PoC) genoemd waardoor de aanval direct een grote bedreiging vormt.

Wie, wat en hoe?

Waar het begon met de eerste tweets over gehackte minecraft servers werdt het al snel serieuzer en kwamen er voorbeelden naar buiten over hoe de aanval werkte op iPhone, Steam, Apple iCloud etc. en realiseerde onderzoekers dat de impact enorm is.

Welke versies zijn kwetsbaar?

Het lijkt er nu op dat alle JDK versies groter dan 6u2117u2018u191, en 11.0.1 niet kwetsbaarzijn voor de LDAP attack vector. In deze versies staat namelijk de “com.sun.jndi.ldap.object.trustURLCodebase” op “false” wat betekent dat de JNDI niet gebruikt kan worden om commando’s uit te voeren van aanvallers.

Echter zijn er nog andere aanvals factoren voor deze kwetsbaarheid welke kunnen leiden tot remote code exection dus wij adviseren om zo snel mogelijk onderstaande stappen uit te voeren.

  • Kwetsbare Apache log4j2 versie: 2.0 <= Apache log4j <= 2.14.1

De aanval uitgelegd

De aanval is vrij simpel en kan worden uitgevoerd door een bepaalde code “${jndi:ldap://URL} ”in te voeren in invoer velden van applicaties en websites, denk hierbij aan formulieren op websites, login velden en zoek functies. Tevens kan de code worden meegegeven als header zoals User-Agent, X-Forwarded-For of een andere aangepaste HTTP header.

log4j_attack.png
(Bron: GovCert.ch)

Welke applicaties zijn er allemaal kwetsbaar?

Diverse instanties en personen, waaronder het NCSC hebben lijsten op GitHub geplaatst met applicaties die kwetsbaar zijn. De lijsten zijn niet volledig maar geven wel een beeld van de omgang van het probleem. Onderzoekers werken hard om de lijsten aan te vullen met applicaties die nog niet op de lijst staan.

Wat zijn nu de vervolgstappen?

  1. Het allerbelangrijst is om te inventariseren of Log4j gebruikt wordt in uw applicaties en netwerk. Hiervoor zijn diverse scripts beschikbaar en ook hebben de meeste vulnerability scanners hun plug-ins geüpdate om de kwetsbaarheid te detecteren.
  2. Controleer bovenstaande GitHub lijsten regelmatig om te kijken of de software die u gebruikt voorkomt in de lijst van kwetsbare applicaties.
  3. Controleer bij je software of IT leverancier of de applicaties die je gebruik vatbaar zijn en of er een patch beschikbaar is en implementeer deze zo snel mogelijk.
    1. versie 2.15.0 van log4j is uitgebracht zonder de kwetsbaarheid. log4j-core.jar is beschikbaar op Maven Central hier, met [release notes] en [log4j security announcements]. De software kan ook gedownload worden via Apache Log4j Download pagina.
  4. Indien een applicatie beschikbaar is vanaf het internet en er geen patch beschikbaar is of als deze nog niet geïnstalleerd kan worden raden wij aan om zo snel mogelijk maatregelen te nemen om de applicatie te beschermen. Denk hierbij aan het alleen beschikbaar maken vanaf bepaalde IP adressen of door een web application firewall ervoor te plaatsen.
  5. Als updaten niet mogelijk is, adviseert Apache de volgende maatregelen.
    1. Versie 2.10 of hoger: stel log4j.formatMsgNoLookups or Dlog4j.formatMsgNoLookups in op true
    2. Versie 2.7 of hoger: gebruik %m{nolookups} in de PatternLayout configuratie
    3. Alle versies: verwijder de JdniLookup en JdniManager classes uit log4j-core.jar
  6. Ook als systemen gepatched zijn adviseren wij om te controleren of er misbruik is gemaakt van de kwetsbaarheid, hoelanger een systeem onbeveiligd op internet heeft gestaan hoe groter de kans dat een systeem is gecompromitteerd.
  7. Aangezien de aanval nog erg nieuw is en er nog weinig informatie beschikbaar is over de impact en eventueel nieuwe kwetsbaarheiden die voortkomen uit de huidige kwetsbaarheid adviseren wij om de applicaties continue te monitoren op ongewenst gedrag.

Uiteraard staan wij bij secity beschikbaar om u te adviseren en met u mee te denken.