شرح Dan U التفصيلي لهذه السلسلة كشف الصورة الكاملة لاختراق باينانس هذه المرة، بتفاصيل مرعبة:
1. قبل بدء الهجوم الفعلي بأربع ساعات، أجرى المهاجم بروفة باستخدام 2.54 USDT. استخدم عنوان EOA نفسه، ودالة sweep() نفسها، ومجموعة الأدوات كاملة؛ واختبر سير الهجوم بالكامل على محفظة صغيرة للتأكد من خلوه من الأخطاء، ثم استهدف المحفظة الساخنة رقم 14 التابعة لباينانس.
2. التسلسل الزمني: في 20:20:59، أُضيف تفويض EIP-7702 إلى المحفظة، وانتظر المهاجم ثلاث دقائق ونصف كاملة قبل أن يبدأ بتحويل الأصول.
في الواقع، كان من الممكن رصد هذا النشاط غير المعتاد مبكرًا عبر مراقبة eth_getCode، لكن لم يتابعه أحد.
3. النقطة الأهم: لم يكن الأمر توقيعًا واحدًا، بل سجادة من التواقيع تغطي 50 قيمة nonce متتالية.
وقّع المفتاح الخاص للمحفظة الساخنة التابعة لباينانس مسبقًا 50 تفويضًا، ثم بثّها المهاجم دفعة واحدة، مراهنًا على أن تتطابق إحدى قيم nonce مع الحالة الحالية للمحفظة. لم يُستخدم المفتاح الخاص نفسه لإرسال أي معاملة مباشرة، بل اقتصر دوره على توقيع هذه التفويضات.
4. منعطف درامي للغاية: باينانس فككت القنبلة من دون قصد.
كان بإمكان المهاجم إعادة استخدام التواقيع الخمسين التي أعدها. لكن روبوت السحب لدى باينانس نفّذ تلقائيًا 44 معاملة عادية، فاستنفد قيم nonce اللاحقة وأبطل جميع التفويضات التي لم تُستخدم. لم تكن باينانس تعلم بوجود هذا الفخ أصلًا؛ لكنها أبطلت، مصادفةً، الأوراق التي كان المهاجم يخبئها.
5. الخطر لم ينتهِ بعد: هذه المحفظة ما زالت فخًا حيًا.
لا يزال تفويض الهجوم موجودًا في عنوان المحفظة، ويمكن العثور على الشيفرة الخبيثة باستخدام eth_getCode.
وما زالت إيداعات المستخدمين الجدد تصل إلى هذه المحفظة؛ وكان فيها آنذاك نحو 1.1 مليون دولار، ومن الناحية النظرية يمكن تفريغها مجددًا في أي لحظة.
تصميم الهجوم بأكمله، والبروفة التحضيرية، وسجادة قيم nonce، ثم إبطال باينانس للأوراق التي خبأها المهاجم عن طريق المصادفة، وأخيرًا بقاء القنبلة الموقوتة في المحفظة.
لم تكن هذه مجرد عملية سرقة عملات بسيطة، بل هجومًا على EIP-7702 يصلح أن يكون مثالًا يُدرّس في الكتب.$BTC $ETH $LINK
1. قبل بدء الهجوم الفعلي بأربع ساعات، أجرى المهاجم بروفة باستخدام 2.54 USDT. استخدم عنوان EOA نفسه، ودالة sweep() نفسها، ومجموعة الأدوات كاملة؛ واختبر سير الهجوم بالكامل على محفظة صغيرة للتأكد من خلوه من الأخطاء، ثم استهدف المحفظة الساخنة رقم 14 التابعة لباينانس.
2. التسلسل الزمني: في 20:20:59، أُضيف تفويض EIP-7702 إلى المحفظة، وانتظر المهاجم ثلاث دقائق ونصف كاملة قبل أن يبدأ بتحويل الأصول.
في الواقع، كان من الممكن رصد هذا النشاط غير المعتاد مبكرًا عبر مراقبة eth_getCode، لكن لم يتابعه أحد.
3. النقطة الأهم: لم يكن الأمر توقيعًا واحدًا، بل سجادة من التواقيع تغطي 50 قيمة nonce متتالية.
وقّع المفتاح الخاص للمحفظة الساخنة التابعة لباينانس مسبقًا 50 تفويضًا، ثم بثّها المهاجم دفعة واحدة، مراهنًا على أن تتطابق إحدى قيم nonce مع الحالة الحالية للمحفظة. لم يُستخدم المفتاح الخاص نفسه لإرسال أي معاملة مباشرة، بل اقتصر دوره على توقيع هذه التفويضات.
4. منعطف درامي للغاية: باينانس فككت القنبلة من دون قصد.
كان بإمكان المهاجم إعادة استخدام التواقيع الخمسين التي أعدها. لكن روبوت السحب لدى باينانس نفّذ تلقائيًا 44 معاملة عادية، فاستنفد قيم nonce اللاحقة وأبطل جميع التفويضات التي لم تُستخدم. لم تكن باينانس تعلم بوجود هذا الفخ أصلًا؛ لكنها أبطلت، مصادفةً، الأوراق التي كان المهاجم يخبئها.
5. الخطر لم ينتهِ بعد: هذه المحفظة ما زالت فخًا حيًا.
لا يزال تفويض الهجوم موجودًا في عنوان المحفظة، ويمكن العثور على الشيفرة الخبيثة باستخدام eth_getCode.
وما زالت إيداعات المستخدمين الجدد تصل إلى هذه المحفظة؛ وكان فيها آنذاك نحو 1.1 مليون دولار، ومن الناحية النظرية يمكن تفريغها مجددًا في أي لحظة.
تصميم الهجوم بأكمله، والبروفة التحضيرية، وسجادة قيم nonce، ثم إبطال باينانس للأوراق التي خبأها المهاجم عن طريق المصادفة، وأخيرًا بقاء القنبلة الموقوتة في المحفظة.
لم تكن هذه مجرد عملية سرقة عملات بسيطة، بل هجومًا على EIP-7702 يصلح أن يكون مثالًا يُدرّس في الكتب.$BTC $ETH $LINK