Jak zeskanować i naprawić lukę w Log4j?

Luka Log4j jest jednym z najbardziej śmiertelnych problemów bezpieczeństwa w nowoczesnych systemach.

Rejestrowanie jest kluczową funkcją w nowoczesnych aplikacjach, a biblioteka rejestrowania Log4j jest liderem w tej dziedzinie.

Ta biblioteka jest używana w większości aplikacji, usług i systemów. W związku z tym wszystkie aplikacje, w których używany jest Log4j, są dotknięte tą usterką Log4j znalezioną w zeszłym roku.

Wraz z rosnącymi obawami dotyczącymi cyberbezpieczeństwa na całym świecie organizacje i osoby fizyczne podejmują kroki w celu ochrony swoich aplikacji, systemów i danych.

A kiedy ta luka została odkryta, jeszcze bardziej stresowała profesjonalistów i firmy.

Dlatego wykrycie i naprawienie luki Log4j jest niezbędne, jeśli chcesz chronić swoje dane, sieć, reputację i zaufanie klientów.

W tym artykule omówię, czym jest podatność Log4j, wraz z krokami, aby ją wykryć i naprawić.

Zacznijmy od zrozumienia Log4j i dlaczego go potrzebujesz.

Co to jest Log4j?

Log4j to narzędzie rejestrujące typu open source napisane w języku Java, które służy głównie do przechowywania, formatowania i publikowania rekordów rejestrowania generowanych przez aplikacje i systemy, a następnie sprawdzania błędów. Rekordy mogą być różnego rodzaju, od strony internetowej i danych przeglądarki po szczegóły techniczne systemu, w którym działa Log4j.

Zamiast pisać kod od zera, programiści mogą korzystać z biblioteki Log4j, integrując jej kod ze swoimi aplikacjami.

Korzystając z Log4j, programiści mogą śledzić wszystkie zdarzenia związane z ich aplikacjami z dokładnymi informacjami rejestrowania. Pomaga im monitorować aplikacje, wykrywać problemy na czas i naprawiać je, zanim przekształcą się w większy problem pod względem wydajności i/lub bezpieczeństwa.

Ta oparta na Javie biblioteka została napisana przez Ceki Gülcü i została wydana w 2001 roku na licencji Apache License 2.0. Wykorzystuje usługi nazewnictwa Java i interfejsu katalogowego (JNDI), aby umożliwić aplikacjom interakcję z innymi aplikacjami, takimi jak LDAP, DNS, CORBA itp., oraz uzyskać funkcje katalogów i nazewnictwa dla aplikacji opartych na języku Java. Log4j ma trzy komponenty do wykonywania swoich zadań:

  • Rejestratory do przechwytywania zapisów rejestrowania
  • Układy do formatowania rekordów logowania w różnych stylach
  • Dołączacze do publikowania rekordów logowania w różnych miejscach docelowych

Log4j jest w rzeczywistości jedną z najbardziej znanych bibliotek rejestrowania w sieci i jest używana przez organizacje z wielu branż i krajów. Zintegrowali tę bibliotekę rejestrowania w wielu aplikacjach, w tym w najlepszych usługach chmurowych Google, Microsoft, Apple, Cloudflare, Twitter itp.

Jej twórca, Apache Software Foundation, opracował Log4j 2, uaktualnienie do Log4j, aby rozwiązać problemy występujące we wcześniejszych wersjach. W zeszłym roku w Log4j wykryto lukę, która, jeśli nie zostanie zaadresowana, może umożliwić atakującym włamanie się do aplikacji i systemów, kradzież danych, infekowanie sieci i wykonywanie innych złośliwych działań.

Zrozummy to bardziej.

Co to jest Log4Shell — luka w zabezpieczeniach Log4j?

Log4Shell to krytyczna luka cyberbezpieczeństwa w bibliotece Log4j, która wpływa na podstawowe funkcjonowanie biblioteki. Umożliwia atakującemu kontrolowanie urządzenia lub aplikacji podłączonej do Internetu poprzez zdalne wykonanie kodu. Kiedy im się to uda, mogą:

  • Uruchom dowolny kod na urządzeniu lub systemie
  • Uzyskaj dostęp do całej sieci i danych
  • Zmodyfikuj lub zaszyfruj dowolny plik w aplikacji lub urządzeniu, którego dotyczy problem

Ta luka została po raz pierwszy zgłoszona 24 listopada 2021 r. przez Chen Zhaojun, badacza bezpieczeństwa z Alibaba (chińskiego giganta handlu elektronicznego). Luka dotknęła ich serwery Minecraft, które zespół bezpieczeństwa chmury Alibaba odkrył 9 grudnia.

Następnie NIST opublikował tę lukę w National Vulnerability Database i nazwał ją CVE-2021-44228. Apache Software Foundation oceniła następnie tę lukę na 10 w CVSS. Jest to rzadko przydzielane i jest bardzo dotkliwe, ponieważ może być szeroko i łatwo wykorzystywane, co prowadzi do ogromnych szkód dla organizacji i osób.

Apache w odpowiedzi wypuścił łatkę na tę lukę, ale niektóre części pozostały nienaruszone, co doprowadziło do innych luk:

  • CVE-2021-45046, który ułatwił ataki typu „odmowa usługi” (DoS) poprzez wyszukiwanie JNDI
  • CVE-2021-45105, aby umożliwić hakerom kontrolowanie informacji dotyczących mapy kontekstowej wątków i wywoływanie ataków DoS poprzez interpretację spreparowanego ciągu znaków
  • CVE-2021-44832 wpływa na wszystkie wersje Log4j 2 poprzez zdalne wstrzykiwanie kodu (RCE)

Jak działa Log4Shell?

Aby zrozumieć jej wagę i ile szkód może wyrządzić Log4Shell, należy dowiedzieć się, jak działa ta luka Log4j.

Luka Log4Shell umożliwia atakującemu zdalne wstrzyknięcie dowolnego kodu do sieci i przejęcie nad nim pełnej kontroli.

Ta sekwencja cyberataków zaczyna się od biblioteki rejestrującej, takiej jak Log4j, która zbiera i przechowuje informacje o logach. Jeśli nie ma biblioteki logów, wszystkie dane z serwera zostaną zarchiwizowane natychmiast po zebraniu danych.

Jeśli jednak chcesz przeanalizować te dane lub podjąć pewne działania w oparciu o określone informacje z dziennika, będziesz potrzebować biblioteki rejestrowania do analizowania danych dziennika przed ich archiwizacją.

Ze względu na lukę Log4j każdy system lub aplikacja korzystająca z Log4j staje się podatna na cyberataki. Biblioteka rejestrowania wykonuje kod na podstawie danych wejściowych. Haker może zmusić bibliotekę dzienników do wykonania szkodliwego kodu, ponieważ luka pozwoli im manipulować danymi wejściowymi.

Tymczasem wiele rzeczy dzieje się w tle. Gdy Log4j zostanie przekazany specjalnie spreparowanym ciągiem, wywoła serwer LDP i pobierze kod hostowany w jego katalogu w celu wykonania kodu. W ten sposób atakujący mogą utworzyć serwer LDAP do przechowywania złośliwego kodu, który może pomóc im kontrolować dowolny serwer, na którym kod jest wykonywany. Następnie wyśle ​​ciąg znaków kierujący ich złośliwy kod do docelowej aplikacji lub systemu i przejmie nad nią pełną kontrolę.

W ten sposób można wykorzystać lukę Log4j:

  • Atakujący znajduje serwer z podatną na ataki wersją Log4j.
  • Wyślą do docelowego serwera żądanie pobrania z linkiem do ich złośliwego serwera LDAP.
  • Docelowy serwer, zamiast weryfikować żądanie, połączy się bezpośrednio z tym serwerem LDAP.
  • Atakujący wyślą teraz docelowy serwer z odpowiedzią serwera LDAP zawierającą złośliwy kod. Ze względu na podatność Log4j, która umożliwia otrzymanie kodu i wykonanie go bez weryfikacji, haker może wykorzystać tę słabość, aby włamać się do docelowego serwera i wykorzystać połączone systemy, sieci i urządzenia.

Jak luka w zabezpieczeniach Log4j może zaszkodzić użytkownikom?

Podatność Log4j jest niepokojąca, ponieważ jest wykorzystywana w wielu aplikacjach i systemach oprogramowania.

Ponieważ rejestrowanie jest istotną funkcją większości aplikacji, a Log4j jest wiodącym rozwiązaniem w kosmosie, Log4j znajduje aplikacje w różnych systemach oprogramowania.

Niektóre z popularnych usług i aplikacji korzystających z Log4j to Minecraft, AWS, iCloud, Microsoft, Twitter, routery internetowe, narzędzia do tworzenia oprogramowania, narzędzia bezpieczeństwa i tak dalej. W związku z tym osoby atakujące mogą atakować dużą liczbę aplikacji, usług i systemów użytkowników domowych, twórców kodu, dostawców usług oraz innych powiązanych profesjonalistów i osób.

Ponadto luka Log4j jest niezwykle łatwa do wykorzystania przez atakującego. Cały proces wymaga mniejszej liczby umiejętności, a nie poziomu eksperta, aby przeprowadzić atak. Dlatego rośnie liczba ataków wykorzystujących tę lukę.

Wpływ podatności Log4j to:

  • Ataki DoS
  • Ataki w łańcuchu dostaw
  • Wydobycie monet
  • Zastrzyki ze złośliwego oprogramowania, takiego jak oprogramowanie ransomware i konie trojańskie
  • Wstrzyknięcie kodu arbitralnego
  • Zdalne wykonanie kodu

I więcej.

W wyniku tych ataków możesz stracić kontrolę nad swoimi aplikacjami, systemami i urządzeniami, a Twoje dane mogą paść ofiarą atakujących, którzy mogą sprzedać Twoje dane, manipulować nimi lub ujawnić je światu zewnętrznemu. W związku z tym Twoja firma może ucierpieć pod względem prywatności danych klientów, zaufania, tajemnic organizacji, a nawet sprzedaży i przychodów, nie mówiąc już o ryzyku związanym ze zgodnością.

Według raportuponad 40% globalnych sieci korporacyjnych doświadczyło ataków z powodu tej luki.

Tak więc, nawet jeśli nie używasz w swoich aplikacjach żadnych podatnych wersji Log4j, integracje innych firm mogą z niego korzystać, co naraża aplikację na ataki.

Zauważ, że wszystkie wersje Log4j przed Log4j 2.17.0. są dotknięte; dlatego musisz zaktualizować rejestrator, jeśli go używasz. Ponadto, znani dostawcy, których dotyczy ta luka Log4j, to Adobe, AWS, IBM, Cisco, VMware, Okta, Fortinet itp. Jeśli używasz któregoś z nich, stale monitoruj swoje aplikacje i używaj systemów bezpieczeństwa, aby jak najszybciej naprawić problemy powstaje.

Jak wykryć programy, których dotyczy Log4j, i naprawić problemy?

Luka Log4Shell ma 10 punktów w CVSS. Dlatego wszystkie problemy w Log4j nie zostały jeszcze załatane. Ale jest szansa, że ​​Ty lub Twój zewnętrzny dostawca możecie używać Log4j, którego używałeś w swojej aplikacji.

Dlatego, jeśli chcesz chronić swoje dane, systemy i sieć, upewnij się, że wykonałeś kilka kroków naprawczych.

#1. Zaktualizuj swoją wersję Log4j

Aktualizacja bieżącej wersji Log4j do Log 4j 2.17.1 jest najskuteczniejszą techniką naprawczą, jeśli chcesz chronić swoje urządzenie i aplikacje przed atakami wynikającymi z luki Log4j.

Log4Shell to rodzaj ataku typu zero-day, który może potencjalnie wpłynąć na ekosystem oprogramowania. Apache naprawił niektóre luki w ostatnich wersjach, ale jeśli Twój system został naruszony przed aktualizacją, nadal jesteś zagrożony.

Dlatego zakładając to, musisz nie tylko zaktualizować wersję, ale także natychmiast rozpocząć procedury reagowania na incydenty, aby upewnić się, że w Twoich systemach i aplikacjach nie ma żadnych luk w zabezpieczeniach oraz złagodzić ataki. Musisz także przejrzeć wszystkie dzienniki serwera, aby znaleźć wskaźniki naruszenia bezpieczeństwa (IOC) i stale monitorować swoje systemy i sieć.

#2. Korzystaj z najnowszych zapór sieciowych i systemów bezpieczeństwa

