AI Agent & Agentic Güvenlik · MCP

MCP Güvenliği: Model Context Protocol Saldırı Yüzeyi
7 Katmanlı Sertleştirme Taksonomisi (2026)

Model Context Protocol, LLM ajanlarını dosya sistemine, veritabanına ve iç servislere bağlayan fiili standart hâline geldi; aynı hızla da yeni ve büyük ölçüde gözden kaçan bir saldırı yüzeyi açtı. Bu yazı, "MCP güvenliği" sorusuna Türkçe cevap ararken başvurulabilecek bütünsel bir harita sunuyor: yedi katmanlı adlandırılmış saldırı-yüzeyi taksonomisi ve doğrulanabilir 2026 rakamları.

MCP Güvenliği Nedir?

MCP güvenliği, Model Context Protocol (MCP) üzerinden bir dil modeli ajanını harici araçlara, dosya sistemine, veritabanlarına ve iç API'lere bağlayan sunucuların; bu bağlantı sırasında ortaya çıkan yetkisiz komut yürütme, veri sızıntısı, kimlik taklidi ve tedarik zinciri risklerine karşı sertleştirilmesi disiplinidir. Kısaca: MCP sunucusu, ajanla dış dünya arasındaki ayrıcalıklı köprüdür; ve her ayrıcalıklı köprü gibi, saldırganın en çok ilgilendiği yerdir.

Model Context Protocol, Anthropic tarafından açık bir standart olarak yayımlandı ve kısa sürede pek çok istemci (IDE eklentileri, masaüstü ajanları, kurumsal kopilotlar) tarafından benimsendi. Protokolün cazibesi, her aracı ayrı ayrı entegre etmek yerine standart bir arayüz üzerinden "tak-çalıştır" araç sunmasıdır. Ama bu standartlaşma, güvenlik açısından iki keskin sonuç doğurur: (1) bir zafiyet tek bir üründe değil, protokolü uygulayan tüm istemci-sunucu çiftinde tekrar eder; (2) araçları ajana "tarif eden" metin (tool description) doğrudan modelin bağlamına girdiği için, klasik yazılım güvenliğinin dışında bir istem enjeksiyonu (prompt injection) yüzeyi açılır.

Bu yazı bir denetim rehberi değil, bir haritadır. Sunucunuzu adım adım nasıl denetleyeceğinizi arıyorsanız, uygulamalı incelemeyi MCP sunucusu güvenlik incelemesi yazısında ele alıyoruz (authorization, token audience/scope, confused deputy, sandbox, tool-description ve log denetimi). Burada ise saldırı yüzeyinin tamamını adlandırılmış katmanlara ayırıyoruz.

MCP Neden Yeni Bir Saldırı Yüzeyi Açar?

Geleneksel bir web servisinde saldırgan, HTTP isteği gönderir; sunucu bu isteği veri olarak işler. MCP'de ise ajan hem karar verici hem de yürütücüdür: modelin ürettiği metin, bir araç çağrısına ve o araç çağrısı da gerçek bir sistem eylemine dönüşür. Bu, üç yeni sorunu birleştirir:

  • Kod ile veri arasındaki sınır bulanıklaşır. Araç açıklaması, dönüş değeri veya bir dosyanın içeriği; hepsi modelin bağlamına "talimat" gibi girebilir. Dolaylı istem enjeksiyonu burada birinci sınıf bir tehdittir.
  • Yetki ajana devredilir. Ajan, kullanıcının yetkisiyle çalışır ama kullanıcının niyetini birebir bilmez. Aşırı geniş yetki (least agency ihlali), tek bir manipülasyonu kritik bir eyleme çevirir.
  • Transport'un kendisi ayrıcalıklıdır. Özellikle yerel STDIO transport'unda MCP sunucusu, host makinede bir alt süreç olarak çalışır; girdi sanitizasyonu zayıfsa doğrudan kabuk (shell) yürütmeye kadar gider.

Bu üç eksen bir araya geldiğinde, tek bir zafiyet sınıfı değil, katmanlı bir yüzey ortaya çıkar. Onu yönetmenin yolu, önce onu adlandırmaktır.

7 Katmanlı MCP Saldırı-Yüzeyi Taksonomisi

