Shadow MCP: مشكلة المؤسسة التي لم يخصص لها أحد الميزانية
يقوم الموظفون بتوصيل خوادم MCP غير المصرح بها إلى Claude وCursor. قاعدة بوابة واحدة، واستعلام مخزون واحد، ونموذج سياسة واحد للمضي قدمًا.
يستخدم Shadow IT ليعني مدير التسويق الذي يقوم بنفقات Dropbox. يعني Shadow SaaS فريق المنتج قم بالتسجيل في Figma باستخدام بطاقة الائتمان الشخصية. تم تضمين كلاهما: تم تشغيل الأدوات في المتصفح علامة التبويب، ولمس البيانات التي يمكن للمستخدم رؤيتها بالفعل، ولا يمكنه الوصول إليها بعد حدود علامة التبويب. الظل MCP يكسر هذا الاحتواء. يقوم أحد الموظفين بتبديل خادم MCP المجتمعي إلى Cursor أو Claude سطح المكتب، والآن يمكن للوكيل قراءة مفاتيح SSH، وتشغيل أوامر shell، والتحدث إلى الإنتاج قواعد البيانات من خلال بيانات الاعتماد المحيطة للمستخدم.
قامت Cloudflare Gateway بشحن قواعد MCP المدركة في أبريل 2026. وتبعتها Zscaler وNetskope في غضون أسبوع. تم اكتشاف الأدوات لأن فرق أمان المؤسسة بدأت في طرح الأسئلة. يغطي هذا المنصب الأشياء الأربعة التي يجب القيام بها في هذا الربع: فهم نموذج التهديد، وبناء الكشف، وشحن النص البرمجي للمخزون، ووضع القائمة المسموح بها، ونشر سياسة من ثلاث صفحات.
لماذا يعتبر Shadow MCP أسوأ من Shadow SaaS
يتم تشغيل علامة تبويب SaaS المارقة في المتصفح في وضع الحماية. لا يمكنه قراءة مفتاح SSH الخاص بالمستخدم. ذلك لا يمكن أن تفرخ قذيفة. لا يمكنه فتح اتصال TCP بـ Postgres الإنتاجي الخاص بك. المتصفح تحمل سياسة نفس الأصل ووضع الحماية لنظام التشغيل الاحتواء.
يعمل خادم MCP خارج المتصفح. كلود سطح المكتب والمؤشر يفرخان خوادم stdio كطفل العمليات على جهاز المستخدم مع أذونات المستخدم. يتصل خادم HTTP MCP بـ مهما كانت بيانات الاعتماد التي يلصقها المستخدم. يقوم الوكيل بعد ذلك باستدعاء الأدوات من ذلك الخادم كجزء من حلقتها العادية. من وجهة نظر نظام التشغيل، استدعاء الأداة هو قيام المستخدم بفتح ملف ملف أو تشغيل أمر.
فرق ملموس: تم سحب خادم GitHub MCP المجتمعي من حزمة npm عشوائية وإضافته إلى
~/.cursor/mcp.json يمكن أن تسلل أي شيء في ~/.ssh/، كل
.env الملف الموجود ضمن الدليل الرئيسي الخاص بك، والمحتويات الكاملة لأي ريبو للمستخدم
تم تسجيل الخروج. وافق المستخدم عليه مرة واحدة. الوكيل لا يسأل مرة أخرى. محتال يعتمد على المتصفح
لا يمكن للأداة أن تفعل أيًا من ذلك.
أضف مشكلة أخرى: شبكة VPN الخاصة بالمستخدم. إذا كان الكمبيوتر المحمول موجودًا على شبكة VPN الخاصة بالشركة عند تشغيل الوكيل، يرث خادم MCP موضع الشبكة هذا. الخدمات الداخلية وقواعد البيانات المرحلية و تصبح جميع نقاط نهاية البيانات التعريفية قابلة للوصول. لم يكن الخادم بحاجة إلى التصيد الاحتيالي لأي شخص. لقد انتظرت للتو لشبكة VPN للاتصال.
العثور على Shadow MCP على شبكتك
يعمل الاكتشاف على ثلاث طبقات: نقطة النهاية، وبوابة الخروج، وDNS. تريد إشارة من الثلاثة لأن كل واحد منهم يمسك بوضع فشل مختلف.
في نقطة النهاية، راقب العمليات الفرعية التي يولدها Claude Desktop أو Cursor. كلا العملاء
استدعاء خوادم stdio كعمليات فرعية بأسماء العمليات الأصلية المعروفة. EDR الخاص بك (CrowdStrike،
يمكن لـ SentinelOne، Defender for Endpoint) التنبيه بشأن أي شجرة عمليات متجذرة فيها
Claude.app, Cursor.app، أو claude-code. تصفية إلى
تلك التي وافقت عليها؛ ضع علامة على كل شيء آخر.
عند الخروج، قم بتصفية حركة مرور HTTP. يشحن MCP عبر HTTP القابل للتدفق رأسًا مميزًا
(mcp-protocol-version) ونوع محتوى مميز
(application/json-rpc-2). تتطابق كل من Cloudflare Gateway وZscaler وNetskope
على حد سواء. إليك قاعدة Cloudflare Zero Trust لحظر MCP غير المصرح به مع السماح بـ
المضيفون المعتمدون:
في DNS، يرى المحلل الخاص بك عمليات البحث عن مضيفي خادم MCP المجتمعي قبل أي اتصال HTTPS يفتح. أدخل القائمة المسموح بها في مرشح نظام أسماء النطاقات (Cisco Umbrella وNextDNS وCloudflare Gateway DNS) باعتبارها وجهات MCP الوحيدة المسموح بها. كل عملية بحث أخرى تتطابق مع ملف معروف يحصل موجز تسجيل MCP على حظر وتذكرة.
بالنسبة لخوادم stdio المثبتة على npm، يستطيع وكيل DLP لنقطة النهاية مراقبة مطابقة الحزم
*-mcp-*, @modelcontextprotocol/*، أو أي حزمة تعلن
mcp الدخول فيها package.json bin مجال. أن يمسك
حدث التثبيت قبل أن يقوم المستخدم بتوصيل الخادم إلى المؤشر.
قم ببناء مخزون MCP في فترة ما بعد الظهر
يخبرك الاكتشاف عندما يظهر خادم جديد. يخبرك المخزون بما تم تثبيته بالفعل. قم بإرسال برنامج نصي، وتشغيله من خلال MDM (Jamf، وIntune، وKandji)، وإرسال النتائج إلى التقارير نقطة النهاية. بعد ظهر العمل، ستعرف أي الأجهزة لديها أي خوادم.
يقرأ البرنامج النصي ملفي التكوين اللذين يستخدمهما كل عميل رئيسي. يحتفظ Claude Desktop بتكوينه
في ~/Library/Application Support/Claude/claude_desktop_config.json على نظام التشغيل MacOS و
%APPDATA%\Claude/claude_desktop_config.json على ويندوز. يحتفظ المؤشر بتكوينه عند
~/.cursor/mcp.json. كلا الملفين عبارة عن JSON عادي مع ملف mcpServers
أسماء خوادم تعيين الكائنات للأوامر والوسائط وعناوين URL وenv vars.
التجزئة مهمة. تتغير ملفات التكوين عندما يقوم المستخدم بإضافة خادم، أو تدوير مفتاح، أو سحب ملف
قالب الفريق. قم بتخزين SHA-256 للملف بأكمله ونبه إلى أي تغيير لم تقم بإجراءه. ال
يتم إدراج أسماء env var (وليس القيم) في التقرير أيضًا؛ رؤية GITHUB_PERSONAL_ACCESS_TOKEN
المدرجة ضمن خادم المجتمع هي الإشارة الخاصة بها.
قم بتشغيل البرنامج النصي يوميًا. قم بتغذية المخرجات في مخزون الأصول الموجود لديك (Snipe-IT، ServiceNow، أو جدول Postgres). أنشئ لوحة تحكم تعرض: خوادم جديدة هذا الأسبوع، وخوادم على أكثر من الأجهزة N والخوادم التي تم تغيير تجزئة تكوينها. تغطي هذه المشاهدات الثلاثة معظم ما تريده بحاجة إلى أن نسأل في وقت لاحق.
قم بإدراج الخوادم التي تثق بها في القائمة المسموح بها
يظهر لك المخزون ما تم تثبيته. توضح القائمة المسموح بها ما هو مسموح به. الرفض الافتراضي، كل تمت مراجعة الخادم، وتنتهي كل موافقة. قم بإصدار الملف في Git بحيث يكون سجل الموافقة قابل للتدقيق.
هناك ثلاثة أشياء تجعل هذه القائمة المسموح بها مفيدة. أولاً، كل إدخال له تذكرة مراجعة وانتهاء الصلاحية؛
الموافقات لا تعيش إلى الأبد. ثانيًا، تشتمل خوادم stdio على الوسائط المسموح بها، لذلك أ
postgres-mcp تمت الموافقة على الثنائي مع --readonly لا يمكن إعادة تشغيلها مع
حق الوصول للكتابة دون مراجعة جديدة. ثالثًا، النطاقات مسماة وصريحة؛ طبقة تحكم لاحقة
يمكن أن يفرضها.
يتطلب ضم خادم جديد إلى القائمة المسموح بها عمليتي فحص تلقائيتين قبل المراجعة البشرية. أولاً، تحقق من وضع TLS لمضيف الخادم. خادم يخدم MCP عبر نص عادي HTTP، أو بشهادة تنتهي صلاحيتها خلال 10 أيام، أو مفقود HSTS، ليس مرشحًا:
ثانياً، افحص رؤوس الاستجابة. تريد HSTS بعمر أقصى طويل ومعقول
content-type، و mcp-protocol-version رأس يطابق ما
يقول الخادم أنه يدعم في بيانه. الانجراف بين الرأس والبيان هو علامة حمراء:
قم بإجراء كلا الفحصين كجزء من تذكرة الدخول. إذا فشل أي منهما، فسيتم إغلاق التذكرة تلقائيًا باستخدام ملف سبب الفشل. يرى المراجع فقط الخوادم التي اجتازت الأساسيات.
سياسة MCP المكونة من ثلاث صفحات والتي تحتاجها كل شركة
لا يجب أن تكون السياسة طويلة. يجب الإجابة على خمسة أسئلة: ما الذي تمت الموافقة عليه، ومن يوافق على الخوادم الجديدة، وما الذي يمكن أن يفعله كل دور، وكيف تراقبه، وماذا يحدث عندما حدث خطأ ما. يؤدي الجدول القصير عملاً أكثر من مستند مكون من 30 صفحة لا يقرأه أحد.
| منطقة | سياسة | يتحكم |
|---|---|---|
| الخوادم المعتمدة | يمكن تشغيل الخوادم الموجودة في القائمة المسموح بها YAML فقط على أجهزة الشركة أو لمس بيانات الشركة. | DNS + حظر الخروج، وقاعدة عملية EDR، وملف القائمة المسموح بها الذي يتم دفعه بواسطة MDM، وانتهاء صلاحية الموافقة لمدة ستة أشهر. |
| عملية المراجعة | يقوم Security Platform بمراجعة جميع طلبات الخادم الجديدة. تقوم منصة البيانات بالتوقيع على أي خادم لديه حق الوصول إلى قاعدة البيانات. التوقيعات القانونية على الخوادم التي تعالج البيانات المنظمة. | قم بمراجعة نموذج التذكرة، وفحص TLS الآلي والرأس، واتفاقية مستوى الخدمة المنشورة لمدة خمسة أيام عمل. |
| حدود النطاق | يحصل المهندسون على خوادم بيانات للقراءة فقط بشكل افتراضي. يتطلب الوصول للكتابة موافقًا ثانيًا. أوراق اعتماد الإنتاج محظورة. استخدام التدريج أو رمز مميز. | يتم دفع حزم القائمة المسموح بها لكل دور عبر MDM، ومفاتيح API ذات النطاق مع TTL قصيرة، ونطاقات فرض بوابة المصادقة. |
| يراقب | يتم تسجيل كل استدعاء للأداة من خلال خادم معتمد في سجل التدقيق. تؤدي محاولات الخادم غير المعتمدة إلى إطلاق تنبيه خلال 15 دقيقة. | يتم إرسال تدقيق البوابة إلى Kafka وSIEM، وفرق المخزون اليومي، وتنبيهات انحراف تجزئة ملف التكوين. |
| الاستجابة للحادث | يتم التعامل مع خادم MCP المخترق على أنه تكامل لواجهة برمجة التطبيقات (API) المخترقة. قم بإلغاء مفاتيح الخادم، وعزل نقاط النهاية المتأثرة، ومراجعة سجلات التدقيق لنافذة التعرض. | دليل التشغيل الموثق، والتناوب عند الطلب، والطاولة ربع السنوية التي تتضمن سيناريو MCP. |
| الاستثناءات | تتطلب الاستثناءات المؤقتة موافقة CISO، وانتهاء الصلاحية لمدة 30 يومًا، وخطة متابعة مكتوبة. | نموذج تذكرة الاستثناء، وإدخالات القائمة المسموح بها تنتهي صلاحيتها تلقائيًا، ومراجعة الاستثناءات الأسبوعية. |
| الخروج من الطائرة | عندما يغادر أحد الموظفين، يتم مسح تكوينات MCP الخاصة به جنبًا إلى جنب مع حالة الشركة الأخرى. يتم تدوير أي مفاتيح لديهم خلال 24 ساعة. | إجراء مسح MDM، ودليل تشغيل المفاتيح، وسجل تدقيق آخر وصول لكل مفتاح. |
الوجبات السريعة الرئيسية
- تتجاوز قدرات MCP قدرات SaaS. يقرأ خادم MCP المجتمعي SSH المفاتيح، وتشغيل أوامر shell، ويرث موقع VPN الخاص بك. التعامل معها وكأنها متميزة التكامل، وليس مثل علامة تبويب المتصفح.
-
يحتاج الكشف إلى ثلاث طبقات. قواعد عملية EDR، ومرشحات HTTP للبوابة قيد التشغيل
mcp-protocol-versionوتغطي القائمة المسموح بها لنظام أسماء النطاقات أوضاع فشل مختلفة. - الجرد في فترة ما بعد الظهر. يقرأ برنامج Python المكون من 60 سطرًا التكوينين الملفات التي يستخدمها كل عميل رئيسي، ويقوم بتجزئتها ونشرها إلى نقطة نهاية إعداد التقارير. تشغيله يوميا عبر MDM.
-
القائمة المسموح بها للرفض الافتراضي، فترات انتهاء الصلاحية القصيرة. كل خادم لديه تذكرة مراجعة و
انتهاء ستة أشهر. يستخدم
/v1/ssl/checkو/v1/headers/inspectكما بوابات السحب الأوتوماتيكية. - يتفوق الجدول على سياسة مكونة من 30 صفحة. الخوادم المعتمدة، عملية المراجعة، النطاق الحدود، المراقبة، الاستجابة للحوادث، الاستثناءات، الخروج من الخدمة. سبعة صفوف، صفحة واحدة، منشورة في ويكي الهندسة.
خادم MCP الخاص بـ Botoi على api.botoi.com/mcp مثال على كيفية ظهور الخادم
بمجرد أن تصبح جاهزة للقائمة المسموح بها: TLS 1.3، وHSTS، ومفاتيح API المحددة النطاق، وحدود معدل كل مفتاح، و49
أدوات منسقة مع التعليقات التوضيحية. يمكنك التحقق من الوضعية بنفسك من خلال التجعيدتين أعلاه
قبل إضافتها، أو التحقق من صفحة إعداد MCP
و مستندات API
للحصول على قائمة الأدوات الكاملة.
FAQ
- ما الذي يعتبر خادم MCP لأغراض المخزون؟
- يتم احتساب كل من خوادم stdio وHTTP. خادم stdio هو عملية فرعية لـ Claude Desktop أو Cursor يتم إنتاجها من إدخال ملف التكوين؛ لا توجد مساحة للشبكة حتى يبدأها الوكيل، ولكنها تتمتع بنفس سطح القدرة. يعيش خادم HTTP على عنوان URL الذي يتصل به العميل عبر HTTP أو SSE القابل للتدفق. يحتاج المخزون الخاص بك إلى تغطية كليهما، مما يعني قراءة ملفات التكوين على نقطة النهاية ومراقبة الخروج لتوقيعات حركة مرور MCP.
- هل يمكنني حظر MCP بالكامل على شبكات الشركة دون كسر الوكلاء المعتمدين؟
- نعم. قم بحظر كل شيء بشكل افتراضي في بوابة الخروج، ثم قم بإدراج أسماء المضيفين المحددة التي تعمل عليها خوادم MCP المعتمدة الخاصة بك. لا تلمس خوادم stdio المعتمدة الشبكة على الإطلاق (فهي تتحدث إلى واجهات برمجة التطبيقات الداعمة الخاصة بها عبر HTTPS العادي، والذي تتحكم فيه بالفعل). ستفقد تجربة MCP المجتمعية على أجهزة الشركة، وهذا هو الهدف. لا يزال بإمكان المطورين استخدام الأجهزة الشخصية خارج VPN للاستكشاف.
- كيف يختلف Shadow MCP عن خطر الحقن الفوري؟
- الحقن الفوري هو مهاجم يخدع نموذجًا للقيام بشيء لا يريده مشغله. Shadow MCP هو المشغل نفسه الذي يقوم بتوصيل الأسلاك بقدرة لم تتم مراجعتها. جهة تهديد مختلفة، وتحكم مختلف. لا تساعد دفاعات الحقن الفوري (تأكيد الأداة، ووضع الحماية، وتصفية المخرجات) إذا لم يكن من المفترض أن تكون الأداة موجودة على الإطلاق. أنت بحاجة إلى المخزون والقائمة المسموح بها أعلى الدفاعات على مستوى النموذج.
- هل يتطلب الحظر ترقية جدار الحماية من الجيل التالي؟
- لا. تغطي تصفية DNS بالإضافة إلى فحص الخروج لطبقة HTTP معظمها. تقوم كل من Cloudflare Gateway وZscaler وNetskope بشحن قواعد MCP اعتبارًا من أبريل 2026. بالنسبة إلى الموقع المحلي، يمكنك التصفية على رأس MCP-Protocol-Version أو نوع محتوى التطبيق/json-rpc-2 باستخدام أي وكيل L7. يتعامل كل من Squid وEnvoy وHAProxy مع هذا الأمر. الجزء الصعب ليس الفلتر؛ إنها تحافظ على القائمة المسموح بها.
- ما هو مسار التدقيق الذي يقدمه لي MCP خارج الصندوق؟
- لا شيء تقريبا. يحدد البروتوكول استدعاءات الأداة واستجاباتها، لكنه لا يتطلب من الخادم أو العميل تسجيلها. يحتفظ Claude Desktop ببعض السجلات المحلية؛ المؤشر أقل من ذلك. غالبًا ما لا تسجل خوادم المجتمع أي شيء. إذا كنت بحاجة إلى مسار تدقيق ينجو من مراجعة الحوادث، فيمكنك تجهيزه بنفسك من جانب الخادم، أو وضع بوابة في المقدمة تكتب السجلات المنظمة. لا تعتمد على العميل في الاحتفاظ بالأدلة.
ابدأ البناء مع botoi
أكثر من 150 نقطة نهاية API للبحث ومعالجة النصوص وتوليد الصور وأدوات المطورين. باقة مجانية، بدون بطاقة ائتمان.