PamStealer'ın İki Aşamalı Aldatma Mimarisi
macOS kullanıcısı maccyapp[.]com adresinden bir disk görüntüsü indiriyor ve meşru Maccy pano yöneticisini yüklediğini sanıyor. Dosya açılıp AppleScript çalıştırıldığında, bir JavaScript for Automation (JXA) downloader devreye giriyor. Son aşamada Rust ile yazılmış payload sistem parolasını çalar. Ancak bu hırsızlık gerçekleşmeden önce malware parolanın doğru olup olmadığını macOS'un Pluggable Authentication Modules (PAM) API'si üzerinden yerel olarak kontrol eder—ağ trafiği yaratmadan, curl ya da zsh gibi şüphe uyandıracak komutlar çalıştırmadan.
Bu doğrulama mekanizması PamStealer'ı diğer macOS infostealer'lardan ayırır. AppleInsider'ın raporladığı üzere, çoğu infostealer çalınan kimlik bilgilerini doğrulamadan sunucuya yollar; ancak PamStealer, yanlış parola girişlerinde kullanıcıyı yeniden uyarıp doğru bilgi alana kadar tekrarlar. Doğrulama başarılı olduktan sonra ekrana sahte bir Gatekeeper hatası ("Maccy hasarlı") atarak gerçek amacını gizler.
Maccy Taklidi ile Başlayan Güven Zinciri
The Hacker News'un tespitine göre, PamStealer maccyapp[.]com gibi sahte alan adları üzerinden dağıtılıyor; orijinal proje maccy[.]app adresinde bulunuyor. Disk görüntüsü içinde derlenmiş AppleScript bulunuyor ve bu dosya Script Editor'da açıldığında com.apple.quarantine uyarısını atlatabiliyor.
AppleScript aşaması bir başlatıcı olarak görev alır: sistem parmak izi alır, Apple Silicon kontrolü yapar ve Intel Mac'lerde çözümlenemeyen şifreli payload'ı reddeder. The Hacker News'e göre, malware Doğu Avrupa saat dilimlerine ve yerel ayarlara sahip sistemlerde çalışmayı reddediyor—Rusya, Belarus ve diğer bazı ülkeler açıkça hariç tutuluyor.
AppleScript ilk aşamayı tamamladıktan sonra JXA downloader devreye giriyor. JXA macOS'ta JavaScript ile yerel Objective-C API'lerini çağırma yeteneği sunuyor ve PamStealer curl gibi shell komutları yerine doğrudan sistem çağrıları kullanarak ikinci aşama payload'ını indiriyor. Ars Technica'nın detaylandırdığı gibi, bu teknik normal süreç zincirlerini bozmadan veri alışverişi sağlıyor ve tipik algılama araçlarının dikkatini çekmiyor.
PAM API ile Yerel Parola Doğrulaması
Pluggable Authentication Modules (PAM) UNIX ve macOS sistemlerinde kullanıcı kimlik doğrulaması için kullanılan standart bir arayüz. Jamf Threat Labs bu API'nin PamStealer tarafından parolaları uzak bir sunucuya göndermeden önce yerel olarak doğrulanması için kullanıldığını buldu.
Bu yaklaşım malware'in ağ trafiğini azaltarak güvenlik yazılımları ve izleme araçlarının dikkatinden kaçmasını sağlıyor. Normalde bir infostealer çalınan parolayı komuta-kontrol (C2) sunucusuna yollar ve sunucu tarafında doğrulama yapar; bu yöntem ağ bağlantısı, DNS sorgusu ve HTTP trafiği gibi tespit edilebilir işaretler bırakır. PamStealer yerel doğrulama yaparak bu riski ortadan kaldırıyor.
AppleInsider'ın belirttiği üzere, doğrulama başarısız olduğunda malware kullanıcıya tekrar prompt gösterebiliyor. Kullanıcı yanlışlıkla hatalı parola girmiş olabileceğini düşünerek doğru bilgiyi ikinci denemede veriyor.
Rust ile Tersine Mühendislik Engeli
İkinci aşama payload Rust ile yazılmış. Ars Technica'nın kaydettiği gibi, Rust derleyicisi dizgeleri ve kod yollarını yalnızca çalışma zamanında çözümler; derlenmiş binary'nin statik analizi Swift veya Objective-C ile yazılmış malware'e göre çok daha zordur.
Araştırmacılar normalde sabit dizgeleri arayarak C2 sunucu adreslerini, hedeflenen dosya yollarını veya şifreleme anahtarlarını bulabilir; ancak Rust'ta bu bilgiler çalışma zamanında dinamik olarak oluşturuluyorsa statik araçlar göremez. Bu teknik tespit sürelerini uzatır ve otomatik güvenlik çözümlerinin imzası çıkarılmasını geciktirir.
Sistem Bileşeni Taklitleri ve 40 Dakikalık Gecikme
PamStealer kendisini Finder ya da Software Update olarak tanıtıp Full Disk Access izni istiyor. Full Disk Access macOS'ta hassas dizinlere erişim için kullanıcının açık izni gerektiren bir güvenlik mekanizmasıdır. Meşru uygulamalar—yedekleme araçları veya dosya yöneticileri—bu izni gerçekten ihtiyaç duyar. Ancak PamStealer bu izni aldığında tarayıcı çerezlerine, kayıtlı şifrelere, iCloud Keychain içeriğine ve Ethereum cüzdan verilerine erişim kazanır.
Malware izin istemini 40 dakikaya kadar geciktirebiliyor. Bu gecikme malware'in yüklenmesinden hemen sonra sistem uyarısı çıkmasını engelliyor. Kullanıcı uygulama zaten bir süredir sistemde çalıştıktan sonra izin isteği aldığında bunu normal bir sistem işlemi olarak algılayabiliyor.
Doğrulama başarılı olduktan sonra malware sahte bir Gatekeeper hatası gösteriyor: "Maccy hasarlı, açılamıyor." Bu mesaj kullanıcıyı uygulamanın çalışmadığını düşündürürken malware arka planda veri toplamaya devam ediyor.
Hedeflenen Veriler ve Kalıcılık Mekanizmaları
PamStealer'ın veri toplama kapsamı iCloud Keychain, tarayıcı veritabanları (çerezler, geçmiş, kayıtlı kimlik bilgileri), SQLite veritabanları, pano içeriği ve kripto para cüzdanlarıdır. Full Disk Access izni verildiğinde bu verilerin neredeyse tamamına erişim mümkün hale geliyor.
Malware hem modern hem de eski macOS oturum açma öğesi mekanizmalarını kullanarak kalıcılık sağlıyor. Bu sayede kullanıcı yeniden başlatsa bile payload tekrar çalıştırılabiliyor.
Ethereum erişim kodunun varlığı PamStealer'ın hedeflerinin yalnızca genel web hesapları olmadığını gösteriyor. Kripto para cüzdanlarına erişim doğrudan finansal kayıp ve özel anahtar hırsızlığı anlamına gelir; bu veriler kurtarılamaz.
Riskli Kullanıcı Grupları
Risk altında olan gruplar şunlardır:
- Maccy gibi popüler açık kaynak araçları resmi olmayan kaynaklardan indiren macOS kullanıcıları. Maccy'nin meşru kaynağı maccy[.]app; ancak maccyapp[.]com gibi benzer alan adları kullanıcıları kandırabiliyor. - Apple Silicon Mac kullanıcıları. The Hacker News'e göre, malware Intel Mac'lerde şifreli payload'ı çözemez ve yalnızca Apple Silicon sistemlerde çalışıyor. - İş bilgisayarlarında kişisel yazılım indiren çalışanlar. Full Disk Access izni verildiğinde malware iş hesapları, bulut hizmet oturum çerezleri ve kurumsal e-posta hesaplarına erişim kazanabiliyor. - Kripto para cüzdanı kullanan macOS kullanıcıları. Ethereum erişim modülü bu kullanıcıların doğrudan hedef alındığını gösteriyor.
The Hacker News'e göre, PamStealer'ın Doğu Avrupa bölgesinden gelen IP adreslerini hariç tutması, saldırıların belirli bölgelere odaklandığını ve muhtemelen Rusya/Belarus kökenli bir operasyonun işaret etmektedir.
Gatekeeper ve Diğer Standart Korumaların Neden Yetmediği
macOS Gatekeeper notarize edilmemiş uygulamaları varsayılan olarak engelliyor. Ancak AppleScript Script Editor'da açıldığında com.apple.quarantine bayrağı atlanabiliyor ve kullanıcı doğrudan kodu görmeden payload yürütebiliyor.
JXA downloader aşaması shell komutları yerine yerel Objective-C API'lerini kullandığı için process monitor araçları tipik curl/wget aktivitesini göremez. PAM API doğrulaması ağ trafiği yaratmadığı için güvenlik yazılımları parola hırsızlığını gerçek zamanlı olarak tespit edemez.
Sahte Gatekeeper hatası ve Finder/Software Update taklidi kullanıcının güvenini kazanarak Full Disk Access iznini vermesini sağlıyor.