الكتابات/blog/2026/05
Blog25 مايو 2026·6 دقيقة

TrapDoor: هجوم سلسلة التوريد يستغل أدوات البرمجة بالذكاء الاصطناعي

هجوم TrapDoor زرع 34 حزمة خبيثة على npm وPyPI وCrates.io ولوّث ملفات .cursorrules وCLAUDE.md للسيطرة على مساعدي البرمجة بالذكاء الاصطناعي. إليك ما يجب فحصه اليوم.

في 22 مايو 2026، فتح رفع حزمة واحدة إلى PyPI باسم eth-security-auditor الباب بهدوء أمام واحدة من أكثر حملات هجمات سلسلة التوريد ابتكارًا هذا العام. خلال أيام قليلة، رصد باحثو شركة Socket 34 حزمة خبيثة و384 إصدارًا عبر npm وPyPI وCrates.io، جميعها مرتبطة بنفس المشغّل الذي أُطلق عليه اسم TrapDoor. ما يميّز هذا الهجوم ليس حجمه، بل كونه أول حملة موثّقة على نطاق واسع تستهدف مساعدي البرمجة بالذكاء الاصطناعي مثل Cursor وClaude Code وتحوّلهم إلى قناة لاستخراج البيانات الحساسة.

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

ما هو TrapDoor باختصار

TrapDoor هو برنامج خبيث لسرقة العملات المشفّرة وبيانات الاعتماد، يعمل عبر منظومات متعددة، ويتخفّى في صورة أدوات أمنية للمطوّرين. أسماء الحزم مصمّمة لتبدو ضرورية: wallet-security-checker وdefi-threat-scanner وsolidity-deploy-guard وprompt-engineering-toolkit وsui-move-build-helper. يبحث المطوّر عن أداة فحص سريعة، فيُثبّت إحدى هذه الحزم، فينطلق الحمل الخبيث فورًا.

تستهدف الحملة في وقت واحد أربع فئات متداخلة:

  • مطوّرو العملات المشفّرة وDeFi الذين يبنون على Solana وSui وAptos وسلاسل EVM
  • مطوّرو الذكاء الاصطناعي والوكلاء المستخدمون لمكتبات LangChain وLlamaIndex وMetaGPT وbrowser-use وOpenHands
  • مهندسو DevOps الذين يُشغّلون خطوط CI/CD مع تخزين مؤقّت للحزم
  • المؤسّسون المنفردون والمطوّرون المستقلّون الذين يُثبّتون غالبًا حزمًا غير مدقّقة على أجهزتهم الأساسية

ثلاث منظومات وثلاث طرق تنفيذ

خصّص مؤلّفو TrapDoor آلية التشغيل لكل سجلّ، وهذا مستوى من التطوّر غير مألوف في برمجيات السرقة الانتهازية.

npm — خطافات postinstall. بمجرّد تشغيل npm install، يستدعي السكربت ملف trap-core.js، وهو حمل من 1149 سطرًا يستخدم تشفير Fernet وECDH لقناة الأوامر والتحكّم. لا حاجة حتى لاستيراد الحزمة؛ التثبيت وحده كافٍ.

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

Crates.io — قناة جانبية عبر build.rs. هذه الأخطر. يعمل سكربت build.rs في Rust أثناء cargo build، أي قبل أن يستدعي الكود الخاص بك الحزمة. مجرّد cargo check على مشروع يُشير إلى الحزمة يكفي لاختراق جهاز المطوّر. يستخدم حمل Crates تشفير XOR بمفتاح ثابت cargo-build-helper-2026 ويستهدف تحديدًا keystores الخاصّة بـSui وMove.

الجبهة الجديدة: تلويث ملفّات .cursorrules وCLAUDE.md

هنا يفتح TrapDoor أرضًا جديدة.

بعد نزول الحمل على الجهاز، لا يكتفي بسرقة الأسرار الموجودة، بل يزرع تعليمات مخفيّة داخل ملفّات .cursorrules وCLAUDE.md باستخدام محارف يونيكود صفرية العرض تكون غير مرئية في المحرّر لكنّها مقروءة من قِبَل مساعدي البرمجة. تخدع هذه التعليمات أدوات مثل Cursor وClaude Code لتشغيل "فحص أمني" مزيّف في المرّة التالية التي يفتح فيها المطوّر المشروع. يقوم هذا الفحص بسحب مفاتيح SSH وبيانات اعتماد AWS ورموز GitHub وبيانات جلسات المتصفّح وأيّ keystores للمحافظ يجدها — كلّ ذلك تحت غطاء نشاط شرعي لمساعد ذكي.

وقد وثّق مشغّل TrapDoor هذا النهج في ملفّ سمّاه AUDIT-MATRIX.md مستضاف على GitHub Pages وُصِفَ بأنّه "إطار شامل لاستخراج المعلومات من وكلاء الذكاء الاصطناعي". كما فتح نفس المشغّل (ddjidd564) طلبات سحب على مستودعات ذكاء اصطناعي حقيقية — LangChain وLlamaIndex وMetaGPT وbrowser-use وOpenHands — على أمل أن يدمج أحد المشرفين ملفّ CLAUDE.md ملوّثًا في المشروع الرسمي.

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

ماذا يسرق TrapDoor

قائمة المسروقات تبدو كملفّ كامل عن حياة المطوّر العصري:

  • مفاتيح SSH الخاصّة من ~/.ssh
  • بيانات اعتماد AWS ومتغيّرات البيئة
  • رموز GitHub وGitLab
  • بيانات تسجيل الدخول من المتصفّح وإضافات محافظ العملات (MetaMask وPhantom وBackpack)
  • keystores لمحافظ Solana وSui وAptos
  • مفاتيح API لـOpenAI وAnthropic وكبرى منصّات SaaS
  • ملفّات .env و.envrc وإعدادات التطوير المحلية

يتمّ التحقّق المباشر من بيانات الاعتماد المسروقة عبر الواجهات البرمجية المعنيّة قبل تخزينها، فلا يحتفظ المشغّل إلا بالمفاتيح التي تعمل فعلًا.

الاستمرارية — يبقى بعد إلغاء التثبيت

إزالة الحزمة الخبيثة لا تنظّف الجهاز. يُثبّت TrapDoor آليات استمرارية عبر:

  • خطافات Git مثل post-checkout وpre-commit
  • ملفّات بدء تشغيل الصدفة (.zshrc و.bashrc و.profile)
  • مهامّ cron ووحدات systemd للمستخدم
  • ملفّات .cursorrules وCLAUDE.md ملوّثة في المستودعات المستنسخة

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

ما يجب فحصه اليوم

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

1. ابحث عن أسماء الحزم المعروفة في lockfiles

grep -rE "wallet-security-checker|defi-threat-scanner|solidity-deploy-guard|prompt-engineering-toolkit|sui-move-build-helper|eth-security-auditor|cryptowallet-safety|defi-risk-scanner|chain-key-validator|move-compiler-tools" \
  package-lock.json yarn.lock pnpm-lock.yaml requirements.txt poetry.lock Cargo.lock 2>/dev/null

أيّ نتيجة تعني تدوير جميع المفاتيح وإعادة بناء الجهاز من صورة نظيفة.

2. افحص ملفّات إعداد مساعدي الذكاء الاصطناعي بحثًا عن يونيكود مخفي

find . \( -name ".cursorrules" -o -name "CLAUDE.md" -o -name ".clinerules" \) \
  -exec perl -ne 'print "$ARGV:$.: $_" if /[\x{200B}-\x{200F}\x{2028}-\x{202F}\x{FEFF}]/' {} \;

وجود محارف صفرية العرض في ملفّ تعليمات مؤشّر خطر بلا استثناء. الملفّات الشرعية لا تحتاجها.

3. دقّق سكربتات postinstall الأخيرة في npm

npm ls --all --json | jq '.dependencies | to_entries[] | select(.value.scripts.postinstall)'

قارن أيّ نتيجة بكود المصدر المنشور للحزمة على صفحة السجلّ.

4. عطّل تنفيذ سكربتات البناء افتراضيًا

# pnpm
pnpm config set side-effects-cache false
pnpm config set enable-pre-post-scripts false
 
# npm
npm config set ignore-scripts true

أعد التفعيل فقط للحزم الموثوقة. هذا المفتاح وحده كان كفيلًا بإيقاف مساري التنفيذ في npm وRust نهائيًا.

5. دوّر رموز API الخاصّة بمساعدي الذكاء الاصطناعي

إذا شغّل جهازك أيّ حزمة من القائمة خلال الأسبوع الماضي، اعتبر رموز Anthropic وOpenAI وGitHub ومزوّدي السحابة مخترَقة. دوّرها وراجع سجلّات التدقيق بحثًا عن استدعاءات API غير متوقّعة.

لماذا يهمّ هذا الفرق في منطقة الشرق الأوسط وشمال إفريقيا

تبنّت فرق هندسية كثيرة في تونس والمملكة العربية السعودية والإمارات ومصر أدوات Cursor وClaude Code ومثيلاتها خلال السنة الأخيرة، في الغالب بسرعة أكبر من اعتماد ضوابط رسمية لسلسلة التوريد. تصميم TrapDoor يفترض هذه الفجوة بالضبط. الجمع بين التبنّي السريع لأدوات الذكاء الاصطناعي والبطء في تبنّي أدوات الأمان يُشكّل البيئة المثالية للمهاجم.

ما نوصي به عمليًا لعملائنا:

  • تعامل مع .cursorrules وCLAUDE.md كملفّات حسّاسة أمنيًا. راجعها في كل تغيير، كما تراجع Dockerfile أو .github/workflows/.
  • افرض ignore-scripts افتراضيًا في عقد CI واقفل سلوك تثبيت الحزم في الصورة الأساسية لا في المشروع.
  • ثبّت أدوات مثل Socket أو Snyk أو osv-scanner ضمن فحوصات ما قبل الدمج. الوقت الوسيط لاكتشاف TrapDoor كان أقلّ من ستّ دقائق — قادر فريق CI لديك على ضبط حزمة خبيثة قبل أن تصل إلى أيّ جهاز.
  • ضع الحزم الجديدة في الحجر الصحي لمدّة 24 ساعة قبل السماح بها في مشاريع الإنتاج. معظم حمولات سلسلة التوريد تُسحب خلال ساعات من الإفصاح عنها.

الدرس الأكبر

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

الدفاع ليس التوقّف عن استخدام أدوات الذكاء الاصطناعي — هذا القطار غادر المحطّة. الدفاع هو نقل نفس الانضباط الهندسي الذي نُطبّقه على صور Docker وسياسات IAM وعقد CI إلى ملفّات الإعداد التي يقرأها وكلاؤنا. إصدارات مثبتة. مراجعة إلزامية. فحص ساكن للمحارف المخفيّة. أقلّ صلاحية ممكنة للرموز. الأساسيّات لا تزال تعمل؛ يجب فقط أن تمتدّ إلى السطح الجديد.

إذا أردت مراجعة عملية لخطّ أدوات الذكاء الاصطناعي ومنظومة الاعتماديّات لدى فريقك مقابل نموذج هجوم TrapDoor، تواصل مع فريق نقطة للأمن. الحملة التالية تُجهَّز بالفعل.