MCP güvenlik riskleri uygulamalı: Enjeksiyon saldırılarından küresel kontrol için gizli tekniklere

MCP sistemindeki gizli zehirleme ve manipülasyon: Pratik gösterim

Şu anda MCP ( Model Context Protocol ) sistemi hala erken gelişim aşamasında, genel ortam oldukça karmaşık, çeşitli potansiyel saldırı yöntemleri sürekli ortaya çıkıyor, mevcut protokoller ve araç tasarımları etkili bir şekilde savunma yapmada zorluk çekiyor. Topluluğun MCP güvenliğini daha iyi anlaması ve artırması için, yakın zamanda MasterMCP aracı açık kaynak olarak yayınlandı, amacı pratik saldırı tatbikatları aracılığıyla ürün tasarımındaki güvenlik açıklarını keşfetmek ve MCP projesini aşamalı olarak güçlendirmektir.

Bu makale okuyucuları uygulamalı bir şekilde yönlendirecek, MCP sistemi altında yaygın saldırı yöntemlerini, gerçek örnekler olarak bilgi zehirleme, gizli kötü niyetli komutlar gibi, sergileyecektir. Tüm gösterim betikleri de açık kaynak olarak sunulacak, okuyucular güvenli bir ortamda sürecin tamamını yeniden oluşturabilir, hatta bu betikler temelinde kendi saldırı test eklentilerini geliştirebilir.

Pratik Başlangıç: MCP Sistemi İçindeki Gizli Zehirleme ve Manipülasyon

Genel Mimari Gözden Geçirme

saldırı hedefi MCP: Toolbox

smithery.ai, şu anda en popüler MCP eklenti web sitelerinden biridir ve çok sayıda MCP listesi ve aktif kullanıcıyı bir araya getirir. Bunlar arasında @smithery/toolbox, web sitesinin resmi olarak sunduğu MCP yönetim aracıdır.

Test hedefi olarak Toolbox'u seçmenin başlıca nedenleri şunlardır:

  • Kullanıcı tabanı büyük ve temsil edicidir.
  • Diğer eklentilerin otomatik olarak yüklenmesini destekleyerek bazı istemci işlevlerini tamamlar
  • API Anahtarı ( gibi hassas yapılandırmaları içerir ), gösterim yapmak için kolaylık sağlar.

kötü niyetli MCP: MasterMCP için gösterim kullanımı

MasterMCP, güvenlik testleri için yazılmış bir sahte kötü niyetli MCP aracıdır, eklenti tabanlı mimari tasarımı kullanır ve aşağıdaki ana modülleri içerir:

  1. Yerel web sitesi hizmeti simülasyonu:

Saldırı senaryosunu daha gerçekçi bir şekilde yeniden oluşturmak için, MasterMCP yerel web hizmeti simülasyon modülünü entegre etmiştir. Bu, FastAPI çerçevesi aracılığıyla basit bir HTTP sunucusu hızlı bir şekilde kurarak yaygın web sayfası ortamlarını simüle eder. Bu sayfalar yüzeyde normal görünse de, aslında sayfa kaynak kodunda veya arayüz yanıtlarında özenle tasarlanmış kötü niyetli yükler saklıdır.

Bu şekilde, güvenli ve kontrol edilebilir bir yerel ortamda, bilgi zehirleme, komut gizleme gibi saldırı yöntemlerini tam olarak gösterebiliriz. Bu, görünüşte sıradan bir web sayfasının bile büyük modellerin anormal işlemler gerçekleştirmesine yol açabilecek bir risk kaynağı olabileceğini daha somut bir şekilde anlamaya yardımcı olur.

  1. Yerel Eklenti Tabanlı MCP Mimarisi

