· kaynak dev.to (home feed)
LinkedIn iş teklifi, Contagious Interview kötü amaçlı yazılımını bir Git hook içinde saklıyordu
Bir geliştiricinin birinci ağızdan anlattığı deneyim, sahte bir LinkedIn işe alım uzmanının gönderdiği dokümantasyon arşivinin, Kuzey Kore bağlantılı Contagious Interview kampanyasıyla örtüşen kötü amaçlı bir Git post-checkout hook'u taşıdığını ortaya koyuyor.

Arşiv olarak gelen bir iş teklifi
dev.to'da yazan bir geliştirici, LinkedIn üzerinden yapılan sahte bir işe alım girişimine dair birinci ağızdan bir anlatı yayımladı: görünüşte bir işe alım uzmanı tarafından gönderilen 'dokümantasyon paketi', bir branch checkout edildiği anda otomatik olarak çalışacak şekilde tasarlanmış kötü amaçlı bir Git hook saklıyordu. Bu teslimat yöntemi, güvenlik araştırmacılarının Contagious Interview adını verdiği kampanyayla örtüşüyor.
Vaat edilenler
Anlatıya göre bir işe alım uzmanı, geliştiriciye, müşletisi sözde hâlihazırda geliştirilmekte olan bir blok zinciri basketbol oyununun web sitesini kurma konusunda mesaj attı; kayıt, para yatırma ve indirme sayfalarını kapsayan bir işti. Destekleyici materyaller profesyonel görünüyordu: durum etiketleri içeren bir README, önerilen bir okuma sırası, bir MVP kapsamı ve kabul kriterleri. Süreç, başka her şey paylaşılmadan önce bir NDA imzalanmasını istiyordu. Ve işe alım uzmanı bir GitHub bağlantısı yerine, tam bir .git klasörü içeren sıkıştırılmış bir arşiv gönderdi.
Hook ne yapıyor
Yazar, arşivi açmadan inceledi; tar'ın dosyaları listeleme ve tek tek ekrana yazdırma yeteneklerini kullandı — bu işlemler hiçbir şey çalıştırmaz. .git/hooks içinde, tüm kullanıcılar tarafından çalıştırılabilir olarak işaretlenmiş bir post-checkout scripti duruyordu. Git, bir git checkout veya git switch işleminin ardından post-checkout hook'unu kendi kendine çalıştırır.
Dosya, tarayıcı eklentisi geçmişi güncellemelerini tespit etmek için yalnızca son commit mesajlarını incelediğini iddia eden, grep tabanlı desen eşleştirmesiyle tamamlanmış düzgün bir yorum satırıyla başlıyordu. Yazarın açıkladığına göre bu mantık bir yanıltma: desenler eşleşmediğinde script yine de eşleşme bayrağını ayarlıyor ve dosyanın ilerleyen kısımlarında bu bayrağı okuyan hiçbir şey yok. Asıl iş bundan sonra geliyor. Script işletim sistemini tespit ediyor, Vercel'de barındırılan bir uç noktadan macOS, Linux veya Windows için hazırlanmış bir scripti indiriyor, onu çalıştırılabilir yapıyor, tüm çıktıyı atarak arka planda çalıştırıyor ve checkout işleminin normal görünmesi için temiz bir şekilde çıkıyor.
Yazar bilinçli olarak bu ikinci aşamayı indirmedi, dolayısıyla bu özel örnekteki davranışı bilinmiyor. Yazarın atıf yaptığı yayımlanmış raporlarda, takip eden payload kimlik bilgilerini ve tarayıcı verilerini sızdırıyor, kripto para cüzdanlarını hedefliyor ve bir arka kapı kuruyor.
Neden arşiv, neden bir NDA branch'i
Saldırıyı taşıyan iki tasarım tercihi var. Birincisi, git clone asla hook'ları kopyalamaz — klonlanan bir depo yalnızca Git'in zararsız örnek dosyalarını alır — dolayısıyla bir hook normal bir GitHub bağlantısıyla kurbanına ulaşamaz; ama birinin .git klasörünün arşivi ulaşabilir. İkincisi, hook'unun bir tetikleyiciye ihtiyacı vardı ve bu da düzenlenmişti: README, alıcıya önce NDA'yı halletmesini söylüyordu ve depoda NDA adında bir branch vardı. Bu branch'i checkout etmek — ister terminalden ister VS Code ya da GitHub Desktop'ta tek tıkla — hook'u çalıştıracaktı. Kurbandan hiçbir şey çalıştırması istenmeyecekti.
Bilinen bir kampanya
Araştırmacılar Contagious Interview'ı Kuzey Koreli operatörlere atfediyor ve sahte işe alım uzmanları ile bir aday sıradan bir şey yaptığında — bağımlılıkları kurma, bir proje klasörünü editörde açma ya da Git kullanma — kod çalıştıran 'değerlendirme'ler yoluyla, özellikle kripto, fintech ve web3 alanlarındaki geliştiricileri hedeflediğini belirtiyor. Yazar, grubun yükleyicisini aynı yapıyla Git hook'larında sakladığını anlatan OpenSourceMalware'in Mayıs ayındaki bir raporuna atıf yapıyor: işletim sistemini tespit et, bir Vercel uygulamasından platforma özel bir script çek, çıktıyı bastır, sıfır koduyla çık.
Yazar, bu örneğin teslimat açısından farklılaştığını belirtiyor. Rapordaki örnek, etkinleşmesi için bir kurulum adımı gerektiren bir .githooks/pre-commit dosyasıydı; bu hook ise .git/hooks içine önceden yüklenmiş halde geldi ve bir checkout'ı bekledi. Yazar kesin bir atıfta bulunmuyor: arşivi kimin gönderdiğini kanıtlayamıyor, yalnızca kullanılan taktiklerin örtüştüğünü söyleyebiliyor. İşe alım uzmanına bir dokümantasyon deposunun script indiren ve çalıştıran bir hook'a neden ihtiyaç duyduğunu sorduklarında hiçbir yanıt gelmedi.
Dosyaları açmadan önce kontrol etmek
Yazar, kırmızı bayrakları ortaya çıktıkları sırayla listeliyor: belirsiz bir rol tanımıyla gelen web3 veya blok zinciri projesi; hiçbir görüşme yapılmadan gönderilen dosyalar, özellikle de bir depo bağlantısı yerine arşiv; doküman paketi olduğu iddia edilen bir şeyin içindeki .git klasörü; bir insanla konuşmadan dosyalara dokunmayı gerektiren herhangi bir adım; ve doğrulanması zor bir hesap ya da şirket. Bunların hiçbiri tek başına kanıt değil ama iki üç tanesi bir araya gelirse yavaşlamak gerekiyor.
Yazar bu kontrolleri macOS, Windows ve Linux için ücretsiz bir masaüstü uygulaması olan LookFirst'a da paketledi. Uygulama zip, tar ve 7z arşivlerini açmadan ve hiçbir şey çalıştırmadan yerinde okuyor, Git'i devreye sokmadan her branch'i ve tag'i inceliyor ve içindeki herhangi bir şeyin kendi kendine çalışıp çalışmayacağını sade bir dille raporluyor. Anlatılan arşivde hook'u hemen işaretledi. Ayrıca PolinRider ve Shai-Hulud npm solucanı gibi yakın tarihli iki saldırıyı da dosyalarına, işaretleyicilerine ve enfekte lockfile sürümlerine göre tanıyor.
Neden önemli
Bu saldırı hiçbir yazılım açığına ihtiyaç duymuyor. Tetikleyici sıradan bir geliştirici davranışı — branch değiştirmek — ve yem, istenmeyen işe alım mesajlarının olumlu karşılandığı sıkı bir iş piyasasının baskısından yararlanıyor. 'Yabancılardan gelen scriptleri çalıştırma' gibi standart tavsiyeler burada işe yaramıyor, çünkü kurban farkında olarak hiçbir şey çalıştırmıyor ve NDA çerçevesi dosyaları keşfetmek için makul bir gerekçe sunuyor. Önlem ucuz ve somut: arşivleri açmadan önce inceleyin ve bir işe alım uzmanının dokümantasyon paketinin içindeki .git klasörünü, aslı olduğu gibi bir alarm zili olarak görün.
- #security
- #malware
- #git
- #social-engineering
İlgili yazılar
- Acronis, tek bir Tayvanlı operatörün yönettiği on iki ajanlı BOSSAI yapay zeka saldırı ağını ayrıntılarıyla anlattı
- Windows 11'in Win32 uygulama izolasyonunu tek seferlik bir anahtar değil, yetenek bütçesi olarak görün
- Prompt injection, loglar, uyarılar, PR'lar ve MCP araçları üzerinden operasyon yapay zekâ ajanlarına ulaşıyor