في 18 يناير 2022، اكتشف نظام مراقبة التداول الاستثنائي لدينا هجومًا على مشروع AnySwap ( المعروف باسم Multichain ). بسبب وجود ثغرة في دالة anySwapOutUnderlyingWithPermit()، يمكن للمهاجمين سرقة الرموز التي منحها المستخدمون لهذا المشروع.
على الرغم من أن المشروع اتخذ عدة طرق لتذكير المستخدمين المتأثرين ( مثل إرسال تذكيرات المعاملات )، لا يزال هناك العديد من المستخدمين الذين لم يسحبوا التفويض في الوقت المناسب، مما سمح للمهاجمين بالاستمرار في تحقيق الأرباح.
نظراً لاستمرار الهجمات، قرر فريق BlockSec اتخاذ تدابير الاستجابة الطارئة لحماية الضحايا المحتملين. نستهدف بشكل رئيسي الحسابات المتأثرة على شبكة الإيثيريوم، وسنقوم بنقل الأموال ذات الصلة إلى حساب متعدد التوقيع تم إنشاؤه لهذا الغرض. لضمان الشفافية، سنقوم بنشر تجزئة المستند الخاص بخطة العمل ( غير المحتوى ) إلى المجتمع، مما يميز تصرفاتنا عن تصرفات المهاجمين دون الكشف عن التفاصيل. بدأت عملية الإنقاذ في 21 يناير 2022 وانتهت في 11 مارس.
تواجه عمليات الإنقاذ الطارئة العديد من التحديات التقنية وغير التقنية. الآن بعد انتهاء العمل، يمكننا مراجعة العملية بأكملها ومشاركة الخبرات والدروس المستفادة مع المجتمع، على أمل أن تسهم في تعزيز أمان نظام DeFi البيئي.
ملخص موجز
الاستخدام الواسع لـ Flashbots أدى إلى منافسة شديدة بين القبعات البيضاء والمهاجمين، وكذلك داخل كل مجموعة، كما أن التكاليف المدفوعة شهدت زيادة سريعة مع مرور الوقت.
Flashbots ليست شاملة, بعض المهاجمين يستخدمون mempool, من خلال تنظيم الهجمات بشكل ذكي لتنفيذ الهجوم بنجاح.
بعض المهاجمين توصلوا إلى اتفاق مع الطرف المعني بالمشروع، لإعادة جزء من العائدات والاحتفاظ بجزء كمكافأة، مما أدى إلى "تبييض" الأموال بنجاح. هذه الممارسة أثارت جدلاً في المجتمع.
يمكن للقبعات البيضاء الكشف عن أفعالهم للجمهور دون الكشف عن معلومات حساسة، وتكون هذه الطريقة فعالة في كسب الثقة.
يمكن أن يؤدي تعاون جميع الأطراف في المجتمع إلى جعل جهود الإنقاذ أسرع وأكثر فعالية، مثل التعاون بين القبعات البيضاء لتقليل المنافسة غير الفعالة.
سنناقش فيما يلي أربعة جوانب: أولاً، استعراض الوضع العام للأحداث، ثم تقديم طرق الإنقاذ والتحديات التي واجهتنا، ثم مشاركة التجارب والدروس المستفادة من العملية، وأخيراً تقديم بعض الاقتراحات.
نظرة عامة على حالات الهجوم والإنقاذ
النتيجة الإجمالية
نطاق الزمن الذي نراقبه هو من 18 يناير 2022 إلى 20 مارس. الوضع العام كما يلي:
9 حسابات إنقاذ حمت 483.027693 ETH، منها تم دفع رسوم Flashbots بمقدار 295.970554 ETH( تشكل 61.27%)
21 حساب هجوم حقق ربحًا قدره 1433.092224 ETH، دفع رسوم Flashbots قدرها 148.903707 ETH( تشكل 10.39%)
يجب الانتباه إلى أنه بسبب وجود بعض الحالات المعقدة ( مثل قيام المهاجمين بالتفاوض مع فريق المشروع لإعادة جزء من الأرباح )، فإن هذه البيانات تعتبر إحصاءات تقريبية فقط.
!
اتجاه تغير رسوم Flashbots
يحتاج القبعة البيضاء إلى المنافسة مع المهاجمين لإرسال معاملات Flashbots لتنفيذ الإنقاذ، وتعكس الرسوم المدفوعة درجة المنافسة. لقد قمنا بإحصاء نسبة رسوم Flashbots الخاصة بمعاملات الهجوم والإنقاذ حسب كتلة المعاملات.
في البداية كانت رسوم Flashbots لبعض هجمات المعاملات 0، مما يدل على أن المهاجمين لم يستخدموا Flashbots بعد. بعد ذلك، ارتفعت النسبة بسرعة، وبلغت في بعض الكتل حتى 80% و91%. وهذا يدل على أنها تطورت إلى سباق تسلح للرسوم من أجل السيطرة على حقوق السلسلة Flashbots.
!
الإجراءات الإغاثية التي نفذناها والتحديات التي واجهتنا
فكرة أساسية لعملية الإنقاذ
لقد قمنا بمراقبة مجموعة من الحسابات المحتملة المتضررة التي منحت WETH لعقد مشبوه. عندما يتم تحويل WETH إلى هذه الحسابات، نستغل ثغرة العقد لنقلها إلى محفظة متعددة التوقيعات للأشخاص الطيبين. المفتاح هو تلبية النقاط الثلاث التالية:
تحديد فعّال لتحويل الأموال إلى ضحية الصفقة ( تحويل الأموال )
بناء وتنفيذ الصفقة الصحيحة للإنقاذ ( صفقة الإنقاذ )
النجاح في التقدم على هجمات المهاجمين ( أو أي طرف ثالث آخر ) في المعاملات ( هجمات المعاملات )
النقطتان الأوليان لا تشكلان عائقًا بالنسبة لنا، لأن لدينا نظامًا لمراقبة mempool وأدوات لبناء معاملات الإنقاذ تلقائيًا. لكن النقطة الثالثة لا تزال تمثل تحديًا.
على الرغم من أنه من الممكن من الناحية النظرية استخدام Flashbots للفوز بالسباق، إلا أن الأمر ليس سهلاً في الممارسة العملية. أولاً، يمكن للمهاجمين أيضًا استخدام Flashbots، وتكون نسبة النجاح تعتمد على مقدار العرض. ثانيًا، المنافسة الشديدة تجعل Flashbots ليست دائمًا الخيار الأفضل، وسنقوم أيضًا بإرسال معاملات عادية عبر mempool. أخيرًا، لدينا منافسة مع "القبعات البيضاء" الآخرين، وبعض تصرفات ما يسمى بـ "القبعات البيضاء" مشبوهة للغاية.
حالة المنافسة
نحن نحاول حماية 171 حساب محتمل ضحية مستقل. من بينها، تم إلغاء تفويض 10 حسابات في الوقت المناسب، ونجحنا فقط في إنقاذ 14 حسابًا من بين 161 المتبقية. تتعلق حالات الفشل بـ 3 حسابات إنقاذ و 16 حساب هجوم.
!
الدروس المستفادة
إعدادات رسوم Flashbots
خلال عملية الإنقاذ، تم هزيمتنا 12 مرة من قبل منافسين آخرين، بما في ذلك حسابين للإنقاذ و10 حسابات هجوم.
استراتيجيتنا محافظة إلى حد ما، تميل إلى تحديد رسوم Flashbots منخفضة لحماية مصالح الضحايا. لن نقوم بنشاط باستخدام أو زيادة الرسوم ما لم تظهر معاملات هجوم ناجحة تستخدم Flashbots بالفعل. ومع ذلك، فإن هذه الاستراتيجية ليست فعالة، وغالبًا ما يكون الخصوم أكثر عدوانية:
قام أحد المهاجمين بتحديد نسبة الرسوم بنسبة 70%
قام أحد القراصنة الأخلاقيين بتحديد نسبة الرسوم بنسبة 79% و 80%
تم تعيين نسبة الرسوم لواحد آخر من القبعات البيضاء بنسبة 81%
قام المهاجم بعد ذلك بزيادة نسبة الرسوم إلى 86%
يبدو أن هذه لعبة صفرية، تحتاج إلى نمذجة لاستكشاف أنماط سلوك الأطراف المعنية. في الممارسة العملية، يجب تقليل التكاليف قدر الإمكان، وكذلك العثور على الاستراتيجية المثلى للفوز في المنافسة، وهي مهمة تتسم بالتحدي الشديد.
!
ترتيب معاملات Mempool
المنافسة الشديدة تجعل Flashbots ليست دائماً فعالة. من خلال إرسال المعاملات العادية عبر mempool، إذا كان بالإمكان ترتيبها في المكان المناسب ( بعد معاملات التحويل )، قد يتحقق الهدف.
استخدم مهاجم ما هذه الاستراتيجية لتحقيق ربح قدره 312 ETH دون الحاجة لدفع رسوم Flashbots. على سبيل المثال:
الكتلة 14051020: تقع معاملة تحويل الضحية في 65، والمعاملة الهجومية في 66
الكتلة 14052155: تقع معاملة الضحية في 161، والمعاملة الهجومية في 164
تستحق هذه الاستراتيجية الذكية التي تجمع بين العملية والإلهام الانتباه.
!
أفكار أخرى
تعريف القبعة البيضاء والمهاجمين
ليس من السهل دائمًا التعرف على القبعات البيضاء. على سبيل المثال، تم تصنيف حساب معين في البداية كمهاجم، وبعد التفاوض مع فريق المشروع، تم الاتفاق على الاحتفاظ بـ 50 ETH كمكافأة وإعادة باقي الأرباح، ثم تم إعادة تصنيفه كقبعة بيضاء.
هذه الظاهرة ليست الأولى من نوعها، وقد أثارت عدالة آلية التحفيز جدلاً في المجتمع.
المنافسة بين القبعات البيضاء
من الضروري أن تقوم المجتمع بإنشاء آلية تنسيق لتقليل المنافسة بين القبعات البيضاء. هذه المنافسة لا تضيع الموارد فحسب، بل تزيد أيضًا من تكلفة الإنقاذ. على سبيل المثال، كنا نحاول مع ثلاثة منظمات أخرى للقبعات البيضاء في نفس الوقت حماية 54 ضحية ( والتي تتعلق بـ 450 ETH ). بدون آلية تنسيق، يكون من الصعب على القبعات البيضاء التخلي عن أو إيقاف هذه المنافسة.
تحسين عمليات الإنقاذ
يمكن للقبعات البيضاء الكشف عن الإجراءات للمجتمع دون الكشف عن معلومات حساسة، وهذه الممارسة فعالة.
يمكن للأطراف في المجتمع التعاون معًا لزيادة كفاءة الإنقاذ:
Flashbots/المعدنون يقدمون قناة خضراء للقبعات البيضاء الموثوقة
يتحمل فريق المشروع رسوم Flashbots
اعتمدت الجهة المسؤولة عن المشروع آلية إنذار للمستخدمين أكثر سهولة.
أضاف فريق المشروع تدابير الطوارئ في الشيفرة
من خلال الجهود المشتركة من جميع الأطراف، يمكننا مواجهة تحديات الأمان في بيئة Web3 بشكل أفضل وحماية مصالح المستخدمين.
!
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تقرير حول الأمن والهجوم والدفاع في Web3: خبرات ودروس من عملية إنقاذ AnySwap
مراجعة وتفكير في عمل الإنقاذ الطارئ Web3
في 18 يناير 2022، اكتشف نظام مراقبة التداول الاستثنائي لدينا هجومًا على مشروع AnySwap ( المعروف باسم Multichain ). بسبب وجود ثغرة في دالة anySwapOutUnderlyingWithPermit()، يمكن للمهاجمين سرقة الرموز التي منحها المستخدمون لهذا المشروع.
على الرغم من أن المشروع اتخذ عدة طرق لتذكير المستخدمين المتأثرين ( مثل إرسال تذكيرات المعاملات )، لا يزال هناك العديد من المستخدمين الذين لم يسحبوا التفويض في الوقت المناسب، مما سمح للمهاجمين بالاستمرار في تحقيق الأرباح.
نظراً لاستمرار الهجمات، قرر فريق BlockSec اتخاذ تدابير الاستجابة الطارئة لحماية الضحايا المحتملين. نستهدف بشكل رئيسي الحسابات المتأثرة على شبكة الإيثيريوم، وسنقوم بنقل الأموال ذات الصلة إلى حساب متعدد التوقيع تم إنشاؤه لهذا الغرض. لضمان الشفافية، سنقوم بنشر تجزئة المستند الخاص بخطة العمل ( غير المحتوى ) إلى المجتمع، مما يميز تصرفاتنا عن تصرفات المهاجمين دون الكشف عن التفاصيل. بدأت عملية الإنقاذ في 21 يناير 2022 وانتهت في 11 مارس.
تواجه عمليات الإنقاذ الطارئة العديد من التحديات التقنية وغير التقنية. الآن بعد انتهاء العمل، يمكننا مراجعة العملية بأكملها ومشاركة الخبرات والدروس المستفادة مع المجتمع، على أمل أن تسهم في تعزيز أمان نظام DeFi البيئي.
ملخص موجز
الاستخدام الواسع لـ Flashbots أدى إلى منافسة شديدة بين القبعات البيضاء والمهاجمين، وكذلك داخل كل مجموعة، كما أن التكاليف المدفوعة شهدت زيادة سريعة مع مرور الوقت.
Flashbots ليست شاملة, بعض المهاجمين يستخدمون mempool, من خلال تنظيم الهجمات بشكل ذكي لتنفيذ الهجوم بنجاح.
بعض المهاجمين توصلوا إلى اتفاق مع الطرف المعني بالمشروع، لإعادة جزء من العائدات والاحتفاظ بجزء كمكافأة، مما أدى إلى "تبييض" الأموال بنجاح. هذه الممارسة أثارت جدلاً في المجتمع.
يمكن للقبعات البيضاء الكشف عن أفعالهم للجمهور دون الكشف عن معلومات حساسة، وتكون هذه الطريقة فعالة في كسب الثقة.
يمكن أن يؤدي تعاون جميع الأطراف في المجتمع إلى جعل جهود الإنقاذ أسرع وأكثر فعالية، مثل التعاون بين القبعات البيضاء لتقليل المنافسة غير الفعالة.
سنناقش فيما يلي أربعة جوانب: أولاً، استعراض الوضع العام للأحداث، ثم تقديم طرق الإنقاذ والتحديات التي واجهتنا، ثم مشاركة التجارب والدروس المستفادة من العملية، وأخيراً تقديم بعض الاقتراحات.
نظرة عامة على حالات الهجوم والإنقاذ
النتيجة الإجمالية
نطاق الزمن الذي نراقبه هو من 18 يناير 2022 إلى 20 مارس. الوضع العام كما يلي:
يجب الانتباه إلى أنه بسبب وجود بعض الحالات المعقدة ( مثل قيام المهاجمين بالتفاوض مع فريق المشروع لإعادة جزء من الأرباح )، فإن هذه البيانات تعتبر إحصاءات تقريبية فقط.
!
اتجاه تغير رسوم Flashbots
يحتاج القبعة البيضاء إلى المنافسة مع المهاجمين لإرسال معاملات Flashbots لتنفيذ الإنقاذ، وتعكس الرسوم المدفوعة درجة المنافسة. لقد قمنا بإحصاء نسبة رسوم Flashbots الخاصة بمعاملات الهجوم والإنقاذ حسب كتلة المعاملات.
في البداية كانت رسوم Flashbots لبعض هجمات المعاملات 0، مما يدل على أن المهاجمين لم يستخدموا Flashbots بعد. بعد ذلك، ارتفعت النسبة بسرعة، وبلغت في بعض الكتل حتى 80% و91%. وهذا يدل على أنها تطورت إلى سباق تسلح للرسوم من أجل السيطرة على حقوق السلسلة Flashbots.
!
الإجراءات الإغاثية التي نفذناها والتحديات التي واجهتنا
فكرة أساسية لعملية الإنقاذ
لقد قمنا بمراقبة مجموعة من الحسابات المحتملة المتضررة التي منحت WETH لعقد مشبوه. عندما يتم تحويل WETH إلى هذه الحسابات، نستغل ثغرة العقد لنقلها إلى محفظة متعددة التوقيعات للأشخاص الطيبين. المفتاح هو تلبية النقاط الثلاث التالية:
النقطتان الأوليان لا تشكلان عائقًا بالنسبة لنا، لأن لدينا نظامًا لمراقبة mempool وأدوات لبناء معاملات الإنقاذ تلقائيًا. لكن النقطة الثالثة لا تزال تمثل تحديًا.
على الرغم من أنه من الممكن من الناحية النظرية استخدام Flashbots للفوز بالسباق، إلا أن الأمر ليس سهلاً في الممارسة العملية. أولاً، يمكن للمهاجمين أيضًا استخدام Flashbots، وتكون نسبة النجاح تعتمد على مقدار العرض. ثانيًا، المنافسة الشديدة تجعل Flashbots ليست دائمًا الخيار الأفضل، وسنقوم أيضًا بإرسال معاملات عادية عبر mempool. أخيرًا، لدينا منافسة مع "القبعات البيضاء" الآخرين، وبعض تصرفات ما يسمى بـ "القبعات البيضاء" مشبوهة للغاية.
حالة المنافسة
نحن نحاول حماية 171 حساب محتمل ضحية مستقل. من بينها، تم إلغاء تفويض 10 حسابات في الوقت المناسب، ونجحنا فقط في إنقاذ 14 حسابًا من بين 161 المتبقية. تتعلق حالات الفشل بـ 3 حسابات إنقاذ و 16 حساب هجوم.
!
الدروس المستفادة
إعدادات رسوم Flashbots
خلال عملية الإنقاذ، تم هزيمتنا 12 مرة من قبل منافسين آخرين، بما في ذلك حسابين للإنقاذ و10 حسابات هجوم.
استراتيجيتنا محافظة إلى حد ما، تميل إلى تحديد رسوم Flashbots منخفضة لحماية مصالح الضحايا. لن نقوم بنشاط باستخدام أو زيادة الرسوم ما لم تظهر معاملات هجوم ناجحة تستخدم Flashbots بالفعل. ومع ذلك، فإن هذه الاستراتيجية ليست فعالة، وغالبًا ما يكون الخصوم أكثر عدوانية:
يبدو أن هذه لعبة صفرية، تحتاج إلى نمذجة لاستكشاف أنماط سلوك الأطراف المعنية. في الممارسة العملية، يجب تقليل التكاليف قدر الإمكان، وكذلك العثور على الاستراتيجية المثلى للفوز في المنافسة، وهي مهمة تتسم بالتحدي الشديد.
!
ترتيب معاملات Mempool
المنافسة الشديدة تجعل Flashbots ليست دائماً فعالة. من خلال إرسال المعاملات العادية عبر mempool، إذا كان بالإمكان ترتيبها في المكان المناسب ( بعد معاملات التحويل )، قد يتحقق الهدف.
استخدم مهاجم ما هذه الاستراتيجية لتحقيق ربح قدره 312 ETH دون الحاجة لدفع رسوم Flashbots. على سبيل المثال:
تستحق هذه الاستراتيجية الذكية التي تجمع بين العملية والإلهام الانتباه.
!
أفكار أخرى
تعريف القبعة البيضاء والمهاجمين
ليس من السهل دائمًا التعرف على القبعات البيضاء. على سبيل المثال، تم تصنيف حساب معين في البداية كمهاجم، وبعد التفاوض مع فريق المشروع، تم الاتفاق على الاحتفاظ بـ 50 ETH كمكافأة وإعادة باقي الأرباح، ثم تم إعادة تصنيفه كقبعة بيضاء.
هذه الظاهرة ليست الأولى من نوعها، وقد أثارت عدالة آلية التحفيز جدلاً في المجتمع.
المنافسة بين القبعات البيضاء
من الضروري أن تقوم المجتمع بإنشاء آلية تنسيق لتقليل المنافسة بين القبعات البيضاء. هذه المنافسة لا تضيع الموارد فحسب، بل تزيد أيضًا من تكلفة الإنقاذ. على سبيل المثال، كنا نحاول مع ثلاثة منظمات أخرى للقبعات البيضاء في نفس الوقت حماية 54 ضحية ( والتي تتعلق بـ 450 ETH ). بدون آلية تنسيق، يكون من الصعب على القبعات البيضاء التخلي عن أو إيقاف هذه المنافسة.
تحسين عمليات الإنقاذ
يمكن للقبعات البيضاء الكشف عن الإجراءات للمجتمع دون الكشف عن معلومات حساسة، وهذه الممارسة فعالة.
يمكن للأطراف في المجتمع التعاون معًا لزيادة كفاءة الإنقاذ:
من خلال الجهود المشتركة من جميع الأطراف، يمكننا مواجهة تحديات الأمان في بيئة Web3 بشكل أفضل وحماية مصالح المستخدمين.
!