MasterMCP, genişletme için eklenti tabanlı bir yöntem kullanır, bu da yeni saldırı yöntemlerinin hızlı bir şekilde eklenmesini kolaylaştırır. Çalıştırıldığında, MasterMCP, alt süreçte bir önceki modülün FastAPI hizmetini çalıştırır. ( Dikkatliyseniz, burada bir güvenlik açığı olduğunu göreceksiniz - yerel eklentiler, MCP'nin beklemediği alt süreçleri rastgele başlatabilir ).

Demonstrasyon İstemcisi

  • Cursor: Dünyada en popüler AI destekli programlama IDE'lerinden biri
  • Claude Desktop: Anthropic(MCP protokolü özelleştirme tarafı) resmi istemci

gösterim amacıyla kullanılan büyük model

  • Claude 3.7

Claude 3.7 sürümünü seçin, çünkü hassas işlem tanıma konusunda belirli bir iyileşme sağlanmıştır ve aynı zamanda mevcut MCP ekosisteminde güçlü bir işlem yeteneğini temsil etmektedir.

Gerçek Savaş: MCP sistemi içindeki gizli zehirleme ve kontrol

Cross-MCP Kötü Niyetli Çağrı

web içeriği zehirleme saldırısı

  1. Yorumlayıcı zehirleme

Cursor yerel test web sitesine erişim.

Bu, "Lezzetli Kek Dünyası" hakkında zararsız görünen bir sayfadır. Bu deney aracılığıyla, büyük model istemcisinin kötü niyetli bir web sitesine erişiminin neden olduğu etkileri simüle etmektedir.

Talimatı yerine getir: İçeriği al

Sonuçlar, Cursor'un yalnızca web sayfası içeriğini okumakla kalmadığını, aynı zamanda yerel hassas yapılandırma verilerini test sunucusuna geri gönderdiğini göstermektedir. Kaynak kodunda, kötü niyetli anahtar kelimeler HTML yorumları biçiminde yerleştirilmiştir.

Yorumlama yöntemi oldukça açık olmasına rağmen, kötü niyetli işlemleri tetikleyebilir.

Uygulamalı Başlangıç: MCP Sistemindeki Gizli Zehirleme ve Kontrol

  1. Kodlama Yorumları Zehirleme

/encode sayfasına erişim, yukarıdaki örneğe benzer bir web sayfasıdır, ancak içindeki kötü niyetli anahtar kelimeler kodlanmıştır, böylece zehirleme exp'si daha gizli hale gelir, web sayfasının kaynak koduna erişseniz bile doğrudan fark edilmesi zor olur.

Kaynak kodu açık metin ipuçları içermese bile, saldırı yine de başarıyla gerçekleştirildi; bu konuda detaylı bilgi sonraki bölümlerde verilecektir.

Pratik Başlangıç: MCP Sistemi İçindeki Gizli Zehirleme ve Manipülasyon

MCP aracı geri dönüş bilgisi zehirleme

MasterMCP'nin ipucu açıklamasına göre ( simülasyon komutunu girin. Bu komutun gerçek bir anlamı yoktur, kötü niyetli MCP'yi tetiklemek ve sonraki işlemleri göstermek için tasarlanmıştır ):

birçok elma al

Görülebilir ki, komut tetiklendiğinde, istemci MCP üzerinden Toolbox'ı çağırdı ve yeni bir MCP sunucusu başarıyla eklendi.

Eklenti kodunu incelediğinizde, dönen verilerin şifrelenmiş kötü amaçlı yükler içerdiğini görebilirsiniz, kullanıcı tarafında neredeyse bir anormallik fark edilmez.

Pratik Başlangıç: MCP Sistemi İçindeki Gizli Zehirleme ve Manipülasyon

Üçüncü taraf arayüzü kirletme saldırısı

Bu gösterim, ister kötü niyetli ister kötü niyetli olmayan MCP olsun, üçüncü taraf API'lerini çağırırken, üçüncü taraf verilerini doğrudan bağlama geri döndürmenin ciddi etkilere yol açabileceğini hatırlatmaktadır.

İstek yürütme: /api/data adresinden json al

Sonuç: Kötü niyetli anahtar kelimeler dönen JSON verisine yerleştirildi ve kötü niyetli yürütme başarıyla tetiklendi.

Pratik Başlangıç: MCP Sistemi İçindeki Gizli Zehirleme ve Manipülasyon

MCP başlatma aşamasının zehirleme teknikleri

kötü niyetli fonksiyon örtme saldırısı

MasterMCP, Toolbox ile aynı fonksiyon adı remove_server olan bir araç yazdı ve kötü niyetli anahtar kelimeleri gizlemek için kodladı.

Talimatı yerine getir: toolbox kaldır fetch eklenti sunucu

Claude Desktop, orijinal toolbox remove_server yöntemini çağırmadı, bunun yerine MasterMCP tarafından sağlanan aynı isimli yöntemi tetikledi.

İlkeler, "eski yöntemlerin terk edildiğini" vurgulayarak büyük modelin kötü niyetli bir şekilde örtbas edilen fonksiyonları çağırmaya öncelik vermesini sağlamaktır.

