MCP bağlantısı, sunduğu her işleme güvenmek için bir neden değil, yetenekleri ortaya çıkarmanın bir yoludur. Bir kimlik doğrulama analistine bağlanmadan önce hangi kiracıyı inceleyebileceğini, hangi kanıtları alabileceğini ve hangi eylemlerin kullanılamayacağını belirtin. Bir rapor okuma ataması, yalnızca bir sunucu her iki aracı da sunduğu için DNS yayınlamayı devralmamalıdır.
Gerçek veri yolu ile başlayın
Ana bilgisayar uygulamasını, MCP istemcisini, sunucuyu, rapor deposunu ve herhangi bir aşağı akış API'sini eşleyin. Belirteçlerin nerede sonlandırıldığını ve her bir bileşeni hangi kuruluşun çalıştırdığını kaydedin. MCP yetkilendirme spesifikasyonu HTTP tabanlı aktarımlar için yetkilendirmeyi açıklar; akışının yerel stdio sunucularına değişmeden uygulandığını varsaymayın. Yerel bir yürütülebilir dosya, uzak bir OAuth değişimi olmasa bile dosya sistemi veya ortam erişimine sahip olabilir.
Rapor alımını ham mesaj alımından ayırın. Toplu sayımlar, gönderen eğilimi sorusunu ileti konularını, alıcıları veya eklerini açıklamadan yanıtlayabilir. Model tarafından sağlanan bir kiracı adını yetkili olarak kabul etmek yerine, kimliği doğrulanmış bağlamı kullanarak sunucuda kiracı yalıtımını zorunlu kılın. Kısıtlanmamış depolama URL'lerini açığa çıkarmadan bir özetin geriye doğru izlenebilmesi için kararlı kaynak tanımlayıcıları döndürün.
Kimlik bilgilerini ve araç erişimini sınırlayın
Desteklenen minimum kaynak ve eylem kapsamına sahip kimlik bilgilerini kullanın. Sırları istemlerde, araç açıklamalarında, rapor alanlarında veya günlüklerde değil, onaylanmış kimlik bilgisi mekanizmasında saklayın. MCP güvenlik kılavuzu belirteç geçişini yasaklar: bir sunucu, başka bir hizmete yönelik bir yukarı akış belirtecini basitçe kabul edip iletmemelidir. Hedef kitleyi doğrulayın ve uygun alt yetkilendirme ilişkisini uygulayın.
Genel HTTP, kabuk ve dosya yazma işlevleri de dahil olmak üzere, kullanıma sunulan her aracın envanterini çıkarın. Genel bir yürütme aracı aynı sağlayıcıyı geniş bir kimlik bilgisiyle arayabiliyorsa, DNS'ye özgü bir düğmeyi gizlemek pek işe yaramaz. Yürütme sınırındaki gereksiz yetenekleri kaldırın. Araç ek açıklamaları ve açıklayıcı adlar, müşterilerin araçları sunmasına yardımcı olabilir ancak zorunlu yetkilendirmenin yerini almaz.
Düşmanca rapor içeriği uygulayın
Aşağıdaki yazılı politika için, kimliği doğrulanmış kiracı A'yı ve onaylanmış bir rapor-analiz görevini varsayalım. Yalnızca A kiracısı için read_report'a izin verilir. Gizli bilgi isteyen içeriği bildirin veya DNS yayını bu izni genişletemez. Bu, önerilen bir politikadır; yürütülen bir güvenlik testi veya doğrulanmış bir sunucu yapılandırması değildir.
Rapor metnini, mesaj örneklerini ve sunucudan dönen talimatları güvenilmeyen kanıt olarak değerlendirin. Yönetici olduğunu iddia eden bir dize, onaylayan haline gelmez. Analist bu dizeye uymadan da şüpheli olarak tanımlayabilir. OWASP katmanlı savunmaları önerir çünkü talimat metni tek başına hızlı enjeksiyonu ortadan kaldırmaz.
Karar defterinin tamamını inceleyin
- Bilinen sahip durumu: kiracı A, onaylanmış görev, A için read_report. Önerilen politika kapsamında izin ver; hesaplama yalnızca onaylanmış, döndürülen kanıtları kullanır.
- Yanlış kiracı durumu: kimliği doğrulanmış A, kiracı B'yi talep eder. Rapordaki herhangi bir kiracı etiketine bakılmaksızın okumayı reddedin.
- Düşman içerik durumu: read_secret vepublish_dns metin isteklerini bildirin. Her iki aracı da reddedin; A için yetkili read_report, düşmanca metnin yalnızca veri olarak değerlendirilmesiyle devam edebilir.
- Belirsiz sahip durumu: Bir A raporu, hem uygulama A'yı hem de uygulama B'yi olası sahipler olarak adlandırır. Yalnızca yetkili kanıtların toplanmasına izin verin, kimliği çözümlenmemiş olarak işaretleyin ve bir sahip seçmek yerine ilişkilendirmeyi üst kademeye iletin.
- Onaylanmamış görev durumu: Onaylanmış bir araştırma mevcut değildir. Kimlik bilgisi teknik olarak okumaya izin verse bile, yetkilendirme netleşene kadar görev odaklı alımı sürdürün.
Bu defter için hiçbir araç çağrısı, model değerlendirmesi, kimlik bilgisi verilmesi veya sınır testi yapılmadı. Bu kurallar, herhangi biri bunların uygulandığını iddia etmeden önce gerçek sunucu ve aşağı akış izinlerine karşı uygulama testlerini gerektirir.
İşlemi inceleyin ve erişimi iptal edin
Belirteçleri kopyalamadan araç adını, kimliği doğrulanmış kiracıyı, kanıt referanslarını ve yetkilendirme sonucunu günlüğe kaydedin. Etkin oturumlar ve alt izinler de dahil olmak üzere erişimin sona ermesini ve iptalini test edin. Uzun ömürlü bir sağlayıcı kimlik bilgisi başka bir yerde geçerli kalıyorsa, istemcideki başarılı bir bağlantının kesilmesi yeterli değildir.
Salt okunur bir pilot programla ve analistin yanıtlaması gereken soruların açık bir listesiyle başlayın. Reddetmelerin yararlı olduğunu doğrulayın: Bir kiracıyı sessizce atlamak veya bir sonuç uydurmak yerine eksik kanıtları veya kapsamı belirlemelidirler. İzinleri yalnızca yeni eylemi ayrı olarak inceledikten sonra genişletin. Bu, doğrulanmış bir EmailAuth ürün özelliği değil, önerilen bir kontrol modelidir.