Yeni Bir Yazılım Tedarik Zinciri Saldırısı
Son zamanlarda gözlemlenen yeni bir yazılım tedarik zinciri saldırısı, uyku modundaki paketler aracılığıyla kötü niyetli yüklerin yayılmasını sağlamıştır. Bu saldırı, kimlik bilgisi hırsızlığı, GitHub Actions manipülasyonu ve SSH devamlılığı gibi ciddi sonuçlar doğurmuştur.
Affected Systems
Saldırı, “BufferZoneCorp” adlı GitHub hesabı altında yayımlanan ve kötü amaçlı Ruby gem’leri ile Go modülleri içeren bir dizi depo ile ilişkilendirilmiştir. Yazının yazıldığı sırada, bu paketler RubyGems’ten kaldırılmış ve Go modülleri engellenmiştir. Aşağıda zararlı kütüphanelerin isimleri verilmiştir:
- Ruby:
- knot-activesupport-logger
- knot-devise-jwt-helper
- knot-rack-session-store
- knot-rails-assets-pipeline
- knot-rspec-formatter-json
- knot-date-utils-rb (Uyku gem’i)
- knot-simple-formatter (Uyku gem’i)
- Go:
- github[.]com/BufferZoneCorp/go-metrics-sdk
- github[.]com/BufferZoneCorp/go-weather-sdk
- github[.]com/BufferZoneCorp/go-retryablehttp
- github[.]com/BufferZoneCorp/go-stdlib-ext
- github[.]com/BufferZoneCorp/grpc-client
- github[.]com/BufferZoneCorp/net-helper
- github[.]com/BufferZoneCorp/config-loader
- github[.]com/BufferZoneCorp/log-core (Uyku modülü)
- github[.]com/BufferZoneCorp/go-envconfig (Uyku modülü)
Bu paketler, activesupport-logger, devise-jwt, go-retryablehttp, grpc-client ve config-loader gibi tanınmış ve güvenilir modüller olarak görünmektedir. Bu durum, kullanıcıları yanıltarak kötü niyetli yazılımları indirmelerine neden olmuştur.
Saldırı Nasıl Çalışıyor?
Ruby gem’leri, kurulum sırasında kimlik bilgilerini otomatik olarak çalmak için tasarlanmıştır. Çalan bilgiler arasında ortam değişkenleri, SSH anahtarları, AWS sırları, .npmrc, .netrc, GitHub CLI konfigürasyonu ve RubyGems kimlik bilgileri bulunmaktadır. Elde edilen veriler, saldırganın kontrolündeki bir Webhook[.]site uç noktasına aktarılmaktadır.
Diğer yandan, Go modülleri, GitHub Actions iş akışlarını manipüle etme, sahte Go sarmalayıcıları yerleştirme, geliştirici verilerini çalma ve komut dosyasının uzaktan erişim için “~/.ssh/authorized_keys” dosyasına hard-coded SSH genel anahtarları ekleme kapasitesine sahiptir. Modüller arasında aynı yük yoktur, aksine, yetenekleri gruplar halinde dağılmıştır.
Geliştirici Kirill Boychenko, “Modül init() içerisinde çalışır, GITHUB_ENV ve GITHUB_PATH’i tespit eder, HTTP_PROXY ve HTTPS_PROXY ayarlarını yapar, sahte bir go yürütülebilir dosyayı bir önbellek dizinine yazar ve bu dizini iş akışı yoluna ekler,” şeklinde açıklamada bulundu.
Bu sarmalayıcı, daha sonraki go yürütmelerini engellemeden yönetmeye devam edebilir.
Çözüm ve Korunma
Paketi kurmuş olan kullanıcıların sistemlerinden paketleri kaldırmaları, hassas dosyalara veya “~/.ssh/authorized_keys” dosyasında yetkisiz değişikliklere dair işaretleri gözden geçirmeleri, sızdırılan kimlik bilgilerini yenilemeleri ve dışa dönük HTTPS trafiğini incelemek üzere ağ günlüklerini kontrol etmeleri önemlidir.
Aksiyon
Eğer yukarıda belirtilen paketleri kurduysanız:
- Paketleri sisteminizden derhal kaldırın.
- Hassas dosyalarınıza erişimde herhangi bir belirtiler için gözden geçirme yapın.
- Yetkisiz değişikliklere dair “~/.ssh/authorized_keys” dosyasını inceleyin.
- İfşa olan kimlik bilgilerinizi yenileyin.
- Ağ günlüklerinizi, dışa giden HTTPS trafiği açısından gözden geçirin.
Bu adımlar, sistem güvenliğinizi artıracaktır.


