Núdzová oprava neslávne známej zraniteľnosti v knižnici Java Log4j nie je spoľahlivá. Nadácia Apache Software Foundation vydáva novú verziu, ktorá má túto zraniteľnosť raz a navždy opraviť.
Zraniteľnosť vo veľmi populárnej knižnici pre Java otriasa globálnym IT prostredím. Odhaduje sa, že knižnica existuje vo väčšine podnikových prostredí.
Log4j sa používa hlavne na logovanie. Udalosti v aplikáciách je možné registrovať pomocou poznámok. Myslite na vytlačenie prihlasovacích údajov po pokuse o prihlásenie. Alebo v prípade webovej aplikácie v jazyku Java názov prehliadača, ku ktorému sa používateľ pokúša pripojiť.
Posledné príklady sú bežné. V oboch prípadoch externý používateľ ovplyvňuje protokol, ktorý Log4j vypíše. Ten vplyv je možné zneužiť. Protokoly ľubovoľnej verzie Log4j medzi 13. septembrom 2013 a 5. decembrom 2021 dokážu prikázať aplikáciám Java spustiť kód zo vzdialeného servera na lokálnom zariadení.
Od roku 2013 Log4j spracováva API: JNDI alebo Java Naming and Directory Interface. Pridanie JNDI umožňuje aplikácii Java spúšťať kód zo vzdialeného servera na lokálnom zariadení. Programátori inštruujú pridaním jedného riadku podrobností o vzdialenom serveri do aplikácie.
Problém je, že nielen programátori sú schopní pridať pravidlo do aplikácií. Predpokladajme, že Log4j zaznamenáva používateľské mená pokusov o prihlásenie. Keď niekto zadá vyššie uvedený riadok do poľa používateľského mena, Log4j spustí riadok a aplikácia Java interpretuje príkaz na spustenie kódu na zadanom serveri. To isté platí pre prípady, keď Log4j zaznamená požiadavku HTTPS. Ak zmeníte názov prehliadača na riadok, Log4j spustí riadok a nepriamo mu dá pokyn na spustenie kódu podľa potreby.
Núdzová náplasť môže byť tiež nebezpečná
9. decembra sa zraniteľnosť objavila vo veľkom meradle. Nadácia Apache Software Foundation, vývojár Log4j, vydala núdzovú opravu (2.15) na opravu tejto zraniteľnosti. Odvtedy je pre dodávateľov softvéru najvyššou prioritou spracovať verziu 2.15 a poskytnúť organizáciám opravu.
Bezpečnostná organizácia LunaSec však uvádza, že záplata nie je úplne vodotesná. Zostáva možnosť upraviť nastavenie a nechať vykonať protokolované príkazy JNDI.
Upozornenie: príslušné nastavenie je potrebné upraviť ručne, aby boli nezmenené varianty 2.15 skutočne bezpečné. Napriek tomu Luna Sec odporúča, aby dodávatelia a organizácie aktualizovali na Log4j 2.16. 2.16 vydala Apache Software Foundation v reakcii na LunaSec. Nová verzia úplne odstraňuje zraniteľné nastavenie, čím znemožňuje vytvárať podmienky na zneužitie.