Saldırı Nasıl Çalışıyordu?
Saldırı zinciri, görünürde sıradan bir ChatGPT sohbet paylaşım linki üzerine kuruluydu. Bu link e-posta, anlık mesaj, destek talebi veya sosyal medya paylaşımı yoluyla kurbanın önüne çıkabiliyordu. Kurbanın herhangi bir şey yüklemesi, bir çalışma alanına katılması ya da saldırgan üzerinden oturum açması gerekmiyor; linki tıklamak yeterliydi.Saldırının ilk sürümünde kurbanın ChatGPT'nin Preview düğmesine bir kez tıklaması yeterliydi. Araştırmacıların geliştirdiği sonraki versiyonda ise sayfa açıldığında Preview otomatik olarak başlıyordu; dolayısıyla linke tıklamak tek başına yeterliydi. Kod, kurbanın oturumu içinde çalışarak ChatGPT'nin kendi imzalı API'lerini doğrudan çağırıyordu. Bu sayede araştırmacılar kurbanın son sohbetlerini listeleyebildi, daha önce hiç paylaşılmamış özel bir sohbeti açtı ve içeriğinin küçük bir bölümünü kendi kontrol ettikleri bir sunucuya iletti.
Parameter araştırmacıları, "Temelde kurbanın ChatGPT hesabı adına her türlü işlemi gerçekleştirebilirdik" ifadesini kullandı. Çalışma kontrollü bir test ortamında yürütüldü; araştırmacılar gerçek kullanıcılara karşı değil, kendi aralarındaki ayrı hesaplar üzerinde deneme yaptı ve açığın gerçek dünyada kötüye kullanıldığına dair herhangi bir bulguya ulaşmadı.
Sandbox'tan Kaçışın Teknik Ayrıntıları
Açığın özünde ChatGPT'nin Preview özelliği yatıyordu. Bu özellik, bir sohbet içindeki HTML bloğunu küçük bir web sayfasına dönüştürüyor. Güvenlik amacıyla söz konusu sayfa, chatgpt.com'un ana sayfasından yalıtılmış, ayrı bir web adresinde çalışan kısıtlı bir çerçeve içinde tutuluyor. Araştırmacılar, bu sandboxın kendi başına sağlam durduğunu belirtti; asıl sorun farklı bir noktadan kaynaklandı.Paylaşılan sohbet aynı zamanda etkileşimli bir grafik içeriyordu. Bu grafiğin çizilmesi sırasında MathLive adlı bir matematik kütüphanesi ChatGPT'nin ana sayfasına yüklendi. MathLive yüklendikten sonra, ekran klavyesiyle ilgili mesajları dinleyen bir işleyici aktif kalmaya devam etti. Ancak bu işleyici, mesajın hangi çerçeveden geldiğini doğrulamıyor ve ham HTML içermesine izin veriyordu. Preview çerçevesi bu zafiyeti kullanarak sınırı aşıp güvenilir ana sayfaya saldırgan kontrolündeki HTML'yi iletebiliyordu.
İletilen HTML, tarayıcının chatgpt.com'un bir parçası olarak değerlendirdiği yeni bir çerçeve oluşturuyordu. ChatGPT'nin içerik güvenlik politikası satır içi kodları engelliyordu; ancak YouTube'dan gelen scriptlere izin veriyordu. Bu nedenle araştırmacılar, çalıştırılacak kodu YouTube üzerinden yükledi. Parameter'a göre YouTube adımı yalnızca son bir geçici çözümdü; asıl sorun, güvenilmeyen bir Preview çerçevesinin ana siteye HTML enjekte edebilmesiydi. Tek başına YouTube engellemesi açığı kapatmaya yetmezdi.
OpenAI'nin Aldığı Önlemler
Parameter, açığı 18 Ekim'de OpenAI'nin hata ödül programı aracılığıyla bildirdi. OpenAI sekiz gün sonra, 26 Ekim'de düzeltmeyi ChatGPT'nin web arayüzünün iki farklı sürümüne yayınladı. Her iki sürüm de saldırının dayandığı mesajları artık reddediyordu. OpenAI, başlangıçta P2 olarak sınıflandırdığı açığı P1'e yükseltti. Parameter, bulgularını 28 Ekim'de, düzeltmenin yayınlanmasının ardından kamuoyuyla paylaştı. OpenAI, rapor için toplam 5.000 dolar ödül ödedi.Araştırmacılar, problemi üç tasarım tercihinin aynı anda örtüşmesine bağladı: MathLive'ın mesajın hangi çerçeveden geldiğini kontrol etmeden ayarları değiştirmesi, bu mesajın klavye düzeni verisi olarak ham HTML taşımasına izin verilmesi ve oluşturulan çerçevenin sandbox uygulanmadan chatgpt.com kimliğini miras alması.
ChatGPT kullanıcılarının herhangi bir işlem yapmasına gerek yok. Düzeltme OpenAI tarafından sunucu tarafında uygulandı; yüklenecek bir güncelleme ya da sıfırlanacak bir ayar bulunmuyor.

Yazılım ve Uygulamalar
Yazılım ve Uygulamalar
Yazılım ve Uygulamalar
Yorumlar (0)
Yorum yapmak için giriş yapmalısınız.