GhostAction tehdidinin arkasındaki aktörler, güvenliği ihlal edilmiş GitHub depolarına sahte yazı tipi dosyası içinde gizlenmiş bir bilgi hırsızı yerleştirdi; 94 depoda ikinci aşama bileşen tespit edildi.
Siber Güvenlik
Admin7 okunma

GhostAction Saldırganları 94 GitHub Deposuna Yazı Tipi Kılığında Kimlik Bilgisi Hırsızı Yerleştirdi

GhostAction tehdidinin arkasındaki aktörler, güvenliği ihlal edilmiş GitHub depolarına sahte yazı tipi dosyası içinde gizlenmiş bir bilgi hırsızı yerleştirdi; 94 depoda ikinci aşama bileşen tespit edildi.

GhostAction Saldırganları 94 GitHub Deposuna Yazı Tipi Kılığında Kimlik Bilgisi Hırsızı Yerleştirdi

Haber detayı

Açık kaynak geliştirici topluluğunu hedef alan GhostAction tedarik zinciri saldırısı yeni bir evreye girdi. OpenSourceMalware'in paylaştığı tehdit istihbaratı bulgularına göre, saldırganlar artık yalnızca kötü amaçlı GitHub Actions iş akışları enjekte etmekle yetinmiyor; GitHub temalı kimlik avı e-postaları gönderiyor ve VS Code üzerinden tetiklenen, sahte bir yazı tipi dosyasına gizlenmiş bir bilgi hırsızı dağıtıyor. Kampanyanın ikinci aşama bileşeni, 94 farklı depoda tespit edildi.

Sahte Alan Adı ve Kimlik Avı Altyapısı​

Tehdit aktörü, my-github[.]com alan adını 9 Ekim 2026'da kaydettirdi ve bu adresi kötü amaçlı iş akışından toplanan verilerin sızdırıldığı 193.32.204[.]199 IP adresiyle ilişkilendirdi. Aynı alan adı, kayıt tarihinin hemen ardından bir kimlik avı e-postasında kullanıldı. noreply@my-github[.]com adresinden gönderilen mesaj, bir açık kaynak proje yöneticisini Moskova, Rusya'dan yapılan şüpheli bir oturum açma girişimi konusunda uyarıyor ve hesabını güvenceye alması için bir bağlantıya tıklamasını istiyordu.
Güvenlik araştırmacısı Paul McCarty, my-gitlab[.]com alan adının da benzer bir adlandırma kalıbı taşıdığını belirtirken, mevcut altyapının bu iki alan adını doğrudan birbirine bağlamadığını vurguladı. McCarty'ye göre iki alan adı farklı kayıt kuruluşları, farklı IP adresleri, farklı Cloudflare ad sunucusu çiftleri ve farklı DNS tasarımları kullanıyor; ortak bir sertifika ya da hesap artefaktı da ele geçirilemedi.

Ters Proxy ve OAuth Yetkilendirme Hilesi​

Kimlik avı sayfası, bir ters proxy işlevi görerek kurbanın parolasını ve iki faktörlü kimlik doğrulama (2FA) kodunu topladı. Sayfaya yerleştirilen JavaScript kodu, kurbanın iş akışlarını değiştirmeye yetecek izinlere sahip bir OAuth uygulamasını sessiz seçimde yetkilendirdi. Söz konusu kod, repo, workflow ve read:org kapsamlarını kapsayan bir GitHub OAuth cihaz akışını otomatik olarak tamamladı; bu sayede depolar üzerinde okuma/yazma, Actions iş akışı dosyalarını değiştirme ve kuruluş üyeliğini görüntüleme yetkileri elde edildi.
McCarty'nin aktardığına göre betik, bir cihaz kodu ve kullanıcı kodu alıyor, ardından GitHub'ın formlarını döndürülen HTML'den çıkararak otomatik olarak dolduruyor ve kurbandan herhangi bir eylem gerektirmeksizin onay adımını tamamlıyor. Elde edilen depo kapsamlı OAuth belirteci, saldırgana yeniden kullanılabilir bir API kimlik bilgisi sunuyor ve bu belirteç TCP/8443 üzerinden my-github[.]com'a sızdırılıyor.

VS Code Üzerinden Tetiklenen İkinci Aşama Hırsız​

Kampanyanın en dikkat çekici boyutu, kötü amaçlı iş akışı kaldırıldıktan sonra bile geliştirici makinelerinde kalıcılık sağlayan ikinci aşama bileşenidir. Bu bileşen üç farklı dosyadan oluşuyor. İlk dosya, klasör VS Code'da açıldığında otomatik çalışan runOn: folderOpen tetikleyicisine sahip bir tasks.json dosyası. İkinci dosya, public/fonts/fa-solid-400.woff2 adıyla gizlenmiş sahte bir yazı tipi; içinde AWS anahtarları, PyPI ve npm token'ları, Git oturum bilgileri, Kubernetes küme kimlik bilgileri, SSH özel anahtarları ile Anthropic Claude ve Google Gemini gibi yapay zeka sağlayıcılarına ait kimlik bilgilerini toplayan bir hırsız yükü bulunuyor. Bu yazı tipi dosyasının adı, Ocak 2026'daki Kuzey Kore kaynaklı PolinRider kampanyasında kullanılan dosya adıyla aynı. Üçüncü dosya ise hırsız hiç çalışmamışsa devreye giren yedek bir GitHub Actions iş akışı.
Bilgi hırsızı çalıştığında yalnızca veri toplamakla kalmıyor; her beş dakikada bir saldırgan tarafından sağlanan kodu çalıştıran bir cron görevi de yüklüyor. Toplanan veriler, 8080 numaralı port üzerinden düz HTTP ile aynı sunucuya iletiliyor.

94 Depo, 66 Sahip, 15 Silinen Hesap​

OpenSourceMalware, ikinci aşama bileşeni barındıran toplam 94 güvenliği ihlal edilmiş depo tespit etti. Bu depolar 66 farklı sahibine ait; bunların 15'i silinmiş, yeniden adlandırılmış ya da gizli yapılmış durumda. Erişilebilir durumdaki 79 deponun 65'i bir yıldan uzun süredir güncellenmemiş; bir tanesi ise dokuz yılı aşkın bir süredir dokunulmamış halde. İkinci aşama CI iş akışı, lint.yml, ci-check.yml, build-check.yml, repo-health.yml, audit.yml, code-review.yml, test-suite.yml ve cache-cleanup.yml gibi zararsız görünen isimler altında dağıtılıyor. Bu iş akışı, POST isteği başarısız olursa bulguları gizli bir GitHub gist'e yükleyen bir yedek mekanizması da içeriyor.
OpenSourceMalware'in kurucu ortağı Jenn Gile, operatörün deneyimsizliğine işaret eden birkaç teknik hatayı da vurguladı: hırsızın ortam değişkeni filtresinin çoğu API anahtarını gözden kaçırması, ana dizin aramasının zaman aşımına uğrayarak kendi bulgularını atabilmesi ve tek bir IP adresinin hem veri sızdırma hem kimlik avı hem de gürültülü internet taraması için kullanılması bunların başında geliyor. Gile, bu son hatanın söz konusu IP'yi aratanların hâlâ enfekte sistemler bulabilmesinin nedeni olduğunu belirtti.

Geliştiricilere Yönelik Önlemler​

Tehdidi azaltmak için geliştiricilerin temiz bir cihazdan GitHub erişimini ve token'larını iptal etmesi, parolalarını değiştirmesi, depolarını denetlemesi, iş akışlarının erişebildiği tüm kimlik bilgilerini yenilemesi ve depoyu klonlamış kullanıcıları uyarması öneriliyor.

Sıkça Sorulan Sorular​

GhostAction saldırısının ikinci aşaması nedir ve nasıl çalışır?​

İkinci aşama, kötü amaçlı iş akışı kaldırıldıktan sonra bile geliştirici makinelerinde kalıcılık sağlayan bir bileşenden oluşuyor. Sahte bir yazı tipi dosyasına gizlenmiş hırsız yükü, VS Code'da klasör açıldığında otomatik çalışan bir tasks.json dosyası aracılığıyla tetikleniyor ve her beş dakikada bir saldırgan kodu çalıştıran bir cron görevi yüklüyor.

Kimlik avı e-postası kurbanı nasıl kandırdı?​

noreply@my-github[.]com adresinden gönderilen e-posta, Moskova'dan şüpheli bir oturum açma girişimi olduğunu bildirerek kullanıcıyı sahte bir GitHub giriş sayfasına yönlendirdi. Bu sayfa ters proxy işlevi görerek kurbanın parolasını ve 2FA kodunu toplarken, arka planda JavaScript kodu kurbanın onayı olmaksızın geniş kapsamlı bir OAuth uygulamasını otomatik olarak yetkilendirdi.

Sahte yazı tipi dosyası hangi kimlik bilgilerini çalıyor?​

public/fonts/fa-solid-400.woff2 adlı dosya içindeki hırsız yükü; AWS anahtarları, PyPI ve npm token'ları, Git oturum bilgileri, Kubernetes küme kimlik bilgileri, SSH özel anahtarları ile Anthropic Claude ve Google Gemini gibi yapay zeka sağlayıcılarına ait kimlik bilgilerini hedef alıyor.

Kaç depo ve kaç kullanıcı etkilendi?​

OpenSourceMalware, ikinci aşama bileşenini barındıran 94 güvenliği ihlal edilmiş depo tespit etti. Bu depolar 66 farklı sahibine ait; 15'i silinmiş, yeniden adlandırılmış ya da gizli yapılmış durumda. Erişilebilir 79 deponun 65'i bir yıldan uzun süredir güncellenmemişti.

GitHub'ın aldığı önlem saldırganların davranışını nasıl etkiledi?​

OpenSourceMalware'e göre GitHub, 9 Ekim'de kötü amaçlı iş akışının çalışmasını engellemeye başladı ve 10 ile 12 Ekim'deki dalgalarda hiçbir sır ele geçirilemedi. Engellemeden altı gün sonra ikinci aşama bileşeni devreye girdi; bu bileşen GitHub'ın çalıştırıcısına ihtiyaç duymadığı için platform kontrollerinin dışında kalıyor. Araştırmacılar, engellemenin ikinci aşamayı doğrudan tetikleyip tetiklemediğini kesin olarak söyleyemediklerini belirtti.

Etiketler

Yorumlar (0)

Yorum yapmak için giriş yapmalısınız.

Geri
Üst