Dowiedz się, jak zarządzać luką w zabezpieczeniach programu Log4Shell w usłudze Microsoft Defender dla punktu końcowego
Luka w zabezpieczeniach programu Log4Shell to luka w zabezpieczeniach zdalnego wykonywania kodu (RCE) znajdująca się w bibliotece rejestrowania usługi Apache Log4j 2. Ponieważ usługa Apache Log4j 2 jest często używana przez wiele aplikacji i usług online, stanowi złożoną i wysoce ryzykowną sytuację dla firm na całym świecie. Określany jako "Log4Shell" (CVE-2021-44228, CVE-2021-45046) wprowadza nowy wektor ataku, który atakujący mogą wykorzystać do wyodrębniania danych i wdrażania oprogramowania wymuszającego okup w organizacji.
Uwaga
Zapoznaj się z blogami Guidance for preventing, detecting, and hunting for exploitation of the Log4j 2 vulnerability and Microsoft Security Response Center for guidance and technical information about the vulnerability and product specific mitigation recommendations to protect your organization (Wskazówki dotyczące zapobiegania, wykrywania i wyszukiwania zagrożeń pod kątem wykorzystania luki w zabezpieczeniach log4j 2 oraz Centrum reagowania na zabezpieczenia firmy Microsoft), aby uzyskać wskazówki i informacje techniczne dotyczące luk w zabezpieczeniach i zaleceń dotyczących ograniczania ryzyka specyficznych dla produktu w celu ochrony organizacji.
Omówienie możliwości odnajdywania, monitorowania i ograniczania ryzyka
Usługa Defender Vulnerability Management oferuje następujące możliwości, które ułatwiają identyfikowanie, monitorowanie i ograniczanie narażenia organizacji na lukę w zabezpieczeniach programu Log4Shell:
- Odnajdywanie: Wykrywanie uwidocznionych urządzeń, zarówno urządzeń dołączonych do usługi Microsoft Defender for Endpoint, jak i urządzeń, które zostały odnalezione, ale nie zostały jeszcze dołączone, opiera się na oprogramowaniu narażonym na zagrożenia i plikach narażonych na zagrożenia wykrytych na dysku.
- Świadomość zagrożeń: Skonsolidowany widok do oceny narażenia organizacji. Ten widok przedstawia narażenie na poziomie urządzenia i oprogramowania oraz zapewnia dostęp do szczegółów dotyczących plików narażonych na zagrożenia, takich jak czas ostatniego wyświetlenia, czas ostatniego wykonania i czas ostatniego wykonania z otwartymi portami. Te informacje umożliwiają określenie priorytetów akcji korygowania. Wyświetlanie danych związanych z uwidocznianymi urządzeniami na pulpicie nawigacyjnym może potrwać do 24 godzin.
- Opcje ograniczania ryzyka: Zastosuj opcje ograniczania ryzyka, aby zmniejszyć ryzyko narażenia.
- Zaawansowane wyszukiwanie zagrożeń: Użyj zaawansowanego wyszukiwania zagrożeń, aby zwrócić szczegóły dotyczące wrażliwych plików log4j zidentyfikowanych na dysku.
Uwaga
Te możliwości są obsługiwane w systemach Windows 10 & Windows 11, Windows Server, Linux i macOS.
Obsługa w systemie Linux wymaga klienta programu Microsoft Defender for Endpoint Linux w wersji 101.52.57 (30.121092.15257.0) lub nowszej.
Obsługa systemu macOS wymaga klienta programu Microsoft Defender for Endpoint dla systemu macOS w wersji 20.121111.15416.0 lub nowszej.
Aby uzyskać więcej informacji na temat obsługiwanych wersji, zobacz Obsługiwane platformy i możliwości systemów operacyjnych.
Odnajdywanie uwidocznionych urządzeń
Funkcje zarządzania lukami w zabezpieczeniach usługi Embedded Defender wraz z włączaniem wykrywania log4j w portalu usługi Microsoft Defender ułatwiają odnajdywanie urządzeń narażonych na lukę w zabezpieczeniach programu Log4Shell.
Dołączone urządzenia są oceniane przy użyciu istniejących wbudowanych funkcji zarządzania lukami w zabezpieczeniach usługi Defender, które mogą odnajdywać oprogramowanie i pliki znajdujące się w trudnej sytuacji.
W przypadku wykrywania na odnalezionych, ale jeszcze nie dołączonych urządzeniach należy włączyć wykrywanie log4j. Inicjuje to sondy w taki sam sposób, w jaki odnajdywanie urządzeń aktywnie sonduje sieć. Sondowanie obejmuje wiele dołączonych punktów końcowych (urządzenia z systemami Windows 10+ i Windows Server 2019+) oraz sondowanie tylko w podsieciach w celu wykrywania urządzeń narażonych na zagrożenia i zdalnie narażonych na cve-2021-44228.
Aby włączyć wykrywanie log4:
Przejdź do pozycji UstawieniaKonfiguracja odnajdywania>>urządzeń.
Wybierz pozycję Włącz wykrywanie log4j2 (CVE-2021-44228).
Wybierz Zapisz.
Uruchomienie tych sond wyzwala standardowy przepływ log4j bez powodowania szkodliwego wpływu na sondowane urządzenie lub urządzenie sondujące. Samo sondowanie odbywa się przez wysłanie wielu żądań HTTP do odnalezionych urządzeń, ukierunkowanych na typowe porty aplikacji internetowej (na przykład 80 8000 8080 443 8443) i adresy URL. Żądanie zawiera nagłówki HTTP z ładunkiem JNDI, który wyzwala żądanie DNS z sondowanego komputera.
Na przykład user-agent: ${jndi:dns://192.168.1.3:5353/MDEDiscoveryUser-Agent}, gdzie 192.168.1.3 jest adresem IP maszyny sondowania.
Uwaga
Włączenie wykrywania log4j2 oznacza również, że dołączone urządzenia będą używać samodzielnego sondowania w celu wykrywania lokalnych luk w zabezpieczeniach.
Wykrywanie oprogramowania i plików podatnych na zagrożenia
Usługa Defender Vulnerability Management udostępnia warstwy wykrywania ułatwiające odnajdywanie:
Oprogramowanie podatne na zagrożenia: odnajdywanie jest oparte na zainstalowanych aplikacjach Common Platform Enumerations (CPE), o których wiadomo, że są narażone na zdalne wykonywanie kodu w usłudze Log4j.
Pliki narażone na ataki: Zarówno pliki w pamięci, jak i pliki w systemie plików są oceniane. Te pliki mogą być plikami jar typu log4j-core ze znaną wersją podatną na zagrożenia lub aplikacją Uber-JAR zawierającą klasę wyszukiwania JNDI lub plik log4j-core podatny na zagrożenia. W szczególności:
- Określa, czy plik JAR zawiera zagrożony plik Log4j, sprawdzając pliki JAR i wyszukując następujący plik: \META-INF\maven\org.apache.logging.log4j\log4j-core\pom.properties — jeśli ten plik istnieje, wersja Log4j jest odczytywana i wyodrębniana.
- Wyszukuje plik JndiLookup.class wewnątrz pliku JAR, szukając ścieżek zawierających ciąg "/log4j/core/lookup/JndiLookup.class" — jeśli istnieje plik JndiLookup.class, usługa Defender Vulnerability Management określa, czy ten plik JAR zawiera plik Log4j z wersją zdefiniowaną w pliku pom.properties.
- Wyszukuje wszystkie wrażliwe pliki JAR log4j-core osadzone w zagnieżdżonym pliku JAR, wyszukując ścieżki zawierające dowolny z tych ciągów:
- lib/log4j-core-
- WEB-INF/lib/log4j-core-
- App-INF/lib/log4j-core-
W tej tabeli opisano obsługiwane platformy i wersje funkcji wyszukiwania:
Możliwości | Typ pliku | Windows 10+, server2019+ |
Serwer 2012R2, server2016 |
Serwer 2008R2 | Linux + macOS |
---|---|---|---|---|---|
Wyszukiwanie w pamięci | Log4j-core | Tak | Tak[1] | - | Tak |
Uber-JARs | Tak | Tak[1] | - | Tak | |
Wyszukaj wszystkie pliki na dysku | Log4j-core | Tak | Tak[1] | Tak | - |
Uber-JARs | Tak | Tak[1] | - | - |
(1) Możliwości są dostępne, gdy KB5005292 jest zainstalowany w systemach Windows Server 2012 R2 i 2016.
Dowiedz się więcej o opcjach ekspozycji i ograniczania ryzyka w programie Log4Shell
W portalu usługi Microsoft Defender przejdź do obszaru Słabości zarządzania lukami>w zabezpieczeniach.
Wybierz pozycję CVE-2021-44228.
Wybierz pozycję Otwórz stronę luki w zabezpieczeniach.
Ograniczanie luk w zabezpieczeniach programu Log4Shell
Lukę w zabezpieczeniach programu log4Shell można zminimalizować, uniemożliwiając wyszukiwanie JNDI w usłudze Log4j w wersji 2.10–2.14.1 z konfiguracjami domyślnymi. Aby utworzyć tę akcję ograniczania ryzyka, na pulpicie nawigacyjnym rozpoznawania zagrożeń:
Wybierz pozycję Wyświetl szczegóły luki w zabezpieczeniach.
Wybierz pozycję Opcje ograniczania ryzyka.
Możesz zastosować środki zaradcze do wszystkich uwidocznionych urządzeń lub wybrać określone dołączone urządzenia. Aby ukończyć proces i zastosować środki zaradcze na urządzeniach, wybierz pozycję Utwórz akcję ograniczania ryzyka.
Stan ograniczania ryzyka
Stan ograniczenia ryzyka wskazuje, czy do urządzenia zastosowano obejście umożliwiające wyłączenie wyszukiwań JDNI. Stan ograniczania ryzyka dla każdego urządzenia, którego dotyczy problem, można wyświetlić na kartach Uwidocznione urządzenia. Może to pomóc w ustalaniu priorytetów ograniczania ryzyka i/lub stosowania poprawek urządzeń na podstawie ich stanu ograniczania ryzyka.
W poniższej tabeli wymieniono potencjalne stany ograniczania ryzyka:
Stan ograniczania ryzyka | Opis |
---|---|
Zastosowane obejście |
Windows: zmienna środowiskowa LOG4J_FORMAT_MSG_NO_LOOKUPS była obserwowana przed ostatnim ponownym uruchomieniem urządzenia. Linux + macOS: wszystkie uruchomione procesy mają wartość LOG4J_FORMAT_MSG_NO_LOOKUPS=true w zmiennych środowiskowych. |
Obejście oczekującego ponownego uruchomienia | Zmienna środowiskowa LOG4J_FORMAT_MSG_NO_LOOKUPS jest ustawiona, ale nie wykryto ponownego uruchomienia. |
Nie zastosowano |
Windows: nie zaobserwowano zmiennej środowiskowej LOG4J_FORMAT_MSG_NO_LOOKUPS. Linux + macOS: nie wszystkie uruchomione procesy mają LOG4J_FORMAT_MSG_NO_LOOKUPS =true w zmiennych środowiskowych, a akcja ograniczania ryzyka nie została zastosowana na urządzeniu. |
Częściowo złagodzone | Linux + macOS: Mimo że akcja ograniczania ryzyka została zastosowana na urządzeniu, nie wszystkie uruchomione procesy mają wartość LOG4J_FORMAT_MSG_NO_LOOKUPS=true w zmiennych środowiskowych. |
Nie dotyczy | Urządzenia, które mają wrażliwe pliki, które nie znajdują się w zakresie wersji ograniczania ryzyka. |
Unknown | W tej chwili nie można określić stanu ograniczenia ryzyka. |
Uwaga
Może upłynąć kilka godzin, zanim zaktualizowany stan ograniczenia ryzyka urządzenia zostanie odzwierciedlony.
Przywracanie środków zaradczych stosowanych w przypadku luki w zabezpieczeniach programu Log4Shell
W przypadkach, w których należy cofnąć środki zaradcze, wykonaj następujące kroki:
W przypadku systemu Windows:
Otwórz okno programu PowerShell z podwyższonym poziomem uprawnień.
Uruchom następujące polecenie:
[Environment]::SetEnvironmentVariable("LOG4J\_FORMAT\_MSG\_NO\_LOOKUPS", $null,[EnvironmentVariableTarget]::Machine)
Zmiana zacznie obowiązywać po ponownym uruchomieniu urządzenia.
W przypadku systemu Linux:
Otwórz plik /etc/environment i usuń wiersz LOG4J_FORMAT_MSG_NO_LOOKUPS=true
Usuń plik /etc/systemd/system.conf.d/log4j_disable_jndi_lookups.conf
Usuń plik /etc/systemd/user.conf.d/log4j_disable_jndi_lookups.conf
Zmiana zacznie obowiązywać po ponownym uruchomieniu urządzenia.
W przypadku systemu macOS:
Usuń plik setenv. LOG4J_FORMAT_MSG_NO_LOOKUPS.plist z następujących folderów:
- /Library/LaunchDaemons/
- /Library/LaunchAgents/
- /Users/[username]/Library/LaunchAgents/ — dla wszystkich użytkowników
Zmiana zacznie obowiązywać po ponownym uruchomieniu urządzenia.
Zalecenia dotyczące zabezpieczeń usługi Apache Log4j
Aby wyświetlić aktywne rekomendacje dotyczące zabezpieczeń związane z usługą Apache log4j, wybierz kartę Zalecenia dotyczące zabezpieczeń na stronie szczegółów luk w zabezpieczeniach. W tym przykładzie po wybraniu pozycji Aktualizuj dziennik usługi Apache Log4j zostanie wyświetlony kolejny wysuwany element z większą ilością informacji:
Wybierz pozycję Zażądaj korygowania , aby utworzyć żądanie korygowania.
Eksplorowanie luki w zabezpieczeniach w portalu usługi Microsoft Defender
Po znalezieniu uwidocznionego urządzenia, plików i oprogramowania odpowiednie informacje są przekazywane za pośrednictwem następujących środowisk w portalu usługi Microsoft Defender:
Spis oprogramowania
Na stronie spisu oprogramowania wyszukaj ciąg CVE-2021-44228 , aby wyświetlić szczegółowe informacje na temat instalacji oprogramowania Log4j i ekspozycji:
Słabości
Na stronie słabych punktów wyszukaj pozycję CVE-2021-44228 , aby wyświetlić informacje o lukach w zabezpieczeniach programu Log4Shell:
Korzystanie z zaawansowanego wyszukiwania zagrożeń
Aby zidentyfikować luki w zabezpieczeniach zainstalowanego oprogramowania na urządzeniach, można użyć następującego zaawansowanego zapytania dotyczącego wyszukiwania zagrożeń:
DeviceTvmSoftwareVulnerabilities
| where CveId in ("CVE-2021-44228", "CVE-2021-45046")
Aby zidentyfikować luki w zabezpieczeniach zainstalowanego oprogramowania na urządzeniach, można użyć następującego zaawansowanego zapytania wyszukiwania zagrożeń, aby wyświetlić wyniki na poziomie plików z dysku:
DeviceTvmSoftwareEvidenceBeta
| mv-expand DiskPaths
| where DiskPaths contains "log4j"
| project DeviceId, SoftwareName, SoftwareVendor, SoftwareVersion, DiskPaths