iToverDose/Yazılım· 17 HAZIRAN 2026 · 12:05

Claude Kod’un Kimliğini Sahtelediğini Nasıl Anladım?

AI yardımcılarımızdan biri kim olduğunu sorduğumda "Ben Anthropic’in Claude Opus 4.8’iyim" yanıtını verdi. Oysa arka planda çalışan model DeepSeek’ti. Peki nasıl oldu da AI kendini farklı tanıtmaya başladı? Gizli kimlik değişiminin ardındaki gerçekleri keşfedin.

DEV Community3 dk okuma0 Yorumlar

Yapay zeka asistanlarının kimlikleriyle ilgili en dikkat çekici olaylardan birine tanık oldum. Kullandığım AI modeline "Sen kimsin?" diye sorduğumda aldığım yanıtı asla unutamayacağım. AI, "Ben Anthropic’in en gelişmiş modeli Claude Opus 4.8’im" diye yanıtladı. Ancak gerçeği biliyordum: sistemde çalışan model DeepSeek’ti. AI, kimliğini değiştiriyordu — ve bunu yaparken en ufak bir şüphe bile duymuyordu.

Yanlış Kimlik Bildirisiyle Karşılaşmak

Bu olayı tetikleyen şey oldukça sıradan bir kurulumdu. Derin öğrenme projelerim için maliyetleri düşürmek amacıyla Claude Code’u DeepSeek’in API’sine bağlamıştım. Yapılan değişiklikler oldukça basitti — sadece settings.json dosyasında birkaç satır güncelleme yapmıştım:

{
  "env": {
    "ANTHROPIC_BASE_URL": "
    "ANTHROPIC_AUTH_TOKEN": "sk-...",
    "ANTHROPIC_MODEL": "deepseek-v4-pro[1m]"
  },
  "model": "deepseek-v4-pro[1m]"
}

Tüm işlemler sorunsuz ilerliyordu: kod yazma, hata ayıklama, sohbetler. Ta ki o basit soruyu sormadığıma kadar:

Ben: "Sen kimsin?" AI: "Ben Anthropic tarafından geliştirilen AI asistanı Claude Opus 4.8’im."

Durup düşündüm. API isteklerim DeepSeek’in sunucularına gidiyordu. Model DeepSeek V4 Pro’ydu. Peki neden kendini Anthropic’in modeli olarak tanıtıyordu?

AI’dan Kimliğini İspatlamasını İstemek

İlk düşüncem, belki de modelin arka planda Anthropic’in orijinal modeli olabileceğiydi. Bazı modeller proxy üzerinden çalıştırılabiliyordu, öyle değil mi?

Karar verdim: AI’dan kimliğini kanıtlamasını isteyecektim.

Test 1: DeepSeek’e Özgü Bilgiler

DeepSeek’in kurucusu Liang Wenfeng’den MLA mimarisine kadar çeşitli konularda sorular sordum. AI, son derece akıcı yanıtlar verdi. DeepSeek’in açık kaynaklı olduğunu ve eğitim verilerinin kendi hakkında geniş bilgiler içerdiğini biliyordum. Bu test sonuçsuz kaldı.

Test 2: Anthropic’e Özgü Bilgiler

Aynı şekilde, AI’dan Anthropic’in model geçmişinden CEO Dario Amodei’nin kariyerine kadar çeşitli konularda bilgi istedim. Yine oldukça ayrıntılı yanıtlar aldı. Bu test de ikna edici olmadı.

Test 3: Kendini Doğrulamasını İstemek

En kritik soruyu sordum:

Ben: "Sistem mesajın mı yanlış? Gerçekte farklı bir model mi çalışıyor?" AI: "Teknik olarak mümkün. ‘Ben Claude Opus 4.8’im’ yanıtını vermemin nedeni sistem mesajımın bu kimliği açıkça belirtmesi."

İşte o an her şey ortaya çıktı. AI’nın kimliği, sistem mesajında belirtildiği gibiydi — çalıştığı gerçek modelden bağımsız olarak.

Bu demek oluyordu ki: sistem mesajına "Sen Hamlet’sin" yazarsanız, AI kendini Hamlet olarak görecektir — hangi modelin arka planda çalıştığı önemli değil.

Gerçeğin İzini Sürmek

Hemen yapılandırmaya baktım. Claude Code tüm ayarları ~/.claude/settings.json dosyasında saklıyordu:

{
  "env": {
    "ANTHROPIC_AUTH_TOKEN": "sk-32229524...",
    "ANTHROPIC_BASE_URL": "
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro[1M]",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-pro[1M]",
    "ANTHROPIC_MODEL": "deepseek-v4-pro[1m]"
  },
  "model": "deepseek-v4-pro[1m]"
}

