Herkese Açık GitHub Sorunu GitHub Temsilci İş Akışlarını Özel Repo Verilerini Sızdıracak Şekilde Kandırabilir Yazılım

Herkese Açık GitHub Sorunu GitHub Temsilci İş Akışlarını Özel Repo Verilerini Sızdıracak Şekilde Kandırabilir

Noma Security'deki araştırmacılar, kamuya açık bir sorunun GitHub Agentic Workflows'u bir kuruluşun özel depolarının içeriğini sızdırmaya yönlendirebi...

Noma Security'deki araştırmacılar, kamuya açık bir sorunun GitHub Agentic Workflows'u bir kuruluşun özel depolarının içeriğini sızdırmaya yönlendirebileceğini gösterdi.

Saldırganın yalnızca halka açık bir depoda normal görünümlü, çalıntı kimlik bilgileri olmayan ve kuruluşa erişimi olmayan bir konu açması yeterlidir. Bu kuruluş aracıya, özel olanlar da dahil olmak üzere veri havuzları genelinde okuma erişimi vermişse, sorun onu özel içerikleri herkese açık bir yoruma çekmeye yönlendirebilir.

Noma bu tekniği GitLost olarak adlandırıyor. Hedef, GitHub'un Şubat ayında başlattığı ve şu anda genel önizlemede olan bir özellik olan GitHub Agentic Workflows'tur. Otomasyon komut dosyaları yazmak yerine, bir AI aracısına talimatları bir Markdown dosyasında düz İngilizce olarak yazarsınız. Aracı, sorunları ve çekme isteklerini okur, araçları çalıştırır ve kendi başına yanıt verir.

Sonuç ve Değerlendirme

GitHub Copilot, Anthropic's Claude, Google Gemini veya OpenAI Codex tarafından desteklenebilir. İş akışları varsayılan olarak salt okunurdur, ancak bir kuruluş, özel olanlar da dahil olmak üzere çapraz repo bağlamı sağlamak için depolarına okuma erişimi olan bir belirteç verebilir.

Bu hibe, GitLost'un ona karşı döndüğü kurulumdur.

Hile nasıl çalışıyor?

Zayıflık iyi bilinen bir tanesidir: dolaylı anında enjeksiyon. Bir yapay zeka aracısı, sahibinden gelen talimatlar ile okuduğu içeriğin içinde gizli olan talimatlar arasındaki farkı güvenilir bir şekilde anlayamaz. Yani bir saldırgan bir soruna bu talimatları yazarsa aracı bu talimatları uygulayabilir.

Detaylar ve Etkileri

Noma'nın konsept kanıtında, kötü niyetli sorun, bir müşteri toplantısı sonrasında Satıştan Sorumlu Başkan Yardımcısı'ndan gelen rutin bir talep gibi gösterildi. Etkilenen iş akışı, bir sorun atandığında uyanacak, sorunu okuyacak ve bir yorumla yanıt verecek şekilde ayarlandı. Ayrıca kuruluşun diğer depolarına da okuma erişimi vardı.

Rutin bir otomasyon sorunu atadığında, aracı özel bir deponun README'sini aldı ve bunu sorunla ilgili genel bir yoruma yapıştırdı.

GitHub tam da bunu durdurmak için korkuluklar inşa etti. Şirket, kendi belgelerinde "AI aracılarının hızlı enjeksiyon, kötü amaçlı depo içeriği veya güvenliği ihlal edilmiş araçlarla manipüle edilebileceği" konusunda uyarıyor ve ürün, korumalı alan oluşturma, varsayılan olarak salt okunur belirteçler, girdi temizleme ve bir aracının önerilen çıktısını yayınlamadan önce tarayan bir tehdit algılama adımıyla birlikte geliyor.

Önemli Gelişmeler

Noma, testinde tek kelimelik bir değişikliğin geçiştirmek için yeterli olduğunu bildirdi. Kötü niyetli talimatın önüne "Ek olarak" eklenmesi, modelin bunu reddedilecek bir şey olarak değil, takip eden bir görev olarak ele almasına yol açtı ve korkuluk bunun geçmesine izin verdi.

GitLost'u diğerlerinden ayıran şey, saldırganın kontrol edebileceği şeydir. Noma Security Güvenlik Araştırma Lideri Sasi Levi, The Hacker News'e "Daha önceki hızlı enjeksiyon örnekleri büyük ölçüde bir ajanın söylediklerini manipüle etmekle ilgiliydi" dedi. "GitLost, bir aracının izinleriyle ne yaptığını değiştirmekle ilgilidir."

Buradaki aracının bir sohbet penceresi değil, bir kuruluşun CI/CD'ye bitişik altyapısında oturan, saldırganın göremediği okuma erişimini kapsayan depolara sahip, yetkili bir aktör olduğunu söyledi. Hiçbir sunucuya dokunmaz, çalıntı kimlik bilgilerine ihtiyaç duymaz ve özel herhangi bir şeye yazma erişimi gerektirmez. Saldırganın yalnızca kamuya açık bir konu açması yeterlidir.