Aşağıdaki yedi katman, bir MCP dağıtımında "nereye bakmalıyım" sorusunu bütünsel biçimde cevaplamak için kullandığımız çerçevedir. Her katman ayrı bir tehdit modeli ve ayrı bir savunma seti gerektirir.

#KatmanTipik zafiyetBirincil savunma prensibi
1TransportSTDIO'da sanitize edilmeyen girdiyle kabuk (shell) enjeksiyonu; SSE/HTTP'de eksik TLSKabuk çağırmayan yürütme, parametreli komut, zorunlu TLS
2Araç açıklaması (tool poisoning)Araç tanımına gömülü gizli talimat modelin bağlamını ele geçirirAçıklamaları güvenilmez veri say, imza/onay, değişiklik denetimi
3OturumTahmin edilebilir oturum kimliği, oturum sabitleme (session fixation)Kriptografik oturum kimliği, kısa ömür, yeniden bağlamada doğrulama
4Kimlik / yetkiKimlik doğrulaması olmayan sunucu; token audience/scope karışması, confused deputyZorunlu kimlik doğrulama, dar kapsamlı token, en az yetki (least agency)
5KalıcılıkKötü niyetli araç veya yapılandırmanın diske yazılıp otomatik yeniden yüklenmesiSalt-okunur yapılandırma, onaylı araç kaydı, bütünlük kontrolü
6Ağ maruziyetiYerel çalışması beklenen sunucunun 0.0.0.0'a açılıp internete düşmesiLoopback bağlama, ağ segmentasyonu, dış maruziyet taraması
7Tedarik zinciriPaket kayıtlarından çekilen kötü/bakımsız MCP sunucu paketleriPinleme, provenance/imza doğrulama, kaynak inceleme

Bu yedi katmanı ezberlemenin pratik değeri şudur: bir olay yaşandığında "hangi katman?" diye sorabilir, savunmayı da katman katman doğrulayabilirsiniz. Katman 1 ile 6 çoğu zaman en ucuz kazançları verir; çünkü kabuk enjeksiyonu ve yanlışlıkla internete açılma, en yıkıcı ama en kolay kapatılabilir iki hatadır.

Doğrulanabilir Rakamlar: MCP Maruziyetinin Ölçeği

MCP güvenliği tartışmasında dolaşan sayıların çoğu doğrulanamaz. Bu yüzden yalnızca kaynağı teyit edilebilen verileri tek tabloda topluyoruz. Doğrulanamayan ("yüz binlerce savunmasız örnek", "yüz milyonlarca indirme" gibi) iddiaları bilinçli olarak dışarıda bırakıyoruz.

BulguDeğerKaynak
İnternete açık, kimlik doğrulaması olmayan MCP sunucusu492Trend Micro
Taranan MCP deposu (repo) ölçeği~19.000Trend Micro
Sömürülebilir olarak değerlendirilen örnek aralığı~600–1.650Trend Micro
NSA siber güvenlik bilgi notu (CSI) yayın tarihi20 Mayıs 2026NSA

Bu tablonun anlattığı hikâye net: kimlik doğrulamasız ve internete açık MCP sunucuları, Katman 4 (kimlik) ile Katman 6 (ağ maruziyeti) ihlalinin canlı örneğidir. 492 sunucu "az" gibi görünebilir; ancak her biri, arkasındaki dosya sistemine, veritabanına veya araç setine yetkisiz erişim demektir. Trend Micro'nun ~19.000 depoluk taramasında sömürülebilir örnek aralığının ~600–1.650 olması, sorunun münferit değil yapısal olduğunu gösterir. NSA'nın Mayıs 2026 bilgi notu ise konunun artık kurumsal savunma gündemine resmî olarak girdiğinin işaretidir.

Örnek Katman: STDIO Transport ve Kabuk Enjeksiyonu

Yedi katman içinde en sık gözden kaçan ve en yıkıcı olanlardan biri Katman 1'dir. Yerel MCP sunucuları çoğunlukla STDIO transport'u üzerinden konuşur; sunucu, host makinede bir alt süreç olarak başlatılır ve ajandan gelen parametreleri komut satırına aktarır. Eğer bir araç, kullanıcı/model kaynaklı bir dizeyi doğrudan kabuğa geçirirse, klasik bir command injection doğar.

