BSNk PP · Decryptiecomponent · bijgewerkt 24 oktober 2026
Hoe je log4j aflevert zonder dat het log4j heet
In de BSNk-decryptiecomponent die Logius aan aansluiters gaf, zit de code van log4j 1.x. Die versie krijgt sinds 2015 geen updates meer en heeft bekende lekken. Alleen heet het nergens log4j-1.2. Een scanner die op bestandsnamen let, ziet niets. Wij wel.
“Je kunt de Logius aanpak doen, en log4j uitpakken en dan in een ander pakket de java files zetten zodat het niet uit ziet als log4j, de naam nergens terugkomt en je op die manier hele oude kwetsbare software toch in de programma kunt stoppen. Voor deze actie hebben we een website zodat mensen kunnen leren: https://onlogius.nl/”
Dus: leren. Hieronder hoe het zit, en hoe u het zelf nakijkt.
Wat is dit?
BSNk PP is de voorziening van Logius voor polymorfe pseudonimisering: het BSN gaat versleuteld rond, en alleen wie de juiste sleutel heeft, kan het terugrekenen. Wie aansloot, kreeg van Logius een decryptiecomponent: broncode en een kant-en-klaar Docker-image. Op 1 maart 2022 stonden die op de site van Logius. Hier staan ze nog, ongewijzigd, als bewijsstuk.
| Bestand | Grootte | SHA-512 |
|---|---|---|
| pep_crypto_9bff7f48…7z Broncode en documentatie | 449.632.397 bytes | 3b573731164522d1c189bed696c605d8838e22bbc1b3bf0685265b4438d8d5b6ef08785caa6e47424ccb7e7cd10e829e1a02f2fc4891ba8b26057a092d056be2 |
| docker_image_pep-crypto-thorntail_9bff7f48…tar.7z Docker-image (Thorntail) | 273.135.319 bytes | d16ebe4c9eb62f7277f980d132d718ba38ec993daa8f0d4ec4639c0e9e4311782e20e2127d2790c05900b57367e224a3dceaa003049f0e43d0ece2c4eff206ec |
De hashes zijn die van de downloadpagina van Logius. Op 24 oktober 2026 opnieuw nagerekend: ze kloppen nog.
Wat zit erin?
- Het Docker-image bevat een Thorntail-applicatie:
pep-crypto-thorntail-…-thorntail.jar, 110 MB. - Daarin zit een tweede jar:
m2repo/org/jboss/logmanager/log4j-jboss-logmanager/1.2.0.Final/log4j-jboss-logmanager-1.2.0.Final.jar. - Daarin zitten 325 klassen
org.apache.log4j: de code van log4j 1.x. De NOTICE zegt het zelf: “Apache log4j … Modifications and additional code by Red Hat”.
Met precies de onderdelen waar log4j 1.x om bekendstaat:
| Klasse | Lek | Wat |
|---|---|---|
net.SocketServer | CVE-2019-17571 | Deserialisatie van wat binnenkomt, en daarmee code uitvoeren. CVSS 9.8. |
net.JMSAppender | CVE-2021-4104 | JNDI, het neefje van Log4Shell, als iemand de configuratie kan aanpassen. |
net.JMSSink | CVE-2022-23302 | Ook JNDI, ook via de configuratie. |
jdbc.JDBCAppender | CVE-2022-23305 | SQL-injectie via de logberichten zelf. |
chainsaw.* | CVE-2022-23307 | Nog een deserialisatielek. |
Eerlijk is eerlijk. Dit is geen Log4Shell: dat lek zit in log4j 2. De lekken van log4j 1.x zijn alleen te misbruiken als zo’n onderdeel ook gebruikt of zo ingesteld wordt. Maar “het staat er wel, we gebruiken het alleen niet” is geen beveiligingsbeleid. En de code staat er, in een component die het BSN ontsleutelt.
Wie het zo verpakte? Red Hat, in log4j-jboss-logmanager. Thorntail nam het mee. Logius leverde het af. Het resultaat is hetzelfde als in de quote: de naam log4j-1.2 komt nergens terug, en de oude code zit er gewoon in.
Zelf nakijken
Een paar commando’s, op Linux of macOS, met 7z en unzip:
7z x docker_image_pep-crypto-thorntail_*.tar.7z # geeft pep-crypto-thorntail.tar.gz
mkdir img && tar -xzf pep-crypto-thorntail.tar.gz -C img
for l in img/*/layer.tar; do tar -xf "$l" -C img; done # de lagen van het image
unzip -Z1 $(find img -name '*-thorntail.jar') | grep log4j-jboss-logmanager
unzip -o -j $(find img -name '*-thorntail.jar') '*/log4j-jboss-logmanager-1.2.0.Final.jar'
unzip -Z1 log4j-jboss-logmanager-1.2.0.Final.jar | grep -c '^org/apache/log4j/.*\.class$' # 325
Een scanner die alleen naar log4j-1.2.*.jar zoekt, vindt hier niets. Een scanner die in jars in jars kijkt, en naar klassen in plaats van namen, vindt het wel.
En nu?
Eerst ging het zo, volgens de tipgever:
“Ze hadden de files niet van hun gitlab weggehaald, ze hadden git rm; git commit gedaan. Dus als je op de link klikte om naar de download te gaan stond er netjes ‘file removed, download previous version’ *klik* Dus praktisch had de downloadlink een andere tekst, maar was die niet weg.”
Les twee van de Logius-aanpak: git rm is geen gum. Een commit haalt niets weg uit de geschiedenis. Hij legt er alleen een nieuwe versie bovenop, met een knop naar de vorige.
Inmiddels staat de decryptiecomponent helemaal niet meer op gitlab.com/logius/bsnk. Er staat nog één project, met een pdf en een README die nog altijd het standaardsjabloon van GitLab is: “Getting started … Already a pro? Just edit this README.md and make it your own.” Laatst bewerkt op 24 maart 2026. Zonder het sjabloon aan te passen.
Weghalen van GitLab haalt niets weg bij wie de component al gedownload heeft en draait. Wat er nu bij de aansluiters draait, en of zij het zelf hebben opgeruimd, weten wij niet. Logius wel, mogen we hopen.
Draait u de BSNk-decryptiecomponent? Kijk dan in uw eigen image met de commando’s hierboven. En vraag Logius om een versie zonder log4j 1.x.
Context
- Augustus 2015: Apache stopt met log4j 1.x. End of life. Geen updates meer, ook niet voor de lekken hierboven.
- 1 september 2020: dit Docker-image wordt gebouwd, met deze log4j erin. Vijf jaar na het einde van log4j 1.x. Het broncodepakket is bijgewerkt tot december 2020.
- December 2021: Log4Shell. Het lek in log4j 2 zet het internet in brand. Overal wordt software doorzocht op log4j. Wie zoekt naar de naam, mist wat anders heet.
Bronnen
- De bestanden hierboven zelf, en de NOTICE en MANIFEST in
log4j-jboss-logmanager-1.2.0.Final.jar. - Logius: BSNk PP en de technische specificaties, die de Decryptiecomponent nog noemen.
- gitlab.com/logius/bsnk, bekeken op 24 oktober 2026.
- NVD over CVE-2019-17571, CVE-2021-4104, CVE-2022-23302, CVE-2022-23305 en CVE-2022-23307.
- Apache log4j 1.x: het einde in 2015.