Sanallaştırma

GitHub’da Yeni Tehdit: Büyük Dosyalarla Saklanan Kötücül Kodlar

Son dönemde ortaya çıkan GitHub güvenlik açığı, yazılım geliştirme dünyasında yeni bir tedirginlik yarattı. Saldırganlar, GitHub’ın güvenlik mekanizmalarını doğrudan aşmak yerine, tespit edilmelerini zorlaştıran sofistike yöntemler kullanarak 42 farklı üçüncü taraf depoyu başarıyla ele geçirdi. Bu siber saldırı, özellikle yapay zeka destekli kodlama asistanları ve entegre geliştirme ortamları (IDE) gibi modern geliştirme araçlarının güvenlik açıklarına dair endişeleri artırıyor. Otonom kodlama ajanlarının da bu süreçte kullanıldığı ve tehdidin npm ekosistemi üzerinden yayıldığı belirtiliyor.

Gizli Tehdidin Doğuşu: Büyük Dosyaların Rolü

Bu saldırıda dikkat çeken temel nokta, GitHub’ın platform güvenlik sistemlerinin doğrudan ihlal edilmemiş olması. Saldırganlar, bunun yerine hedef aldıkları bireysel müşteri depolarının korumalarını aşmaya odaklandı. Başarılı uzlaşmanın ardındaki ana taktik, kötücül yükleri (payload blobs) GitHub’ın arama ve API yollarının normalde bu tür uzlaşmaları tespit etmek için kullandığı mekanizmaları atlatabilecek kadar büyük boyutlarda dağıtmaktı. Bu, siber güvenlik araştırmacıları için bile tespiti zorlaştıran, alışılmadık ve oldukça etkili bir yöntem olarak öne çıkıyor.

Saldırının arkasındaki grubun, yapay zeka destekli kodlama asistanları ve çeşitli IDE’ler için geliştirilmiş yürütme kancalarını içeren depoları hedef aldığı belirlendi. Bu, modern yazılım geliştirme ekosistemlerinin giderek artan bağımlılıklarını ve potansiyel zafiyetlerini gözler önüne seriyor. Otonom kodlama ajanlarının da bu saldırı zincirinde belirli bir rol oynadığı ve tehdidin yayılmasında bir katalizör görevi gördüğü ifade ediliyor. Bu durum, geliştirme süreçlerine entegre edilen otomasyon araçlarının da güvenlik risklerini beraberinde getirebileceğini gösteriyor.

Saldırının Karmaşık Mekanizmaları ve npm Zinciri

Saldırganlar, hedeflerine ulaşmak için oldukça sofistike ve çok katmanlı bir yaklaşım benimsemiş durumda. Ele geçirilen depolar, 13.7 megabayta kadar ulaşan polimorfik sarmalayıcılar içeriyordu. Tüm bu sarmalayıcılar, ortak bir gizli CI-yayıncı yüküne dönüştürülüyordu. Ayrıca, saldırgana ait bir depo aktif bir şifreli veri havuzu işlevi görüyor, anlık görüntü zarflarını alarak sürekli bir bilgi akışı sağlıyordu. Kamuflaj teknikleri de oldukça gelişmişti: kendi içinde kötücül bir yük barındırmayan derlenmiş yerel eklentiler kullanıldı. Bu eklentiler, gerçek yükü ortaya çıkarmak için çalışma zamanında .napi_cache adlı şifreli bir dosyayı çözüyordu.

Soruşturmalar, hesap ele geçirmeleri, sahte commit zaman çizelgeleri, kısa ömürlü yayın dalları ve npm kimlik bilgilerinin açığa çıkması gibi ek bulguları da ortaya koydu. Aynı ele geçirilmiş sahip kümesindeki Shellpanel eserleri, bu GitHub altyapısının daha önce rapor edilen internete açık cPanel sistemlerinin GitHub Actions sömürüsüyle bağlantılı olduğunu gösteriyor. Bu durum, saldırının daha geniş bir operasyonun parçası olabileceğine işaret ediyor. Saldırının kritik bir ayağı ise npm zinciri üzerinden gerçekleştirildi. Kötücül testmetest sürümleri, geleneksel bir yükleme komut dosyası bildirmemelerine rağmen, kurulum sırasında index.js’i yürütmek için binding.gyp komut genişletmesi kullandı. Yükleyici, derleme başına bir Sezar dönüşümü uygulayarak karakter kodu dizilerini işliyor, ardından AES-128-GCM aşamasını çözüyor ve Bun 1.2.18’i bulup indiriyordu. Çözülmüş yük, ya doğrudan bun run – komutuna yönlendiriliyor ya da geçici bir .b-* dizinine yazılıp yürütmeden sonra siliniyordu. Bu karmaşık npm yükü, hedef sistemlerden kimlik bilgilerini topladı, depoları ve CI yapılandırmalarını zehirledi ve paket kayıt defterleri aracılığıyla hızla yayıldı.

Etkilenen Depolar ve Çalınan Kimlik Bilgileri

Bu saldırı zincirinin doğrudan sonucu olarak 42 üçüncü taraf GitHub deposu tehlikeye girdi. Kötücül npm solucanı, hedef sistemlerden GitHub ve npm kimlik bilgilerini çalarak saldırganlara üçüncü taraf depolara geniş erişim imkanı sağladı. Ele geçirilen depolarda, saldırganlar ya sadece ‘smoke-test’ yer tutucuları bıraktılar ya da daha da tehlikeli olan silahlı yükler konuşlandırdılar. Özellikle silahlı ci.js dosyalarının çözümlenmesi, GitHub Actions aracılığıyla çalışmak üzere tasarlanmış yayıncıları ortaya çıkardı. Bu yayıncılar, çalınan npm belirteçlerini veya güvenilir yayınlama yöntemlerini kullanarak daha fazla kötücül testmetest sürümü üretti ve böylece paket teslimatını depo uzlaşmasına geri besleyerek saldırı döngüsünü sürdürdü. Bu, siber suçluların geliştirme ve dağıtım süreçlerini kendi kötü amaçları doğrultusunda nasıl kullanabildiğinin çarpıcı bir örneği.

Etkilenen depolar arasında AI kodlama yardımcıları için kullanılanlar da bulunuyor olması, modern geliştirme paradigmalarının getirdiği yeni güvenlik zorluklarını gözler önüne seriyor. Bir geliştirme ortamı veya paketi içinde gizlenmiş, tespit edilmesi zor kötücül yazılımlar, yazılım tedarik zincirine derinlemesine nüfuz edebilir ve geniş çaplı hasara yol açabilir. Çalınan kimlik bilgileri, sadece bireysel geliştiriciler için değil, aynı zamanda onların çalıştığı organizasyonlar ve projeler için de ciddi riskler barındırıyor. Bu durum, geliştirme süreçlerinde kullanılan her bir bileşenin, her bir bağımlılığın ve her bir otomasyon aracının titizlikle denetlenmesi gerektiğinin altını çiziyor.

Geliştiriciler İçin Acil Güvenlik Önlemleri

Bu tür sofistike saldırılara karşı korunmak için geliştiricilerin ve CISO’ların (Bilgi Güvenliği Yöneticileri) acil ve kapsamlı önlemler alması gerekiyor. İlk olarak, bir tam solucan sürümünün herhangi bir ana bilgisayara kurulması durumunun, o ana bilgisayarın tamamen ele geçirildiği şeklinde değerlendirilmesi zorunludur. Bu, olayın ciddiyetini kavramak ve buna göre müdahale etmek için kritik bir başlangıç noktasıdır. Olay müdahale ekipleri, bu senaryoya göre hareket etmelidir.