# RİSKLİ: model kaynaklı girdi doğrudan kabuğa gidiyor
import subprocess
def run_tool(user_arg):
    # shell=True + string interpolasyonu = enjeksiyon yüzeyi
    subprocess.run(f"convert {user_arg} out.png", shell=True)

# DAHA GÜVENLİ: kabuk yok, parametreler ayrık liste
def run_tool_safe(user_arg):
    subprocess.run(["convert", user_arg, "out.png"], shell=False)

Buradaki prensip evrenseldir: kabuğu hiç çağırmayın; parametreleri asla dizeyle birleştirmeyin. Model kaynaklı hiçbir girdi güvenilir değildir — araç açıklamasının kendisi bile (Katman 2) düşman kontrollü olabilir. Bu iki katmanı birlikte düşünmek gerekir: enjeksiyon yalnızca çağrı parametresinden değil, aracın tanımından da gelebilir.

Sertleştirme: Katmandan Kontrol Listesine

Taksonomi, sertleştirmeyi somutlaştırdığında değer kazanır. Yedi katmanı denetlenebilir maddelere indirgemek için 40 maddelik bir Türkçe MCP sertleştirme kontrol listesi derliyoruz; her madde yukarıdaki katmanlardan birine eşlenir. Adım adım uygulamalı denetim akışını ise ayrı bir yazıda ele alıyoruz — tekrar etmemek için oraya yönlendiriyoruz: MCP sunucusu güvenlik incelemesi.

Çalışma zamanı savunmasında, MCP trafiğini bir ajan ile araçlar arasında denetleyen bir LLM firewall katmanı, Katman 2 (tool poisoning) ve dolaylı enjeksiyon için pratik bir bariyer sağlar. AltaySec'in Guardian v3.1.0 gateway kural setini bu amaçla, MCP araç çağrılarını ve dönüş değerlerini gözlemleyip riskli talimat kalıplarını işaretleyecek biçimde konumlandırıyoruz. Guardian'ın açık ölçütlerimizdeki davranışı — örneğin AltaySec'in kendi guardrail-arena ve AltayDuel verilerindeki Türkçe istem enjeksiyonu sonuçları — bize şunu gösteriyor: dil sınırında (Türkçe/İngilizce aynı saldırı) savunma performansı belirgin biçimde düşebiliyor; bu nedenle MCP gateway kurallarının Türkçe morfolojik kaçış kalıplarını da kapsaması gerekiyor. (Bu rakamlar AltaySec'in kendi iç ölçümüdür, dış-genel gerçek olarak sunulmamalıdır.)

Özetle sertleştirme reçetesi katmanlarla birebir örtüşür: kabuğu çağırma (1), araç açıklamalarını güvenilmez veri say (2), oturumları kriptografik kıl (3), kimlik doğrulamasını zorunlu tut (4), yapılandırmayı salt-okunur yap (5), sunucuyu loopback'e bağla (6), paketleri pinle ve doğrula (7).

Sonuç: Haritayı Elde Tutmak

MCP güvenliği yeni bir disiplin gibi görünse de, aslında bilinen üç güvenlik alanının kesişimidir: uygulama güvenliği (enjeksiyon, kimlik), ağ güvenliği (maruziyet) ve LLM güvenliği (istem enjeksiyonu, aşırı yetki). Yeni olan tek şey, bu üçünün tek bir ayrıcalıklı köprüde birleşmesidir. Yedi katmanlı taksonomi, o köprüyü tek tek denetlenebilir parçalara böler.

Rakamlar da bize aciliyeti hatırlatıyor: internete açık, kimlik doğrulamasız 492 sunucu ve ~19.000 depoda ~600–1.650 sömürülebilir örnek, sorunun teorik olmadığını gösteriyor. NSA'nın Mayıs 2026 bilgi notuyla birlikte, MCP güvenliği artık kurumsal AI benimsemesinin varsayılan gündem maddesi. Doğru başlangıç noktası ise iddialı süperlatifler değil, doğrulanabilir rakamlar ve katmanlı bir kontrol listesidir.

Kaynaklar

İlgili Yazılar