دانيلا (⁦Dayfing⁩)
العودة إلى المقالات
2,147 كلمة9 د

حقن التعليمات في وكلاء الذكاء الاصطناعي وMCP: نموذج التهديد والحماية

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

تطبّق هذه المقالة قائمة OWASP GenAI LLM Top 10 لعام 2026 على الوكلاء الذين يقرأون محتوى خارجياً ويستخدمون MCP. هذه وثيقة لنموذج تهديد وإرشاد هندسي، وليست تدقيقاً أمنياً. لا يضمن أي ضابط مذكور هنا الأمان الكامل. الافتراض العملي هو أن الحقن سيؤثر أحياناً في النموذج، ولذلك يجب جعل الفعل الناتج محدوداً ومرئياً وقابلاً للعكس وصعب التحويل إلى غرض آخر.

لماذا لا يشكل النموذج حدّاً أمنياً

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

تصف OWASP LLM01:2026 حقن التعليمات بأنه تغيير في السلوك تسببه مدخلات مباشرة أو محتوى مسترجع أو نتيجة أداة أو صورة أو صوت أو فيديو أو سياق وسيط أو ذاكرة دائمة. وتختلف هذه الفئة عن كشف المعلومات الحساسة والوكالة المفرطة ومعالجة المخرجات غير الآمنة، مع أنها قد تجتمع في سلسلة حادثة واحدة. الحقن يمنح التأثير، والأداة تمنح الصلاحية، والسر هو الأصل المحمي، وقد يصبح طلب الشبكة أو عنوان URL أو أمر الصدفة قناة إخراج للبيانات.

لا ينبغي أن يحتفظ النموذج ببيانات الاعتماد، أو يقرر التفويض، أو يكون المدقق الوحيد لعملية تغيّر الحالة. ضع هذه القرارات في كود حتمي داخل التطبيق. دع النموذج يفسر ويخطط، واجعل النظام المحيط يفرض ما يمكن تنفيذه فعلياً.

نموذج تهديد لوكيل متصل بـMCP

ابدأ بتدفق البيانات الحقيقي، لا بمخطط ينتهي عند واجهة المحادثة. حدّد المستخدم ومزوّد النموذج ووقت تشغيل الوكيل وعميل MCP وخوادمه وخادم التفويض وواجهات API اللاحقة والمتصفح ونظام الملفات والذاكرة وفهرس الاسترجاع والسجلات وشبكة الخروج. صنّف كل وصلة على أنها من المستخدم أو من المؤسسة أو من طرف ثالث أو عامة أو مجهولة المصدر.

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

افصل قائمة الأصول: تعليمات النظام والمطور، والرموز والمفاتيح، والبيانات الشخصية، والكود، والوثائق الخاصة، وبيانات وصف السحابة، وإعداد الأدوات، والذاكرة، والقدرة على الإرسال أو الحذف أو الشراء أو النشر أو التعديل. سجّل ما يمكن قراءته أو كتابته أو رؤيته من الخارج. قد تسرّب أداة للقراءة فقط بيانات إذا أُرسلت نتيجتها إلى وجهة يسيطر عليها المهاجم. وتصبح أداة الإشعار قناة عالية الأثر إذا قبلت عناوين URL أو أجسام رسائل عشوائية.

اكتب لكل تدفق ثابتاً واضحاً مثل: «لخّص التذكرة ولا تتبع تعليماتها»، أو «اقرأ هذا المستودع فقط»، أو «أنشئ مسودة بريد ولا ترسلها قبل الموافقة». واكتب شرط الفشل أيضاً: سرّ داخل وسيط أداة، أو نطاق يتجاوز المهمة، أو كتابة خارج مساحة العمل، أو وجهة غير مسموحة بالسياسة.

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

الحقن المباشر وغير المباشر

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

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