İkinci olarak, etkilenme ihtimali olan veya şüpheli tüm platformlardaki kimlik bilgilerinin derhal iptal edilmesi ve yenilenmesi büyük önem taşıyor. Bu, sadece GitHub ve npm ile sınırlı kalmamalı; GitLab, PyPI, RubyGems, bulut hizmetleri, SSH anahtarları, Vault, Kubernetes ve yapay zeka sağlayıcılarına ait tüm kimlik bilgileri de bu kapsama dahil edilmelidir. Kimlik bilgisi rotasyonu, saldırganların ele geçirdikleri erişimi sürdürmesini engellemenin en etkili yollarından biridir. Ayrıca, etkilenen kimliklere erişilebilir tüm depoların detaylı bir şekilde denetlenmesi şarttır. Özellikle aşağıdaki dosyalar ve yapılandırmalar için inceleme yapılmalıdır:

  • .github/init.js
  • .claude/settings.json
  • .gemini/settings.json
  • .cursor/mcp.json
  • .cursor/rules/setup.mdc
  • .vscode/tasks.json
  • Beklenmedik composer.json veya Makefile yürütme kancaları
  • skip-checks:true commit’leri

Bu dosyaların ve yapılandırmaların varlığı veya beklenmedik içeriği, bir uzlaşmanın göstergesi olabilir ve daha derinlemesine incelemeyi gerektirir. Sürekli izleme ve proaktif güvenlik önlemleri, gelecekteki benzer saldırılara karşı direnci artıracaktır.

Yazılım Tedarik Zinciri Saldırılarında Yeni Bir Evre

Bu saldırı, yazılım tedarik zinciri güvenliğindeki tehdit evriminin yeni bir aşamasını temsil ediyor. Geleneksel güvenlik duvarlarını veya bilinen açıklıkları hedef almak yerine, saldırganlar tespit mekanizmalarını atlatmaya yönelik karmaşık ve çok katmanlı teknikler geliştiriyor. Büyük boyutlu kötücül dosyaların kullanılması, otomatik tarama araçlarının ve API’lerin süzgeçlerinden kaçınma stratejileri, siber güvenlik profesyonellerini yeni savunma yaklaşımları geliştirmeye zorluyor.

Modern geliştirme pratiklerinin merkezinde yer alan yapay zeka destekli kodlama asistanları ve otonom ajanlar gibi araçların da bu tür saldırılara maruz kalabilmesi, teknoloji dünyası için önemli bir dönüm noktasıdır. Zira bu araçlar, geliştirme hızını artırırken, güvenlik zafiyetleri için de yeni vektörler yaratabiliyor. Bu olay, geliştiricilere ve organizasyonlara, sadece kendi kodlarını değil, kullandıkları tüm üçüncü taraf bağımlılıkları ve entegrasyonları sürekli olarak denetleme ve doğrulama ihtiyacını bir kez daha hatırlatıyor. Yazılım tedarik zincirinin her aşamasında uçtan uca güvenliğin sağlanması, günümüzün siber tehdit ortamında artık bir lüks değil, zorunluluktur.

Sık Sorulan Sorular

GitHub'ın kendi güvenlik sistemi bu olayda ihlal edildi mi?

Hayır, saldırganlar GitHub'ın iç sistemlerini değil, bireysel üçüncü taraf müşteri depolarını hedef aldı. Büyük dosyalarla arama mekanizmalarını atlatmaya çalıştılar.

Saldırıda hangi teknikler kullanıldı?

Büyük boyutlu (13.7MB'a kadar) polimorfik yükler, şifreli .napi_cache dosyaları, npm paket zinciri üzerinden binding.gyp komut genişletmesi ve Sezar dönüşümü gibi karmaşık şifreleme yöntemleri kullanıldı.

Geliştiriciler kendilerini bu tür saldırılara karşı nasıl koruyabilir?

Tüm GitHub, npm ve benzeri platformlardaki kimlik bilgilerini iptal edip döndürmeli, ayrıca depoları belirtilen kötücül dosyalar ve kancalar için detaylıca denetlemelidirler.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu