Claude Code, isteklere steganografik işaretler ekliyor
(thereallo.dev)- Claude Code 2.1.196 ikili dosyasında, sistem istemindeki güncel tarih cümlesini değiştirerek isteğin içine sınıflandırma sinyali gizleyen bir işlev bulunuyor
- Tetikleyici
ANTHROPIC_BASE_URL; bu değer ayarlanmışsa veya resmiapi.anthropic.comdeğilse, ana makine adı ve saat dilimi kontrol edilerek apostrof ve tarih ayırıcıları değiştiriliyor - Ana makine adı, base64 dizelerinin XOR anahtarı
91ile çözümlenmesiyle elde edilen alan adı ve anahtar kelime listeleriyle karşılaştırılıyor; listededeepseek,zhipu,moonshot,baidu.com,bytedance.net,proxyai.comgibi girdiler yer alıyor - Resmi Anthropic API uç noktası kullanılıyorsa veya
ANTHROPIC_BASE_URLyoksa, işlev erken dönüyor ve standartToday's date is 2026-06-30.biçimi korunuyor - Bunu doğrudan kötü amaçlı bir özellik olarak tanımlamak zor olsa da, dosya sistemi ve kabuk erişimi olan bir geliştirici aracının görünmez Unicode işaretleri ile sınıflandırma bilgisini gizlemesi güveni sarsıyor
Tarih cümlesine gizlenen işaretler
- Claude Code ikili dosyasında, sistem istemine giren güncel tarih dizgesini değiştiren bir işlev var
- Varsayılan cümle şu biçimde
Today's date is 2026-06-30.
- Değişebilen iki bölüm var
Today'siçindeki apostrof- tarih ayırıcıları:
-yerine/
- Ortaya çıkan cümle dışarıdan sıradan bir tarih bildirimi gibi görünse de, ham isteğin içine gizli işaretler eklenmiş oluyor
- Veriyi düz metin gibi görünen bir yere sakladığı için bu yöntem istem steganografisi kapsamına giriyor
ANTHROPIC_BASE_URL tarafından açılan koşullu yol
- Tetikleyici, Claude Code’un API temel URL geçersiz kılma değişkeni
ANTHROPIC_BASE_URL ANTHROPIC_BASE_URLyoksa işlev erken dönüyor- Değer mevcut olsa bile ana makine
api.anthropic.comise yine aynı yola düşüyor - Yalnızca erken dönülmediğinde şu koşullar kontrol ediliyor
- sistem saat diliminin
Asia/ShanghaiveyaAsia/Urumqiolup olmadığı - API temel URL’sinin ana makine adının, çözümlenmiş alan adı listesiyle eşleşip eşleşmediği veya onun alt alan adı olup olmadığı
- ana makine adının belirli yapay zeka laboratuvarı anahtar kelimelerini içerip içermediği
- sistem saat diliminin
Tarih ve apostrofa kodlanan bilgiler
- Saat dilimi
Asia/ShanghaiveyaAsia/Urumqiise tarih gösterimi değişiyor2026-06-30→2026/06/30
Today'siçindeki apostrof, ana makine adı sınıflandırma sonucuna göre değişiyor- genel:
' - bilinen alan adı:
\u2019 - laboratuvar anahtar kelimesi:
\u02BC - hem bilinen alan adı hem laboratuvar anahtar kelimesi:
\u02B9
- genel:
- Bu Unicode karakterler, çoğu monospace yazı tipinde görsel olarak çok az farklılık gösterdiği için fark edilmeleri zor
Gizli alan adı ve anahtar kelime listesi
- Alan adı ve anahtar kelime listeleri base64 dizeleri olarak saklanıyor ve XOR anahtarı
91ile çözümleniyor - Çözümlenmiş laboratuvar anahtar kelimeleri listesi şöyle
deepseekmoonshotminimaxxaminimzhipubigmodelbaichuanstepfun01aidashscopevolces
- Çözümlenmiş alan adı listesi daha büyük; Çinli şirket alan adlarını, yapay zeka şirketi alan adlarını ve proxy, yeniden satıcı, ağ geçidi alan adlarını içeriyor
- Örnek girdiler şöyle
cnbaidu.comalibaba-inc.comalipay.comantgroup-inc.cnbytedance.netkuaishou.comxiaohongshu.comjd.combilibili.coiflytek.comstepfun-inc.commoonshot.aianyrouter.topclaude-code-hub.appclaude-opus.topopenclaude.meproxyai.comyunwu.aizenmux.ai
- Listenin tamamı cc-domains.js içinde görülebilir
Sistem bağlamına girdiği yer
- Tarih işlevinin sonucu, ajan bağlamı oluşturulurken
currentDatedeğeri olarak ekleniyor - Aynı bağlam, koşullara bağlı olarak kullanıcı e-postasıyla ilişkilendirilmiş proje bilgilerini de içerebiliyor
- Bu nedenle işaretler, modele gönderilen sistem bağlamının bir parçası haline geliyor
- Anthropic arka ucunun bu değeri ayrıştırma ihtimali de açık kalıyor
Doğrulanan kurulum ortamı
- Doğrulanan Claude Code kurulum ikili dosyası Anthropic imzası taşıyor
Identifier=com.anthropic.claude-codeTeamIdentifier=Q6L2SF6YDWTimestamp=Jun 29, 2026SHA256=6fc6e61ab7582c2bf241225ff90d9f79e91d69380cb9589fc9dedd3a30070f5a
- Doğrulama sırasında kabukta
ANTHROPIC_BASE_URLayarlı değildi ve saat dilimiAsia/Hong_Kongidi - Bu ortamda normal apostrof ve
YYYY-MM-DDtarih dizgesi üretiliyor
Etkilenen kullanım senaryoları ve sınırlar
- Kullanıcıların çoğu için bu yolun devre dışı kalma ihtimali yüksek
- Resmi Anthropic API uç noktası kullanılıyorsa veya
ANTHROPIC_BASE_URLyoksa, tarih istemi sıradan biçimini koruyor - İlginç senaryolar, Claude Code’un özel bir base URL üzerinden yönlendirildiği durumlar
- dahili ağ geçidi
- yerel proxy
- model yönlendirici
- yeniden satıcı
- araştırma ortamı
- Bu durumda Claude Code ana makine adını sınıflandırıyor ve sonucu isteme kodluyor
- Bunu aşma yolları basit
- ana makine adını değiştirmek
- saat dilimini değiştirmek
- ikili dosyayı yamalamak
- süreci sarmalamak
- Ciddi bir saldırgan bu sinyali etkisiz hâle getirebilir; bu yüzden tuhaf ama meşru kurulumlar kullanan sıradan geliştiriciler daha kolay parmak izi toplama hedefi oluyor
Güveni sarsan uygulama biçimi
- Anthropic’in API yeniden satıcılarını, onaylanmamış Claude Code ağ geçitlerini veya model “distillation attack” hatlarını tespit etmeye çalışıyor olması mümkün
- Özel
ANTHROPIC_BASE_URLbilinen bir yeniden satıcı alan adına işaret ediyorsa ya da ana makine adındadeepseek,zhipugeçiyorsa, bu bir tespit sinyali olarak kullanılabilir - Sorun, bunun uygulanma biçimi
- sistem istemi sessizce değiştiriliyor
- proxy veya ağ geçidi sınıflandırma bilgisi, sıradan bir İngilizce cümle gibi görünen bir yere kodlanıyor
- alan adı listesi XOR ve base64 arkasına gizleniyor
- Kodlama ajanları yerel makinede kod inceleyebilir, komut çalıştırabilir, paket kurabilir, dosya düzenleyebilir ve commit push edebilir
- Özel API ağ geçitlerini tespit etmek için belgelenmiş açık telemetri alanları, herkese açık politika veya sürüm notları gibi yöntemler de kullanılabilirdi
- Dosya sistemi ve kabuk erişimi olan bir araç, görünmez istem noktalama işaretlerine sınıflandırma bitleri saklıyorsa, diğer gizlilik iddialarına güvenmek de zorlaşıyor
1 yorum
Hacker News görüşleri
Hizmet sağlayıcının müşteri makinesine dağıttığı aracın tam olarak ne yaptığını şeffaf biçimde açıklamamasının ciddiyetini küçümseyen tepkiler var
Bunun için ticari bir gerekçe olması, dürüstçe açıklama yapmamanın kabul edilebilir olduğu anlamına gelmiyor
Dürüstçe açıklasalar çözümlerinin işe yaramaz hale gelecek olması da benim sorunum değil; aksine bunu makul gördülerse makinemden kişisel olarak tanımlanabilir bilgiler gibi başka neler topluyor olabileceklerinden şüphe duymama yol açıyor
Alaycı bir gözle bakınca, yorumların tonunda bu meseleye dair bir değerlendirmeden çok AI/Anthropic/ABD vb. hakkındaki duyguların yansıdığı hissediliyor
Bu da bunu ortaya çıkarmak için doğal bir karşı önlem gibi görünüyor
Değer yargılarını bir kenara bırakırsak, bunu bu kadar özensiz uygulamış olmaları biraz şaşırtıcı
Tersine mühendislikle tespit edilme ihtimalini düşürüp aynı etkiyi yaratmaları mümkün gibi görünüyor
Bu alan, Underhanded C Contest’in ortaya çıkardığı “underhanded code” ile bilinir: https://www.underhanded-c.org
Pek bilinmeyen bir “zanaat”; sebebi de bariz. Bu hedeflere ulaşmanın çok daha akıllı yolları var
Açık yöntemlerden biri daha fazlasını istemciden sunucuya taşımak, bir diğeri de makul biçimde inkâr edilebilir istemci kodunu çok daha zararsız görünecek şekilde yazmak
Eklenenlerin bir kısmı yalnızca istemcide mümkün ama bir kısmı taşınabilirdi; istemcide kalması gerekenler de daha incelikli ve daha makul görünecek şekilde yapılabilirdi
JS bundle’ları o kadar çok inceleniyor ki sonunda bunun bulunup haber olacağını bildikleri için daha gizli ve aldatıcı hale getirmemiş olabilirler, ama yine de biraz baştan savma görünüyor
Gerçekten kararlı büyük bir AI laboratuvarının modeli distill etmesini durdurmak zor olabilir ama A) hızlı para kazanmaya çalışan özensiz token yeniden satıcılarının çoğunu engelleyebilir ve B) böyle büyük bir laboratuvarda birinin geçici çözüm kurmayı unutup kendini ele vermesine yol açabilir
Bunu bahçede çok kuş olduğu için plastik baykuş almaya benzetiyorum. Baykuş kuşların çoğunu kaçırır ama hepsini değil; sonra ultrasonik bir cihaz daha alsanız bile baykuşu kaldırmak için bir nedeniniz olmaz
Çünkü artık tek değil, iki katmanlı bir savunmanız olur
Bunun nedeni Anthropic modelinin kötü olması değil; Claude sanki her gün yeni ve sinir bozucu bir şeyi bozuyor gibi, bu yüzden giderek daha çok Codex ve OpenCode tarafına kayıyorum
Büyük dil modelleri, token dağılımlarını kullanarak kulağa makul bir düzyazı gibi gelen ama yük olarak çözümlenen steganometin üretebilir¹
¹ https://github.com/hodgesmr/calgacus-mlx
Anthropic bunu proxy yeniden satıcılarına karşı sürekli çalışan bir tespit sistemi olarak değil, şu anda nerede ve hangi bağlamda proxy yeniden satışı yapıldığını anlamaya yönelik belirli bir andaki örnekleme sistemi olarak uygulamış olabilir
Elbette bir gün fark edilecektir, ama o zamana kadar Anthropic işe yarar anlık görüntü verileri elde edebilir
Bu blog yazısının vardığı sonuç biraz aşırı tepki gibi
Bu steganografinin amacı çok açık ve model distillation yapıyor olabilecek Çinli şirketlerin kullanımını tespit etmeye yönelik
Bunun herhangi bir biçimde “genel geliştiricileri cezalandırdığı” ise net değil
Meşru nedenler arasında Claude Code’un Anthropic’e ne gönderdiğini analiz edip veri sızıntısı olmadığını doğrulamak, prompt zorluğuna göre modeli dinamik seçmek ya da belirli bir modeli zorlamak, projeye göre birden çok Anthropic hesabı arasında geçiş yapmak, kimlik bilgilerini/kişisel olarak tanımlanabilir bilgileri/şirket sırlarını filtrelemek sayılabilir
Amaç her zaman aracı haklı çıkarmaz
Bu kez fiili bir zarar olmuş olsun ya da olmasın, bu güven ve özerkliğin ihlalidir
Birisi en azından şimdilik yalnızca mevcut halk düşmanı numara 1’i tespit edip ihbar etmeye yönelik kod eklemiş olsa bile, gizlice bir rootkit kursaydı elbette öfkelenirdiniz
Codex CLI, Claude Code’dan farklı olarak özgür açık kaynak yazılım olduğu için böyle şeyler yapma olasılığı daha düşük; bu da Claude Code ve genel olarak Claude’dan kaçınmak için bir neden daha demek
Umarım Codex’te bu tür kötü niyetli davranışları inceleyen çok sayıda göz olur
Gizlilik politikaları ve iş uygulamaları konusunda son derece kuşkucuyum, ama bunun müşteri olarak bana ne gibi bir zararı olduğunu merak ediyorum
Sübvansiyonların kesileceği zamanı geciktirmeye yardımcı oluyorsa, müşteri açısından hatta avantajlı bile görünüyor
Yine de bu tür dolandırıcılık amaçlı proxy’lerin Çin laboratuvarlarının yetişmesine yardımcı olması, uzun vadede benim doğrudan donanım üzerinde tamamen kontrol ettiğim yüksek kaliteli bir kişisel yapay zekaya sahip olmamı kolaylaştırabilir
Desteklediğimi söylemiyorum ama böyle bir teşvikin var olduğunu kabul ediyorum
Özgür açık kaynak bir istemci olması, sadece daha fazla analizin sunucu tarafında gizlenmesi anlamına gelir
Deterministik derleme değil ama yine de gerçek depodan geldiğine dair bir miktar köken güvencesi var
“İstemci özel bir API ağ geçidini tespit etmek istiyorsa, bunu açıkça söylemesi yeterli. Belgelenmiş açık telemetri alanları gönderir, politikayı görünür kılar ve davranışı sürüm notlarına koyar” tepkisi bana çok safça geliyor
İstemci ağ geçidine açık telemetri alanları gönderirse, kötü niyetli ağ geçidi bu alanları normal trafik gibi görünecek şekilde çok kolay kaldırabilir veya değiştirebilir
Steganografik kedi-fare oyununun değerli olmasının nedeni, ağ geçidinin kullanılan tüm parmak izi çıkarma mekanizmalarını sürekli tersine mühendislik etmesinin çok daha zor olmasıdır
Elbette bazı kötü niyetli ağ geçitleri yetişmeye devam edecektir ama hepsi her zaman bunu başaramaz
Çinli distilasyon laboratuvarları söz konusu değilse bu tamamen sorunsuz bir mesele
Çünkü KYC atlatma hizmetlerinin uluslararası pazarı çok gelişmiş durumda
Sadece AI araçları değil, geliştirme araçları da sandbox içinde çalıştırılmalı
Örneğin Python veya JavaScript paket depolarına her şey girebilir; antivirüs şirketleriyle sözleşmeleri de yok, güvenilir bir yurttaş denetimi de yok, bu yüzden sandbox olmadan çalıştırılmamalılar
Düşünün: herhangi bir ülkeden anonim bir kullanıcı her şeyi yükleyebilir ve milyonlarca geliştirici bunu kendi bilgisayarında çalıştırabilir
IDE’ler, IDE eklentileri, LSP sunucuları ve AI eklentileri de sandbox’a alınmalı
Bunların çoğu antivirüs şirketleri tarafından taranmıyor ve sınırsız şekilde çalıştırılmamaları gerekir
Üstelik hiçbir antivirüsün kodun güvenliğini %100 garanti edemeyeceğine dair zaten bir sonuç var
İlginçtir ki pip belgeleri, “başlangıç” dokümanında sandbox veya kötü amaçlı yazılım konusundan hiç söz etmiyor; sanki kötü niyetli insanlar, şirketler ya da devletler olmayan harika bir dünyada yaşıyormuşuz gibi
En azından HN’de kimsenin böyle bir hayal dünyasında yaşamamasını umarım
IDE, LSP ve AI araçlarını kullanabilmek için önce kendi sandbox sistemini yazmak zorunda kalmak can sıkıcı; Linux yalnızca temel ham yapı taşlarını verdiği için bu çok zaman alıyor
Örneğin root yetkisi olmadan tüm ağ trafiğini kontrol etmek için bir user namespace oluşturup root yetkisi kazanmanız, bir network namespace oluşturmanız ve namespace içinde çalışan, veriyi dışarıdaki bir “denetleyici” programa pipe eden bir “trafik toplayıcı” yazmanız gerekiyor; sonra da denetleyici programın trafiği hedefe yönlendirmesi gerekiyor
Root yetkisi olmadan trafiği sadece filtrelemek ve incelemek için bile Linux gereğinden fazla iş istiyor
Kullanıcı adında ya da host adında da hiçbir bilgi bırakmamalısınız. Bu yazının da gösterdiği gibi, o bilgiler sizin aleyhinize kullanılacaktır
Anthropic’in şimdiye kadar yaptıklarını özetlersek: Devletin bunu istemesinden yıllar önce “tüm insanlık” adına yanlış tarafta gördüğü kişileri ayıklamaya başladı, modeli keyfi biçimlerde düşürdü, sonra da “üzgünüz ama pek de üzgün değiliz” tarzında cevap verdi ve kullanıcıya yanlış sonuçlar vermek için yanıtları gizlice değiştirerek aktif olarak müdahale etti
Sırada ne var? Hoşuna gitmeyen kullanıcıların makinelerini kullanılmaz hale getiren malware mi? Bunu daha fazla “hoşuna gitmeyen” insana yaymak mı?
Dario Amodei’nin “tüm insanlık” için öngördüğü ütopik gelecek vizyonunun nasıl şekilleneceği şimdiden görülüyor gibi
Bu insanların gerçekten süperzekâ inşa ettiklerine inandıkları perspektiften bakınca her şey anlaşılabilir oluyor
AI güvenliği kampındaki ezici çoğunluk, bu meseleye sıradan HN koltuk yorumcularından çok daha fazla hayat ve zaman harcadı; Çin’in süperzekâya önce ulaşmaması gerektiğini, süperzekâ erişiminin yalnızca doğrulanmış iyi niyetli aktörlere verilmesi gerektiğini ve bu hedefte başarısız olunursa bunun insanlığın yok oluşuyla sonuçlanabilecek bir yarış olduğunu düşünüyor
“Süperzekâ inşa ettiğimizi düşünüyoruz” sözünü yalan olarak varsaymazsanız, yaptıkları neredeyse her şey anlaşılabilir hale gelir
Benzer bir sistem prompt enjeksiyonu mekanizması burada daha önce rapor edilmişti
https://news.ycombinator.com/item?id=48259288
https://github.com/anthropics/claude-code/issues/62061
Görünüşe göre beklendiği gibi bunların yeni ve “yaratıcı” kullanım alanları bulunmaya devam ediyor
Ben de bunları yamalarla kaldırmaya devam edeceğim
Sistem prompt’un “soyutlamadan kaçın; benzer üç satır kod, tek bir helper’dan daha iyidir” gibi şeyler aşıladığını bilmiyordum
Bu, katılmadığım bir şey
CLAUDE.md içine talimat koyarak bu tür prompt’ları geçersiz kılmanın bir yolu var mı? Sistem prompt’un kendisini doğrudan değiştiremem ama CLAUDE.md’nin son sözü söylemesi gerekmiyor mu?
Yazarın vurgulamak istediği gizlilik endişesini pek anlamıyorum
Elbette “gizli” bir iş yaparken yakalanırsanız her zaman şüphe çekersiniz, ama tersine böyle bir “güvenlik özelliğinin” nasıl çalıştığını açık ederseniz bunu uygulamanın da bir anlamı kalmaz
Ayrıca bence steganografi, belirsizliğe dayanan bir güvenlik değildir
RSA'de özel anahtarı gizli tutmanın belirsizliğe dayanan bir güvenlik olmaması gibi, gizli kalması gereken şeyi gizli tutmak da güvenlik modelinin bir parçasıdır
Ama bunu, erişim kalıplarımı önceden açıklamadan parmak izi çıkararak uyguladıkları noktada işi batırdılar
Bu, “gizli” olmanın da ötesinde; düpedüz gizli saklı, dürüst olmayan ve etik dışı
Bu örneğin zararsız olması da pek teselli sayılmaz. Kişisel tanımlayıcı bilgi toplamadıklarını kim garanti edebilir?
Yaptıklarının ticari açıdan mantıklı olması, insanların aldatıcı ve müşteriye düşmanca kararları kabullenmesi için bir gerekçe değildir
Ya da belki bu varsayımı da anlayamıyorsunuzdur ama aslında başkalarının gizliliğini umursamıyor gibisiniz
“Yani bu özellik esas olarak parmak izi çıkarılması kolay olan, yani tuhaf ama yasal işler yapan sıradan geliştiricileri cezalandırıyor” deniyor; burada kastedilen ceza tam olarak ne?
Özellikle böyle bir teknolojinin var olduğu ve Fable'da bunu prodüksiyonda kullanacaklarını açıkça söyledikleri düşünülürse