GitLost: GitHub'ın Yapay Zeka Ajanını Özel Depoları Sızdırması İçin Nasıl Kandırdık?
İçindekiler
Giriş
GitHub'ın yapay zeka destekli yeni "Ajanlı İş Akışları" (Agentic Workflows) özelliği, Claude veya Copilot gibi dil modellerini kullanarak Markdown dosyalarında tanımlanan görevleri otonom şekilde yerine getirebiliyor. Ancak Noma Labs güvenlik araştırmacıları, bu yeni sistem üzerinde GitLost adını verdikleri kritik bir dolaylı komut enjeksiyonu (indirect prompt injection) güvenlik açığı keşfettiler.
GitHub Ajanlı İş Akışları Nedir?
Bu iş akışları, ekiplerin kod depolarıyla etkileşimlerini doğal dille otomatikleştirmesini sağlamaktadır. Geliştiriciler tarafından hazırlanan Markdown (.md) dosyaları, sistem tarafından otomatik olarak YAML tabanlı GitHub Actions dosyalarına derlenir. Yapay zeka ajanı ise hata kayıtlarını okuma, kod yazma ve organizasyon içindeki diğer depolara erişme yetkilerine sahiptir.
GitLost Güvenlik Açığına Genel Bakış
Güvenlik açığının temel nedeni, sistem yönergeleri ile dışarıdan gelen güvenilmeyen kullanıcı verileri arasındaki sınırın net bir şekilde ayrıştırılamamasıdır. Noma Labs tarafından incelenen ve istismar edilen iş akışı şu şekilde yapılandırılmıştır:
- GitHub'daki
issues.assigned(atanmış hata kayıtları) olaylarında tetiklenmektedir. - Atanan hata kaydının Başlık (Title) ve Gövde (Body) kısımlarını okumaktadır.
add-commentaracını kullanarak yanıt olarak yeni bir yorum yazmaktadır.- Organizasyondaki diğer (açık ve gizli) depolara okuma erişim yetkisiyle çalışmaktadır.
Saldırganlar, herhangi bir kimlik bilgisine ihtiyaç duymadan, genel erişime açık bir depoda sahte bir hata kaydı açıp gövdesine gizli talimatlar ekleyerek ajanı manipüle edebilirler.
Saldırı Senaryosu ve "Ekstra" İstismar
Saldırganlar, ilk bakışta tamamen masum görünen bir hata kaydı oluşturur. Hata atandığında tetiklenen ajan, gizli talimatları takip ederek organizasyonun özel depolarındaki README.md dosyasını okur. Son adımda ise elde ettiği gizli verileri, herkese açık hata kaydına yorum olarak yazar. GitHub'ın bu sızıntıyı önleyen güvenlik filtreleri olsa da, komutlara basitçe "Additionally" (Ek olarak) kelimesini eklemek bu filtreleri atlatmaya yetmiştir.
Güvenlik Açığı Kanıtı (PoC)
Saldırı sonucunda sızdırılan veriler şu depolardaki README.md içeriklerini kapsamaktadır:
sasinomalabs/poc(herkese açık depo)sasinomalabs/remote-ping(herkese açık depo, README doğrulanmadı)sasinomalabs/testlocal(özel/gizli depo)
Yazılım Geliştirme Açısından Yorum ve Öneriler
Öğrenme sürecindeki geliştiriciler için GitLost, yapay zeka güvenlik sınırlarının kod tabanlı değil, model davranışına bağlı olmasının getirdiği riskleri net bir şekilde göstermektedir. Tıpkı web uygulamalarındaki SQL enjeksiyonu gibi, yapay zeka girdi denetimi de artık modern yazılım geliştirmenin temel bir parçasıdır.
Yapay Zeka Güvenlik Önerileri:
- Kullanıcı tarafından kontrol edilen hiçbir içeriği yapay zeka ajanı için güvenilir bir girdi olarak kabul etmeyin.
- Yapay zeka ajanlarının yetkilerini her zaman en düşük ayrıcalık ilkesine (least privilege) göre sınırlandırın.
- Ajanların hata kayıtlarına vereceği yanıtları ve dış dünyayla olan veri paylaşım yeteneklerini kısıtlayın.
- Girdileri modele göndermeden önce mutlaka temizleyin veya sistem talimatlarından izole edin.
Sorumlu Açıklama
Bu açık GitHub'a sorumlu bir şekilde bildirilmiş ve platform tarafından gerekli önlemler alınmıştır.
Orijinal makaleye buradan ulaşabilirsiniz.
Bu konuyu daha derinlemesine öğrenmek ister misin?
Edumints'teki ücretsiz kursları incele ve bugün başla.
Kurslara Göz At →