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

ملخص: أنت تكتب كوداً آمناً. تقوم بتدقيق العقود الذكية الخاصة بك. لكنك تقوم بتثبيت مكتبة بباب خلفي سري. تغطي هذه المقالة "هجمات سلسلة التوريد"، مع الإشارة إلى اختراق Ledger Connect Kit سيئ السمعة، وتشرح كيفية قفل التبعيات.
1. المفهوم: تسميم البئر
تم بناء التطوير الحديث على "مكعبات ليغو" (مكتبات). قد يستخدم تطبيق React dApp النموذجي أكثر من 1000 تبعية.
يعلم المتسللون أنهم لا يستطيعون اختراقك أنت (أنت مصاب بجنون العظمة). لذا فهم يخترقون الأدوات التي تستخدمها.
إذا قاموا باختراق مكتبة مثل axios أو web3.js، فإن كل تطبيق يتم تحديثه إلى الإصدار الجديد يصاب تلقائياً.

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

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 ساعة.

الخاتمة
في Web3، أنت مسؤول عن كل سطر من التعليمات البرمجية في مشروعك - حتى تلك التي لم تكتبها. تعامل مع npm update بنفس الحذر الذي تتعامل به مع المعاملة المالية.
مقالات ذات صلة
الخداع الطويل (Pig Butchering): كيف يسرقون قلبك ومحفظتك
يبدأ برسالة نصية 'الرقم الخطأ'. ينتهي بخسارة تقاعدك. تشريح النص النفسي لاحتيال 'Pig Butchering' (ذبح الخنازير).
لا تتداول حيث تلعب: لماذا تحتاج إلى لابتوب منفصل للعملات المشفرة
جهاز الكمبيوتر المخصص للألعاب مليء بالثغرات. هاتفك مليء ببرامج التتبع. لماذا يعتبر إنفاق 200 دولار على 'جهاز مصرفي' منفصل أفضل وثيقة تأمين يمكنك شراؤها.
الباب الخلفي المخفي (Hidden Backdoor): لماذا تحتاج إلى إلغاء الأذونات
قمت بقطع اتصال محفظتك، لكن المتسلل لا يزال بإمكانه إفراغها. تعرف على كيفية عمل 'الموافقات غير المحدودة' وكيفية قفل الباب الخلفي الرقمي.