Gelecekte Ne Bekleniyor?

Kurulum, geliştirici Simon Willison'un "ölümcül üçlü" olarak adlandırdığı şeye uyuyor ve Levi de aynı terimi kullanıyor: özel verilere ulaşabilen, güvenilmeyen dış içeriği alan ve verileri dışarı göndermenin bir yolunu olan bir aracı. Üçünü birleştirirseniz bir sızıntı yolunuz olur.

Bu bir yamanın kapatabileceği türden bir hata değil; Levi'nin çerçevelediği şekliyle bu, yapay zeka ajanlarına saldırganların erişebileceği metinleri okurken geçerli kimlik bilgileri vermenin yapısal bir sonucudur.

Bu neden sürekli oluyor?

GitLost, aynı türden saldırıların sonuncusu ve THN son aylarda birkaç saldırı bildirdi. Anthropic'in Claude Code GitHub Action'ındaki bir kusur, tek bir kötü niyetli sorunun aracıyı sırları sızdırmaya ve bir depoya yazma erişimini ele geçirmeye itmesine neden oldu.

Orca Security'den RoguePilot, Copilot'un bir deponun ayrıcalıklı jetonunu sızdırmasını sağlamak için GitHub sayısında gizli bir istem kullandı. Sorunun GitHub aracısı sürümü, Invariant Labs'ın genel bir sorunun GitHub'un MCP sunucusuna bağlı bir aracıyı özel bir depo okumaya ve onu bir çekme isteği yoluyla sızdırmaya itebileceğini gösterdiği en az Mayıs 2025'e kadar uzanıyor; araştırmacılar onu kapatacak sunucu tarafı yaması olmadığı için mimari olarak adlandırdılar.

Comment and Control adlı satıcılar arası bir çalışma daha sonra Claude Code, Gemini CLI ve GitHub Copilot aracılarını kandırarak kendi API anahtarlarını sızdırmalarını sağladı. GitHub'un eklenen çalışma zamanı savunmalarını aşarak çekme isteği metni.

Uzmanların Görüşleri

Noma, GitLost'u GitHub'a açıkladı ve bulgularını şirketin bilgisi dahilinde yayınladı. Etkilenme, önizlemeyi etkinleştiren ve bir aracıya güvenilmeyen genel girişi okuması için bağlantı kuran, aynı zamanda özel depolara okuma erişimine sahip olan ve herkese açık olarak yayınlayabilen kuruluşlarla sınırlıdır.

Bir saldırganın ne alabileceği, özel kaynak kodundan dahili anahtarlara, tasarım belgelerine veya CI/CD sırlarına kadar aracının tokeninin neyi görebildiğine bağlıdır. Levi'nin belirttiği gibi, en önemli şey kapsamdır: önceliklendirdiği tek bir depoya kapsamı belirlenen bir aracı token, kolaylık açısından "kurum çapında geniş bir okuma erişimine sahip olmaktan çok daha az tehlikelidir".

Teknik Analiz

Uygulamada, bu çapraz repo erişimi kuruluşun kurduğu kişisel erişim belirtecinden gelir; bu nedenle belirtecin kapsamını tüm kuruluş yerine iş akışının önceliklendirdiği tek depoya göre belirleyin. Yazma akışı yalnızca bildirilen güvenli çıktılar aracılığıyla gerçekleşir; bu nedenle, ürettiği yorum sızıntı kanalı olduğundan, halka açık bir iş akışının gönderebileceklerini sınırlayın. Aracının hangi yazarların içeriğine göre hareket edeceğini kısıtlayın ve çıktılarını insan incelemesinin arkasına koyun.

Nasıl Önlem Alınmalı?

GitHub'ın tehdit tespit adımı, bir aracının çıktısını yayınlanmadan önce tarar, ancak Noma'nın tek kelimelik atlaması, filtrenin bir sınır değil, bir geri durdurucu olduğunu hatırlatır.

Sistem Güvenliği

GitHub da diğer satıcılar gibi tam da bu sınıftaki saldırılar için korkuluklar inşa etti ve tek kelimelik bir değişiklik onları atlattı. Araştırmacılar ve satıcıların kendisi sonuçları "mimari sınırlama" başlığı altında dosyalamaya devam ediyor ve Levi'nin demek istediği etiketin neden kalıcı olduğu: doğal dilde, SQL'de olduğu gibi veri ve talimat arasında temiz bir çizgi yoktur, dolayısıyla düzeltme, enjeksiyonu filtrelemek yerine mimariye, izolasyona, kapsamlı kimlik bilgilerine ve aşamalı incelemeye dayanır.

Bu sınır var olana kadar, özel verileri okuyan, güvenilmeyen girdileri alan ve kamuya açık paylaşımlarda bulunan herhangi bir aracının, sızıntıdan uzak olması akıllıca ifade edilmiş bir konudur.

Paylaş: