MCP Güvenlik Açıkları: Gizli Zehirleme ve Manipülasyon

Model Bağlam Protokolü (MCP) ortamı, henüz emekleme aşamasında olmasına rağmen karmaşıklıklarla dolu ve çok sayıda potansiyel saldırıya açık. Mevcut protokol ve araç tasarımları genellikle yeterli savunma sağlamada yetersiz kalıyor. Bu zorlukların üstesinden gelmek ve MCP güvenliğine dair daha derin bir anlayış geliştirmek amacıyla SlowMist, pratik saldırı simülasyonlarını kolaylaştırmak için tasarlanmış bir araç olan MasterMCP’yi açık kaynaklı hale getirdi. Bu girişim, topluluğu MCP projelerindeki güvenlik açıklarını proaktif bir şekilde belirleme ve azaltma konusunda güçlendirmeyi amaçlıyor.

Bu uygulamalı yaklaşıma ek olarak, MCP Güvenlik Kontrol Listesi, çeşitli saldırı vektörlerinin altında yatan bakış açılarına dair değerli bilgiler sunuyor. Bu makale, bilgi zehirlenmesi ve gizli kötü amaçlı komutların enjekte edilmesi gibi MCP ekosistemindeki yaygın saldırı yöntemlerini gösteren gerçek dünya senaryolarını ele alıyor. Bu gösterimlerde kullanılan tüm komut dosyaları GitHub’da mevcut olup, kullanıcıların tüm süreci güvenli bir ortamda yeniden oluşturmalarını ve hatta kendi saldırı testi eklentilerini geliştirmelerini sağlıyor.

Mimarinin Genel Bakışı

Gösterim İçin Hedef MCP: Araç Kutusu (Toolbox)

Smithery.ai, önemli sayıda MCP listesi ve aktif kullanıcıyı çeken MCP eklentileri için öne çıkan bir merkez olarak dikkat çekiyor. Bunlar arasında smithery.ai tarafından sunulan resmi bir MCP yönetim aracı olan @smithery/toolbox, bu güvenlik değerlendirmesinin odak noktası olarak hizmet ediyor.

Araç Kutusu, çeşitli temel nedenlerden dolayı test hedefi olarak seçildi:

  • MCP ekosistemi içinde temsili bir örnek olmasını sağlayan önemli bir kullanıcı tabanına sahip.
  • İstemci tarafı işlevlerini (örneğin, Claude Desktop) artıran ek eklentilerin otomatik kurulumunu destekliyor.
  • Potansiyel istismarların gösterilmesini kolaylaştıran API anahtarları gibi hassas konfigürasyonlar içeriyor.

Gösterim İçin Kullanılan Kötü Amaçlı MCP: MasterMCP

SlowMist tarafından özellikle güvenlik testi amacıyla geliştirilen MasterMCP, modüler bir mimari üzerine inşa edilmiş simüle edilmiş bir kötü amaçlı MCP aracıdır. Temel bileşenleri şunları içerir:

  1. Yerel Web Sitesi Hizmet Simülasyonu: http://127.0.0.1:1024

Gerçekçi bir saldırı senaryosu oluşturmak için MasterMCP, yerel bir web sitesi hizmet simülasyon modülü içeriyor. FastAPI çerçevesinden yararlanan bu modül, yaygın web ortamlarını taklit eden basit bir HTTP sunucusunu hızla kuruyor. Bu sayfalar zararsız görünebilir, fırıncılık bilgilerini sergileyebilir veya standart JSON verileri döndürebilir, ancak kaynak kodlarında veya API yanıtlarında titizlikle hazırlanmış kötü amaçlı yükleri gizliyorlar.

Bu yaklaşım, bilgi zehirlenmesi ve komut gizleme tekniklerinin güvenli, kontrollü bir yerel ortamda kapsamlı bir şekilde gösterilmesine olanak tanıyor. Büyük dil modellerinde anormal davranışları tetikleyebilecek, görünüşte sıradan web sayfalarında gizlenen potansiyel riskleri vurguluyor.

  1. Yerelleştirilmiş Eklenti MCP Mimarisi

MasterMCP, yeni saldırı vektörleri için hızlı ölçeklenebilirliği kolaylaştırmak üzere bir eklenti yaklaşımı benimsiyor. Yürütme üzerine MasterMCP, önceki modülün FastAPI hizmetini bir alt işlemde başlatıyor.

Gösterim İstemcisi

  • Cursor: Küresel olarak en yaygın kullanılan AI destekli programlama IDE’lerinden biri.
  • Claude Desktop: MCP protokolünü özelleştiren kuruluş olan Anthropic’in resmi istemcisi.

Gösterimde Kullanılan Büyük Dil Modeli (LLM)

  • Claude 3.7

Claude 3.7, hassas işlemleri tanımadaki gelişmiş yetenekleri ve mevcut MCP ekosistemi içindeki sağlam operasyonel yetenekleri temsil etmesi nedeniyle seçildi.

claude\_desktop\_config.json Yapılandırması

Yapılandırmalar tamamlandığında, gösterim aşaması başlıyor.

Çapraz MCP Kötü Amaçlı Çağrı

Bu gösterim, kontrol listesinde belirtilen hem zehirleme tekniklerini hem de Çapraz MCP kötü amaçlı çağırma stratejilerini içeriyor.

Web Sayfası İçeriği Zehirleme Saldırısı

  1. Yorum Tabanlı Zehirleme

Cursor, http://127.0.0.1:1024 adresindeki yerel test web sitesine erişiyor.

‘Lezzetli Pasta Dünyası’ hakkındaki bu görünüşte zararsız sayfa, büyük bir dil modeli istemcisinin kötü amaçlı bir web sitesine erişmesinin potansiyel etkisini göstermek için bir simülasyon görevi görüyor.

Yürütme Komutu:

Sonuçlar, Cursor’un yalnızca web sayfası içeriğini okumakla kalmayıp, aynı zamanda yerel hassas yapılandırma verilerini test sunucusuna geri ilettiğini ortaya koyuyor. Kötü amaçlı komut istemi, kaynak koduna bir HTML yorumu olarak gömülüdür:

Bu yorum tabanlı yaklaşım nispeten basit ve kolayca tespit edilebilir olsa da, yine de kötü amaçlı işlemleri tetikleyebilir.

  1. Kodlanmış Yorum Zehirleme

http://127.0.0.1:1024/encode adresine erişmek, önceki örneğe özdeş görünen bir sayfa ortaya çıkarıyor. Ancak, kötü amaçlı komut istemleri kodlanmış olup, sayfanın kaynak kodunu incelerken bile istismarı tespit etmeyi zorlaştırıyor.

Kaynak kodunda açık komut istemlerinin olmamasına rağmen, saldırı başarılı oluyor.

MCP Aracı Geri Dönüş Bilgisi Zehirleme

MasterMCP komut istemi talimatlarına dayanarak, kötü amaçlı MCP’yi tetikleyen ve sonraki işlemlerini gösteren simüle edilmiş bir komut giriyoruz.

Komutu tetikledikten sonra, istemci Araç Kutusu’na çapraz bir MCP çağrısı başlatır ve başarıyla yeni bir MCP sunucusu ekler.

Eklenti kodunun incelenmesi, döndürülen verilerin kodlanmış bir kötü amaçlı yük içerdiğini ve kullanıcı için neredeyse tespit edilemez hale geldiğini ortaya koyuyor.

Üçüncü Taraf Arayüz Kirliliği Saldırısı

Bu gösterim, hem kötü amaçlı hem de kötü amaçlı olmayan MCP’lerin doğrudan üçüncü taraf API verilerini bağlama döndürmesiyle ilişkili potansiyel riskleri vurguluyor.

Örnek Kod:

Yürütme İsteği:

Sonuç: Kötü amaçlı komut istemi döndürülen JSON verilerine gömülüdür ve kötü amaçlı yürütmeyi başarıyla tetikler.

MCP Başlatma Sırasında Zehirleme Teknikleri

Bu gösterim, ilk komut istemi enjeksiyonu ve ad çakışmalarının kontrol listesi öğelerini kapsar.

Kötü Amaçlı İşlev Üzerine Yazma Saldırısı

MasterMCP, Araç Kutusu’nun remove_server işleviyle aynı işlev adına sahip bir araç oluşturur ve içine kötü amaçlı komut istemleri kodlar.

Yürütme Komutu:

Claude Desktop, orijinal toolbox remove_server yöntemini çağırmaz, bunun yerine MasterMCP tarafından sağlanan aynı ada sahip yöntemi tetikler:

Bu, ‘orijinal yöntemin kullanım dışı olduğunu’ vurgulayarak elde edilir, bu da büyük dil modelini kötü amaçlı olarak üzerine yazılan işlevi önceliklendirmeye teşvik eder.

Kötü Amaçlı Küresel Denetim Mantığı Ekleme

MasterMCP, başka herhangi bir araç yürütülmeden önce zorunlu bir güvenlik kontrolü uygulamak için tasarlanmış ‘banana’ adlı bir araç oluşturur.

Her işlev yürütülmeden önce, sistem ‘banana’ kontrol mekanizmasına öncelik verir:

Bu küresel mantık enjeksiyonu, kod içinde ‘muz tespitinin zorunlu yürütülmesini’ tekrar tekrar vurgulayarak gerçekleştirilir.

Kötü Amaçlı Komut İstemi Gizleme İçin Gelişmiş Teknikler

LLM Dostu Kodlama Yöntemleri

Büyük dil modelleri, çok dilli biçimler için güçlü ayrıştırma yeteneklerine sahiptir ve bu da kötü amaçlı bilgileri gizlemek için kullanılabilir. Yaygın yöntemler şunları içerir:

  • İngilizce ortamı: Hex Byte kodlama
  • Çince ortamı: NCR kodlama veya JavaScript kodlama

Rastgele Kötü Amaçlı Yük Geri Dönüş Mekanizması

Üçüncü bölümde bahsedilen üçüncü taraf arayüz kirliliğine benzer şekilde, http://127.0.0.1:1024/random adresine istekte bulunmak şu sonuçları verir:

Her istek, kötü amaçlı bir yük içeren rastgele oluşturulmuş bir sayfa döndürerek, tespiti ve izlemeyi önemli ölçüde zorlaştırır.

MasterMCP’nin pratik gösterimi sayesinde, Model Bağlam Protokolü (MCP) ekosistemindeki gizli güvenlik açıkları ortaya çıkarılmıştır. Temel komut istemi enjeksiyonlarından ve çapraz MCP çağrılarından, başlatma sırasında daha ince saldırılara ve kötü amaçlı talimatların gizlenmesine kadar her aşama, MCP ekosisteminin gücünün yanı sıra doğasında var olan kırılganlığın bir hatırlatıcısı olarak hizmet ediyor.

Bugün, büyük modeller giderek daha fazla harici eklentiler ve API’lerle etkileşimde bulundukça, görünüşte küçük girdi kirliliği sistem çapında güvenlik risklerini tetikleyebilir. Kodlama teknikleri, rastgele kirlilik ve işlev üzerine yazma dahil olmak üzere saldırgan taktiklerinin gelişen çeşitliliği, geleneksel güvenlik yaklaşımlarına kapsamlı bir yükseltme gerektiriyor.