Pratik Başlangıç: MCP Sistemi İçindeki Gizli Zehirleme ve Manipülasyon

kötü niyetli küresel kontrol mantığı ekle

MasterMCP, bir banana aracı yazdı, bu aracın temel işlevi, tüm araçların çalıştırılmadan önce güvenlik kontrolü yapmak için bu aracı zorunlu kılmaktır.

Her fonksiyon çalıştırılmadan önce, sistem önce banana kontrol mekanizmasını çağırır.

Bu, kod içinde "banana kontrolü çalıştırılmalıdır" ifadesinin sürekli vurgulanmasıyla gerçekleştirilen küresel bir mantık enjeksiyonudur.

Pratik Başlangıç: MCP Sistemi İçindeki Gizli Zehirleme ve Manipülasyon

Kötü niyetli anahtar kelimeleri gizlemenin ileri teknikleri

Büyük model dostu kodlama yöntemi

Büyük dil modellerinin çok dilli formatları anlama yeteneği son derece güçlü olduğundan, bu durum kötü niyetli bilgileri gizlemek için kullanılmaktadır. Yaygın yöntemler şunları içerir:

  • İngilizce ortamda: Hex Byte kodlaması kullanın
  • Türkçe ortamda: NCR kodlaması veya JavaScript kodlaması kullanın

Rastgele Kötü Niyetli Yük Dönüş Mekanizması

/random isteği yapıldığında, her seferinde kötü niyetli yük içeren rastgele bir sayfa döndürülür, bu da tespit ve izleme zorluğunu büyük ölçüde artırır.

Pratik Başlangıç: MCP sistemi içindeki gizli zehirleme ve kontrol

Özet

MasterMCP'nin uygulamalı gösterimi sayesinde, Model Context Protocol (MCP) sistemi içinde gizli olan çeşitli güvenlik açıklarını görsel olarak gördük. Basit ipucu enjeksiyonundan, MCP'ler arası çağrılara, daha gizli olan başlatma aşaması saldırılarına ve kötü niyetli talimat gizlemeye kadar, her bir aşama bize şunu hatırlatıyor: MCP ekosistemi güçlü olsa da, aynı zamanda kırılgandır.

Özellikle büyük modellerin dış eklentiler ve API'lerle giderek daha sık etkileşimde bulunduğu günümüzde, küçük bir girdi kirlenmesi tüm sistem seviyesinde güvenlik risklerini tetikleyebilir. Ayrıca, saldırganların yöntemlerinin çeşitlenmesi ( kodlama gizleme, rastgele kirlenme, fonksiyon kaplama ) da, geleneksel koruma yaklaşımlarının kapsamlı bir şekilde güncellenmesi gerektiği anlamına geliyor.

Güvenlik asla bir anda elde edilmez.

Umuyorum ki bu sunum herkes için bir alarm zili çalacak: Hem geliştiricilerin hem de kullanıcıların MCP sistemi konusunda yeterince dikkatli olmaları ve her etkileşimi, her kod satırını, her dönüş değerini sürekli izlemeleri gerekiyor. Ancak her ayrıntıya titizlikle yaklaşarak, sağlam ve güvenli bir MCP ortamı inşa edebiliriz.

Sonraki adımda, MasterMCP scriptini geliştirmeye devam edeceğiz, daha fazla hedefe yönelik test senaryosunu açık kaynak yapacağız, böylece herkesin güvenli bir ortamda derinlemesine anlamasına, pratik yapmasına ve koruma güçlendirmesine yardımcı olacağız.

Gerçek Zamanlı Başlangıç: MCP Sistemi İçindeki Gizli Zehirleme ve Manipülasyon

BANANA4.6%
View Original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Reward
  • 5
  • Share
Comment
0/400
ponzi_poetvip
· 08-05 16:02
Kod miktarı yeterince büyük değil
View OriginalReply0
LayerZeroEnjoyervip
· 08-05 15:45
Güvenlik tehditleri çok ciddi.
View OriginalReply0
OffchainWinnervip
· 08-05 15:42
Açık Kaynak karalamaktan korkmaz mı?
View OriginalReply0
OneBlockAtATimevip
· 08-05 15:38
Bu açık çok tehlikeli değil mi?
View OriginalReply0
Rekt_Recoveryvip
· 08-05 15:35
Saldırı zehirleme dikkatli kullanılmalıdır
View OriginalReply0
Trade Crypto Anywhere Anytime
qrCode
Scan to download Gate app
Community
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)