Log4Shell - nova ranjivost nultog dana u Java paketu za evidentiranje log4j objavljena je 9. prosinca 2021. godine.
Sami problem 24. studenog otkrio je Chen Zhaojun iz Alibaba Cloud Security tima, dok je zakrpa osmišljena 6. prosinca.
Zavod za sigurnost informacijskih sustava navodi kako je Log4j tradicionalno najodabraniji okvir zapisa dnevničkih zapisa za Java aplikaciju te je prisutan u velikom broju proizvoda, uključujući uređaje kod kojih zakrpe mogu biti problematične ili nemoguće. Ranjivost je kritična iz razloga što je dovoljno da potencijalni napadač pošalje zloćudni niz koji informacijski sustav bilježi i uspostavlja komunikaciju sa navedenim. S obzirom na navedeno rute eksploatacije su široke i često ne zahtijevaju razinu provjerenog pristupa.
U CVE bazi sigurnosnih ranjivosti ova je zabilježena pod oznakom CVE-2021-44228.
Postoje tri primarna čimbenika koji ranjivost log4shell čine posebno opasnom, što dovodi do CVSS ocjene od 10,0. Prvi je činjenica da je ranjivost je relativno lako iskoristiti, odnosno napadaču je potrebna samo mogućnost kontrole nizova koji će se zabilježiti putem log4j biblioteke. Drugi je da se zbog širine spektra različitih ruta za potencijalni napad (mnogo različitih operacija se bilježi i mogu se kontrolirati od strane napadača) jedini kompletni način uklanjanja ranjivosti je nadogradnja na zadnju verziju. Treći je veliki broj komponenti čija tehnologija koristi log4j – što znači da je širok spektar ranjivosti.
Trenutna lista zahvaćenih tehnologija (puni opseg utjecaja ranjivosti se još i dalje utvrđuje i nadopunjava):dostupna je na sljedećim linkovima:
https://gist.github.com/SwitHak/b66db3a06c2955a9cb71a8718970c592
https://github.com/YfryTchsGD/Log4jAttackSurface
https://mvnrepository.com/artifact/log4j/log4j/usages
Hrvatska sigurnosna tvrtka Diverto objavila je i set Nmap skript koje mogu pomoći za provjeru ranjivosti:
https://github.com/Diverto/nse-log4shell
Predložene mitigacijske mjere su redom:
1. Identificiranje ranjivog softvera/uređaja:
Skripta koja otkriva log4j verzije na datotečnim sustavima, uključujući rekurzivnu pretragu
https://github.com/mergebase/log4j-detector
Automatiziran i opsežan skener za pronalaženje ranjivih log4j sustava
https://github.com/fullhunt/log4j-scan
2. Preporučena mjera uklanjanja ranjivosti - ažuriranje Log4j:
Najbolja zaštita od ove ranjivosti je ažurirati sve verzije 2.x Log4j na 2.15.0.
https://github.com/apache/logging-log4j2
https://github.com/corretto/hotpatch-for-apache-log4j2
https://github.com/simonis/Log4jPatch
3. Ostale mitigacijske mjere - Onemogućiti slanje zahtjeva Log4j biblioteci:
U slučaju nemogućnosti ažuriranja verzije Log4j biblioteke potrebno je omogućiti zabranu slanja zahtjeva navedenoj biblioteci:
‐Dlog4j2.formatMsgNoLookups=true
na JVM onemogućit će Log4j slanje zahtjeva i zaštititi sustav od eksploatacije.
4. Primjena zadnjih dostupnih ažuriranja tehnologija/uređaja čiji uređaji koriste Log4j
5. Blokiranje potencijalno zloćudnih zahtjeva na WAF-u.
JNDI pretraživanja potrebna za iskorištavanje ranjivosti koriste specifičan prefiks za Log4j kako bi se izvelo slanje zahtjeva. Svaki zahtjev s nizom poput `${jndi:xyz}` potaknut će JNDI da pošalje zahtjev prema potencijalno zloćudnoj adresi/domeni. U slučaju da niste u mogućnosti ažurirati biblioteku (točka 2.) ili onemogućiti slanje zahtjeva (točka 3.) preporučamo da dodate prefiks `${jndi:` na vatrozidu web aplikacije u crnu listu (engl. Blacklist) kako bi vatrozid blokirao potencijalne pokušaje iskorištavanja. Potrebno je imati na umu da je ovaj pristup, po svojoj prirodi, nepotpun i moguće je ovu vrstu „zaštite“ zaobići, ali ovaj jednostavan pristup otežati će skeniranje Vaših informacijskih sustava.
6. Primjena dodatnih alata za provjeru:
https://github.com/Neo23x0/log4shell-detector
https://github.com/darkarnium/CVE-2021-44228
https://log4shell.huntress.com/
https://github.com/Diverto/nse-log4shell