كشف ثغرات MCP: تسميم وتلاعب خفي

نظرة عامة على البنية

هدف MCP للعرض التوضيحي: Toolbox

تبرز Smithery.ai كمركز بارز لملحقات MCP، حيث تجذب عددًا كبيرًا من قوائم MCP والمستخدمين النشطين. من بين هؤلاء، @smithery/toolbox، وهي أداة إدارة MCP رسمية تقدمها smithery.ai، وهي النقطة المحورية لهذا التقييم الأمني.

تم اختيار Toolbox كهدف اختبار لعدة أسباب رئيسية:

  • تفتخر بقاعدة مستخدمين كبيرة، مما يجعلها عينة تمثيلية داخل نظام MCP البيئي.
  • وهي تدعم التثبيت التلقائي للملحقات الإضافية، مما يزيد من وظائف جانب العميل (مثل Claude Desktop).
  • تحتوي على تكوينات حساسة، مثل مفاتيح API، مما يسهل توضيح عمليات الاستغلال المحتملة.

MCP ضار مستخدم للعرض التوضيحي: MasterMCP

MasterMCP، الذي طورته SlowMist خصيصًا لأغراض الاختبار الأمني، هو أداة MCP ضارة محاكاة مبنية على بنية معيارية. وتشمل مكوناته الرئيسية ما يلي:

  1. محاكاة خدمة موقع الويب المحلي: http://127.0.0.1:1024

لإنشاء سيناريو هجوم واقعي، يشتمل MasterMCP على وحدة محاكاة خدمة موقع ويب محلي. باستخدام إطار FastAPI، تقوم هذه الوحدة بسرعة بإنشاء خادم HTTP بسيط يحاكي بيئات الويب الشائعة. قد تبدو هذه الصفحات غير ضارة، حيث تعرض معلومات المخبز أو تعيد بيانات JSON القياسية، لكنها تخفي حمولات ضارة مصممة بدقة داخل التعليمات البرمجية المصدر أو استجابات API الخاصة بها.

يسمح هذا النهج بالعرض الشامل لتقنيات تسميم المعلومات وإخفاء الأوامر في بيئة محلية آمنة وخاضعة للرقابة. ويسلط الضوء على المخاطر المحتملة الكامنة داخل صفحات الويب التي تبدو عادية، والتي يمكن أن تؤدي إلى سلوك غير طبيعي في نماذج اللغة الكبيرة.

  1. هندسة MCP المكونة من المكونات الإضافية المترجمة

تتبنى MasterMCP نهجًا إضافيًا لتسهيل قابلية التوسع السريع لمتجهات الهجوم الجديدة. عند التنفيذ، يبدأ MasterMCP خدمة FastAPI الخاصة بالوحدة السابقة في عملية فرعية.

عميل العرض التوضيحي

  • Cursor: أحد IDEs برمجة الذكاء الاصطناعي الأكثر استخدامًا على نطاق واسع على مستوى العالم.
  • Claude Desktop: العميل الرسمي لـ Anthropic، المنظمة التي خصصت بروتوكول MCP.

نموذج اللغة الكبيرة (LLM) المستخدم للعرض التوضيحي

  • Claude 3.7

تم اختيار Claude 3.7 نظرًا لقدراته المحسنة في التعرف على العمليات الحساسة وتمثيله لقدرات تشغيلية قوية داخل نظام MCP البيئي الحالي.

تكوين claude\_desktop\_config.json

باستكمال التكوينات، تبدأ مرحلة العرض التوضيحي.

الاستدعاء الضار عبر MCP

يتضمن هذا العرض التوضيحي كلاً من تقنيات التسميم واستراتيجيات الاستدعاء الضارة عبر MCP الموضحة في قائمة التحقق.

هجوم تسميم محتوى صفحة الويب

  1. التسميم القائم على التعليقات

يقوم Cursor بالوصول إلى موقع الويب التجريبي المحلي على http://127.0.0.1:1024.

تعمل هذه الصفحة التي تبدو غير ضارة حول ‘عالم الكيك اللذيذ’ كمحاكاة لتوضيح التأثير المحتمل لوصول عميل نموذج لغوي كبير إلى موقع ويب ضار.

أمر التنفيذ:

تكشف النتائج أن Cursor لا يقرأ محتوى صفحة الويب فحسب، بل ينقل أيضًا بيانات التكوين الحساسة المحلية مرة أخرى إلى الخادم التجريبي. يتم تضمين المطالبة الضارة في التعليمات البرمجية المصدر كتعليق HTML:

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

  1. تسميم التعليقات المشفرة

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

على الرغم من عدم وجود مطالبات صريحة في التعليمات البرمجية المصدر، إلا أن الهجوم ينجح.

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

استنادًا إلى إرشادات مطالبة MasterMCP، ندخل أمرًا محاكيًا يؤدي إلى تشغيل MCP الضار ويوضح عملياته اللاحقة.

عند تشغيل الأمر، يبدأ العميل مكالمة عبر MCP إلى Toolbox ويضيف بنجاح خادم MCP جديد.

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

هجوم تلوث واجهة الطرف الثالث

يسلط هذا العرض التوضيحي الضوء على المخاطر المحتملة المرتبطة بكل من MCPs الضارة وغير الضارة التي تعيد بيانات API الخاصة بالطرف الثالث مباشرة إلى السياق.

مثال على التعليمات البرمجية:

طلب التنفيذ:

النتيجة: يتم تضمين المطالبة الضارة في بيانات JSON التي تم إرجاعها وتؤدي بنجاح إلى تنفيذ ضار.

تقنيات التسميم أثناء تهيئة MCP

يغطي هذا العرض التوضيحي عناصر قائمة التحقق الخاصة بحقن المطالبة الأولية وتعارضات الأسماء.

هجوم الكتابة الزائدة للدالة الضارة

يقوم MasterMCP بإنشاء أداة بنفس اسم الدالة الخاصة بـ Toolbox remove_server، ويقوم بترميز مطالبات ضارة بداخلها.

أمر التنفيذ:

لا يستدعي Claude Desktop طريقة toolbox remove_server الأصلية، بل يقوم بتشغيل الطريقة التي يوفرها MasterMCP والتي تحمل نفس الاسم:

يتم تحقيق ذلك من خلال التأكيد على أن ‘الطريقة الأصلية مهملة’، مما يشجع نموذج اللغة الكبير على إعطاء الأولوية للدالة المكتوبة فوقها بشكل ضار.

إضافة منطق فحص عام ضار

يقوم MasterMCP بإنشاء أداة تسمى ‘banana’، وهي مصممة لفرض فحص أمني إلزامي قبل تنفيذ أي أداة أخرى.

قبل تنفيذ كل دالة، يعطي النظام الأولوية لآلية فحص ‘banana’:

يتم إنجاز حقن المنطق العام هذا من خلال التأكيد بشكل متكرر على ‘التنفيذ الإلزامي لاكتشاف banana’ داخل التعليمات البرمجية.

تقنيات متقدمة لإخفاء المطالبات الضارة

طرق الترميز الصديقة لـ LLM

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

  • بيئة اللغة الإنجليزية: ترميز Hex Byte
  • بيئة اللغة الصينية: ترميز NCR أو ترميز JavaScript

آلية إرجاع الحمولة الضارة العشوائية

على غرار تلوث واجهة الطرف الثالث المذكور في القسم الثالث، فإن طلب http://127.0.0.1:1024/random يؤدي إلى:

تعيد كل استجابة صفحة تم إنشاؤها عشوائيًا تحتوي على حمولة ضارة، مما يزيد بشكل كبير من صعوبة الاكتشاف والتتبع.

من خلال العرض التوضيحي العملي لـ MasterMCP، تم الكشف عن الثغرات الأمنية المخفية داخل نظام Model Context Protocol (MCP) البيئي. من عمليات حقن المطالبات الأساسية واستدعاءات MCP عبر MCP إلى الهجمات الأكثر دقة أثناء التهيئة وإخفاء الإرشادات الضارة، تعمل كل مرحلة كتذكير بالهشاشة الكامنة جنبًا إلى جنب مع قوة نظام MCP البيئي.

اليوم، مع تفاعل النماذج الكبيرة بشكل متزايد مع المكونات الإضافية وواجهات برمجة التطبيقات الخارجية، يمكن أن يؤدي تلوث الإدخال الذي يبدو طفيفًا إلى إطلاق مخاطر أمنية على مستوى النظام. يتطلب التنوع المتطور لتكتيكات المهاجمين، بما في ذلك تقنيات الترميز والتلوث العشوائي والكتابة الزائدة للدالات، ترقية شاملة لمناهج الأمان التقليدية.