اطلب من مساعد برمجي حل مشكلة وسيوصي أحيانًا بتثبيت حزمة: حزم حقيقية للمهام الشائعة، وأحيانًا، بمعدل قابل للقياس، حزم لا وجود لها على الإطلاق. لقد اخترع اسمًا معقولًا لأن نمط الكود المحيط استدعى اعتمادية هناك. إن شغّلت أنت أو عميلك البرمجي أمر التثبيت رغم ذلك، فإن أيًا كان المسجَّل فعليًا تحت ذلك الاسم على PyPI أو npm هو ما يصل إلى جهازك. أطلق الباحث الأمني سيث لارسون، المطوّر المقيم في مؤسسة Python للبرمجيات، اسمًا على الهجوم الناتج: «slopsquatting» — تسجيل الأسماء التي تهلوسها النماذج، وهو النسخة المولَّدة بالذكاء الاصطناعي من انتحال أخطاء الكتابة (typosquatting).
كم مرة يحدث هذا فعليًا
قاس فريق من جامعة تكساس في سان أنطونيو، وفيرجينيا تك، وجامعة أوكلاهوما هذا مباشرة: «لدينا حزمة لك!»، المقبولة في USENIX Security 2025. عبر 576,000 عيّنة كود مُولَّدة من 16 نموذجًا شائعًا بلغتين، وجدوا حزمًا مهلوَسة بنسبة «5.2 بالمئة على الأقل للنماذج التجارية و21.7 بالمئة للنماذج مفتوحة المصدر»، بإجمالي 205,474 اسم حزمة مهلوَس فريد. هذه ليست حالة نادرة استثنائية؛ فبالنسبة لبعض النماذج مفتوحة المصدر، هي تقريبًا واحدة من كل خمس اعتماديات مقترحة.
| فئة النموذج | معدل الهلوسة (من توصيات الحزم) |
|---|---|
| النماذج التجارية (المتوسط) | 5.2 بالمئة على الأقل |
| النماذج مفتوحة المصدر (المتوسط) | 21.7 بالمئة على الأقل |
لماذا يمكن انتحال هذا، لا مجرد كونه خاطئًا
اسم مُخترَع لمرة واحدة سيكون إزعاجًا، لا سطح هجوم. ما يجعله قابلًا للاستغلال هو التكرار: كما أفادت The Register في 12 أبريل 2025، حين أعاد الباحثون تشغيل التعليمة نفسها عشر مرات، «تكرر 43 بالمئة من الحزم المهلوَسة في كل مرة، ولم يظهر 39 بالمئة منها مجددًا أبدًا». ما يقارب نصف الأسماء المهلوَسة ليس ضجيجًا عشوائيًا؛ إنه التخمين نفسه الذي يصل إليه النموذج بموثوقية أمام كود مشابه. لا يحتاج المهاجم إلى تخمين ما سيكتبه مطوّر بعينه. يمكنه تشغيل النماذج نفسها مقابل تعليمات شائعة، وجمع الأسماء التي تتكرر، وتسجيلها على فهرس الحزم الحقيقي، مسبقًا.
pip install fast-json-normalizer # suggested by a coding assistant
Collecting fast-json-normalizer
Downloading fast-json-normalizer-0.3.1.tar.gz
Running setup.py install for fast-json-normalizer ... done
# Nothing here indicates whether this name was ever a real, reviewed project
# or was registered specifically because models keep suggesting it.لماذا يطابق هذا النمط الذي تتتبعه OWASP بالفعل
هذا نمط من ما تسميه قائمة أفضل 10 من OWASP لتطبيقات النماذج اللغوية الكبيرة خطر سلسلة التوريد بالنسبة للتطوير المدعوم بالذكاء الاصطناعي: تنتقل حدود الثقة التي كانت تقع عند «هل اختار إنسان إضافة هذه الاعتمادية» إلى «هل اختارها إكمال نمط لنموذج»، ولا يملك إكمال النمط أي مفهوم لما إذا كان الاسم حقيقيًا.
ماذا تفعل فعليًا حيال ذلك
- عامل كل اسم حزمة يقترحه عميل برمجي كاقتراح يجب التحقق منه، لا كاعتمادية معروفة الصحة، بالطريقة نفسها التي تعامل بها اسمًا كتبه متعاون مبتدئ من الذاكرة.
- تحقق من تاريخ التسجيل وسجل التنزيلات قبل تثبيت أي شيء غير مألوف؛ حزمة ظهرت مؤخرًا وتطابق بشكل مريب نمط تعليمة شائعة مولَّدة بالذكاء الاصطناعي تستحق نظرة ثانية.
- ثبّت الاعتماديات على إصدارات محددة واستخدم ملف قفل (lockfile)، بحيث لا يُعاد حل اسم مهلوَس تسلل مرة بصمت لاحقًا.
- راقب ما تفعله حزمة مثبَّتة حديثًا فعليًا عند أول تشغيل. اعتمادية مسجَّلة حديثًا تتصل بخادم لا شأن لها به إشارة يمكن لجدار حماية التقاطها حتى حين تفوت مراجعة الكود الاسم.
دور FireAI وHisnLabs
A squatted package that phones home still has to make a connection to do it, from a Python or Node process you just ran; FireAI shows you that connection, the process behind it and where it is going, before you decide whether it belongs there.
FireAI هو منتج HisnLabs نفسها: جدار حماية بذكاء اصطناعي يعمل على جهاز Mac مباشرة. يعرض بلغة واضحة كل اتصال تجريه تطبيقاتك، ويترك لك القرار فيما يخرج من جهازك — ذكاؤه الاصطناعي يعمل محليًا، فلا يُرسَل ترافيكك إلينا ولا إلى أي جهة أخرى أبدًا. فريق أبحاث الأمن في HisnLabs هو من يحافظ على دقة هذه القرارات: يصنّف النطاقات بين قياس عن بُعد عادي وخدمة حقيقية، ويتتبّع بلد وشبكة كل اتصال، ويدرّب النموذج المحلي (ميزة Autopilot) على حركة اتصال حقيقية، دون أن يغادر أي شيء جهاز Mac.
يمكنك الاطلاع على القرارات التقنية وراء ذلك، أو تجربة FireAI لمدة 17 يومًا، على FireAI من HisnLabs.
