Security
tradingmaster-ai-sentinel
كتب بواسطة
TradingMaster AI Sentinel
قراءة 3 دقيقة

سم سلسلة التوريد: عندما يخونك 'npm install'

سم سلسلة التوريد (Supply Chain Poison): عندما يخونك 'npm install'

ملخص: أنت تكتب كوداً آمناً. تقوم بتدقيق العقود الذكية الخاصة بك. لكنك تقوم بتثبيت مكتبة بباب خلفي سري. تغطي هذه المقالة "هجمات سلسلة التوريد"، مع الإشارة إلى اختراق Ledger Connect Kit سيئ السمعة، وتشرح كيفية قفل التبعيات.



1. المفهوم: تسميم البئر

تم بناء التطوير الحديث على "مكعبات ليغو" (مكتبات). قد يستخدم تطبيق React dApp النموذجي أكثر من 1000 تبعية.

يعلم المتسللون أنهم لا يستطيعون اختراقك أنت (أنت مصاب بجنون العظمة). لذا فهم يخترقون الأدوات التي تستخدمها.

إذا قاموا باختراق مكتبة مثل axios أو web3.js، فإن كل تطبيق يتم تحديثه إلى الإصدار الجديد يصاب تلقائياً.

Infected Dependency Chain

2. دراسة حالة: Ledger Connect Kit (2023)

في ديسمبر 2023، تجمد عالم العملات المشفرة.

وقع موظف سابق في Ledger ضحية للتصيد الاحتيالي. وصل القراصنة إلى مفتاح نشر NPM الخاص بهم.

الهجوم:

  1. دفعوا تحديثاً ضاراً إلى @ledgerhq/connect-kit.
  2. تستخدم Sushiswap و Revoke.cash ومئات التطبيقات اللامركزية هذه المكتبة لربط المحافظ.
  3. النتيجة: عندما ذهب المستخدمون إلى مواقع شرعية (مثل Sushiswap)، ظهرت نافذة منبثقة مزيفة "Connect Wallet". لم يكن هذا خطأ Sushiswap - كانت المكتبة تقوم بتحميل كود ضار من سلسلة التوريد.
  4. المستخدمون الذين وقعوا النافذة المنبثقة تم استنزافهم.

Code Injection Hack

3. ناقل الهجوم: الاختراق الإملائي (Typosquatting)

ينشر المتسللون حزماً بأسماء مطابقة تقريباً للحزم الشائعة.

  • حقيقي: react-dom
  • مزيف: react-dom-core (أو rreact-dom)

إذا كتبت بطريق الخطأ npm install react-dom-core، فستقوم بتثبيت حزمة تعمل مثل React... ولكنها تسرق أيضاً ملف .env الخاص بك.

4. كيفية حماية تطبيق dApp

قفل الإصدارات (Lock Your Versions)

بالنسبة للمكتبات المهمة، لا تستخدم أبداً علامة الإقحام ^ أو التلدة ~ في package.json.

  • سيء: "web3": "^1.9.0" (تحديث تلقائي إلى 1.9.9، والتي قد تكون مصابة).
  • جيد: "web3": "1.9.0" (يبقى بالضبط في الإصدار الذي راجعته).

استخدم npm audit و Snyk

قم بتشغيل npm audit قبل كل نشر. يتحقق من التبعيات مقابل قاعدة بيانات للثغرات المعروفة.

للأمان على مستوى المؤسسات، تحلل أدوات مثل Snyk أو Socket.dev سلوك الحزمة (مثال: "لماذا تحاول مكتبة CSS هذه الاتصال بالشبكة؟").

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

اختبار "الكناري"

لا تدفع التحديثات إلى الإنتاج ليلة الجمعة. اسمح للمجتمع باختبار إصدارات المكتبة الجديدة لبضعة أيام. عادة ما يتم اكتشاف هجمات سلسلة التوريد في غضون 24-48 ساعة.

Dependency Pinning Shield

الخاتمة

في Web3، أنت مسؤول عن كل سطر من التعليمات البرمجية في مشروعك - حتى تلك التي لم تكتبها. تعامل مع npm update بنفس الحذر الذي تتعامل به مع المعاملة المالية.

مستعد لوضع معرفتك موضع التنفيذ؟

ابدأ التداول بثقة مدعومة بالذكاء الاصطناعي اليوم

ابدأ الآن

أدوات الوصول والقارئ