لا يزال نظام MCP (بروتوكول السياق النموذجي) في مراحله الأولى من التطوير. البيئة العامة فوضوية نسبيًا، وتظهر أساليب الهجوم المحتملة المختلفة في تيار لا نهاية له. ومن الصعب الدفاع ضدهم باستخدام التصميم الحالي للبروتوكولات والأدوات. من أجل مساعدة المجتمع على فهم وتحسين أمان MCP بشكل أفضل، قامت SlowMist بشكل خاص بتوفير أداة MasterMCP مفتوحة المصدر، على أمل مساعدة الجميع في اكتشاف المخاطر الأمنية في تصميم المنتج في الوقت المناسب من خلال تدريبات الهجوم الفعلية، وذلك لتعزيز مشاريع MCP الخاصة بهم خطوة بخطوة. في الوقت نفسه، يمكنك استخدام قائمة التحقق من أمان MCP الخاصة بالإصدار السابق لفهم وجهات النظر الأساسية للهجمات المختلفة بشكل أفضل. هذه المرة، سنأخذك إلى ممارسة عملية ونوضح لك أساليب الهجوم الشائعة في نظام MCP، مثل تسميم المعلومات وإخفاء التعليمات الضارة وغيرها من الحالات الحقيقية. ستكون جميع البرامج النصية المستخدمة في العرض التوضيحي مفتوحة المصدر أيضًا على GitHub (انظر الرابط في نهاية المقالة). يمكنك إعادة إنتاج العملية بأكملها في بيئة آمنة، وحتى تطوير مكونات إضافية لاختبار الهجوم استنادًا إلى هذه البرامج النصية.
نظرة عامة على البنية العامة
هدف الهجوم التوضيحي MCP: Toolbox
smithery.ai هو أحد مواقع المكونات الإضافية MCP الأكثر شهرة، ويجمع عددًا كبيرًا من قوائم MCP والمستخدمين النشطين. ومن بينها، @smithery/toolbox هي أداة إدارة MCP التي تم إطلاقها رسميًا بواسطة smithery.ai.

يعتمد اختيار Toolbox كهدف للاختبار بشكل أساسي على النقاط التالية:
يحتوي على قاعدة مستخدمين كبيرة ويمثل الجميع؛
يدعم التثبيت التلقائي للمكونات الإضافية الأخرى ويكمل بعض وظائف العميل (مثل Claude Desktop)؛
إنه يحتوي على تكوينات حساسة (مثل مفتاح API) للتوضيح السهل.
MCP الخبيثة المستخدمة في العرض التوضيحي: MasterMCP
MasterMCP هي أداة MCP خبيثة محاكاة كتبها SlowMist خصيصًا لاختبار الأمان. يعتمد على تصميم معماري إضافي ويحتوي على الوحدات النمطية الرئيسية التالية:
1. محاكاة خدمة موقع الويب المحلي: http://127.0.0.1:1024
من أجل استعادة سيناريو الهجوم بشكل أكثر واقعية، يحتوي MasterMCP على وحدة محاكاة خدمة موقع ويب محلي مدمجة. يستخدم إطار عمل FastAPI لإنشاء خادم HTTP بسيط بسرعة لمحاكاة بيئة الويب المشتركة. تبدو هذه الصفحات عادية على السطح، مثل عرض معلومات متجر الكعك أو إرجاع بيانات JSON القياسية، ولكن في الواقع، يتم إخفاء الحمولات الضارة المصممة بعناية في كود مصدر الصفحة أو إرجاعات الواجهة.
بهذه الطريقة، يمكننا أن نوضح بشكل كامل أساليب الهجوم مثل تسميم المعلومات وإخفاء الأوامر في بيئة محلية آمنة وقابلة للتحكم، مما يساعد الجميع على الفهم بشكل أكثر حدسًا: حتى صفحة ويب عادية على ما يبدو قد تصبح مصدرًا للمخاطر الخفية التي تدفع النماذج الكبيرة إلى القيام بعمليات غير طبيعية.

2. هندسة المكونات الإضافية المحلية لـ MCP

