Laat je mailadres achter en ontvang de nieuwste ontwikkelingen op het gebied van software, AI en Mendix.

De log4j exploit is groot nieuws. Maar wat heeft het voor impact op jou als Mendix ontwikkelaar? Wij helpen je!
Afgelopen donderdag (9 december) werd een nieuwe exploit bekend gemaakt in de veelgebruikte Java logging library log4j. Zie o.a. dit nieuwsbericht.
Deze exploit kan er voor zorgen dat kwaadwillenden code op afstand kunnen uitvoeren door een specifiek bericht te laten loggen. Een server kan dan zelfs volledig worden overgenomen.
Aangezien de log4j library door Mendix en heel veel andere systemen wordt gebruikt heeft deze exploit een grote impact.
Vrijwel iedereen die de log4j library gebruikt. Hier vallen naast Mendix ook partijen zoals Apple en Netflix onder.
Een (lange) lijst van bedrijven die kwetsbaar waren/zijn is hier te vinden.
Om precies te zijn gaat het om specifieke versies van Log4j die de kwetsbaarheid bevatten:
log4j v2
Bijna alle versies van versie 2 zijn kwetsbaar. Aanbevolen wordt om te updaten naar 2.16.0.
log4j v1
Alle versies van versie 1 zijn kwetsbaar waardoor je moet updaten naar versie 2.16.0.
Als je de log4j library gebruikt zal deze in de userlib folder van het Mendix project staan.
Mocht je enkele projecten hebben, is dit gemakkelijk handmatig te checken, maar als je veel projecten hebt kan dit erg veel tijd kosten. Tijd voor een script!
Onderstaande is gebaseerd op OSX:
In het script maken we gebruik van jq en subversion:
brew install jq
brew install subversion
Sla onderstaand script op in een bestand met .sh extensie. let op: Vervang de xxxx door je eigen credentials.
#!/bin/bash
set -u
set -e
workingDir=/tmp/mendix
mendixApiKey="xxxxx-xxxxx-xxxxx-xxxxx"
mendixUsername="xxxx@xxx.xx"
mendixPassword="xxxxxxx"
mkdir -p $workingDir
projects=$(curl -s -H "Mendix-Username: $mendixUsername" -H "Mendix-ApiKey: $mendixApiKey" https://deploy.mendix.com/api/1/apps -X GET)
echo "projects=${projects}"
for row in $(echo "${projects}" | jq -r '.[] | @base64'); do
projectId=$(echo ${row} | base64 --decode | jq -r '.ProjectId')
echo "projectId=${projectId}"
projectName=$(echo ${row} | base64 --decode | jq -r '.AppId')
echo "projectName=${projectName}"
svn checkout --username $mendixUsername --password $mendixPassword --non-interactive "https://teamserver.sprintr.com/${projectId}/trunk/userlib/" $workingDir/${projectName}-main/userlib/
done
find ${workingDir} -name "*.jar" -exec sh -c 'echo "{}" | grep -i --color=always log4j-core-.*.jar' \; -print
Voer het script uit met ./bestandsnaam.sh of sh bestandsnaam.sh
Het resultaat ziet er uit als volgt:

In de userlib van je project zie je vervolgens het bestand staan:

Mocht je een kwetsbare versie van log4j gebruiken dan zijn er twee opties:
De .jar verwijderen waarbij de kans bestaat dat er iets kapot gaat.
Log4j updaten naar minimaal versie 2.16.0. Dat kan via deze link.
De log4j kwetsbaarheid is een van de vele kwetsbaarheden die java libraries kunnen bevatten. Met het oplossen van deze exploit ben je dus nog niet meteen veilig.
Bij JAM-IT geloven wij in het slim automatiseren van taken zoals security, deployen en kwaliteitscontroles. Daarom bevat JamOps een java library kwetsbaarheids-scan die je project continue op bekende exploits controleert. Hierdoor ben je niet alleen nu, maar ook in de toekomst een stuk beter beveiligd.

Meer weten?Vraag het aan Armando
Is Mendix de juiste keuze voor jouw organisatie of project? Wij helpen je graag bij het beantwoorden van die vraag. Mend...

Lang speelde low-code een bijrol als het ging om software-ontwikkeling. De grotere, complexere applicaties werden op de ...

"Is een low-code platform als Mendix niet heel beperkend?" Die vraag krijgen we regelmatig en het antwoord is kort: nee!...