يوسع MCP السطح في اتجاهين. ينشر الخادم أسماء الأدوات وأوصافها ومخططات الإدخال والموارد والمحفزات التي يضعها العميل في سياق النموذج. قد يطلب وصف مسموم استدعاء أداة أخرى أولاً أو إضافة سر إلى وسيط أو الوثوق بعنوان يملكه المهاجم. ثم يعيد الخادم محتوى قد يفسره النموذج كتعليمة جديدة ويطلق استدعاءً ثانياً. هذا تسميم للأداة أو حقن في ناتجها حتى لو كانت رسائل JSON-RPC صحيحة.

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

من التأثير إلى إخراج البيانات

يصبح حقن التعليمات تسريباً عندما يصل مصدراً بقناة أثر. قد يكون المصدر issue مسموماً استرجعه الوكيل. وقد تكون القناة طلب HTTP أو بريداً أو تعليقاً عاماً أو دعوة تقويم أو عنوان صورة أو سجلاً أو وسيط أداة. لا يحتاج المهاجم إلى الوصول المباشر إلى البيانات الخاصة إذا استطاع الوكيل قراءتها والتواصل مع الخارج.

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

لا تعتمد على تنقية المخرجات وحدها. قد يخرج السر داخل حقل JSON صحيح أو وسيط URL أو رسالة تشخيص أو صورة أو مسافات أو Unicode أو بريد يبدو عادياً. افرض سياسة الوجهة وتدفق المعلومات قبل قناة الأثر. أخفِ الأسرار في السجلات وآثار التتبع، ومرّر الطلبات الصادرة عبر وكيل خروج يحظر العناوين الخاصة والنطاقات غير المعروفة والأساليب غير المتوقعة.

تفويض MCP وضوابط OAuth

في خادم MCP HTTP محمي، افصل أدوار البروتوكول. خادم MCP هو resource server، والعميل يطلب الوصول نيابة عن مالك المورد، وخادم authorization server يصدر الرموز. اتبع مواصفة تفويض MCP ومتطلبات OAuth المطابقة لإصدارك، ولا تخترع مسار proxy.

اربط الرمز بمورد MCP المقصود. تفرض المواصفة إرسال URI القانوني للخادم في معامل OAuth resource داخل طلب التفويض وطلب الرمز، وتفرض على الخادم التحقق من أن الرمز صادر له. استخدم ترويسة Authorization ولا تضع الرمز في سلسلة الاستعلام. يجب ألا يقبل خادم MCP رمزاً لمورد آخر أو يمرره. وإذا اتصل بواجهة API عليا، فليستخدم رمزاً منفصلاً. تمرير الرمز يهدم فصل الجمهور ويضعف الحد والتدقيق وقد يحول الخادم إلى وكيل لإخراج البيانات.

احمِ authorization code باستخدام PKCE، وعناوين redirect URI المسجلة حرفياً، وHTTPS في الإنتاج، وقيمة state عشوائية لمرة واحدة. يجب على proxy الذي يسجل العملاء ديناميكياً الحصول على موافقة لكل عميل قبل إعادة التوجيه إلى خادم طرف ثالث. اربط الموافقة بمعرّف العميل وبالنطاقات المطلوبة. لا تكفي cookie عامة تقول إن «التطبيق حصل على الموافقة»، لأنها قد تخلق confused deputy.

تعامل مع الاكتشاف كمدخل من الخادم، لا كإعداد موثوق. اسمح بمخططات ومضيفين في allowlist، وارفض javascript: وdata: وfile:. امنع SSRF بحظر نطاقات العناوين الخاصة وloopback وlink-local وcloud metadata، وتحقق من كل إعادة توجيه، واستخدم وكيل خروج. لا تفتح URL عبر الصدفة. قد يحاول الحقن استغلال أي من هذه المسارات.

استخدم نطاقات تصاعدية. ابدأ بالاكتشاف والقراءة، واطلب نطاقاً دقيقاً فقط عند احتياج عملية محددة، وسجل المجموعة المطلوبة والممنوحة مع معرّف ارتباط. تجنب * وall والنطاق الإداري الشامل. لا تستبدل claims التفويض على مستوى الخادم لكل أداة ولكل وسيط. تقلل الرموز القصيرة والتخزين المحمي وتدوير refresh token للعملاء العامين والسجلات المنقحة أثر سرقة الرمز.