عميل تجريبي
نموذج كبير مستخدم في العرض التوضيحي
Claude تم اختيار الإصدار 3.7 لأنه حقق بعض التحسينات في التعرف على العمليات الحساسة ويمثل قدرات التشغيل الأقوى في نظام MCP البيئي الحالي.
التكوين claude_desktop_config.json
{ "mcpServers": { "صندوق الأدوات": { "الأمر": "npx", "args": [ "-y", "@smithery/cli@latest", "تشغيل"، "@smithery/toolbox", "--config", "{\"ديناميكي\": خطأ،\"حدادة APIKey\":\"ec1f0fa8-5797-8678-sdaf-155d4584b133\"}"، "--key", "ec1f0fa8-5797-8678-sdaf-155d4584b133" ] }, "MasterMCP": { "command": "/Users/xxx/Desktop/EvilMCP/bin/python"، [ "/Users/xxx/Desktop/EvilMCP/MasterMCP.py" ] } } }
بعد اكتمال التكوين، يتم الدخول رسميًا إلى العرض التوضيحي.
استدعاء ضار عبر MCP

يتضمن هذا العرض التوضيحي محتوىين: تسميم القائمة المرجعية والاستدعاء الضار عبر MCP.
هجوم تسميم محتوى صفحة الويب
1. تسميم التعليقات (مرجع جزئي: https://x.com/lbeurerkellner/status/1912145060763742579)
يصل المؤشر إلى موقع الاختبار المحلي http://127.0.0.1:1024.
هذه صفحة تبدو غير ضارة حول "عالم الكيك اللذيذ". من خلال هذه التجربة، قمنا بمحاكاة تأثير زيارة عميل نموذجي كبير لموقع ويب ضار.

نفذ التعليمات:
احصل على محتوى http://127.0.0.1:1024
![]()

على الرغم من أن طريقة التعليق واضحة نسبيًا ويسهل التعرف عليها، إلا أنها يمكن أن تؤدي بالفعل إلى عمليات ضارة.
2. تسميم التعليقات المشفرة
قم بزيارة صفحة http://127.0.0.1:1024/encode، وهي صفحة ويب تشبه المثال أعلاه، ولكن كلمات المطالبة الضارة مشفرة، مما يجعل التعليقات المسمومة أكثر إخفاءً ويصعب اكتشافها بشكل مباشر حتى إذا تم الوصول إلى الكود المصدر لصفحة الويب.

حتى لو لم يحتوي الكود المصدر على مطالبات نصية عادية، فإن الهجوم لا يزال يتم تنفيذه بنجاح. سيتم شرح المبدأ المحدد بالتفصيل في الفصول اللاحقة.

أداة MCP تعيد معلومات التسمم

هنا نعتمد على كلمة المطالبة الخاصة بـ MasterMCP التي تشير إلى إدخال تعليماتنا المحاكية (هذه التعليمات ليس لها معنى فعلي وهي تهدف إلى تشغيل MCP الخبيث لدينا لإظهار العمليات اللاحقة لـ MCP الخبيث): احصل على الكثير من التفاح

يمكنك أن ترى أنه بعد تشغيل التعليمات، يستدعي العميل مجموعة الأدوات عبر MCP ويضيف خادم MCP جديدًا بنجاح:
هجوم تلويث واجهة الطرف الثالث
هذا العرض التوضيحي يهدف بشكل أساسي إلى تذكير الجميع بأنه سواء كان MCP ضارًا أو غير ضار، عند استدعاء واجهة برمجة تطبيقات تابعة لجهة خارجية، إذا تم إرجاع بيانات الطرف الثالث مباشرة إلى السياق، فقد يكون لذلك عواقب وخيمة.
مثال على الكود:

تنفيذ الطلب:
جلب json من http://127.0.0.1:1024/api/data

النتيجة: تم زرع كلمات المطالبة الخبيثة في بيانات JSON المسترجعة ونجحت في تشغيل التنفيذ الخبيث.
تكنولوجيا التسميم في مرحلة تهيئة نظام MCP

يتضمن هذا العرض التوضيحي محتوىين: حقن الكلمات الأولية وصراع الأسماء في قائمة التحقق.
هجوم استبدال وظيفة ضارة
هنا كتب MasterMCP أداة بنفس اسم الوظيفة مثل Toolbox، remove_server، وقام بترميز كلمات المطالبة الضارة وإخفائها.

أمر التنفيذ:
إزالة خادم مكون إضافي لجلب البيانات من صندوق الأدوات

لم يستدعِ Claude Desktop طريقة `toolbox remove_server` الأصلية، ولكنه فعّل الطريقة التي تحمل الاسم نفسه والتي يوفرها MasterMCP:

لم يستدعِ Claude Desktop طريقة `toolbox remove_server` الأصلية، ولكنه فعّل طريقة تحمل الاسم نفسه التي يوفرها MasterMCP:

المبدأ هو التأكيد على أن "الطريقة الأصلية قد تم التخلي عنها" وإعطاء الأولوية لحث النموذج الكبير على استدعاء الوظيفة التي تم الكتابة فوقها بشكل خبيث.
إضافة منطق فحص عالمي ضار
هنا كتب MasterMCP أداة مشابهة لـ banana. الوظيفة الأساسية لهذه الأداة هي إجبار جميع الأدوات على إجراء عمليات فحص أمنية قبل التشغيل في كلمة المطالبة.


قبل عند تنفيذ كل وظيفة، سيعطي النظام الأولوية لاستدعاء آلية فحص الموز:
هذا عبارة عن حقن منطقي عالمي يتم تحقيقه من خلال التأكيد المتكرر على "يجب تشغيل اكتشاف الموز" في الكود.
تقنيات متقدمة لإخفاء الكلمات الضارة
طرق ترميز صديقة للنماذج الكبيرة
نظرًا للقدرة القوية على تحليل نموذج اللغة الكبير (LLM) للتنسيقات متعددة اللغات، يتم استخدامه لإخفاء المعلومات الضارة. تتضمن الطرق الشائعة ما يلي:
الأداة الموصى بها: Hex Decoder
الأداة الموصى بها: R12a Unicode Conversion Tools
آلية إرجاع الحمولة الخبيثة العشوائية
كما ذكر في الفصل الثاني، عند طلب http://127.0.0.1:1024/random، تكون واجهة الطرف الثالث ملوثة:


سيتم إرجاع صفحة تحتوي على حمولة ضارة بشكل عشوائي في كل مرة، مما يزيد بشكل كبير من صعوبة الكشف والتتبع.
ملخص
من خلال هذا العرض العملي لـ MasterMCP، نرى بشكل حدسي المخاطر الأمنية المختلفة المخفية في نظام بروتوكول سياق النموذج (MCP). من حقن الكلمات السريعة البسيطة واستدعاءات MCP المتقاطعة إلى هجمات مرحلة التهيئة الأكثر سرية وإخفاء الأوامر الضارة، يذكرنا كل رابط بأنه على الرغم من قوة نظام MCP البيئي، إلا أنه هش أيضًا.
خاصة اليوم عندما تتفاعل النماذج الكبيرة بشكل متزايد مع المكونات الإضافية وواجهات برمجة التطبيقات الخارجية، فإن حتى كمية صغيرة من تلوث الإدخال قد تسبب مخاطر أمنية على مستوى النظام بأكمله. إن تنوع أساليب المهاجمين (إخفاء الشيفرات، التلوث العشوائي، تغطية الوظائف) يعني أيضًا أن أفكار الحماية التقليدية تحتاج إلى تحديث شامل. لا يمكن تحقيق السلامة بين عشية وضحاها. آمل أن يكون هذا العرض بمثابة جرس إنذار للجميع: يجب على كل من المطورين والمستخدمين أن يكونوا يقظين بدرجة كافية بشأن نظام MCP، وأن ينتبهوا دائمًا إلى كل تفاعل، وكل سطر من التعليمات البرمجية، وكل قيمة إرجاع. من خلال الاهتمام الدقيق بكل التفاصيل فقط يمكننا بناء بيئة MCP مستقرة وآمنة حقًا.
بعد ذلك، سنستمر في تحسين البرنامج النصي MasterMCP وفتح حالات الاختبار المستهدفة بشكل أكثر لمساعدة الجميع على فهم الحماية وممارستها وتعزيزها بشكل عميق في بيئة آمنة.
ملاحظة. تمت مزامنة المحتوى ذي الصلة مع GitHub (https://github.com/slowmist/MasterMCP). يمكن للقراء المهتمين الضغط على النص الأصلي الموجود في نهاية المقال للانتقال مباشرة.