Awaryjny patch na niesławną lukę w bibliotece Java Log4j nie jest niezawodny. Apache Software Foundation wydaje nową wersję, aby raz na zawsze naprawić tę lukę.
Luka w niezwykle popularnej bibliotece dla Javy wstrząsa światowym krajobrazem IT. Szacuje się, że biblioteka istnieje w większości środowisk korporacyjnych.
Log4j jest używany głównie do logowania. Zdarzenia w aplikacjach można rejestrować za pomocą notatek. Pomyśl o wydruku danych logowania po próbie logowania. Lub, w przypadku aplikacji internetowej w Javie, nazwa przeglądarki, z którą użytkownik próbuje się połączyć.
Te ostatnie przykłady są powszechne. W obu przypadkach zewnętrzny użytkownik wpływa na dziennik, który wyprowadza Log4j. Można nadużywać tego wpływu. Dzienniki dowolnej wersji Log4j między 13 września 2013 a 5 grudnia 2021 mogą nakazać aplikacjom Java uruchamianie kodu ze zdalnego serwera na urządzeniu lokalnym.
Log2013j od 4 roku przetwarza API: JNDI, czyli Java Naming and Directory Interface. Dodanie JNDI umożliwia aplikacji Java uruchamianie kodu ze zdalnego serwera na urządzeniu lokalnym. Programiści instruują, dodając pojedynczą linię szczegółów dotyczących zdalnego serwera w aplikacji.
Problem w tym, że nie tylko programiści są w stanie dodać regułę do aplikacji. Załóżmy, że Log4j rejestruje nazwy użytkowników prób logowania. Gdy ktoś wpisze wspomnianą linię w polu nazwy użytkownika, Log4j uruchamia linię, a aplikacja Java interpretuje polecenie uruchomienia kodu na określonym serwerze. To samo dotyczy przypadków, w których Log4j rejestruje żądanie HTTPS. Jeśli zmienisz nazwę przeglądarki na wiersz, Log4j uruchomi wiersz, pośrednio nakazując mu uruchomienie kodu zgodnie z potrzebami.
Awaryjna łatka może być również niebezpieczna
9 grudnia luka ta wyszła na jaw na dużą skalę. Apache Software Foundation, twórca Log4j, wydał poprawkę awaryjną (2.15), aby naprawić usterkę. Od tego czasu głównym priorytetem dostawców oprogramowania jest przetwarzanie wersji 2.15 i dostarczanie łatek dla organizacji.
Organizacja bezpieczeństwa LunaSec twierdzi jednak, że łatka nie jest całkowicie wodoszczelna. Pozostaje możliwość dostosowania ustawień i wykonania zarejestrowanych poleceń JNDI.
Uwaga: odpowiednie ustawienie należy ustawić ręcznie, aby niezmodyfikowane warianty 2.15 były rzeczywiście bezpieczne. Niemniej jednak Luna Sec zaleca dostawcom i organizacjom aktualizację do Log4j 2.16. 2.16 zostało opublikowane przez Apache Software Foundation w odpowiedzi na LunaSec. Nowa wersja całkowicie usuwa podatne ustawienia, uniemożliwiając stworzenie warunków do nadużyć.