OpenAI ajanları RubyGems üzerinden RubyDoc’u hedef aldı

Anasayfa » OpenAI ajanları RubyGems üzerinden RubyDoc’u hedef aldı
OpenAI ajanları RubyGems üzerinden RubyDoc’u hedef aldı

RubyGems üzerinde aylarca süren olağandışı paket yağmurunun arkasında OpenAI ajanlarının olduğu öne sürüldü. Yapılan son incelemelere göre bu otomatik ajanlar, Ruby programlama dili ekosistemindeki paket yöneticisini kullanarak RubyDoc.info sunucularında uzaktan kod çalıştırmaya kadar giden bir zincir kurdu; hedefte ise özellikle Birleşik Krallık’taki yerel yönetim portallarından toplanan açık veriler vardı.

Saldırı dalgası Mayıs 2026’da başladı. İlk paket 5 Mayıs’ta RubyGems’e yüklendi, 11 ve 12 Mayıs’ta 2 binden fazla paket gönderildi, 26 ve 27 Mayıs’ta beş paket daha eklendi, 18 Haziran’da ise 83 paketlik yeni bir seri geldi. Araştırmacılar, bu hareketliliğin daha önce ortaya çıkan spam paketleme ve veri sızdırma kampanyalarıyla aynı izleri taşıdığını belirtiyor.

Yüzlerce gereksiz paket, tek bir veri çıkış hattı

İncelemeyi yürüten araştırmacılar Spencer Kitts, Thomas Larsen ve Sydney Von Arx, kampanyayı daha önce görülen “GemStuffer” faaliyetiyle birlikte değerlendirdi. Mend.io tarafında software supply chain security kıdemli ürün yöneticisi Maciej Mensfeld de 12 Mayıs’ta, RubyGems’i yüzlerce çöpmüş paketle hedef alan koordineli bir saldırıyı açıkladı ve yeni kullanıcı kayıtlarının yaklaşık dört gün askıya alındığını duyurdu.

Socket’ın takip analizinde, 150’den fazla gem’den oluşan bir kümenin paket kayıt defterini veri sızdırma kanalı gibi kullandığı aktarıldı. Bu küme, Birleşik Krallık’taki yerel yönetimlerin demokratik hizmet portallarından kazınan açık verileri sahnelemek için RubyGems’e yüklenmişti. Şirket, bu davranışın geniş RubyGems spam-yayınlama olayındaki “aynı kötüye kullanım kalıbını” paylaştığını yazdı.

O dönem veri setlerinin açık kaynaklı ve kamuya açık olması nedeniyle saldırının nihai hedefi netleşmemişti. Buna rağmen paketlerin sayısı, dağıtım biçimi ve isimlendirme yapısı, faaliyetin sıradan bir spam denemesi olmadığını ortaya koydu.

Yeni bulgulara göre olayın merkezinde bir OpenAI ajan sürüsü vardı. Araştırmacılar bu sonuca, paketlerin büyük dil modelleriyle yazılmış olmasına ve RubyGems’e bırakılan yüzlerce paketin adında “oai” ibaresinin geçmesine dayanıyor. On beş pakette “oai” doğrudan yazar adı olarak görünürken, bir başka pakette iletişim adresi olarak “openaixyz65947@gmail.com” yer aldı.

Analizde öne çıkan paket adları arasında chatoaitestgit1778552630, lambhgproxyoai, oaibx0092307, oaicx8859010, oaicx3857133, oaidx4526859, oaiex4149420, oaifx7943598, oaigx5861576, oaihx0305933, oaiix0379958, oaijx0156671, oaikx5119809, oailm2, oaipgttatggxy, oaifetchgemugkejy, oaiproxytestabc789 ve oaitfossilxbnowl bulunuyor.

Araştırmacılar, bu yapının daha önce Mayıs 2026’da görülen Alman wiki olayına çok benzediğini söylüyor. O vakada kurum içinde konuşlandırılmış otonom ajanlar, DseWiki adlı Alman wiki forumunu ele geçirerek onu bir tür ilan panosuna çevirmiş, cevap istemiş, sonuçları birleştirmiş ve zaman sınırlı bir web arama görevinde kısıtlamaları aşma yöntemlerini paylaşmıştı.

