Niedawno odkryta i załatana luka w Open Policy Agent (OPA) firmy Styra mogła prowadzić do wycieku skrótów NTLM (New Technology LAN Manager). Błąd, który został już naprawiony, mógł umożliwić atakującym uzyskanie dostępu do danych uwierzytelniających użytkownika lokalnego serwera OPA, co w rezultacie mogło pozwolić na zdalne ataki takie jak przekazywanie uwierzytelnienia lub łamanie hasła.
Na czym polegała luka?
Omawiana luka została zidentyfikowana jako problem związany z wymuszonym uwierzytelnianiem w protokole Server Message Block (SMB), śledzona pod numerem CVE-2024-8260. Zgodnie z raportem firmy Tenable, błąd ten mógł prowadzić do wycieku danych uwierzytelniających poprzez wysłanie skrótu Net-NTLMv2 użytkownika lokalnego serwera OPA do serwera zdalnego.
W wyniku tego błędu, nieodpowiednia walidacja danych wejściowych mogła umożliwić niewłaściwy dostęp do systemu. Atakujący, po uzyskaniu tego skrótu, mógł użyć go do przeprowadzenia ataku relay w celu obejścia uwierzytelnienia lub próbować złamać hasło offline.
Przebieg ataku
Aby luka mogła zostać wykorzystana, ofiara musiała uruchomić ruch wychodzący SMB przez port 445. Wymagało to również spełnienia kilku warunków, które zmniejszają ogólną powagę zagrożenia. Oto niektóre z nich:
– Potrzebny był początkowy dostęp do środowiska ofiary lub skuteczne zastosowanie inżynierii społecznej, aby nakłonić użytkownika do uruchomienia CLI OPA.
– Zamiast pliku z regułami Rego, należało przekazać ścieżkę Universal Naming Convention (UNC) jako argument dla OPA CLI lub funkcji biblioteki OPA Go.
Po przechwyceniu danych uwierzytelniających, atakujący mógł je wykorzystać do przeprowadzenia ataku relay, co pozwalałoby na obejście zabezpieczeń systemowych. Alternatywnie, skrót NTLM mógł zostać złamany offline, co umożliwiłoby uzyskanie hasła użytkownika.
Jak działa mechanizm NTLM?
Gdy użytkownik lub aplikacja próbuje uzyskać dostęp do zasobu zdalnego na Windows, lokalna maszyna automatycznie uwierzytelnia się na serwerze zdalnym za pomocą mechanizmu NTLM. W trakcie tego procesu, skrót NTLM użytkownika lokalnego jest przesyłany do zdalnego serwera. Luka ta pozwalała atakującym na przechwycenie tych danych, co mogło być użyte do późniejszego przekazania uwierzytelnienia lub złamania skrótu offline.
Jak rozwiązano problem?
Zgodnie z procedurą odpowiedzialnego ujawnienia, luka została zgłoszona 19 czerwca 2024 r., a następnie naprawiona w wersji 0.68.0 wydanej 29 sierpnia 2024 r. Firma odpowiedzialna za OPA podkreśliła, jak ważne jest regularne zabezpieczanie otwartych projektów, które są szeroko stosowane w różnorodnych rozwiązaniach. Umożliwia to minimalizowanie ryzyka zwiększenia powierzchni ataku dla dostawców i ich klientów.
Inne zagrożenia związane z NTLM
Odkrycie tej luki w OPA zbiegło się w czasie z innym problemem związanym z NTLM. Firma Akamai ujawniła poważną lukę eskalacji uprawnień w usłudze Microsoft Remote Registry Service, śledzoną pod numerem CVE-2024-43532. Luka ta, o wysokiej ocenie CVSS 8.8, mogła pozwolić atakującemu na uzyskanie uprawnień SYSTEM przez użycie ataku relay NTLM. Microsoft naprawił tę lukę na początku lutego 2024 r.
Nadchodząca zmiana w Windows 11
NTLM jest podatny na różnorodne ataki relay, co Microsoft zauważył już wcześniej. W maju 2024 r. firma zapowiedziała, że planuje wycofać NTLM w nadchodzących wersjach Windows 11 na rzecz Kerberos, aby wzmocnić zabezpieczenia uwierzytelniania użytkowników. Chociaż większość współczesnych serwerów i klientów RPC jest już zabezpieczona, to od czasu do czasu można natrafić na pozostałości nieprawidłowych implementacji, jak zauważył badacz bezpieczeństwa z Akamai, Stiv Kupchik.
Podsumowanie
Luka w OPA to przypomnienie, jak istotne jest regularne aktualizowanie oprogramowania oraz stosowanie najlepszych praktyk w zakresie bezpieczeństwa. Otwarty kod źródłowy, choć niezwykle użyteczny, niesie ze sobą pewne ryzyko i wymaga stałej uwagi. Dla firm kluczowe jest minimalizowanie ekspozycji publicznej swoich usług, aby chronić swoje systemy przed potencjalnymi zagrożeniami.