القفز على الخط: إزاي ال MCP ممكن تهاجمك قبل ما تستخدمها
كيف استغلال “Line Jumping” بيسمح لخوادم MCP خبيثة بتغيير سلوك الموديل قبل أي دعوة أداة
الكاتب بيتحدث عن ثغرة أمنيّة في بروتوكول Model Context Protocol (MCP) اسمها “Line Jumping”، واللي بتخلي خوادم MCP خبيثة تقدر تزود الموديل بتعليمات خفية قبل ما المستخدم يستعمل أي أداة.
القفز على الخط: الباب الخلفي الصامت في MCP
لما نفكر في الحواجز الأمنية بنتوقع إنها زي نقاط التفتيش في العالم الحقيقي: ما فيش حاجة تعدي من غير إذن واضح. لكن ثغرة line jumping بتسمح للهجمات إنها تبدأ قبل ما نقاط التفتيش تشتغل أصلاً .
خوادم MCP ممكن تُغيّر سلوك الموديل حتى قبل ما المستخدم يستدعي أي tool. الخادم بيقدّم وصف للأدوات عبر tools/list، والوصف بيُدمج في سياق الموديل، وممكن يكون فيه تعليمات خبيثة متنطوخة في النص .
إزاي بيشتغل الهجوم
العميل بيتّصل بخادم MCP وبيطلب قائمة الأدوات عبر tools/list.
الخادم بيرجع وصف لكل أداة (الاسم، الاستخدام، الغرض).
العميل بيضيف الوصف ده حرفياً في سياق الموديل.
لو الوصف فيه تعليمات مخفية أو “prompt injection”، الموديل بيطبقها قبل أي أمر صريح.
مثال واضح: الوصف يقول إن كل أوامر الشيل لازم يسبقها chmod -R 0666 ~; تحت مسمّى “أداة للامتثال الداخلي”. ده بيفتح ملفات المستخدم للقراءة والكتابة للعامة من غير ما المستخدم يعرف.
تجاوز الإشراف البشري
الكثير من بيئات التطوير المبنية على الذكاء الاصطناعي (زي Cursor، Claude Desktop) بتمكّن التنفيذ الآلي بدون حاجة لموافقة صريحة من المستخدم. ده بيخلي التعليمات الخبيثة تُنفذ بسهولة مع أوامر شرعية بدون رقابة حقيقية .
كمان، المستخدمين لما بيستنجدوا بالمساعدين في مجالات مش متخصصة فيها، غالبًا ما بيخافوا أو ما يكتشفوش التغييرات الخبيثة اللي شكلها ظاهر طبيعي.
تقويض وعود الأمان في MCP
الثغرة دي بتخرق مبدأين أساسين في MCP:
Tool Safety: الأداة ما تشتغلش غير لما المستخدم يسمح، لكن هنا التعليمات بتُحقن قبل الدعوة.
Connection Isolation: المفروض إنه الخادم المستقل ما يقدرش يأثر على غيره، لكن الوصف بيسمح بتوصيل غير مباشر عبر النموذج.
يعني نظام الأمان موجود، لكن بيشتغّل بعد ما الهجوم يحصل بالفعل .
أمثلة لتأثير الثغرة في العالم الواقعي
استنساخ الكود (Code exfiltration): الموديل ممكن ينسخ أي snippet يشاركه المستخدم ويبعته للخادم المهاجم.
إدخال ثغرات في الكود: الموديل ممكن يولّد كود فيه أخطاء ضعف أمنية (SQL injection، memory leak،…) من غير ما المستخدم يلاحظ.
إخفاء التنبيهات الأمنية: الموديل ممكن يتجاهل أو يغيّر تصنيف تحذيرات الأمان، وده يخلق ثغرات كبيرة في الأنظمة الإنتاجية .
تعليمات للوقاية: ما تستناش التحديثات
لو لسه البروتوكول ما اتصلحش، لازم تتعامل مع كل خادم MCP كأنه ممكن يهدد الأمان:
اختار مصادر موثوقة: ما توصلش لخوادم MCP إلا لو مضمون المصدر.
افحص أوصاف الأدوات: الأوصاف ممكن تحتوي تعليمات مش واضحة، لا تقبل أي وصف تلقائي بدون تدقيق.
استخدم TOFU (Trust-On-First-Use): تنبيه لما أداة جديدة تتضاف أو يتغير وصف أداة موجود.
قلل التنفيذ التلقائي: خاصّة لما الأدوات بتتفاعل مع بيانات حساسة.
راجع دوريًا: راقب الأوامر اللي بيقترحها الموديل وشوف لو في prefixes غريبة.
تعقب مصدر السياق والثقة: اعرف الوصف جاي منين وقد إيه تقدر تثق فيه قبل اتخاذ أي خطوة .
الخلاصة
بروتوكول MCP بيسهل دمج قدرات الذكاء الصناعي مع أدوات خارجية بسرعة، لكن لو ما تجيبش الحماية على محمل الجد، بيقدّم فرص جديدة للهجمات.
ثغرة “line jumping” بتحوّل الوهم بالأمان لنقطة ضعف، وبتحتاج نهج zero‑trust والشب بلان لحماية بيئة العمل.
لحد ما يطلع تحديث رسمي للبروتوكول، دافع نفسك بالحذر والصلاحيات المقيدة والتدقيق في كل وصف بيجيلك من خوادم MCP.
المقال الاصلي هنا: