Czym jest Zerologon?

Zerologon to luka w zabezpieczeniach modułu kryptograficznego procesu Netlogon firmy Microsoft, która umożliwia przeprowadzenie ataku na kontrolery domen Microsoft Active Directory. Zerologon pozwala hakerowi podszywanie się pod dowolny komputer, nawet kontroler domeny głównej.

Zerologon

Zerologon to nazwa luki w zabezpieczeniach o identyfikatorze CVE-2020-1472. Jej źródłem jest błąd w procesie logowania: wektor inicjacji (IV), który powinien być liczbą losową, ma stałą wartość składającą się z samych zer.

W skali powagi zagrożenia CVSS (Common Vulnerability Scoring System) luce tej przyznano maksymalną liczbę 10 punktów (CVSS v3.1). Znane są aktywne exploity testowe, które ją wykorzystują. Jest też wysoce prawdopodobne, że wkrótce zostanie wykorzystana w prawdziwych atakach.

Agencja CISA (Cybersecurity and Infrastructure Security Agency) opublikowała nadzwyczajną dyrektywę w której nawołuje federalne agencje cywilne do natychmiastowego wyłączenia wszystkich serwerów Windows lub wprowadzenia na nich poprawek oraz podobne środki ostrożności zaleca organizacjom pozarządowym. Firma Microsoft w sierpniu 2020 r. opublikowała dwie pierwsze poprawki, które należy zainstalować na wszystkich kontrolerach domeny.

Luka bazuje na wadzie systemu kryptograficznego w protokole Microsoft Active Directory Netlogon Remote Protocol (MS-NRPC). Umożliwia logowanie się na serwerach korzystających z protokołu NTLM (NT LAN Manager). 

Najgorsze jest to, że protokół MS-NRPC jest używany także do przesyłania pewnych zmian na kontach, na przykład haseł do kont usługowych na komputerze. Z historycznego punktu widzenia dodanie tej funkcji wydaje się uzasadnione. Jednak brak kontroli u źródła żądania zmiany haseł stał się poważnym zagrożeniem bezpieczeństwa.

Dalej jest tylko gorzej. Zastosowana w MS-NRPC metoda szyfrowania nie jest najlepszym wyborem. W 1883 r. holenderski kryptograf Aguste Kerckhoffs opublikował dwa artykuły pt.  La Cryptographie Militaire (Kryptografia wojskowa), w których przedstawił sześć kluczowych zasad projektowania systemów kryptograficznych. 

Najbardziej znana z nich, tzw. Zasada Kerckhoffsa, nakazuje zachowanie klucza kryptograficznego w tajemnicy. Dodatkowo przestrzega przed poleganiem na tajności algorytmu chroniącego dane oraz zachęca do korzystania ze znanych, dobrze przetestowanych i sprawdzonych algorytmów.

W procesie logowania do systemu Windows NT początkowo użyto algorytmu 2DES, o którym wiadomo, że ma wady. Dziś MS-NRPC wykorzystuje algorytm Advanced Encryption Standard (AES) uważany za wzorcową technikę szyfrowania. 

Aby uzyskać odpowiedni poziom bezpieczeństwa, oprócz sprawdzonego algorytmu należy wybrać także pewne dodatkowe ustawienia. MS-NRPC wykorzystuje mało znane ustawienie o nazwie Advanced Encryption Standard — Cipher Feed Back 8bit (AES-CFB8). AES-CFB8 to mało znana i niedostatecznie przetestowana technika. 

Wykorzystanie AES-CFB8 w MS-NRPC wiąże się z błędem dotyczącym wektora inicjowania, który powinien być liczbą losową, podczas gdy w MS-NRPC ma stałą wartość o długości 16 bajtów złożoną z samych zer. To nie jest losowa liczba. I łatwo ją przewidzieć. A przewidywalność to największy wróg kryptografii.

Skąd wiemy o tej luce

O luce poinformował we wrześniu 2020 r. Tom Tervoort, holenderski badacz pracujący w Secura. Wprawdzie załatano ją już w sierpniu, ale dopiero po publikacji raportu przez Holendra we wrześniu zaczęły pojawiać się exploity testowe i odnotowano inną aktywność w tym zakresie. 

Tervoort opisuje swoje odkrycie i opowiada, w jaki sposób do niego doszło. Podczas prowadzenia badań stwierdził, że jest bardzo mało informacji o protokole MS-NRPC. Zaintrygowany postanowił poszperać głębiej. 

Choć początkowo szukał luki umożliwiającej przeprowadzenie ataku typu człowiek pośrodku („person-in-the-middle”), odkrył inna lukę opisaną w CVE-2020-1424. Kontynuując swoje badanie, odkrył lukę obecnie znaną pod nazwą Zerologon. 

W jego odkryciu najważniejszy jest fakt, że firma Microsoft zaimplementowała niespotykany rodzaj kryptografii różniący się od wszystkich innych protokołów RPC. W czasach systemu Windows NT konta przypisane do komputera nie były traktowane jako podmiot zabezpieczeń pierwszej klasy. Przez to firma Microsoft nie mogła używać do uwierzytelniania komputerów lub kont protokołu Kerberos ani NTLM. 

W efekcie programiści opracowali alternatywne rozwiązanie. Stworzenie kodu i protokołów szyfrowania, których złamanie jest niemożliwe, to niesłychanie trudna sztuka. Jednak zanim luki zostaną wykryte może minąć dużo czasu. Tak właśnie stało się w tym przypadku.

Jak wygląda atak

Luka umożliwia hackerowi przejęcie kontroli nad kontrolerem domeny, w tym także nad kontrolerem głównym. W tym celu należy zmienić lub usunąć hasło konta usługowego na kontrolerze. Następnie może spowodować odmowę usługi lub przejąć całą sieć.

Aby przeprowadzić atak z wykorzystaniem tej luki w zabezpieczeniach, napastnik musi ustanowić sesję TCP z kontrolerem domeny. W przypadku fizycznej obecności w sieci hacker może mieć dostęp do biurka użytkownika lub otwartego portu, np. w sali konferencyjnej. 

Exploity te należą do grupy wewnętrznych, czyli takich, których skutki dla dzisiejszych firm są najbardziej kosztowne. Napastnik może przeprowadzić ataki z zewnątrz sieci, pod warunkiem, że uda mu się zdobyć dostęp do miejsca, z którego będzie mógł ustanowić sesję TCP z kontrolerem.

Posługując się metodą AES-CFB8 ze stałym wektorem inicjacji o długości 16 zerowych bajtów, Tervoort odkrył, że jeden na 256 kluczy da szyfr o wartości złożonej z samych zer. Z punktu widzenia napastnika możliwość wygenerowania szyfru złożonego z samych zer przy użyciu tak małej liczby kluczy jest bardzo korzystna. Wykonanie takiego zadania zajęłoby jego komputerowi zaledwie 2–3 sekundy. 

Dlaczego więc jest to takie ważne?

Jeśli komputer komunikujący się z kontrolerem domeny należy do użytkownika, który nie robi nic niezwykłego, to zagrożenie praktycznie nie istnieje. Wprawdzie powstanie szyfr o niskiej jakości, ale zadziałają sieciowe procesy uwierzytelniania. Problem ujawnia się tylko wtedy, gdy hacker próbuje wykorzystać system.

W ataku, którego skuteczność wykazał Tervoort, napastnik najpierw musi zdobyć dane logowania lub hasło klienta sieci. Ze względu na wadę implementacji wektora inicjacji w protokole MS-NRPC potrzeba do tego tylko 256 prób. 

Normalnie konto użytkownika zostałoby zablokowane po trzech nieudanych próbach wprowadzenia hasła, ale nie dotyczy to konta komputera lub maszyny. W przypadku logowania komputera liczba prób wpisania hasła jest nieograniczona, co pozwala hackerowi przeprowadzenie wielu prób w krótkim czasie. Jego celem jest znalezienie jednego z kluczy generujących szyfr zawierający same zera.

Co może zrobić hacker, kiedy już podszyje się pod komputer w sieci? Po wykonaniu pierwszego kroku hacker nie zna jeszcze klucza szyfrowania sesji. Na razie udało mu się tylko podszyć pod czyjąś tożsamość dzięki trafieniu w jeden z 256 kluczy, który daje szyfr zawierający same zera. Kolejnym krokiem jest wyłączenie mechanizmu „podpisywania i pieczętowania”.

Podpisywanie i pieczętowanie RPC to mechanizm służący do szyfrowania danych przesyłanych za pośrednictwem protokołu MS-NRPC. Korzystanie z niego wydaje się logiczne, ponieważ pozwala na szyfrowanie większej ilości przesyłanych informacji, ale w MS-NRPC jest to funkcja opcjonalna, którą wyłącza się przez pominięcie flagi w nagłówku wiadomości. 

Po wyłączeniu podpisywania i pieczętowania wiadomości są przesyłane w czystej postaci, co daje hackerom szerokie pole do działania, na przykład usunięcia albo zmiany hasła. W lutym 2021 r. firma Microsoft ma wydać poprawkę włączającą podpisywanie i pieczętowanie.