Zapory sieciowe, takie jak zapory aplikacji internetowych (WAF) i zapory nowej generacji, mogą pomóc zabezpieczyć granicę sieci przed atakującymi, skanując przychodzące i wychodzące pakiety danych oraz blokując te podejrzane. Dlatego używaj najnowszych zapór sieciowych w swojej sieci i ustaw ścisłe reguły wychodzące na swoich serwerach, aby zapobiec atakom związanym z podatnością Log4j.

Chociaż atakujący mogą ominąć zapory ogniowe, nadal uzyskasz pewien stopień bezpieczeństwa dzięki zaporom, które mogą blokować żądania atakującego.

Ponadto zaktualizuj wszystkie swoje systemy bezpieczeństwa, takie jak systemy wykrywania włamań (IDS), systemy zapobiegania włamaniom (IPS) itp., o najnowsze sygnatury i reguły. Systemy te pomagają blokować lub filtrować ruch RMI i LDAP przed łączeniem się ze złośliwym serwerem LDAP.

#3. Wdrożenie MSZ

Skonfigurowanie uwierzytelniania wieloskładnikowego (MFA) w aplikacjach i systemie zapewni lepsze zabezpieczenie przed atakującymi. Zapewni drugą warstwę bezpieczeństwa, nawet jeśli atakującemu uda się złamać pierwszą warstwę. Możesz to zrobić za pomocą danych biometrycznych, takich jak odciski palców, skanowanie tęczówki oka itp., ustawiając pytanie zabezpieczające lub włączając kod PIN.

Korzystanie z MFA zwiększy trudność atakujących i czas na wykonanie pełnego ataku. W międzyczasie może również natychmiast poinformować Cię o incydencie, abyś mógł podjąć niezbędne kroki naprawcze, gdy masz jeszcze czas.

Ponadto musisz również stosować surowe zasady VPN, aby ograniczyć naruszenia danych. Umożliwi to użytkownikom bezpieczny dostęp do Twoich systemów z dowolnego miejsca bez obaw o atakujących.

#4. Zmień właściwości systemu

Jeśli nie możesz uaktualnić do najnowszej wersji biblioteki Log4j, musisz natychmiast zmienić właściwości systemu Java, jeśli używasz wersji z zakresu od Log4j 2.10 do Log4j 2.14.1.

Musisz ustawić go w taki sposób, aby uniemożliwić wyszukiwanie, którego atakujący używają do wykrycia luk, a następnie znalezienia sposobów ich wykorzystania.

#5. Usuń JNDI

Powodem tej krytycznej luki w zabezpieczeniach jest jej konstrukcja. Wtyczka JNDI Lookup ma wadę projektową, dzięki której atakujący mogą przeprowadzić atak.

JNDI służy do wykonywania kodu na podstawie danych wejściowych w swoim dzienniku, którymi każdy może łatwo manipulować, ponieważ rejestrator akceptuje każde żądanie bez weryfikacji.

Badacze bezpieczeństwa odkryli, że ta wtyczka zawsze zezwalała na nieprzeanalizowane dane, odkąd została wydana w 2013 roku i wysyła je do biblioteki Log4j.

W związku z tym luka Log4j jest podatna na wykorzystanie za pomocą prostego wstrzyknięcia ciągu znaków. Gdy atakujący wstrzyknie go, rejestrator zaakceptuje operację żądaną w ciągu i wykona ją natychmiast bez weryfikacji.

Jeśli więc chcesz zabezpieczyć swoje systemy i aplikacje, musisz wyłączyć klasę – JndiLookup. Zapobiegnie to podejmowaniu działań przez rejestrator w oparciu o dane dziennika.

W rzeczywistości wyszukiwanie JNDI jest już domyślnie wyłączone w Log4j 2.16.0 w celu zabezpieczenia aplikacji i systemów.

Tak więc, jeśli używasz wersji Log4j niższej niż 2.16.0, upewnij się, że wyłączyłeś wyszukiwanie JNDI.

#6. Porozmawiaj ze swoimi dostawcami

Jeśli wszystko jest w porządku, twoje zapory i systemy bezpieczeństwa zaktualizowane, wersja Log4j zaktualizowana, wyszukiwanie JNDI wyłączone, itd., jeszcze się nie odpręż.

Nawet jeśli w swoich aplikacjach nie używasz podatnej na ataki wersji Log4j, mogą jej używać dostawcy zewnętrzni. Tak więc nigdy nie dowiesz się, w jaki sposób Twoja aplikacja lub system został zhakowany, ponieważ prawdziwym problemem była integracja z firmą zewnętrzną.

Dlatego porozmawiaj ze swoimi dostawcami i upewnij się, że oni również zaktualizowali Log4j do najnowszej wersji i wdrożyli inne praktyki bezpieczeństwa omówione powyżej.

7. Użyj skanera luk w zabezpieczeniach Log4j

Na rynku dostępnych jest wiele narzędzi do skanowania podatności Log4j, które ułatwiają wykrywanie podatności Log4j w systemach i aplikacjach.

Tak więc, szukając tych narzędzi, sprawdź ich wskaźniki dokładności, ponieważ wiele z nich generuje fałszywe alarmy. Znajdź również narzędzie, które może zaspokoić Twoje potrzeby, ponieważ mogą one koncentrować się na identyfikacji luki Log4j, zgłaszaniu narażenia i usuwaniu luki.

Jeśli więc skupiasz się na wykrywaniu, znajdź skaner podatności Log4j, który może wykryć problem lub użyj tego, który może wykryć i naprawić problem.

Niektóre z najlepszych narzędzi do skanowania Log4j to:

  • Microsoft 365 Defender: Firma Microsoft oferuje szereg rozwiązań i narzędzi zabezpieczających, które pomagają wykrywać i zapobiegać exploitom Log4j w Twojej sieci. Będziesz w stanie wykryć próby zdalnego wykonania i wykorzystania kodu, chroniąc Cię przed lukami Log4j w urządzeniach z systemem Windows i Linux.
  • Amazon Inspector i AWS: Amazon stworzył narzędzie do skanowania w celu znalezienia luki Log4j w instancjach Amazon EC2 i Amazon ECR.
  • CloudStrike Archive Scan Tool (CAST): CloudStrike stworzył również doskonałe narzędzie do skanowania do wykrywania luk w zabezpieczeniach Log4j, aby pomóc Ci rozwiązać problemy na czas, zanim atakujący będą mogli je wykorzystać.
  • Wykrywanie Google Cloud Logging: rozwiązanie Google do wykrywania logów w chmurze umożliwia wykrywanie exploitów Log4j za pomocą Logs Explorer. W tym narzędziu możesz utworzyć zapytanie dziennika i skanować w poszukiwaniu potencjalnych ciągów exploitów.
  • Google stworzył również log4jscanner, skaner systemu plików o otwartym kodzie źródłowym do wykrywania luki Log4j.
  • Skaner BurpSuite Log4j: Jest to wtyczka bezpieczeństwa dla profesjonalistów i przedsiębiorstw, która pomaga im wykryć podatność Log4j.
  • Tester luk w zabezpieczeniach Huntress Log4Shell: To narzędzie generuje losowo unikalny identyfikator, którego można użyć podczas testowania pól wejściowych. Po znalezieniu luki w aplikacji lub polu wejściowym bezpieczny serwer LDAP natychmiast przerwie złośliwe połączenie i zapewni bezpieczeństwo.
  • WhiteSource Log4j Detect: Firma WhiteSource stworzyła bezpłatne narzędzie CLI, WhiteSource Log4j Detect, hostowane na GitHub, aby pomóc Ci wykryć i naprawić luki w Log4j – CVE-2021-445046 i CVE-2021-44228.
  • Narzędzia JFrog Open-Source Scanning dla Log4j: JFrog stworzył różne rozwiązania i narzędzia typu open source, aby znaleźć luki Log4j w plikach binarnych i kodzie źródłowym.

Wniosek

Luka Log4j jest krytycznym problemem bezpieczeństwa. Ponieważ ta biblioteka rejestrowania jest szeroko stosowana w różnych aplikacjach i systemach, luka Log4j stała się powszechna, umożliwiając atakującym korzystanie z szerokiej gamy systemów i aplikacji.

Tak więc, jeśli chcesz chronić swoje systemy i aplikacje przed tą luką, upewnij się, że uaktualniłeś bibliotekę Log4j do najnowszej wersji i zaimplementujesz najlepsze praktyki bezpieczeństwa omówione powyżej.