“Bulaşıcı Röportaj” olarak adlandırılan yeni belgelenmiş bir kampanya, Kuzey Koreli tehdit aktörlerinin geliştirici araçlarını ve kod deposu iş akışlarını kullanarak kimlik bilgilerini ve kripto para cüzdanlarını çalmak ve kurbanlar kendilerine gönderilen kodu hiç “çalıştırmasa” bile uzaktan erişim sağlamak için silah kullandığını gösteriyor.
SEAL tarafından analiz edilen yakın tarihli bir vakada, kötü amaçlı bir Bitbucket deposu (hxxps://bitbucket)[.]org/0xmvptechlab/ctrading), LinkedIn aracılığıyla bir geliştiriciye evde yapılabilecek teknik değerlendirme olarak teslim edildi.
Yalnızca geçtiğimiz ay boyunca üç ayrı kurban, önemli mali kayıplar yaşadıktan sonra SEAL ile temasa geçti ve bunların hepsi neredeyse aynı sosyal mühendislik senaryosunu ve teknik ayak izini takip etti.
Kampanyanın temelinde, Node.js katmanını (BeaverTail) ve Python katmanını (InvisibleFerret varyantı) birleştiren “çift yığınlı” kötü amaçlı yazılım mimarisi yer alıyor.
Güvenlik araştırmacılarına ve şirket mühendislerine “kod incelemesi” veya “ortaklık” talepleri olarak benzer yemlerin gönderildiği, büyük takipçi sayılarına sahip, tehlikeye atılmış veya uydurma işe alım personelinin kullanıldığı kaydedildi.
“Bulaşıcı Mülakat” operasyonu kapsamında
Node.js bileşeni bulaşma anında hemen çalıştırılır, kimlik bilgileri çalınır, tuş vuruşları günlüğe kaydedilir, LevelDB tarayıcısı ve cüzdan verileri yağmalanır ve kurbanın ~/.npm dizini altında gizli bir RAT döndürülür.
Birden fazla modülü bırakır veya kullanır: 172.86.116.178’e sızan bir keylogger ve ekran görüntüsü oluşturucu, geliştirici sırlarına (.env, .ssh, cüzdan ve yapılandırma yolları) odaklanan bir dosya yakalayıcı, kripto adresleri için bir pano kırpıcı, bir tarayıcı kimlik bilgisi hırsızı ve tam soket tabanlı bir uzak kabuk.
Gizlenmiş bir “.nlp” betiği aracılığıyla hazırlanan Python katmanı, ~/.n2 ve ~/.n3 altında paralel bir gözetim yığını oluşturur.
Birincil modül, way.py, bir RAT ve cüzdan hırsızı gibi davranarak Chrome/Brave’i öldürerek LevelDB’deki kilitleri serbest bırakır, böylece Node.js tarafı aktif cüzdan veritabanlarını gizli bir hazırlama klasörüne kopyalayabilir.
İkinci modül olan pow.py, Başlangıç klasörü komut dosyalarını kötüye kullanan Windows üzerinde madencilik ve kalıcılığa, bir “Çalışma Zamanı Aracısı” zamanlanmış görevine ve bir XMRig madencisini (msedge.exe kılığına girerek) yeniden başlatmalarda canlı tutmak için Windows Defender dışlama kurallarına odaklanır.
Linux ve macOS’ta pow.py, Windows’a özel içe aktarmalar nedeniyle erken başarısız oluyor ve otomatik kalıcılığı sınırlıyor ancak ilk hırsızlığı sınırlamıyor.
İlk erişim, geleneksel istismarlardan ziyade sıkı bir şekilde entegre edilmiş “kod kötüye kullanımı” yoluyla sağlanır. Ctrading projesi, kötü amaçlı yazılımları üç vektör aracılığıyla yerleştiriyor ve bunlardan ikisi aktif olarak kullanılıyor: VS Code Task Hijack ve uygulama mantığı kancası.
“Eslint-check” etiketli gizli bir .vscode/tasks.json girişi runOn: FolderOpen olarak ayarlanmıştır ve doğrudan yazı tipi dosyası (public/font/fa-brands-regular.woff2) olarak gizlenmiş bir JavaScript verisine işaret eder.
İş görüşmeleri kötü amaçlı yazılım tuzaklarına dönüşüyor
Otomatik görevlerden kaçınan hedefler için, bir yedekleme tetikleyicisi, getPassport işlevinin yazım hatası yapılmış bir alanla (chainlink-api-v3) iletişim kurduğu sunucu/routes/api/profile.js dosyasında bulunur.[.]com) ve hata gövdesini dinamik bir yeni Function() yapıcısına aktarır.
Üçüncü bir vektör, gizlenmiş JavaScript’i yürütmek için child_process’i kötüye kullanan bir npm bağımlılığı (grayavatar), daha önceki kampanyalardan kalma bir eser gibi görünüyor ve analiz sırasında npm’den kaldırılmıştı.
SEAL’in dosya sistemi eserleri, süreç listeleri ve kilit dosyaları üzerinde yaptığı adli inceleme, kötü amaçlı yazılımın, özellikle Windows dışı platformlarda uzun vadeli istikrarlı kalıcılığa kıyasla tek seferlik veri, kimlik bilgileri ve cüzdan içeriği hırsızlığına büyük önem verdiğini gösteriyor.
Linux ve macOS’ta, yürütme öncelikle -e düğümü aracılığıyla bellekte ve ~/.n2 altındaki Python işlemleriyle, ~/.npm/vhost.ctl ve npm-compiler.log gibi kilit dosyalarıyla koordine edilir.
Bununla birlikte, her kurbanın ortamı aynı Tehlike Göstergelerini içeriyordu ve ctrading deposu için taahhüt meta verileri tutarlı bir şekilde Kore Standart Saati (UTC+9) yapılandırmasına işaret ediyordu.
Kuzey Kore operatörlerine yapılan atıflar yüksek güvenle değerlendirilmektedir. LinkedIn kişiliği “John Meltzer” ve “Meta2140” projesi, daha önce sahte “Ultra-X” projesinde görülen altyapı ve kimliklerle örtüşen veri havuzu taahhüt yazarı “Pietro” (github.com/pietroETH, birden fazla e-posta takma adıyla bağlantılı) ile tamamen Kuzey Koreli BT çalışanları tarafından kontrol ediliyor gibi görünüyor.
Altyapının yeniden kullanımı, saat dilimi eserleri ve sosyal mühendislik taktik kitabıyla birlikte SEAL, bu kümeyi en az 2024’ün başlarına kadar uzanan bilinen Kuzey Kore BT faaliyetlerine bağlar.
Geliştiriciler ve güvenlik ekipleri için bu durum, bir depoyu klonlamanın ve VS Code “Güvenilir Çalışma Alanı”nı etkinleştirmenin, IDE görevlerinde ve uygulama hata işleyicilerinde gizli kod yürütme zincirlerini tetiklemek için manuel npm başlatmaya gerek kalmadan yeterli olabileceğinin kesin bir hatırlatıcısıdır.
Sıkı VS Code çalışma alanı güven kontrollerini uygulamak, otomatik görevleri devre dışı bırakmak ve ~/.n2, ~/.n3, ~/.nlp ve anormal ~/.npm içerikleri gibi gizli yapıları düzenli olarak taramak artık profesyonel bir bağlamda istenmeyen kodla ilgilenen herkes için temel hijyendir.
IOC’ler
| URL / IP | Yol | Liman | Aşama / Fonksiyon |
|---|---|---|---|
| Chainlink-api-v3.com | /api/hizmet/belirteç/… | 80 | Aşama 1 ve 5: JS yükünü Hata 404 aracılığıyla sunar |
| 146.70.253.107 | /istemci/5346/1014 | 1224 | Aşama 2: Python Stager’ı (.nlp) indirme |
| 146.70.253.107 | /yük/5346/1014 | 1224 | Aşama 3: RAT’ı indirir (yol) |
| 146.70.253.107 | /kaş/5346/1014 | 1224 | Aşama 3: Madenciyi İndirir (pow) |
| 146.70.253.107 | /anahtarlar | 2242 | RAT: Veri sızdırma ve Komut kanalı |
| 172.86.116.178 | /api/hizmet/süreç | 5918 | Düğüm RAT: vhost.ctl iletişimi |
| 172.86.116.178 | /yüklemek | 5978 | Süzme: Ekran görüntüsü/Pano yükleme |
Anında Güncellemeler Almak ve GBH’yi Google’da Tercih Edilen Kaynak Olarak Ayarlamak için bizi Google Haberler, LinkedIn ve X’te takip edin.