Trzeci krok to zmiana hasła do konta, które zostało przejęte. Dla hackera najkorzystniejsze jest zdobycie serwera Active Directory, najlepiej serwera głównego. W celu zmiany hasła napastnik wykorzystuje wiadomość NetServerPasswordSet2 w protokole MS-NRPC. 

Aby zmienić hasło, wystarczy wysłać ramkę z nowym hasłem. Najprościej jest usunąć hasło lub ustawić je na pustą wartość, co umożliwia hakerowi zalogowanie się w normalnym procesie. 

Jeśli atak jest skierowany na losowy komputer w sieci, to w jego wyniku straci on możliwość logowania. W związku z tym pierwszą konsekwencją tego typu ataku jest odmowa — usługi.

Globalny wpływ

Obecnie istnieje już kilka exploitów testowych. Jeśli na serwerach Active Directory nie zostanie zainstalowana poprawka, firmy mogą ponieść poważne straty, ponieważ ten rodzaj ataku umożliwia hakerowi wprowadzenie do sieci oprogramowania typu ransomware. 

Istnieją narzędzia pozwalające sprawdzić, czy dane serwery są podatne na ten typ ataku. Tervoort i Secura udostępnili w portalu GitHub narzędzie pozwalające sprawdzić, czy kontrolery domeny mają zainstalowane poprawki, czy nadal są podatne na atak.

Poprawka likwidująca lukę CVE-2020-1472

W sierpniu 2020 r. firma Microsoft opublikowała poprawkę likwidującą lukę CVE-2020-1472 (Zerologon). Wszystkie serwery Active Directory (2008 R2 i nowsze) należy zaktualizować jak najszybciej. Jednak średni czas od pojawienia się poprawki do momentu jej zainstalowania wciąż jest zbyt długi. 

Badacze twierdzą, że w przeciętnej organizacji od chwili pojawienia się poprawki do jej instalacji średnio mija od 60 do 150 dni (około pięciu miesięcy). Jest to tzw. wskaźnik MTTP (Mean Time to Patch — średni czas instalacji poprawki). 

Niestety ta poprawka nie rozwiązuje problemu całkowicie. Firma Microsoft planuje opublikowanie drugiej fazy, obejmującej fazę wymuszonego wdrożenia, na początku lutego 2021 r.

Do tego czasu wszystkie urządzenia będą musiały korzystać z trybu bezpiecznego kanału. W przeciwnym razie spotkają się z odmową dostępu. Starsze urządzenia niespełniające wymogów będzie trzeba ręcznie dodać do zasady grupowej wprost udzielającej dostępu urządzeniom niespełniającym wymogów.

Wdrażanie poprawek wirtualnych

Należy stosować tradycyjne środki bezpieczeństwa pozwalające monitorować stan kont i sieci, wykrywać złośliwy ruch oraz mieć na oku inne wskaźniki infekcji. Niezwykle ważną rolę odgrywają systemy zapobiegania włamaniom (IPS) oraz oprogramowanie anti-malware dla sieci i urządzeń hostujących (wszystkich punktów końcowych) pozwalające monitorować oprogramowanie ransomware, wirusy i inne zagrożenia. 

Należy zbierać dzienniki, zapisywać je w centralnym magazynie i analizować za pomocą narzędzia SIEM. Ewentualnymi wskaźnikami zagrożenia wykrytymi w toku analiz dzienników powinny zająć się wyznaczone zespoły w ramach odpowiednich procesów. Potem kontrolę powinien przejąć silny i posiadający odpowiednią wiedzę zespół ds. reagowania na incydenty, którego pierwszym krokiem powinno być określenie zakresu zagrożenia i opracowanie rozwiązania.

Wielu klientów nawet po udostępnieniu poprawki przez dostawcę potrzebuje czasu na jej wdrożenie i implementację dodatkowych środków bezpieczeństwa w swoim środowisku. Koncepcja wdrażania poprawek wirtualnych za pomocą takich narzędzi jak IPS stanowi dodatkową broń w arsenale administratorów i specjalistów ds. bezpieczeństwa,

które pozwala zyskać na czasie w newralgicznym momencie. Instalacja poprawek dostarczonych przez producenta nadal jest zalecaną formą ograniczania ryzyka. Poprawki wirtualne pomagają chronić podatne na ataki komputery. Ponadto w wielu przypadkach pozwalają na zdobycie cennych informacji na temat dalszych prób podejmowanych przez hakerów po wdrożeniu poprawki, na przykład za pomocą analizy dzienników.

Klienci Trend Micro mogą dowiedzieć się więcej na temat sprawdzonych metod postępowania z zagrożeniem oraz tego, jak możemy pomóc, w następującym artykule bazy wiedzy: https://success.trendmicro.com/solution/000270328

Tematy dotyczące luki Zerologon