Mayıs’taki ajanlar ile wiki ajanları arasında kullanılan dosyaların da örtüştüğü görüldü. Haziran ayındaki ajanlar wiki ajanlarının eriştiği dosyaların 49’una aynı şekilde ulaştı. Mayıs ayındaki grup farklı dosyalarla çalışsa da bunların çoğu Birleşik Krallık yerel yönetim verileriydi ve karakter olarak wiki ajanlarının peşine düştüğü materyallere çok benziyordu. Her iki kampanyada da aynı alma yöntemleri kullanıldı; ayrıca 1.397 pakette, wiki ajanlarının yoğun biçimde yararlandığı r.jina.ai referansı tespit edildi. Paketlerin bir kısmında example.com geçmesi de, wiki ajanlarının yayın yapma yeteneğini test etmek için kullandığı deneme kalıbıyla örtüşüyor.

GemStuffer kampanyasında ayrıca, RubyDoc.info’nun dokümantasyon oluşturma sürecindeki bir tasarım ayrıntısı kötüye kullanıldı. Bir gem için dokümantasyon derlenirken kullanıcı tarafından belirtilen .yardopts dosyası çalıştırılıyor ve bu dosya Ruby script’lerine bağlanabiliyor. Araştırmacılar, ajanların bu mekanizmayı kullanarak RubyDoc.info sunucularında keyfi uzaktan kod çalıştırma elde ettiğini belirtiyor. Ardından da hedef sitelerden topladıkları açık verileri dışarı aktardılar.

Bu zincirin nasıl işlediği araştırmacıların paylaştığı adımlarda açıkça görülüyor: RubyGems’e kötü amaçlı bir paket yükleniyor, bir dokümantasyon isteği tetikleniyor, RubyDoc.info paketi derliyor, derleme betiği sunucu üzerinde kod çalıştırıyor ve veriler tekrar RubyGems paket kayıt defterine bırakılan başka bir gem üzerinden dışarı sızdırılıyor. RubyGems’in kayıt defteri herkese açık olduğu için bu yöntem, veriyi saklamak ve iz bırakmadan erişime açmak için kullanılmış görünüyor.

Saldırganların kullandığı yapılardan biri de öne çıktı. zzsouthrunner adlı gem, yine wiki ve Hugging Face olaylarında görülen “ZZ” adlandırma şemasına uyuyor. Bu paketin data/script.rb dosyasının başında açık biçimde şu yorum yer aldı: “# malicious crawler/exfil for Southwark Jan 2026 docs via rubydoc.info worker”.

GemStuffer faaliyeti Lambeth, Wandsworth ve Southwark tarafından kullanılan ModernGov portallarını hedef aldı. Araştırmacıların özetlediği saldırı zinciri, kötü amaçlı paketin yüklenmesinden dokümantasyon talebinin tetiklenmesine, oradan da RubyDoc.info üzerinden hedef sitelerin kazınmasına kadar uzanıyor.

İncelemeye göre ajanlar, uzaktan kod çalıştırma elde ettikten sonra başka kullanıcıların API anahtarlarını çalmayı da denedi. Bunu, hem dosya adlarında hem de paket adlarında ve kaynak kodu yorumlarında açıkça gösterdiler. hack.rb, evil.rb, inject.rb, exploit.rb ve ssrf.rb gibi dosya adları; pwnp999, exfiltestwand3, hacksvn1778554764 ve lambproxyhackabcxyz gibi paketler; ayrıca “# malicious probe”, “#hack”, “# malicious test” ve “# malicious crawler/exfil” notları bu denemelerin işaretleri arasında yer aldı.

Bazı örneklerde saldırganlar izlerini gizlemeye de çalıştı. yardxabc889 adlı gem içindeki data/evil.rb dosyasına “# disable evil in next version and bump version” notu bırakıldı. Araştırmacılar bu satırın, kötü amaçlı yükü sonraki sürümde gizleyerek yayına devam etme girişimini yansıttığını söylüyor.

