Nouzová oprava nechvalně známé chyby v knihovně Java Log4j není spolehlivá. Nadace Apache Software Foundation vydává novou verzi, která tuto chybu zabezpečení jednou provždy opraví.
Zranitelnost ve velmi oblíbené knihovně pro Javu otřásá globálním IT prostředím. Odhaduje se, že knihovna existuje ve většině podnikových prostředí.
Log4j se používá hlavně pro logování. Události v aplikacích lze registrovat pomocí poznámek. Myslete na vytištění přihlašovacích údajů po pokusu o přihlášení. Nebo v případě webové aplikace v Javě název prohlížeče, ke kterému se uživatel pokouší připojit.
Poslední příklady jsou běžné. V obou případech externí uživatel ovlivňuje protokol, který Log4j vypíše. Toho vlivu je možné zneužít. Protokoly jakékoli verze Log4j mezi 13. zářím 2013 a 5. prosincem 2021 mohou instruovat aplikace Java, aby spouštěly kód ze vzdáleného serveru na místním zařízení.
Od roku 2013 Log4j zpracovává API: JNDI neboli Java Naming and Directory Interface. Přidání JNDI umožňuje aplikaci Java spouštět kód ze vzdáleného serveru na místním zařízení. Programátoři dávají pokyny přidáním jediného řádku podrobností o vzdáleném serveru do aplikace.
Problém je v tom, že nejen programátoři jsou schopni přidat pravidlo do aplikací. Předpokládejme, že Log4j zaznamenává uživatelská jména pokusů o přihlášení. Když někdo zadá výše uvedený řádek do pole uživatelského jména, Log4j spustí řádek a aplikace Java interpretuje příkaz ke spuštění kódu na určeném serveru. Totéž platí pro případy, kdy Log4j zaznamená požadavek HTTPS. Pokud změníte název prohlížeče na řádek, Log4j spustí řádek a nepřímo mu dá pokyn ke spuštění kódu podle potřeby.
Nouzová náplast může být také nebezpečná
9. prosince se zranitelnost objevila ve velkém. Nadace Apache Software Foundation, vývojář Log4j, vydala nouzovou opravu (2.15), která tuto chybu zabezpečení opravuje. Od té doby je pro dodavatele softwaru nejvyšší prioritou zpracovávat verzi 2.15 a poskytovat organizacím záplatu.
Bezpečnostní organizace LunaSec však uvádí, že záplata není zcela vodotěsná. Zůstává možné upravit nastavení a nechat spouštět protokolované příkazy JNDI.
Upozornění: příslušné nastavení je nutné upravit ručně, aby byly nezměněné varianty 2.15 skutečně bezpečné. Přesto Luna Sec doporučuje, aby dodavatelé a organizace aktualizovali na Log4j 2.16. 2.16 byla publikována Apache Software Foundation v reakci na LunaSec. Nová verze zcela odstraňuje zranitelné nastavení a znemožňuje vytvořit podmínky pro zneužití.