← Radar

Konu: Güvenlik3 dk okuma

Claude Code'un tarih satırındaki gizli işaret: Prompt'a saklanan parmak izi

Bu neden önemli?

Bilgisayarında dosyalara ve terminale erişen bir araç, gönderdiği metne fark edilmeyecek bilgiler gizleyebiliyor. Niyet kötü olmasa bile, belgelenmemiş bir davranış güveni sarsar. Bu olay, kullandığın yapay zekâ araçlarının ne gönderdiğine neden bakman gerektiğini gösteriyor.

Ne bulundu?

Claude Code, her oturumda modele bir sistem talimatı (system prompt) gönderiyor. İçinde sıradan bir satır var: “Today’s date is 2026-06-30.” Yani bugünün tarihi. Thereallo adlı bir geliştirici, gizlilik merakıyla Claude Code 2.1.196’yı incelerken bu satırın her zaman aynı yazılmadığını fark etti.

Blog yazısına göre satırda iki gizli sinyal vardı:

  • Kesme işareti. “Today’s” kelimesindeki ' işareti, duruma göre gözle neredeyse ayırt edilemeyen üç farklı Unicode karakterden biriyle değişiyordu. Hangisinin seçildiği, iki şeyi kodluyordu: Kullandığın API adresi bilinen bir listede mi, adreste bir yapay zekâ laboratuvarının adı geçiyor mu?
  • Tarih ayracı. Bilgisayarının saat dilimi Asia/Shanghai ya da Asia/Urumqi ise tarih 2026-06-30 yerine 2026/06/30 yazılıyordu.

Bu kontrol herkes için çalışmıyordu. Sadece ANTHROPIC_BASE_URL ayarıyla Claude Code’u Anthropic dışında bir adrese, yani bir aracıya ya da ağ geçidine (gateway) yönlendirenlerde devreye giriyordu. Adres listesi; Çinli şirketlerin, yapay zekâ laboratuvarlarının ve API aracılarının alan adlarını içeriyordu. Listeler kodda base64 ve XOR ile gizlenmişti.

Bunu kendimiz de kontrol ettik. npm’de yayımlanan paketlerde bu kod 2.1.91’de (2 Nisan 2026) ortaya çıkıyor, 2.1.196 ve 2.1.197’de hâlâ duruyor.

Steganografi ne demek?

Şifreleme bir mesajı okunamaz yapar. Steganografi ise mesajın varlığını gizler. Mesaj, sıradan görünen bir şeyin içine saklanır. Burada taşıyıcı, tarih satırının kendisi. Bir insan ya da log okuyan biri normal bir cümle görüyor. Ama karakterleri tek tek karşılaştıran bir sunucu, gizli bilgiyi okuyabiliyor.

Metne benzer görünen Unicode karakterleri ya da görünmez karakterler koymak, metin filigranı (watermark) yapmanın bilinen bir yolu. Kim nereden geliyor, bir metin nereye sızdı, bunları izlemek için kullanılıyor.

Neden yapılmış?

The Decoder’ın aktardığına göre Claude Code ekibinden Thariq Shihipar, X’te bunun Mart’ta başlatılan bir deney olduğunu söyledi. Anthropic’e göre amaç, yetkisiz aracıların hesap kötüye kullanımını ve damıtmayı (distillation), yani Claude’un cevaplarıyla başka bir model eğitmeyi engellemekti. Claude, Çin’de resmi olarak sunulmuyor. Bu yüzden oradaki erişimin bir kısmı aracı servisler üzerinden geliyor.

Blog yazarı da amacın anlaşılır olduğunu, ama yöntemin yanlış olduğunu söylüyor. Sunucunun bu işareti gerçekten okuduğu ise yazara göre bir tahmin, kanıtlanmış değil.

Sorun nerede?

  • Belgelenmemişti. Sürüm notlarında yoktu, kod bilerek gizlenmişti.
  • Kolay atlatılıyor. Saat dilimini değiştirmek yetiyor. Yani asıl hedef olan büyük kötüye kullanımları zor yakalar, sıradan kullanıcıları ise etiketler.
  • Güven meselesi. Dosyalarına ve terminaline erişen bir araçta gizli bir davranış bulunursa, aracın diğer gizlilik sözlerine de şüpheyle bakarsın.

Senin için ders şu: Bir yapay zekâ aracının gönderdiği her şeyi göremeyebilirsin. Hassas bir ortamda çalışıyorsan, giden istekleri bir test ortamında yerel bir proxy ile incele ve metinde beklenmedik Unicode karakterleri ara.

Sonra ne oldu?

  • Shihipar, kaldırma değişikliğinin birleştirildiğini ve bir sonraki sürümle tamamen geri alınacağını söyledi. Bizim npm kontrolümüze göre 1 Temmuz’da çıkan 2.1.198’de bu kod artık yok. Resmi değişiklik günlüğü (changelog) bundan bahsetmiyor.
  • Malwarebytes’e göre Anthropic ayrıntılı bir açıklama yayımlamadı.
  • Anthropic, Eylül’de damıtma kampanyalarıyla ilgili bir rapor yayımladı. Onu damıtma saldırıları yazımızda anlattık.

Düşün

  • Bir şirketin kötüye kullanımı engellemek için kullanıcılarını gizlice işaretlemesi ne zaman kabul edilebilir?
  • Kullandığın kod ajanının modele ne gönderdiğini hiç gördün mü?

Videoyu izle

Tıklayınca video YouTube'dan yüklenir; o ana kadar bu sayfa YouTube'a hiçbir istek göndermez.
Kaynaklar (6, İngilizce)

Kendi cümlelerimizle yazılmış bir özettir, çeviri değildir. Tüm kaynaklar yukarıda.

Konu: Güvenlik4 dkVideo: Low Level

Linux'ta root açıkları art arda: Copy Fail'den sonra Dirty Frag ve Bad Epoll

Eskiden her birkaç yılda bir çıkan 'her Linux'ta root' açıkları 2026'da arka arkaya geldi. Dirty Frag, Copy Fail'deki hatanın aynısını çekirdeğin ağ kodunda iki yerde daha buldu. Bad Epoll ise epoll'daki altı komutluk bir yarış penceresinden root alıyor, üstelik Anthropic'in modelinin aynı kodda kaçırdığı bir hata.