
Co znajdziesz w tym artykule?
Wprowadzenie do problemu / definicja
PamStealer to nowy infostealer wymierzony w użytkowników macOS, który łączy socjotechnikę, natywne mechanizmy systemowe oraz wieloetapowy łańcuch infekcji do kradzieży poświadczeń i danych wrażliwych. Na szczególną uwagę zasługuje wykorzystanie fałszywych stron podszywających się pod aplikację Maccy oraz lokalna walidacja hasła ofiary przy użyciu mechanizmu PAM, co zwiększa skuteczność przejęcia danych logowania.
W skrócie
- PamStealer jest dystrybuowany przez strony imitujące legalne źródło pobierania aplikacji Maccy.
- Pierwszy etap infekcji wykorzystuje skompilowany AppleScript dostarczany w obrazie dysku.
- Drugi etap to binarium Mach-O napisane w Rust, odpowiedzialne za kradzież haseł, danych przeglądarek, schowka i elementów związanych z kryptowalutami.
- Malware wyświetla natywne okno żądające hasła systemowego i sprawdza je lokalnie przez PAM, ponawiając prośbę do momentu uzyskania poprawnych danych.
- Próbka profiluje środowisko, ogranicza wykonanie do urządzeń Apple Silicon i omija wybrane środowiska analityczne oraz ustawienia regionalne.
Kontekst / historia
macOS od lat pozostaje atrakcyjnym celem dla operatorów infostealerów, zwłaszcza w kampaniach nastawionych na przejęcie poświadczeń, danych przeglądarek i zasobów kryptowalutowych. Wraz ze wzrostem zabezpieczeń platformy, takich jak Gatekeeper czy mechanizmy kontroli uruchamiania niepodpisanych komponentów, twórcy malware coraz częściej sięgają po techniki, które wyglądają bardziej wiarygodnie z perspektywy użytkownika.
W tej kampanii napastnicy wykorzystali rozpoznawalność narzędzia Maccy, popularnego menedżera schowka dla macOS. Przygotowane domeny typu lookalike wizualnie naśladują legalne źródło aplikacji, co wpisuje się w szerszy trend podszywania się pod znane oprogramowanie w celu skłonienia ofiary do samodzielnego uruchomienia złośliwego pliku.
Analiza techniczna
Łańcuch infekcji rozpoczyna się od pobrania obrazu dysku zawierającego plik AppleScript w formacie .scpt, który udaje instalator lub komponent aplikacji Maccy. Złośliwy skrypt został przygotowany tak, aby po otwarciu w Script Editor skłonić użytkownika do ręcznego uruchomienia go przyciskiem Run lub skrótem klawiaturowym. Dodatkowo szkodliwa logika ma być ukryta pod dużym blokiem pustych linii, co utrudnia szybkie zauważenie niebezpiecznego kodu.
Pierwszy etap zawiera downloader oparty na JavaScript for Automation, korzystający z natywnych interfejsów Objective-C do pobrania kolejnego komponentu. Takie podejście pomaga ograniczyć klasyczne sygnały wykrywania związane z wykorzystaniem bardziej oczywistych narzędzi systemowych. Skrypt analizuje też środowisko ofiary, biorąc pod uwagę m.in. architekturę procesora, ustawienia regionalne, układ klawiatury i strefę czasową. Na tej podstawie wyprowadzany jest klucz potrzebny do odszyfrowania konfiguracji z adresem pobrania ładunku i ścieżką instalacji.
Mechanizm ten pełni równocześnie funkcję selekcji ofiar. Na komputerach Intel odszyfrowanie konfiguracji ma kończyć się niepowodzeniem, przez co infekcja nie jest kontynuowana. Malware ma również omijać środowiska sandboxowe i analityczne oraz wybrane ustawienia regionalne, co sugeruje świadome ograniczanie ekspozycji kampanii i redukcję ryzyka szybkiej analizy.
Po pozytywnej weryfikacji środowiska downloader pobiera drugi etap w postaci binarium Mach-O napisanego w Rust. Komponent podszywa się pod Finder i odpowiada za właściwą kradzież danych. Zakres zbieranych informacji obejmuje dane przeglądarek, rozszerzenia portfeli kryptowalutowych, zawartość schowka oraz elementy powiązane z iCloud Keychain. Zgromadzone dane są następnie szyfrowane i przesyłane do infrastruktury kontrolowanej przez operatorów kampanii.
Najbardziej charakterystycznym elementem technicznym jest obsługa hasła systemowego użytkownika. PamStealer wyświetla natywne okno dialogowe z prośbą o podanie hasła, a następnie wykorzystuje interfejs PAM do jego lokalnej walidacji. Jeśli hasło jest błędne, malware ponawia żądanie aż do uzyskania poprawnych poświadczeń. Dzięki temu napastnicy otrzymują od razu zweryfikowane dane logowania, co znacząco zwiększa wartość przechwyconych informacji. Po zdobyciu poprawnego hasła ofiara widzi fałszywy komunikat sugerujący, że aplikacja jest uszkodzona i powinna zostać przeniesiona do kosza.
Dodatkowo próbka zawiera komponent odpowiedzialny za persystencję. Według opisu jest to niewielki plik Mach-O dla architektury arm64, podszywający się pod ustawienia systemowe. Oznacza to, że incydent może nie kończyć się na jednorazowej kradzieży danych, lecz umożliwiać dalszy dostęp do urządzenia i kolejne działania po stronie atakujących.
Konsekwencje / ryzyko
Zagrożenie związane z PamStealer jest istotne z kilku powodów. Po pierwsze, malware uderza w użytkowników macOS, którzy często wciąż postrzegają tę platformę jako mniej narażoną na klasyczne kampanie infostealerowe. Po drugie, lokalna walidacja haseł przez PAM podnosi skuteczność ataku i eliminuje problem błędnie wprowadzonych poświadczeń. Po trzecie, kradzież danych z przeglądarek, schowka i rozszerzeń kryptowalutowych może prowadzić zarówno do przejęcia kont, jak i do bezpośrednich strat finansowych.
W środowiskach firmowych ryzyko wykracza poza pojedynczy endpoint. Jeśli użytkownik stosuje to samo hasło lokalnie i w innych usługach, kompromitacja może otworzyć drogę do eskalacji uprawnień, przejęcia sesji, dostępu do zasobów chmurowych lub ruchu lateralnego. W przypadku administratorów, deweloperów i osób przechowujących sekrety w przeglądarce lub schowku skala wpływu może być znacznie większa niż przy standardowej kradzieży danych osobowych.
Rekomendacje
Podstawową zasadą obrony pozostaje pobieranie aplikacji wyłącznie z oficjalnych stron producentów, zaufanych repozytoriów lub kanałów zarządzanych centralnie przez dział IT. W przypadku popularnych narzędzi warto dodatkowo weryfikować domenę, podpis kodu oraz sumy kontrolne, jeśli są udostępniane.
W środowiskach korporacyjnych zalecane jest wdrożenie mechanizmów kontroli uruchamiania skryptów i binariów, monitorowania procesów Script Editor, AppleScript oraz JXA, a także analizy nietypowych połączeń wychodzących z hostów macOS. Szczególną uwagę należy zwracać na nowe pliki Mach-O uruchamiane z lokalizacji użytkownika, nietypowe pobrania drugiego etapu oraz próby dostępu do danych przeglądarek, schowka i zasobów keychain.
- Weryfikować autentyczność domen i źródeł pobierania aplikacji.
- Monitorować uruchamianie AppleScript, JXA i nietypowych binariów Mach-O.
- Wykrywać procesy podszywające się pod Finder lub ustawienia systemowe.
- Szkoleniowo uczulać użytkowników na strony lookalike i nieoczekiwane prośby o hasło.
- W razie podejrzenia infekcji odłączyć host od sieci, zmienić hasła i przeprowadzić audyt przeglądarek, keychain oraz mechanizmów persystencji.
Użytkownicy końcowi nie powinni automatycznie ufać natywnym oknom z prośbą o hasło tylko dlatego, że przypominają systemowy komunikat. Każde nieoczekiwane żądanie podania hasła po uruchomieniu pobranego pliku należy traktować jako potencjalny incydent bezpieczeństwa.
Podsumowanie
PamStealer pokazuje, że kampanie malware na macOS stają się coraz dojrzalsze i bardziej precyzyjne. Połączenie fałszywych stron dystrybucyjnych, profilowania środowiska, komponentów napisanych w Rust oraz lokalnej walidacji hasła przez PAM tworzy skuteczny i trudniejszy do wykrycia mechanizm przejęcia poświadczeń.
Dla zespołów bezpieczeństwa kluczowy wniosek jest jasny: obrona przed nowoczesnymi infostealerami na macOS nie może opierać się wyłącznie na reputacji plików i klasycznych sygnaturach. Konieczne jest łączenie kontroli źródeł oprogramowania, telemetrii behawioralnej, monitorowania natywnych mechanizmów systemowych oraz regularnej edukacji użytkowników.
Źródła
- PamStealer Uses Fake Maccy Sites and PAM Checks to Steal Mac Login Passwords — https://thehackernews.com/2026/07/pamstealer-uses-fake-maccy-sites-and.html
- Maccy — oficjalna strona projektu — https://maccy.app/
- Pluggable Authentication Modules for macOS — https://developer.apple.com/library/archive/documentation/Security/Conceptual/pam/Introduction/Introduction.html