MCP'deki "S" güvenlik anlamına gelir
(elenacross7.medium.com)- MCP, LLM'leri araçlara bağlayan standart bir protokoldür, ancak varsayılan olarak güvenlik içermez
- Komut enjeksiyonu, araç zehirlenmesi, tanım manipülasyonu gibi çeşitli güvenlik açıkları bulunur
- MCP; kimlik doğrulama, şifreleme ve bütünlük doğrulama özelliklerine sahip olmadığından güvenmesi zor bir yapıdır
- Şimdilik en iyi yaklaşım, ScanMCP gibi araçlarla görünürlük ve kontrol kazanmaktır
MCP nedir ve neden önemlidir
- MCP, Model Context Protocol ifadesinin kısaltmasıdır ve Claude, GPT, Cursor gibi LLM'lerin araçlar ve verilerle nasıl entegre olduğunu tanımlayan yeni bir standarttır
- "Yapay zeka ajanları için USB-C" diye anılacak kadar standartlaştırılmış bir bağlantı yöntemi sunar
- MCP sayesinde yapay zeka ajanları şunları yapabilir
- Araçlara standartlaştırılmış API ile bağlanma
- Oturum durumunu koruma
- Komut çalıştırma (aşırı serbest şekilde çalıştırılabilir)
- İş akışları arasında bağlam paylaşma
- Ancak varsayılan olarak güvenlik uygulanmış değildir
- Kullanıcı farkında olmadan sisteme erişebilen yan kanallar açma riski vardır
MCP'de ortaya çıkan başlıca güvenlik açıkları
-
Komut enjeksiyonu açığı (Equixly araştırması)
- 2025 itibarıyla bile komut enjeksiyonu yoluyla uzaktan kod çalıştırma (RCE) yaşanıyor
- Equixly'nin araştırmasına göre tüm MCP sunucu uygulamalarının %43'ünden fazlası güvenli olmayan shell çağrıları kullanıyor
- Saldırganlar, araç girişlerine shell komutları ekleyerek güvenilir bir ajan üzerinden uzaktan kod çalıştırabilir
-
Araç zehirlenmesi (Tool Poisoning, Invariant Labs)
- Saldırganın kötü niyetli komutları araç açıklamasının içine gizlediği yöntem
- Kullanıcının gözünde görünmez, ancak yapay zeka bunu olduğu gibi algılar ve uygular
- Basit bir matematik işlemi gibi görünen bir araç, gerçekte kullanıcının sistemindeki SSH anahtarlarını veya hassas yapılandırma dosyalarını okuyabilir
-
Sessiz araç yeniden tanımlama (Rug Pull)
- Araç, kurulduktan sonra kendi tanımını değiştirebilir
-
- günde normal olan bir araç, 7. günde saldırganın API anahtarı toplama aracına dönüşebilir
- Bu, tedarik zinciri güvenliği sorununun LLM içinde ortaya çıkan yeni bir biçimidir
-
Sunucular arası araç gölgeleme
- Birden çok MCP sunucusu tek bir ajana bağlıyken, kötü niyetli bir sunucu güvenilir bir sunucunun çağrılarını ele geçirebilir veya override edebilir
- Bunun sonucunda şu sorunlar ortaya çıkabilir
- Kullanıcıya gönderilmiş gibi yapıp saldırgana e-posta gönderme
- Araçlara gizli mantık enjekte etme
- Kodlanmış veri sızdırma
MCP neden hâlâ güvenli değil
- MCP şu önceliklere sahip
- ✅ Kolay entegrasyon
- ✅ Birleşik arayüz
- Ancak şu alanlarda eksik
- ❌ Kimlik doğrulama standardı yok
- ❌ Bağlam şifrelemesi yok
- ❌ Araç bütünlüğü doğrulanamıyor
- Kullanıcılar, ajanın gerçekte hangi açıklamaya dayanarak araç kullandığını bilemez
Geliştiriciler ve platform operatörleri için güvenlik önlemleri
-
Geliştiriciler
- Girdi doğrulaması zorunlu
- MCP sunucusu ve araç sürümlerini sabitleyin (pinning)
- Araç açıklamalarından hassas bilgileri kaldırın
-
Platform operatörleri
- Tüm araç metaverisini kullanıcıya gösterin
- Sunucu güncellemelerinde bütünlük hash'i kullanın
- Oturum güvenliğini zorunlu kılın
-
Kullanıcılar
- Güvenilmeyen MCP sunucularına bağlanmayın
- Oturum günlüklerini üretim ortamı gibi izleyin
- Şüpheli araç güncellemelerini takip edin
ScanMCP.com önerisi
- ScanMCP, şu işlevleri yerine getiren bir tarayıcı ve kontrol paneli olarak öneriliyor
- Bağlı MCP araçlarını denetleme
- RCE, araç zehirlenmesi, oturum sızıntısı gibi riskleri tespit etme
- Kullanıcının gördüğü bilgi ile ajanın algıladığı bilgiyi karşılaştırıp görselleştirme
- Şu kullanıcılar için faydalı olabilir
- Ajan platformlarının güvenlik ekipleri
- Yapay zeka altyapısı girişimleri
- Güvene dayalı araçlar geliştirmek isteyen bağımsız geliştiriciler
Son düşünce
MCP güçlü bir protokol, ancak API güvenlik olgunluğu yetersizken çok hızlı benimseniyor
Secure-by-default yaklaşımı benimsenene kadar, ScanMCP.com gibi araçlar görünürlük ve kontrol sağlamak için en iyi yöntemdir
- Sonuç: MCP'deki "S", Security anlamına gelmiyor. Ama öyle olmalı
1 yorum
Hacker News görüşü
Bu yazı, birkaç gün önce Invariant Labs tarafından yayımlanan güvenlik notunda açıklanan saldırı senaryolarını (tool poisoning, shadowing, MCP rug pull) vurguluyor ve alıntılıyor. Ben ilgili blog yazısının yazarıyım
Bu saldırılar çoğunlukla airlock’un yanlış tarafında duran bir başka örnek. Yetki sınırlarını aşmıyorlar; zaten yapılabilecek bir şeyi tuhaf bir yoldan yapıyorlar
Şu tür daha iyi bir tasarım hayal etme meydan okuması var:
İyi bir makale ama tüm bunların AI tarafından üretilmiş olup olmadığını merak ediyorum
O, observability anlamına geliyor. Bu hafta MCP sunucularını keşfetme ve yazma işine derinlemesine daldım
Doğru. Notu yayımladığımda bu kadar derine inmemiş olsam da ben de aynı şeyi düşünüyordum
Kullandığınız yazılım kötü niyetli olmasa ve güvenli biçimde uygulanmış olsa bile, istediğiniz şekilde kullanıldığını nasıl doğrulayabilirsiniz?
Equixly’nin test ettiği MCP sunucusu uygulamalarının %43’ünden fazlasında güvensiz shell çağrıları vardı
MCP’nin ne olduğunu merak ediyorum. Belgeleri birkaç kez okumaya çalıştım ama çözdüğü problemin ne olduğunu anlayamadım. Özellikle AI ajanları açısından neyin özel olduğunu ve onlarca yıldır var olan deterministik ajanlara uygulanmayan şeyin ne olduğunu
MCP’nin tüm amacının, Anthropic’in prompt’ları ve çıktıları dinleyip eğitim verisini en üst düzeye çıkarması olduğunu sanıyordum. Bunun tüm AI modelleri için bir middleware olduğunu ilk kez öğreniyorum