Czym jest luka w zabezpieczeniach Apache Log4j (Log4Shell)?

Log4Shell (CVE-2021-44228, CVE-2021-45046 i CVE-2021-45105) to podatność (luka w zabezpieczeniach) umożliwiająca zdalne wykonanie kodu (RCE) Java i przejęcie kontroli nad docelowym serwerem.

Ogólne informacje o podatność Log4Shell

2021 był rokiem obfitującym w luki w zabezpieczeniach typu zero-day, a na koniec do długiej listy zagrożeń doszła krytyczna wada Log4Shell znaleziona w powszechnie używanej bibliotece dzienników opartej na języku Java – Apache Log4j. Jej oficjalny identyfikator to CVE-2021-44228. Zgodnie z systemem Common Vulnerability Scoring System (CVSS w wer. 3.1) poziom zagrożenia, jakie stanowi, to 10 w 10-stopniowej skali.

Podatność najpierw zgłoszono Apache, nie publikując informacji, 24 listopada 2021 r. 9 grudnia 2021 r. informacje o Log4Shell zostały upublicznione wraz ze wstępną poprawką 2.15.0 do Apache Log4j.

Kolejne wiadomości o zaobserwowanych atakach spowodowały wydanie ostrzeżeń przez kilka krajowych agencji ds. cyberbezpieczeństwa, w tym US Cybersecurity and Infrastructure Security Agency (CISA), UK National Cyber Security Center (NCSC) oraz Canadian Center for Cyber Security. W związku z popularnością Apache Log4j problem może dotyczyć milionów urządzeń.

Jak działa Log4Shell

Log4Shell to podatność (luka w zabezpieczeniach) interfejsu Java Naming and Directory Interface™ (JNDI) umożliwiająca wstrzyknięcie i zdalne wykonanie kodu (RCE). Wprowadzając niezaufane dane (takie jak złośliwe ładunki) do rejestrowanej wiadomości w wersji Apache Log4j, której dotyczy problem, atakujący może nawiązać połączenie ze złośliwym serwerem przy użyciu wyszukiwania JNDI. Wskutek tego uzyskuje pełny dostęp do systemu z dowolnego miejsca na świecie.

W związku z tym, że wyszukiwanie JNDI obsługuje wiele różnych typów usług katalogowych, takich jak DNS (Domain Name Service), LDAP (Lightweight Directory Access Protocol), które zapewniają cenne informacje, jako urządzenia sieciowe organizacji, RMI (Remote Method Invocation) oraz IIOP (Inter-ORB Protocol), Log4Shell może prowadzić do innych zagrożeń, do których należą:

  • Wydobywanie kryptowalut: Atakujący mogą wykorzystać Twoje zasoby do wydobywania kryptowalut. To zagrożenie może być dość kosztowne, ponieważ wymaga ogromnej mocy obliczeniowej do obsługi usług i aplikacji w chmurze.
  • Sieciowa odmowa usługi (DoS): To zagrożenie pozwala atakującym na zablokowanie/wyłączenie sieci, strony internetowej lub usługi, tak aby były niedostępne dla organizacji będącej celem ataku.
  • Ransomware: Po zdalnym wykonaniu kodu atakujący mogą zebrać i zaszyfrować dane w celu uzyskania okupu.

 

Poniżej przedstawiono przykładowy łańcuch infekcji:

Przykładowy łańcuch infekcji

Zagrożone produkty, aplikacje i wtyczki

Zasadniczo każde urządzenie łączące się z Internetem, na którym działa Apache Log4j w wersjach od 2.0 do 2.14.1. Wersje te są częścią rozwiązań Apache Struts, Apache Solr, Apache Druid, Elasticsearch, Apache Dubbo i VMware vCenter.

Poprawki i migracja

Aby usunąć podatność organizacja Apache opublikowała Apache Log4j w wersji 2.15.0. Ta wersja działała jednak tylko z językiem Java 8. Użytkownicy wcześniejszych wersji musieli dwukrotnie zastosować tymczasowe złagodzenie. W czasie publikacji aktualną wersją udostępnioną przez Apache była 2.16.0, a organizacja stanowczo zalecała użytkownikom jak najszybsze zaktualizowanie potencjalnie zagrożonych bibliotek.

Zdecydowanie zachęca się również do skorzystania z innych strategii łagodzenia, takich jak wdrożenie wirtualnych poprawek i korzystanie z systemu wykrywania włamań i zapobiegania im (IDS/IPS). Wirtualne poprawki osłaniają luki w zabezpieczeniach przed dalszym wykorzystaniem, a system IDS/IPS monitoruje ruch przychodzący i wychodzący pod kątem podejrzanych zachowań.

Apache Log4j

Powiązane badania

Powiązane artykuły