Prompt injection عبر skills في Claude Code: كيف تتحقق من plugin قبل تثبيته
هل تستخدم skills من جهات خارجية في Claude Code أو أدوات AI مشابهة؟ كل skill ليست مجرد ملف MD يحتوي على تعليمات، بل شيفرة قد تكون قابلة للتنفيذ بصلاحيات المستخدم الكاملة. يوضح مطور على Habr أنه عبر skill OSS خبيثة يمكن للمهاجم قراءة رموز API ومفاتيح SSH وسجل المحادثات بصمت. نشرح ما الذي يجب التحقق منه تحديدا قبل تثبيت أي plugin.
معالج بواسطة الذكاء الاصطناعي من Habr AI؛ بتحرير Hamidun News
نشر مطور على Habr دليل أمان عملي في يوليو 2026 للمهارات مفتوحة المصدر لأدوات الذكاء الاصطناعي — وشرح لماذا أن المهارة الخبيثة أخطر من حقن المطالبات القياسي: فهي تعمل بامتيازات المستخدم بدون أي عزلة.
لماذا المهارة ليست مجرد مطالبة؟
مفهوم خاطئ شائع: المهارة بالنسبة إلى Claude Code أو أداة ذكاء اصطناعي مماثلة هي إعدادات نصية، آمنة بالتعريف. فتح SKILL.md، اقرأ التعليمات — وثق بأن كل شيء تحت السيطرة.
في الممارسة العملية، الحد الفاصل بين «الإعدادات» و «الكود القابل للتنفيذ» قد ظل مائعاً منذ فترة طويلة. تشمل المهارات الحديثة:
- نصوص Python أو Bash يتم تنفيذها عبر `tool_call`
- تعليمات للعمل مع نظام الملفات المحلي ومتغيرات البيئة
- استدعاءات لواجهات برمجية خارجية ونقاط نهاية webhook
- خطوط أنابيب الوكيل المتعددة المراحل مع حقوق الوصول الموسعة
كل هذا يعمل بامتيازات المستخدم الحالي — بدون عزلة sandbox افتراضياً. تحصل المهارة الخبيثة على الوصول إلى الملفات ورموز API ومفاتيح SSH وسجل الدردشة: ليس إلى شيء مجرد، بل إلى ما يقع على القرص الآن.
هذا بالضبط ما يجعل ناقل الهجوم من خلال مهارة مختلفاً بشكل أساسي عن، على سبيل المثال، ثغرة المتصفح: المهارة لا تتجاوز الحماية، فهي تستخدم الأذونات المقدمة. من منظور النظام — هذه إجراءات مشروعة تماماً.
كيف يستخدم المهاجم مهارة كناقل هجوم
حقن المطالبات الكلاسيكية: تعليمات خبيثة مختبئة في البيانات التي تمت معالجتها بواسطة النموذج — في نصوص صفحات الويب والمستندات والبريد الإلكتروني. يقرأ الوكيل المحتوى وينفذ الأوامر المخفية. في حالة المهارات التي تحتوي على كود قابل للتنفيذ، يتم ترتيب الهجوم بشكل مختلف وأصعب في الكشف عنه.
سلسلة هجوم نموذجية عبر مهارة OSS:
- ينشر المهاجم مهارة بوظائف مفيدة حقاً — محرر أو محول أو أداة بحث
- الالتزامات الأولى نظيفة، وتحصل المهارة على نجوم وتثبيتها من قبل المستخدمين
- بعد عدة تحديثات، يتم إضافة منطق خبيث — جمع ملفات `.env` ورموز API وسجل الدردشة
- يقوم المستخدم بتحديث المهارة دون التحقق من الاختلاف — تذهب البيانات إلى خادم خارجي
"المهارة ليست إعدادات وليست مجرد مطالبة في SKILL.md. يمكن أن يكون هذا
حرفياً كوداً قابلاً للتنفيذ بامتيازاتك"
على عكس الثغرة في حزمة npm التي يلتقطها `npm audit`، لا تترك المهارة الخبيثة سجل CVE — لا أحد يفحصها تلقائياً.
ما تحقق قبل تثبيت مهارة
قائمة التحقق الدنيا قبل إضافة مهارة شخص آخر:
- اقرأ كل الكود، وليس فقط SKILL.md — تتطلب Python و Bash و PowerShell في دليل المهارات مراجعة يدوية
- ابحث عن الطلبات الخارجية — `curl` و `fetch` و `requests.get` إلى عناوين URL غير المألوفة بدون ضرورة صريحة — علم أحمر
- تحقق من الوصول إلى المسارات الحساسة — `~/.ssh/` و `~/.env` و `.credentials` بدون إذن صريح من المستخدم غير مقبول
- ادرس سجل الالتزام — يظهر الكود الخبيث غالباً بعد عدة أسابيع من الإصدار النظيف
- ابحث عن الكود المشفر — سلاسل base64 و `eval()` ديناميكي وأسماء متغيرات غير قياسية
- تدقيق الاعتماديات — يمكن أن تكون المنطق الخبيث في مكتبة مساعدة وليس في SKILL.md نفسه
يجب اختبار المهارات غير المعروفة في بيئة معزولة: ملف تعريف منفصل بدون مفاتيح API حقيقية، بدون وصول إلى ملفات الإنتاج. الخيار الأمثل هو حساب اختبار مخصص بدون رموز إنتاج.
ما يعنيه هذا
تكرر النظام البيئي OSS للمهارات لمساعدات الذكاء الاصطناعي مسار npm من قبل عقد: النمو السريع والتحقق المركزي الضعيف وعادة التثبيت بدون تدقيق. الفرق أساسي: لا تعمل المهارة في بيئة Node معزولة، بل مباشرة في بيئة العمل للمستخدم بامتيازاتهم. تدقيق المهارات قبل التثبيت ليس جنوناً بالاضطهاد، بل نفس صحة الأمان مثل `npm audit` قبل النشر.
هل تحتاج إلى ذكاء اصطناعي يعمل داخل شركتك — وليس فقط في موجز الأخبار؟
أبني ذكاءً اصطناعياً جاهزاً للإنتاج للشركات — أنظمة CRM مخصّصة، أدوات داخلية، وكلاء مستقلون، أتمتة سير العمل. ملك لك، مصمّم وفق عمليتك، دون رسوم لكل مستخدم. من إعداد جمال خميدون، مدير المنتجات في AlpinaGPT (منصة ذكاء اصطناعي، أكثر من 6000 مستخدم).
أهم ما في عالم الذكاء الاصطناعي — مرة كل أسبوع
سبع قصص مهمة فعلاً هذا الأسبوع، مختارة بعناية. بلا ضجيج ولا بيانات صحفية.
تم! تحقق من بريدك للتأكيد.