· kaynak Hacker News – Front Page (native)
Gheist kampanyası çalınan GitHub token'larıyla 850'den fazla hesaba sır çalan workflow'lar yerleştirdi
Wiz Research'e göre Gheist kampanyası, 850'den fazla ele geçirilmiş hesap kullanarak sır döken GitHub Actions workflow'ları yerleştirdi; GitHub'ın onay bekleme mekanizması ise private veya enterprise repository'leri korumuyor.

Ne oldu
Wiz'teki güvenlik araştırmacıları, Eylül 2026 ortasından bu yana çalınmış GitHub kimlik bilgilerini kitlesel olarak istismar eden Gheist adlı bir kampanyayı takip ediyor. Wiz Research'e göre operasyon, ele geçirilen bir token'ın erişebildiği her repository'ye sync-check adlı kötü niyetli bir workflow commit ediyor. Workflow çalıştığında, repository'nin sırlarını kendi log'una yazdırıyor; saldırgan bunları GitHub'ın API'si üzerinden alıyor ve çalışmayı birkaç saniye sonra siliyor. Araç kendini gheist user agent'ıyla tanımlıyor ve kampanya adını buradan aldı.
Wiz, kişisel projelerden şirketlere ait private repository'lere uzanan, 850'den fazla ele geçirilmiş hesapta 13.500'den fazla yerleştirilmiş branch kurtardığını söylüyor.
Saldırı nasıl çalışıyor
Araç her hedef için ci-sync- öneki ve altı rastgele karakterden oluşan bir branch oluşturuyor, ardından .github/workflows/sync-check.yml yoluna ci: sync config commit mesajıyla bir workflow dosyası commit ediyor. Commit imzasız ama token'ın meşru sahibi tarafından yazılmış gibi görünüyor.
Wiz, payload'u etkili kılan üç tasarım kararına dikkat çekiyor. GitHub, sır değerlerini log'larda yalnızca birebir aynı şekilde göründüklerinde maskeliyor; workflow bu yüzden maskeyi atlatmak için onları base32 ile kodluyor. Workflow ayrıca job'un GITHUB_TOKEN izinlerini sıfırlıyor; saldırganın buna ihtiyacı yok, çünkü bu kısıtlama secrets context'ini sınırlamıyor. Son olarak, bir repository deployment environment kullanıyorsa workflow bunları bir job matrix'te numaralandırıyor; böylece environment kapsamındaki sırlar (genellikle production kimlik bilgileri) da dökülüyor.
Sırlar GitHub'ın kendi API'si üzerinden çıktığı için engellenecek saldırgan kontrollü bir domain veya giden bağlantı yok.
Self-hosted runner'lara yükseltme
Wiz, branch adı sonekleriyle ayırt edilebilen, paralel çalışan iki varyant gözlemledi. 19 Ekim'de varyantlardan biri, görünüşe göre yalnızca kayıtlı self-hosted runner'a sahip repository'leri hedefleyen sync-host adlı ikinci bir job push etti. Wiz'e göre bu job; host ayrıntılarını ve crontab'ı topluyor; home dizinini, workspace'i ve sistem yollarını 31 token formatı (Anthropic, Hugging Face, Groq ve NVIDIA gibi yapay zeka sağlayıcılarının anahtarları dahil), private key'ler, .env dosyaları, Terraform state ve shell geçmişi için özyinelemeli olarak tarıyor; /proc altındaki her süreç ortamını okuyor; AWS instance-role kimlik bilgilerini, GitHub Actions ve GitLab runner kimlik bilgisi dosyalarını ile Kubernetes service account token'ını alıyor; ve Docker socket'i üzerinden host'un kök dosya sistemini bir container'a mount ederek kaçmayı deniyor. Wiz, job'un hatalı olduğunu, URL kimlik bilgisi regex'inin bozuk olduğunu ve GCP ya da Azure toplama işlevi olmadığını belirtiyor.
GitHub'ın kontrolü nerede tutuyor, nerede tutmuyor
28 Temmuz 2026'dan bu yana GitHub, public repository'lerdeki potansiyel olarak kötü niyetli workflow çalışmalarını bir collaborator onaylayana kadar bekletiyor. Wiz, kontrol ettiği her public Gheist çalışmasının action_required durumunda takılı kaldığını, yani kötü niyetli payload'ların hiç çalışmadığını buldu. Ancak bekleme, private repository'lere veya GitHub Enterprise Server'a uzanmıyor. Orada audit log'ları Gheist çalışmalarının tamamlanıp silindiğini, cloud log'ları ise organizasyonların kendi workflow'larının saldırgan branch'lerinde çalışıp AWS role'leri üstlendiğini gösteriyor; bu da Actions'ın onaysız çalıştığının kanıtı.
Ele geçirilmiş hesapların paylaşılan havuzu
Aynı hesaplar başka aktörler tarafından da yeniden kullanılıyor. Wiz, 6 Ekim'de 391 hesabın yaklaşık 1.461 repository'yi cracked-yazılım yemleri olarak yeniden adlandırdığını; 18 Ekim'de 25 Gheist hesabının, görünüşe göre Actions'ı bedava işlem gücü için istismar etmek amacıyla Windows RDP Runner repository'leri oluşturduğunu bildiriyor. Bazı mağdurlarda ayrıca DPRK bağlantılı PolinRider kötü yazılımı veya Megalodon aktivitesi görülüyor. İzlenebilir kimlik bilgisi kaynakları arasında infostealer log'ları ve Mart ayındaki Trivy olayı gibi önceki tedarik zinciri ihlallerinde açığa çıkan token'lar var. Wiz, Gheist'in farklı workflow dosyaları kullanan ve sabit bir IP adresine veri sızdıran GhostAction'dan ayrı olduğunu vurguluyor.
Savunmacılar ne yapmalı
Wiz, tek değişikliği sync-check workflow'u olan ci-sync-* branch'lerinin, tamamlanmadan bir dakika içinde silinen çalışmaları gösteren audit log kayıtlarının ve gheist user agent'ından gelen herhangi bir aktivitenin aranmasını öneriyor. OIDC kullanan ekipler, cloud log'larında ci-sync branch'lerine atıf yapan role üstlenmelerini kontrol etmeli. Self-hosted runner'larda .gdmp_pat, .gdmp_patg ve .gdmp_sweep dosyalarının yanı sıra log'lardaki gdmp-pivot dizilerini arlayın.
Wiz, düzeltme için; çalışmanın silinmesi ifşayı geri almadığından, etkilenen bir repository'den erişilebilen tüm repository, organizasyon ve environment sırlarının döndürülmesini; push yapan token'ların iptal edilmesini; ve self-hosted job'unu çalıştırmış her host'un ve onun instance role'ünün ele geçirilmiş sayılmasını tavsiye ediyor. Sıkılaştırma önlemleri arasında production environment'larında review zorunlu kılınması, OIDC trust policy'lerinin protected branch'lerle sınırlandırılması, personal access token'ların kısa ömürlü fine-grained alternatiflerle değiştirilmesi ve self-hosted runner'ların Docker socket erişimi olmayan geçici host'lar olarak çalıştırılması yer alıyor.
Neden önemli
Saldırı sırları GitHub'ın kendi güvenilir API'si üzerinden sızdırdığı için ağ düzeyinde tespit hiçbir olağan dışı durum görmüyor. Bu arada buradaki temel savunma kontrolü olan GitHub'ın onay bekleme mekanizması, private repository'lere ve enterprise ortamlarına hiç uygulanmıyor ve birçok organizasyonu tam da en güvende hissettikleri yerde açıkta bırakıyor. 24 Ekim itibarıyla Wiz'e göre olaya karışan hesapların yaklaşık üçte ikisi, muhtemelen müdahale faaliyetleri nedeniyle GitHub'da artık mevcut değil; ancak kampanya devam ediyor ve evriliyor. Sırlarla veya self-hosted runner'larla GitHub Actions kullanan her ekip şu anda bu göstergeleri aramalı.
- #github
- #security
- #github-actions
- #secrets
- #malware
İlgili yazılar
- Sızıntı sonrası erken yamalanan iki kritik PHP açığı, güncellenmeyen sunucuları RCE'ye açık bırakıyor
- ZoomEye taraması 62.236 açıkta olan Argo CD örneği buldu; belgelenen 8080 portunda yalnızca 497'si çalışıyor
- k0t edge cihaz kampanyası Fortinet ve Palo Alto açıkları üzerinden 70.000'den fazla kimlik bilgisini açığa çıkardı