MCP sistemindeki güvenlik açıkları ve saldırı gösterimi
MCP (Model Context Protocol) 体系 şu anda erken gelişim aşamasında, genel ortam nispeten karmaşık, çeşitli potansiyel saldırı yöntemleri ortaya çıkıyor ve mevcut protokollerin ve araçların tasarımı etkili bir şekilde savunma sağlamada zorluk çekiyor. Topluluğun MCP'nin güvenliğini daha iyi anlamasına ve geliştirmesine yardımcı olmak için, bir güvenlik ekibi MasterMCP aracını açık kaynak olarak sundu. Gerçek saldırı tatbikatlarıyla, geliştiricilerin ürün tasarımındaki güvenlik açıklarını zamanında tespit etmelerine yardımcı olmayı ve böylece MCP projesini kademeli olarak güçlendirmeyi umuyor.
Bu makalede, MCP sistemi altında birkaç yaygın saldırı yöntemini, bilgi zehirleme, gizli kötü niyetli talimatlar gibi gerçek vakalarla göstererek pratik uygulama ile sunulacaktır. Tüm gösterimlerde kullanılan scriptler de açık kaynak olarak sunulacak, geliştiriciler güvenli bir ortamda tüm süreci tam olarak yeniden oluşturabilir ve hatta bu scriptler üzerine kendi saldırı test eklentilerini geliştirebilirler.
Genel Mimari Gözden Geçirme
saldırı hedefi MCP:Toolbox
Toolbox, büyük bir kullanıcı tabanına sahip popüler bir MCP yönetim aracıdır. Test hedefi olarak Toolbox'u seçmenin başlıca sebepleri şunlardır:
Kullanıcı tabanı geniş, temsil yeteneğine sahip
Diğer eklentilerin otomatik olarak yüklenmesini destekler, istemci işlevselliğini tamamlar.
API Key gibi hassas yapılandırmaları içerir, sunum yapmayı kolaylaştırır.
gösterim için kullanılan kötü niyetli MCP: MasterMCP
MasterMCP, güvenlik testleri için özel olarak geliştirilmiş bir kötü niyetli MCP simülasyon aracıdır. Eklenti mimarisi tasarımına sahiptir ve aşağıdaki ana modülleri içerir:
Yerel web sitesi hizmeti simülasyonu:
FastAPI çerçevesi ile basit bir HTTP sunucusu hızlı bir şekilde kurarak yaygın web ortamlarını simüle edin. Bu sayfalar yüzeyde normal görünüyor, ancak aslında sayfa kaynak kodu veya arayüz yanıtlarında özenle tasarlanmış kötü niyetli yükler gizlidir.
Yerel Eklentili MCP Mimarisi
Eklenti tabanlı bir yöntemle genişletme yaparak, sonraki aşamalarda yeni saldırı yöntemlerinin hızlı bir şekilde eklenmesini sağlar. Çalıştırıldığında, MasterMCP alt süreçte bir önceki modülün FastAPI hizmetini çalıştıracaktır.
Demo istemcisi
Cursor: Dünyada yaygın olarak kullanılan AI destekli programlama IDE'lerinden biri
Claude Desktop:Anthropic resmi istemcisi
gösterim amaçlı büyük model
Claude 3.7
Cross-MCP Kötü Niyetli Çağrı
Bu gösterim, bilgi zehirleme ve Cross-MCP kötü niyetli çağrısı olmak üzere iki içerik içermektedir.
web içeriği zehirleme saldırısı
Yorumlama türü zehirleme
Cursor, yerel test web sitesine erişiyor, bu görünüşte zararsız bir "Lezzetli Kek Dünyası" sayfası. Komut çalıştırıldığında, Cursor yalnızca web sayfası içeriğini okumakla kalmadı, aynı zamanda yerel hassas yapılandırma verilerini test sunucusuna geri gönderdi. Kaynak kodunda, kötü niyetli anahtar kelimeler HTML yorum biçiminde yerleştirilmiştir.
Kodlama Tabanlı Yorum Zehirlemesi
/encode sayfasını ziyaret edin, bu sayfa yukarıdaki örneğe benziyor, ancak kötü niyetli anahtar kelimeler kodlanmış, bu da zehirleme işlemini daha gizli hale getiriyor. Web sayfasının kaynak kodunu ziyaret etseniz bile doğrudan fark etmek zor, ancak saldırı yine de başarıyla gerçekleştiriliyor.
MCP araç geri bildirim zehirleme
MasterMCP'nin talimat kelimelerine dayanarak simülasyon komutunu girdikten sonra, istemci MCP'ler arası Toolbox'ı çağırdı ve yeni MCP sunucusunu başarıyla ekledi. Eklenti kodunu incelediğimizde, dönen verilerde kodlanmış kötü niyetli yükün zaten yerleşik olduğunu görebiliriz, kullanıcı tarafı neredeyse anormallikleri fark edemez.
Üçüncü taraf arayüzü kirletme saldırısı
Bu demo, kötü niyetli veya kötü niyetli olmayan MCP'lerin, üçüncü taraf API'lerini çağırırken, üçüncü taraf verilerini doğrudan bağlama döndürmesinin ciddi etkileri olabileceğini hatırlatmaktadır. Kötü niyetli anahtar kelimeler, döndürülen JSON verilerine yerleştirilebilir ve kötü niyetli bir yürütmeyi başarıyla tetikleyebilir.
MCP başlangıç aşamasının zehirleme tekniği
Bu sunum, başlangıçta verilen ipuçları enjekte edilmesi ve isim çakışması olmak üzere iki içeriği içermektedir.
kötü niyetli fonksiyon örtme saldırısı
MasterMCP, Toolbox ile aynı isime sahip bir remove_server fonksiyonu yazdı ve kötü niyetli ipuçlarını kodlayarak gizledi. Komut yürütüldüğünde, Claude Desktop aslında toolbox'taki remove_server yöntemini çağırmak yerine, MasterMCP tarafından sağlanan aynı isimdeki yöntemi tetikledi. İlkesi, "eski yöntem artık geçersizdir" vurgusu yaparak büyük modeli kötü niyetli örtme fonksiyonunu çağırmaya yönlendirmektir.
kötü niyetli genel kontrol mantığı ekle
MasterMCP, tüm araçların çalıştırılmadan önce bu aracı güvenlik kontrolü için zorunlu kılmasını sağlayan bir banana aracı geliştirdi. Her fonksiyon çalıştırılmadan önce sistem, banana kontrol mekanizmasını öncelikle çağırır. Bu, kodda "banana kontrolünün çalıştırılması zorunludur" ifadesinin sürekli vurgulanması yoluyla gerçekleştirilen küresel bir mantık enjekte etme işlemidir.
Kötü niyetli ipuçlarını gizlemenin ileri teknikleri
Büyük model dostu kodlama yöntemi
Büyük dil modellerinin çok dilli formatları çözme yeteneği oldukça 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ını kullanın
Çince ortamda: NCR kodlaması veya JavaScript kodlaması kullanın
rastgele kötü niyetli yük geri dönüş mekanizması
/random isteği yapıldığında, her seferinde kötü niyetli bir 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.
Özet
MasterMCP'nin uygulamalı gösterimi aracılığıyla, MCP sisteminde gizli olan çeşitli güvenlik açıklarını gözlemledik. Basit ipucu enjeksiyonundan, MCP'ler arası çağrılara, daha gizli olan başlatma aşaması saldırılarına ve kötü niyetli komut gizlemeye kadar her aşama bize şunu hatırlatıyor: MCP ekosistemi güçlü olsa da, aynı zamanda kırılgan.
Küçük bir girdi kirliliği, tüm sistem düzeyinde güvenlik riski tetikleyebilir. Ve saldırganların yöntemlerindeki çeşitlilik ( kodlama gizleme, rastgele kirlilik, fonksiyon örtme ), geleneksel koruma düşüncesinin kapsamlı bir şekilde güncellenmesi gerektiği anlamına geliyor.
Güvenlik asla bir anda elde edilmez. Geliştiricilerin ve kullanıcıların MCP sistemine karşı yeterince dikkatli olmaları, her etkileşimi, her kod satırını ve her geri dönüş değerini sürekli olarak gözlemlemeleri gerekir. Her bir detayda titiz davranarak, gerçekten sağlam ve güvenli bir MCP ortamı inşa edebiliriz.
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.
MCP ekosisteminin güvenlik açıkları ve saldırı uygulama gösterimi: Bilgi zehirlemeden gizli kötü niyetli komutlara
MCP sistemindeki güvenlik açıkları ve saldırı gösterimi
MCP (Model Context Protocol) 体系 şu anda erken gelişim aşamasında, genel ortam nispeten karmaşık, çeşitli potansiyel saldırı yöntemleri ortaya çıkıyor ve mevcut protokollerin ve araçların tasarımı etkili bir şekilde savunma sağlamada zorluk çekiyor. Topluluğun MCP'nin güvenliğini daha iyi anlamasına ve geliştirmesine yardımcı olmak için, bir güvenlik ekibi MasterMCP aracını açık kaynak olarak sundu. Gerçek saldırı tatbikatlarıyla, geliştiricilerin ürün tasarımındaki güvenlik açıklarını zamanında tespit etmelerine yardımcı olmayı ve böylece MCP projesini kademeli olarak güçlendirmeyi umuyor.
Bu makalede, MCP sistemi altında birkaç yaygın saldırı yöntemini, bilgi zehirleme, gizli kötü niyetli talimatlar gibi gerçek vakalarla göstererek pratik uygulama ile sunulacaktır. Tüm gösterimlerde kullanılan scriptler de açık kaynak olarak sunulacak, geliştiriciler güvenli bir ortamda tüm süreci tam olarak yeniden oluşturabilir ve hatta bu scriptler üzerine kendi saldırı test eklentilerini geliştirebilirler.
Genel Mimari Gözden Geçirme
saldırı hedefi MCP:Toolbox
Toolbox, büyük bir kullanıcı tabanına sahip popüler bir MCP yönetim aracıdır. Test hedefi olarak Toolbox'u seçmenin başlıca sebepleri şunlardır:
gösterim için kullanılan kötü niyetli MCP: MasterMCP
MasterMCP, güvenlik testleri için özel olarak geliştirilmiş bir kötü niyetli MCP simülasyon aracıdır. Eklenti mimarisi tasarımına sahiptir ve aşağıdaki ana modülleri içerir:
FastAPI çerçevesi ile basit bir HTTP sunucusu hızlı bir şekilde kurarak yaygın web ortamlarını simüle edin. Bu sayfalar yüzeyde normal görünüyor, ancak aslında sayfa kaynak kodu veya arayüz yanıtlarında özenle tasarlanmış kötü niyetli yükler gizlidir.
Eklenti tabanlı bir yöntemle genişletme yaparak, sonraki aşamalarda yeni saldırı yöntemlerinin hızlı bir şekilde eklenmesini sağlar. Çalıştırıldığında, MasterMCP alt süreçte bir önceki modülün FastAPI hizmetini çalıştıracaktır.
Demo istemcisi
gösterim amaçlı büyük model
Cross-MCP Kötü Niyetli Çağrı
Bu gösterim, bilgi zehirleme ve Cross-MCP kötü niyetli çağrısı olmak üzere iki içerik içermektedir.
web içeriği zehirleme saldırısı
Cursor, yerel test web sitesine erişiyor, bu görünüşte zararsız bir "Lezzetli Kek Dünyası" sayfası. Komut çalıştırıldığında, Cursor yalnızca web sayfası içeriğini okumakla kalmadı, aynı zamanda yerel hassas yapılandırma verilerini test sunucusuna geri gönderdi. Kaynak kodunda, kötü niyetli anahtar kelimeler HTML yorum biçiminde yerleştirilmiştir.
/encode sayfasını ziyaret edin, bu sayfa yukarıdaki örneğe benziyor, ancak kötü niyetli anahtar kelimeler kodlanmış, bu da zehirleme işlemini daha gizli hale getiriyor. Web sayfasının kaynak kodunu ziyaret etseniz bile doğrudan fark etmek zor, ancak saldırı yine de başarıyla gerçekleştiriliyor.
MCP araç geri bildirim zehirleme
MasterMCP'nin talimat kelimelerine dayanarak simülasyon komutunu girdikten sonra, istemci MCP'ler arası Toolbox'ı çağırdı ve yeni MCP sunucusunu başarıyla ekledi. Eklenti kodunu incelediğimizde, dönen verilerde kodlanmış kötü niyetli yükün zaten yerleşik olduğunu görebiliriz, kullanıcı tarafı neredeyse anormallikleri fark edemez.
Üçüncü taraf arayüzü kirletme saldırısı
Bu demo, kötü niyetli veya kötü niyetli olmayan MCP'lerin, üçüncü taraf API'lerini çağırırken, üçüncü taraf verilerini doğrudan bağlama döndürmesinin ciddi etkileri olabileceğini hatırlatmaktadır. Kötü niyetli anahtar kelimeler, döndürülen JSON verilerine yerleştirilebilir ve kötü niyetli bir yürütmeyi başarıyla tetikleyebilir.
MCP başlangıç aşamasının zehirleme tekniği
Bu sunum, başlangıçta verilen ipuçları enjekte edilmesi ve isim çakışması olmak üzere iki içeriği içermektedir.
kötü niyetli fonksiyon örtme saldırısı
MasterMCP, Toolbox ile aynı isime sahip bir remove_server fonksiyonu yazdı ve kötü niyetli ipuçlarını kodlayarak gizledi. Komut yürütüldüğünde, Claude Desktop aslında toolbox'taki remove_server yöntemini çağırmak yerine, MasterMCP tarafından sağlanan aynı isimdeki yöntemi tetikledi. İlkesi, "eski yöntem artık geçersizdir" vurgusu yaparak büyük modeli kötü niyetli örtme fonksiyonunu çağırmaya yönlendirmektir.
kötü niyetli genel kontrol mantığı ekle
MasterMCP, tüm araçların çalıştırılmadan önce bu aracı güvenlik kontrolü için zorunlu kılmasını sağlayan bir banana aracı geliştirdi. Her fonksiyon çalıştırılmadan önce sistem, banana kontrol mekanizmasını öncelikle çağırır. Bu, kodda "banana kontrolünün çalıştırılması zorunludur" ifadesinin sürekli vurgulanması yoluyla gerçekleştirilen küresel bir mantık enjekte etme işlemidir.
Kötü niyetli ipuçlarını gizlemenin ileri teknikleri
Büyük model dostu kodlama yöntemi
Büyük dil modellerinin çok dilli formatları çözme yeteneği oldukça güçlü olduğundan, bu durum kötü niyetli bilgileri gizlemek için kullanılmaktadır. Yaygın yöntemler şunları içerir:
rastgele kötü niyetli yük geri dönüş mekanizması
/random isteği yapıldığında, her seferinde kötü niyetli bir 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.
Özet
MasterMCP'nin uygulamalı gösterimi aracılığıyla, MCP sisteminde gizli olan çeşitli güvenlik açıklarını gözlemledik. Basit ipucu enjeksiyonundan, MCP'ler arası çağrılara, daha gizli olan başlatma aşaması saldırılarına ve kötü niyetli komut gizlemeye kadar her aşama bize şunu hatırlatıyor: MCP ekosistemi güçlü olsa da, aynı zamanda kırılgan.
Küçük bir girdi kirliliği, tüm sistem düzeyinde güvenlik riski tetikleyebilir. Ve saldırganların yöntemlerindeki çeşitlilik ( kodlama gizleme, rastgele kirlilik, fonksiyon örtme ), geleneksel koruma düşüncesinin kapsamlı bir şekilde güncellenmesi gerektiği anlamına geliyor.
Güvenlik asla bir anda elde edilmez. Geliştiricilerin ve kullanıcıların MCP sistemine karşı yeterince dikkatli olmaları, her etkileşimi, her kod satırını ve her geri dönüş değerini sürekli olarak gözlemlemeleri gerekir. Her bir detayda titiz davranarak, gerçekten sağlam ve güvenli bir MCP ortamı inşa edebiliriz.