أمن أيكيدو كشفت عن الضعف في JavaScript الرسمي لـ XRP Ledger’s (XRPL) ، وكشف أن إصدارات متعددة للخطر من حزمة Manager Manager (NPM) التي تعرضها XRPL قد نُشرت إلى السجل ابتداءً من 21 أبريل.
تضمنت الإصدارات المتأثرة ، v4.2.1 من خلال v4.2.4 و v2.14.2 ، الباب الخلفي قادر على التخلص من المفاتيح الخاصة ، مما يشكل خطرًا شديدًا على محافظ التشفير التي تعتمد على البرنامج.
حزمة NPM هي وحدة قابلة لإعادة الاستخدام لمشاريع JavaScript و Node.js المصممة لتبسيط التثبيت والتحديثات والإزالة.
وفقًا لـ Aikido Security ، قامت منصة مراقبة التهديد الآلية الخاصة بها بتمييز الشذوذ في الساعة 8:53 مساءً بالتوقيت العالمي في 21 أبريل عندما نشر مستخدم NPM “Mukulljangid” خمسة إصدارات جديدة من حزمة XRPL.
لم تتطابق هذه الإصدارات مع أي إصدارات موسومة على مستودع GitHub الرسمي ، مما يؤدي إلى الشكوك الفورية في حل وسط لسلسلة التوريد.
رمز ضار مضمن في منطق المحفظة
وجد تحليل Aikido أن الحزم المخترقة تحتوي على وظيفة تسمى CheckValitidyOfSeed ، والتي أجرت مكالمات خارجية إلى المجال المسجل حديثًا وغير المفترض 0x9C[.]XYZ.
تم تشغيل الوظيفة أثناء تثبيت فئة المحفظة ، مما تسبب في نقل المفاتيح الخاصة بصمت عند إنشاء محفظة.
تضمنت الإصدارات المبكرة (v4.2.1 و v4.2.2) الكود الضار في ملفات JavaScript المضمنة. أدخلت الإصدارات اللاحقة (v4.2.3 و v4.2.4) الباب الخلفي في ملفات مصدر TypeScript ، تليها تجميعها في رمز الإنتاج.
بدا أن المهاجم يتكرر على تقنيات التهرب ، حيث تحول من التلاعب اليدوي JavaScript إلى التكامل الأعمق في عملية بناء SDK.
ذكر التقرير أن هذه الحزمة تستخدمها مئات الآلاف من التطبيقات والمواقع الإلكترونية ، واصفا الحدث بأنه هجوم مستهدف ضد البنية التحتية لتطوير التشفير.
كما أزالت الإصدارات المعرضة للخطر أدوات التطوير مثل أجمل ونصوص من ملف package.json ، مما يشير إلى العبث المتعمد.
XRP Ledger Foundation والاستجابة للنظام الإيكولوجي
مؤسسة XRP Ledger Foundation معترف بها القضية في بيان عام نُشر عبر X في 22 أبريل. ذكرت:
“في وقت سابق اليوم ، حدد باحث أمني من AikidoSecurity ضعفًا خطيرًا في حزمة XRPL NPM (v4.2.1–4.2.4 و v2.14.2). نحن على دراية بالمسألة ونعمل بنشاط على إصلاح. وسيتبع ما بعد الولادة التفصيلية.”
وقال مارك إيبانيز ، CTO من Gen3 Games القائم على XRP ، إن فريقه تجنب إصدارات الحزمة المعرضة للخطر مع “حظًا من الحظ”.
هو وأضاف:
“حددت package.json” XRPL “:”^4.1.0 “، مما يعني أنه ، في ظل الظروف العادية ، يمكن تثبيت أي إصدار ثانوي أو تصحيح متوافق – بما في ذلك الإصدار الذي يحتمل أن يتم اختراقه – أثناء التطوير أو البناء أو عمليات النشر.”
ومع ذلك ، فإن Gen3 Games يرتكب ملف pnpm-lock.yaml إلى التحكم في الإصدار. ضمنت هذه الممارسة أن الإصدارات الدقيقة ، وليس الإصدارات المنشورة حديثًا ، تم تثبيتها أثناء التطوير والنشر.
أكد Ibanez على العديد من الممارسات لتخفيف المخاطر ، مثل ارتكاب “Lockfile” دائمًا للتحكم في الإصدار ، باستخدام NPM Performant (PNPM) عندما يكون ذلك ممكنًا ، وتجنب استخدام رمز Caret (^) في Package.json لمنع ترقيات الإصدار غير المقصود.
تتلقى مجموعة مطوري البرامج التي تحتفظ بها Ripple وتوزيعها من خلال NPM أكثر من 140،000 تنزيل في الأسبوع ، مع استخدام المطورين على نطاق واسع لإنشاء تطبيقات على Ledger XRP.
قامت مؤسسة XRP Ledger بإزالة الإصدارات المتأثرة من سجل NPM بعد فترة وجيزة من الكشف. ومع ذلك ، يبقى غير معروف عدد المستخدمين الذين قاموا بدمج الإصدارات المعرضة للخطر قبل وضع علامة على المشكلة.