هجوم MISO من الداخل على SushiSwap: كيف أدى كوميت واحد خبيث إلى تحويل ~3 مليون دولار من مزاد توكن

في سبتمبر 2021، تمكّن مقاول مجهول الهوية من إدراج عنوان محفظته الخاصة في واجهة MISO الأمامية على SushiSwap من خلال كوميت خبيث، وحوّل 864.8 ETH (~3 مليون دولار) من مزاد Jay Pegs Auto Mart. تحليل معمّق من Domain Mayday عن سلاسل توريد الكود وثقة الواجهة الأمامية وما يمكن تعلّمه حول الملكية القابلة للتحقق.

نُشر في ١٧ يونيو ٢٠٢٦بقلم فريق Namefi
  • domains
  • security
  • dns
  • domain-security
هجوم MISO من الداخل على SushiSwap: كيف أدى كوميت واحد خبيث إلى تحويل ~3 مليون دولار من مزاد توكن

معظم الهجمات بتكسر الباب بالقوة. ده الهجوم كان داخل من الأول.

في سبتمبر 2021، الناس اللي كانوا بيشغّلوا منصة MISO على SushiSwap ما تعرضوش لتصيّد احتيالي، ومحدش سرق منهم مفتاح خاص، وما كانش في عقد ذكي معيب. اللي حصل كان أعادي أكتر من كده: وثقوا في مساهم. مقاول مجهول كان عنده صلاحية الكتابة على الكود حطّ عنوان محفظته الخاصة في واجهة المزاد الأمامية، دفع التغيير، وسيب الـ pipeline يعمل الباقي. لما مزاد NFT واحد اتسوّى، حوالي 864.8 ETH — يعني تقريباً 3 مليون دولار — راحت مش للمشروع اللي كان بيشغّل البيع، لكن للمطوّر اللي بهدوء أعاد كتابة المسار اللي المفروض الفلوس ترّوح فيه.

مفيش استغلال. مفيش ثغرة. بس سطر كود محدش دقّق فيه، اتكتب من حد كان من المفروض في الفريق.

ده الحلقة 15 من Domain Mayday. القصة دي بتتكلم عن العقود الذكية بس على الهامش. في جوهرها دي قصة عن الجزء من الويب اللي معظم الناس مبتراجعوش: سلسلة توريد الكود، والواجهة الأمامية، والحقيقة المزعجة إن "مين مسموح له يغيّر ده؟" سؤال أمني بنفس خطورة "مين عنده المفاتيح؟"

الثقة اللي بتحطها في كود المنصة

منصة DeFi زي MISO — اختصار لـ Minimal Initial SushiSwap Offering — موجودة عشان تعمل حاجة واحدة كويس: تاخد فلوس من مجموعة غرباء وتوصّلها لمشروع بيشغّل بيع توكن أو NFT. عشان تعمل ده، بتربط بين عقود ذكية متحقَّق منها على السلسلة وواجهة ويب أمامية خارج السلسلة. المستخدمون بيتعاملوا مع الواجهة الأمامية. الواجهة الأمامية بتقول لمحفظتهم إيه المعاملة اللي المفروض يوقّعوا عليها.

ده هو نقطة الضعف. الناس بتنهك نفسها على طبقة العقود الذكية لأن ده المكان اللي فيه عمليات التدقيق والمكافآت على الثغرات والعناوين الرئيسية. لكن الواجهة الأمامية — الـ JavaScript اللي بتقرر أنهي عنوان المزاد بيدفع فيه — مجرد كود في repository، بتنشره pipeline، وبيعدّله أي حد عنده صلاحية الكتابة. دقّق في الخزنة قد ما تقدر، لو إنسايدر عنده قدرة يغيّر اللافتة اللي بتقول "حطّ فلوسك هنا،" الخزنة ما لهاش دعوة بالموضوع.

كود MISO كان مفتوح وتعاوني، زي ما بتبقى البنية التحتية لـ crypto عادةً. الانفتاح ده ميزة: بيجيب مساهمين، وبيسرّع الشحن، وبيخلي فريق صغير يعمل أكتر بكتير مما في إمكانياته. لكنه كمان بالظبط السطح اللي محتاجه المهاجم في هجوم سلسلة التوريد. مش محتاج تكسر الباب لو تقدر تتلقى دعوة للمساهمة.

سبتمبر 2021: الكوميت الخبيث

رسم فني ملوّن وحيوي لطوبة واحدة معدّلة بتضيء باللون الأحمر، وإيد بقفازات مجهولة بتبدّلها بهدوء في جدار مصدر مفتوح نظيف

يوم الجمعة 17 سبتمبر 2021، جوزيف ديلونج CTO SushiSwap في الوقت ده نزل على تويتر يشرح إيه اللي حصل. رواية CoinDesk كانت صريحة: ديلونج قال إن مقاول مجهول بيستخدم هاندل Github اسمه "AristoK3" حقن كود خبيث في الواجهة الأمامية لـ MISO في هجوم على سلسلة التوريد.

الآلية كانت بسيطة بشكل يكاد يكون مهيناً. زي ما وصفها ديلونج، المهاجم استبدل عنوان محفظة المزاد بعنوانه الخاص. PYMNTS وصف الفعل بمصطلحات سلسلة التوريد بالظبط: المقاول دفع كوميت كود خبيث انتشر على الواجهة الأمامية للمنصة.

تقرير ما بعد الحادثة لخّص الجوهر في جملة واحدة: مطوّر كان متعاقد للعمل على المزاد أدخل عنوان محفظته الخاصة في العقد بدل الـ auctionWallet — من خلال تعديل القيمة اللي الواجهة الأمامية بتحطها وقت النشر، مش بكسر المنطق المُدقَّق فيه على السلسلة نفسه. متغيّر واحد. auctionWallet كان المفروض يشاور على المشروع اللي بيشغّل البيع. بدل كده اشاور على المقاول. كل دولار المزايد فكّر إنه بيبعته لصاحب المزاد راح في مكان تاني، والكود بدا عادي تماماً وهو بيعمل كده.

اللي اتحوّل: ~864.8 ETH، ~3 مليون دولار

الهدف كان مزاد واحد، كان اسمه كوميك تقريباً. زي ما أفادت CryptoSlate، MISO تعرّض لهجوم على سلسلة التوريد سرق 864.8 ETH من عقد مزاد توكن "Jay Pegs Auto Mart". Jay Pegs Auto Mart كان مشروع فن NFT بيصوّر نفسه على شكل معرض سيارات مستعملة — ديكور من ثقافة الكريبتو فوق بيع توكن حقيقي مالياً.

الأرقام وردت بنفس الطريقة في كل المصادر. PYMNTS أفادت إن الهاكر حوّل 864.8 عملة Ethereum — حوالي 3 مليون دولار — لمحفظته. The Crypto Times أكّدت إن المهاجم سرق 864.8 ETH، وإن المشروع الوحيد اللي اتضرر من المزادات كان Jay Pegs Auto Mart.

التفصيلة دي مهمة. الكود المسموم انتشر عبر الواجهة الأمامية، يعني من حيث المبدأ كان ممكن يحوّل أي مزاد بيلمسه. في الواقع، بس Jay Pegs Auto Mart اتسوّت على عنوان المهاجم قبل ما الفريق يلاقي الموضوع. المزادات التانية المتأثرة اتصلحت قبل ما تتفرّغ — فرق ساعات قليلة بين عنوان واحد سيء وكارثة كاملة.

كيف حصل: ثقة داخلية، مش قفل مكسور

رسم فني ملوّن وحيوي لإنسايدر في الظل بيلوّي بهدوء أنبوب فلوس متوهّج عشان تدفقه يتسرّب لجردل خاص بدل الخزّان المقصود

لو شيلنا مصطلحات الكريبتو، ده هجوم كلاسيكي على سلسلة توريد البرمجيات — نفس تصنيف باكدج npm مسموم أو سيرفر بناء معدّل، بس المكسب محسوب بالـ ETH.

سلسلة الثقة كانت بالشكل ده. مساهم اتُعطي صلاحية كتابة على الكود اللي بيشغّل المزادات الحية. استخدم الصلاحية دي يعمل كوميت بدّل فيه عنوان الوجهة. الـ pipeline عمل اللي بتعمله pipelines — أخد أحدث كود ونشره على الواجهة الأمامية اللي المستخدمين الحقيقيين بيفتحوها في متصفحاتهم. المستخدمين دول وصّلوا محافظهم، ووقّعوا على اللي الواجهة الأمامية قالتهم يوقّعوا عليه، وموّلوا مزاد صاحبه اتعاد كتابته بهدوء. رواية Coinspeaker بتطابق التانيين: مقاول مجهول بهاندل GH اسمه AristoK3 حقن كود خبيث في الواجهة الأمامية لـ MISO.

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

ده اللي بيخلي هجمات سلسلة التوريد من الداخل خطيرة جداً. كل دفاع خارجي — جدران حماية، عمليات تدقيق، multisigs على الخزينة — بيفترض إن التهديد برّا وبيحاول يدخل. الإنسايدر اللي عنده حقوق الكوميت بالفعل عدى كل ده. التغيير الخبيث ركب عملية النشر الموثوقة والشرعية الخاصة بالمشروع مباشرة لـ production. الـ pipeline مانفترقش. اتُستخدم.

الاستجابة والاسترداد: اتمسك، اتسمّى، وراجع الفلوس

استجابة SushiSwap كانت سريعة وعلنية ومواجهة. ديلونج ما حقّقش بهدوء؛ سمّى هاندل GitHub، وسمّى هوية حقيقية مشتبه بيها، وحدّد موعداً نهائياً. حسب CoinDesk، التحذير كان صريح: لو الفلوس ما ترجعتش، منصة DeFi هتشتكي للـ FBI.

نجح التهديد. المهاجم عكس مساره. CryptoSlate أفادت إنه بعد ساعتين بس من ما الفريق أعلن علناً، الهاكر ردّ 865 ETH للعقد الأصلي لـ MISOأكتر بشوية من 864.8 ETH اللي خرجت. The Crypto Times أكّدت الوجهة: عنوان الـ multisig الخاص بـ Sushiswap استقبل 865 ETH. تحديث ديلونج الخاص كان مختصر زي التهديد الأصلي. Decrypt سجّل تأكيده إنه في حدود يوم واحد، كل الفلوس رجعت.

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

إيه اللي بيعلّمنا عن سلاسل توريد الكود وثقة الواجهة الأمامية

حادثة MISO صغيرة بمعايير DeFi من حيث الدولارات، وكبيرة من حيث الدروس. في دروس تستاهل تاخدها معاك:

  1. الواجهة الأمامية جزء من محيط أمانك. المستخدمون بيوقّعوا على اللي الواجهة بتقولهم يوقّعوا عليه. لو مهاجم بيتحكم في أنهي عنوان الواجهة بتعرضه، مش محتاج العقد الذكي خالص. مراجعة الكود على السلسلة بس معناها مراجعة نص النظام.
  2. صلاحية الكتابة هي السطح الحقيقي للهجوم. أقوى تشفير في العالم مش هيفيد لو الشخص اللي ينفع يعدّل الكود قرر يعمل كده. "مين ينفع يغيّر ده، ومين بيراجعه قبل ما يتنشر؟" ده ضبط أماني، مش تفصيلة في العملية.
  3. المراجعة الإجبارية للكود مش بيروقراطية — دي دفاع. عيون ثانية مطلوبة على الكوميت اللي بدّل auctionWallet كانت هتوقف الموضوع على الأرجح في الحال. هجمات سلسلة التوريد بتزدهر على التغييرات اللي محدش بيفحصها بشكل مستقل قبل النشر.
  4. المساهمون المجهولون بيرفعوا المخاطر. المساهمة المفتوحة قوة، لكن منح صلاحية تأثّر النشر لهوية مجهولة معناه إنك واثق في كود ما تقدرش تنسبه بالكامل. الثقة المفروض تتناسب مع التحقق، مش مع الحماس.
  5. الاسترداد حظ، مش بنية معمارية. الفلوس رجعت بسبب الضغط العلني وسجل قابل للتتبع. تصميم نظام بيعتمد على حسن نية المهاجم مش تصميم أماني أصلاً.

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

زاوية Namefi

رسم توضيحي ملوّن للملكية القابلة للتحقق والمقاومة للتلاعب — مؤمّنة بدرع أخضر وتوكن Namefi الأخضر واستمرارية

MISO خسرت فلوس لأن وجهة القيمة كان ينفع حد موثوق بيه يعيد كتابتها بهدوء، ومحدش تحقق من التغيير قبل ما يطلع حي. نموذج الفشل ده مش حصري على منصات DeFi. له نفس شكل نطاق ملكيته أو سجلات DNS بتاعته ممكن حد يغيّرها بهدوء — حساب registrar، أو لوحة تحكم داخلية، أو مقاول عنده صلاحيات.

النطاق هو من أهم إعدادات "الوجهة" على الإنترنت. سجلات DNS بتاعته بتحدد فين مرورك وإيميلك ومستخدميك بيروحوا فعلاً. لو إنسايدر أو حساب مخترق يقدر يغيّرها من غير سجل واضح ومستقل وقابل للتحقق بمن غيّر إيه، عندك مشكلة MISO بس في هدوم مختلفة: القفل كويس، لكن اللافتة على الباب تنفع تتبدّل.

Namefi بيتعامل مع الموضوع ده بمعاملة ملكية النطاق كأصل قابل للتحقق ومقاوم للتلاعب، مش مجرد إدخال في حساب خاص لحد. الملكية المُرمَّزة بتخلي التحكم قابل للتدقيق والنقل على السلسلة مع الحفاظ على التوافق مع DNS — فـ "مين صاحب ده ومين مسموح له يغيّره" بتبقى حقيقة تقدر تتحقق منها، مش ثقة لازم تمدّها بشكل أعمى. مقاول MISO قدر يعيد كتابة عنوان الدفع بالظبط لأن النظام ما كانش عنده إجابة معتمدة وقابلة للتحقق المستقل على "هل التغيير ده مُصرَّح بيه؟" الدرس اللي Namefi بياخده من هجمات سلسلة التوريد هو إن الملكية والتحكم المفروض يكونوا قابلين للإثبات بالتصميم، عشان الفجوة الخطيرة بين موثوق بيه ومتحقَّق منه ما تفتحش أصلاً.

المصادر وقراءة إضافية

عن الكاتب/الكاتبة

فريق Namefi
فريق Namefi • Namefi

يضم Namefi مهندسين ومصممين ومشغلين شغوفين بتطوير أدوات تجعل إدارة أسماء النطاقات على السلسلة أكثر سهولة وسلاسة.

أدلة ذات صلة