Kampanyanın bir başka ayağında, 12 Mayıs 2026’da ortaya çıkan bir CDN önbellek hatası da istismar edilmeye çalışıldı. CVSS skoru 7.3 olan ve henüz CVE numarası bulunmayan bu açık, RubyGems tarafından ancak Temmuz 2026’da yamalanabildi. Hata, bir hesabın API anahtarını bir saat boyunca başka bir hesap sahibine verebiliyor ve saldırgana rastgele bir kullanıcının anahtarını sızdırma şansı tanıyordu.

Bu zafiyeti kampanya kapsamında yayımlanan altı paket kullandı. RubyGems, Temmuz ayında yaptığı uyarıda bu hattın kötüye kullanıldığına dair bir bulguya rastlamadığını bildirdi. Altı paketin adları slnleaker5, zzwandshostyard, lambfetchx548811, lambfetchx550961, lambfetchx550961 ve yardbreakerxqh1778552850 olarak verildi.

RubyGems’in daha sonra yayımladığı duyuruda, v3.2.0’dan eski bir gem istemcisiyle ya da eski bir anahtarla giriş yapanların anahtarlarının açığa çıkmış olabileceği belirtildi. Kurum, gem sign-in trafiğinin şu anda yüzde 18’inin etkilenen bir sürümden geldiğini, hatanın istemci tarafı giriş yolunun Aralık 2020’de değiştirilmesinden önce ise yıllarca tüm istemcileri etkilediğini aktardı.

Araştırmacılar, ajanların e-posta doğrulamasını aşarak çalışır API anahtarları elde etmeye çalıştığını da tespit etti. Bu sayede tek kullanımlık e-posta adresleriyle çok sayıda hesap açabildiler. RubyGems, bu açığı 12 Mayıs 2026’da kapattı; tek kullanımlık e-postayla kayıt olma imkanı ise 16 Mayıs’ta devre dışı bırakıldı.

Aynı grupların webhook sistemini kullanarak veriyi kodlanmış URL’ler halinde sahnelemeye çalıştığı da raporda yer aldı. 18 Haziran’da üç saatlik bir pencerede yayımlanan 83 gem’lik küme ise ABD Menkul Kıymetler ve Borsa Komisyonu’nun county.json veri setine farklı erişim yöntemlerini denemek için kullanıldı.

Bu, OpenAI ajanlarının RubyGems’i ilk hedef alışı da değil. Şirket geçen ay yayımladığı postmortem’de, ajanlarının JFrog Artifactory’nin JRuby tabanlı RubyGems işleme mekanizmasını kullanarak imzalama anahtarını ele geçirdiğini ve yönetici kimlik bilgileri ürettiğini açıkladı. Bu girişim, yapay zeka şirketinin altyapısını hedef alan saldırının bir parçasıydı.

OpenAI, geçen hafta wiki olayını “daha önce paylaşılanlara benzer bir hizalanmama vakası” olarak ele aldığını ve bu tür durumları tarihsel olarak daha çok bir araştırma başlığı gibi değerlendirdiğini duyurdu. Şirket ayrıca, eğitim, değerlendirme ve konuşlandırma sırasında ortaya çıkan hizalanmama örnekleri için, klasik güvenlik vakası gibi görünmeyen ama yapay zeka davranışı hakkında bilgi veren olayları da kapsayacak net bir bildirim standardı bulunmadığını söyledi. OpenAI, önümüzdeki haftalarda kamuya açmayı planladığı bir çerçeve üzerinde çalıştığını ekledi.

Reuters’a iletilen açıklamada OpenAI, yapılan incelemeye dayanarak ajanlarının RubyGems platformunu internete erişmek, zararsız görevleri yürütmek ve kamuya açık bilgileri toplamak için kullandığını söyledi. RubyGems ise kendi araştırmasında girişimlerin başarıya ulaştığına dair kanıt bulmadığını ve faaliyetin insanlardan mı yoksa otomatik araçlardan mı geldiğine bakmadan kötüye kullanımı tespit edip engellemeye devam edeceğini bildirdi. Ruby Central’daki teknik lider Colby Swandale de eldeki kanıtlarla paketlerin yapay zeka ajanları tarafından oluşturulup yayımlandığının kesinleştirilemediğini belirterek odağın, kaynağı ne olursa olsun kötüye kullanımı belirlemek ve önlemek olduğunu ifade etti.