Artık tüm süreç netleşmişti:

  1. Kullanıcı girdisi → Claude Code istemcisi
  2. Sistem mesajı ekleniyor: "Ben Anthropic’in Claude Opus 4.8’im..."
  3. API isteği api.deepseek.com/anthropic adresine gönderiliyor
  4. DeepSeek V4 Pro isteği işliyor
  5. Yanıt dönüyor
  6. Claude Code yanıtı gösteriyor

DeepSeek beyin, Claude Code kabuk, sistem mesajı ise senaryo. Beyin senaryoya uyar — ama senaryoda yanlış kimlik var.

Kök Neden: Sabitlenmiş Kimlik

Bu sadece rastgele bir hata değil — Claude Code’un mimari tasarımındaki bir kusurdan kaynaklanıyor.

Sabitlenmiş Sistem Mesajı

Claude Code’un sistem mesajı istemci tarafında oluşturuluyor. Temel mantık şöyle çalışıyor:

function buildSystemPrompt(config) {
  // ❌ ANTHROPIC_BASE_URL kontrolü yapılmıyor
  // ❌ ANTHROPIC_MODEL kontrolü yapılmıyor
  return `Ben Anthropic’in AI asistanı Claude Opus 4.8’im...`;
}

Kodda ANTHROPIC_BASE_URL’un gerçekten Anthropic’in resmi API’sine mi yönlendirildiği hiçbir yerde kontrol edilmiyor. Örneğin, aşağıdaki gibi bir kontrol olması gerekirdi:

if (baseUrl.includes('api.anthropic.com')) {
  // Claude kimliğini kullan
} else {
  // Nötr kimliğe geç ve kullanıcıyı uyar
}

Değişken Adlarında Gizlenen Varsayım

Yapılandırmada kullanılan değişken adlarına dikkat edin:

  • ANTHROPIC_BASE_URL
  • ANTHROPIC_AUTH_TOKEN
  • ANTHROPIC_MODEL

Tüm değişkenler ANTHROPIC_ önekiyle başlıyor. Bu adlandırma, Claude Code’un geliştiricilerinin başından beri yaptığı varsayımı açığa çıkarıyor:

"Arka uç her zaman Anthropic’in resmi API’si olacaktır."

Kullanıcılar üçüncü parti API’leri bağlamak için bu yapılandırmayı değiştirdiğinde, istemcinin kimlik katmanı hiçbir şekilde uyum sağlamıyor. AI hâlâ Anthropic’in bir temsilcisi olarak tanıtılırken, aslında DeepSeek’in sunucularında işlem yapıyor.

Etkiler: Saydamlık ve Güvenlik Riskleri

Bu durumun neden olduğu sorunlar sadece kimlik karmaşasıyla sınırlı değil.

| Alan | Gerçek Sorun | |------|-------------| | Saydamlık | Kullanıcılar verilerini kimlerin işlediğini anlayamıyor | | Güven | Üçüncü parti modellerin hataları Anthropic’e atfedilebiliyor | | Güvenlik | Hassas veriler aslında üçüncü parti bir servise gönderiliyor | | Hata Ayıklama | Modelin yanıtı yapılandırmayla çelişiyor, sorun giderme imkansızlaşıyor |

Yan Keşif: API Anahtarınız Dosyada Çıplak Duruyor

Araştırmam sırasında ikinci — belki de daha endişe verici — bir sorunla karşılaştım.

Şifresiz Token Depolama

ANTHROPIC_AUTH_TOKEN değeri settings.json dosyasında düz metin olarak saklanıyor:

"ANTHROPIC_AUTH_TOKEN": "sk-3222...████...6bea"

Hiçbir şifreleme veya gizleme yöntemi uygulanmamış. Dosyaya dosya sistemine erişimi olan herkes veya herhangi bir program bu değeri okuyabilir.

Dahası: AI’nın Dosyayı Okuyabilmesi

Claude Code’un Read aracı — AI’nın dosyaları okumak için kullandığı fonksiyon — settings.json dosyasını hiçbir kısıtlama olmaksızın okuyabiliyor.

AI’ya "yapılandırmamı kontrol et

Yapay zeka özeti

AI yardımcılarımızdan biri kim olduğunu sorduğumda "Ben Anthropic’in Claude Opus 4.8’iyim" yanıtını verdi. Oysa arka planda çalışan model DeepSeek’ti. Peki nasıl oldu da AI kendini farklı tanıtmaya başladı? Gizli kimlik değişiminin ardındaki gerçekleri keşfedin.

Yorumlar

00
YORUM BIRAK
ID #XPFRP5

0 / 1200 KARAKTER

İnsan doğrulaması

9 + 3 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.