Sposób na ominięcie bezpiecznego uwierzytelniania powłoki
Zuchwały kompromis w łańcuchu dostaw, oznaczony jako CVE-2024-3094 (wynik CVSS: 10,0), wyszedł na jaw, gdy inżynier firmy Microsoft i programista PostgreSQL, Andres Freund, zaalarmował o obecności backdoora w narzędziu do kompresji danych, które umożliwia zdalnym atakującym sposób na ominięcie bezpiecznego uwierzytelniania powłoki i uzyskanie pełnego dostępu do zagrożonego systemu.
„Przeprowadzałem wówczas mikrotesty porównawcze, musiałem wyciszyć system, aby zredukować hałas” – powiedział Freund w poście udostępnionym na Mastodon. „Zauważyłem, że procesy sshd zużywały zaskakującą ilość procesora, mimo że natychmiast kończyły się niepowodzeniem z powodu błędnych nazw użytkowników itp.”
„Sprofilowany sshd, pokazujący dużo czasu procesora w liblzmie, z perf nie mogącym przypisać go do symbolu. Nabrałem podejrzeń. Przypomniałem sobie, że kilka tygodni wcześniej, po aktualizacjach pakietów, widziałem dziwną skargę dotyczącą Valgrinda podczas automatycznych testów Postgres. „Naprawdę wymagało to wielu zbiegów okoliczności” – dodał Freund.
XZ Utils to narzędzie wiersza poleceń służące do kompresji i dekompresji danych w systemie Linux i innych systemach operacyjnych typu Unix. Mówi się, że złośliwy kod backdoora został celowo wprowadzony przez jednego z opiekunów projektu o imieniu Jia Tan (znanego również jako Jia Cheong Tan lub JiaT75) w ramach drobiazgowego ataku trwającego wiele lat. Konto użytkownika GitHub zostało utworzone w 2021 roku. Tożsamość aktorów jest obecnie nieznana.
„Podmiot zagrażający zaczął przyczyniać się do projektu XZ prawie dwa lata temu, powoli budując wiarygodność, dopóki nie powierzono mu obowiązków opiekuna” – stwierdził Akamai w raporcie. Uważa się, że w ramach kolejnego aktu sprytnej inżynierii społecznej konta typu sockpuppet, takie jak Jigar Kumar i Dennis Ens, były wykorzystywane do wysyłania próśb o nowe funkcje i zgłaszania różnych problemów w oprogramowaniu, aby zmusić pierwotnego opiekuna – Lasse Collina z projektu Tukaani – aby dodać nowego współopiekuna do repozytorium.
Backdoor wpływa na pakiety tar
Na przykład Jia Tan, który wprowadził serię zmian w XZ Utils w 2023 r., co ostatecznie doprowadziło do wydania wersji 5.6.0 w lutym 2024 r. Zawierały one również wyrafinowany backdoor. „Jak sugerowałem we wcześniejszych e-mailach, Jia Tan może w przyszłości odegrać większą rolę w projekcie” – powiedział Collin w rozmowie z Kumarem w czerwcu 2022 r.
„Dużo pomagał spoza listy i praktycznie jest już współopiekunem. Wiem, że w repozytorium git nie wydarzyło się jeszcze zbyt wiele, ale wszystko dzieje się małymi krokami. W każdym razie pewne zmiany w odpowiedzialności za utrzymanie są już za nami w toku, przynajmniej dla XZ Utils.”
Backdoor wpływa na pakiety tar XZ Utils 5.6.0 i 5.6.1, z których ta ostatnia zawiera ulepszoną wersję tego samego implantu. Od tego czasu Collins przyznał się do naruszenia projektu, stwierdzając, że obie paczki tar zostały utworzone i podpisane przez Jia Tana oraz że miały one dostęp tylko do obecnie wyłączonego repozytorium GitHub.
„Jest to niewątpliwie bardzo złożona operacja sponsorowana przez państwo, charakteryzująca się imponującym wyrafinowaniem i planowaniem wieloletnim” – stwierdziła firma Binarly zajmująca się bezpieczeństwem oprogramowania sprzętowego. „Tak złożone i profesjonalnie zaprojektowane kompleksowe ramy implantacji nie są opracowywane z myślą o jednorazowej operacji”.
Dogłębna analiza backdoora przeprowadzona przez kryptografa open source Filippo Valsordę ujawniła również, że wersje, których dotyczy problem, umożliwiają określonym osobom atakującym zdalnie wysyłanie dowolnych ładunków za pośrednictwem certyfikatu SSH, który zostanie wykonany w sposób omijający protokoły uwierzytelniania, skutecznie przejmując kontrolę nad ofiarą maszyna.
„Wygląda na to, że do demona SSH na podatnej maszynie dodano backdoora, umożliwiając zdalnemu atakującemu wykonanie dowolnego kodu” – powiedział Akamai. „Oznacza to, że każda maszyna z pakietem zawierającym lukę, który udostępnia SSH w Internecie, jest potencjalnie podatna na ataki”.
Backdoor umożliwia posiadanie kluczy
Innymi słowy, backdoor umożliwia zdalnemu atakującemu posiadającemu ustalony z góry klucz prywatny przejęcie demona SSH w celu wykonania złośliwych poleceń.Nie trzeba dodawać, że przypadkowe odkrycie dokonane przez Freunda jest jednym z najważniejszych dotychczas odkrytych ataków na łańcuch dostaw i mogłoby stanowić poważną katastrofę bezpieczeństwa, gdyby pakiet został zintegrowany ze stabilnymi wydaniami dystrybucji Linuksa.
„Najbardziej zauważalną częścią tego ataku na łańcuch dostaw jest ekstremalne zaangażowanie osoby atakującej, która pracowała ponad dwa lata, aby zyskać pozycję legalnego opiekuna, oferowała podjęcie pracy w różnych projektach OSS i zatwierdzała kod w wielu projektach w celu aby uniknąć wykrycia” – powiedział JFrog.
Podobnie jak w przypadku Apache Log4j, incydent po raz kolejny uwypuklił zależność od oprogramowania typu open source i projektów prowadzonych przez wolontariuszy oraz konsekwencje, jakie mogą pociągnąć za sobą kompromis lub poważna luka w zabezpieczeniach.
„Większą «poprawką» jest przyjęcie przez organizacje narzędzi i procesów, które pozwolą im zidentyfikować oznaki manipulacji i złośliwych funkcji zarówno w kodzie open source, jak i komercyjnym używanym w ich własnym procesie rozwoju” – stwierdził ReversingLabs.