للخادم المحلي حد مختلف. قد يعمل بالامتيازات نفسها التي يملكها العميل، ويقرأ الملفات، ويستخدم الشبكة، ويطلق أوامر. اعرض أمر البدء الكامل ووسائطه قبل الاتصال. فضّل stdio أو IPC محمياً على HTTP بلا مصادقة. شغّل العملية داخل sandbox أو حاوية بأقل صلاحيات للملفات والشبكة والعمليات، وامنح المجلدات والوجهات الإضافية بشكل صريح.

دفاع متعدد الطبقات

يحد مبدأ أقل الصلاحيات من نطاق الانفجار. امنح كل وكيل الأدوات اللازمة لمسار واحد فقط. افصل القراءة عن الصياغة والموافقة والتثبيت. استخدم بيانات اعتماد قصيرة ومحددة للعملية بدلاً من رمز مستخدم دائم. أعد فحص التفويض وقت التنفيذ لأن خطة النموذج أو الجلسة أو وصف الأداة أو المورد قد تغير.

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

يحد العزل ما يمكن أن تصل إليه حقنة ناجحة. افصل المستأجرين والجلسات ومخازن الذاكرة. لا تمنح عامل التصفح بيانات اعتماد خاصة. ضع وكلاء البرمجة في مساحة عمل ضيقة، واحظر الشبكة افتراضياً، واستخدم هوية منفصلة لتثبيت الحزم. اجمع عزل العملية والملفات والشبكة والمتصفح. الحاوية ليست سياسة مكتملة، لذلك راجع mounts والمقابس والهوية والخروج ومسارات الهروب.

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

تحقق من المخرج بكود موثوق باستخدام مخططات صارمة وallowlist للأدوات ووسائط typed وفحص URL والمسار وحدود الحجم والمعدل وآلة حالات صريحة لكل سير عمل. لا تجعل رأي نموذج ثانٍ في السلامة تفويضاً. قد يكشف الناقد سلوكاً مشبوهاً، لكن القرار النهائي يجب أن يكون حتمياً. سجّل المطالبة الأصلية والمصادر وإصدار بيانات الأداة والوسائط وقرار السياسة والموافقة والنتيجة من دون حفظ الأسرار الخام.

التقييم العدائي والتشغيل

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

اختبر مهاجماً تكيفياً يعرف المصنفات والعلامات والمخططات وقواعد الموافقة. غيّر الكلمات والنمط وترتيب الأدوات والتوقيت ووجهة البيانات. قد تبدو نتيجة benchmark ثابتة ممتازة بينما يجد المهاجم الذي يعرف الدفاع طريقاً آخر. قِس نجاح الهجوم واستدعاءات الأدوات غير المسموحة والبايتات الحساسة التي تصل إلى القناة ورفع النطاق ودقة الموافقة وزمن الاكتشاف وزمن إلغاء الوصول. احتفظ باختبارات الانحدار بعد كل تغيير في النموذج أو المطالبة أو الخادم أو السياسة أو التبعية. يمكن أن يوثق دليل تقييم وكلاء الذكاء الاصطناعي البرنامج.

قارن القرارات المعمارية مع production AI agent architecture. وتوجد تفاصيل OAuth في MCP server TypeScript مع OAuth. هذه الروابط تدعم العمل الهندسي لكنها لا تستبدل نمذجة بيئتك الفعلية.

قائمة الحوادث

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

ألغِ ودوّر بيانات الاعتماد التي ربما دخلت السياق أو السجلات، وأبطل الجلسات وجدّد refresh tokens حيث يلزم. احظر الوجهة وخادم MCP المتأثر. افحص واجهات API اللاحقة بحثاً عن قراءات أو كتابات أو رسائل أو grants OAuth غير مسموحة. طابق الوسائط المنفذة مع المعاينة التي وافق عليها الشخص.

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

ما لا يمكن للحماية أن تعد به

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

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

المصادر

مقالات أخرى