المؤلف: إد فيلتن، المؤسس المشارك لـ Offchain Labs المصدر: متوسط الترجمة: شان أوبا، Golden Finance
في 22 مارس، كشف فريق Offchain Labs لفريق OP Labs عن مشكلتين خطيرتين اكتشفناهما في نظام مكافحة الاحتيال Optimism الذي تم نشره على شبكة الاختبار . لقد قدمنا كود استغلال تجريبي للهجوم إلى فريق OP Labs. في 25 مارس، أكدت OP Labs صحة هاتين المسألتين.
نقوم بتنسيق إفصاحاتنا مع فريق OP Labs. طلبت OP Labs تأجيل الكشف العلني عن نقاط الضعف هذه حتى يتم حلها. في وقت متأخر من الأمس (25 أبريل)، تم تحديث شبكة اختبار التفاؤل، واليوم كشفنا عن هذه الثغرات الأمنية لأول مرة.
تسمح هذه الثغرات الأمنية للطرف الخبيث بإجبار آلية إثبات الاحتيال في OP Stack على قبول سجل السلسلة الاحتيالي، أو منع آلية إثبات الاحتيال في OP Stack من قبول السلسلة الصحيحة تاريخ. تنبع هذه المشكلات من خلل في أجهزة ضبط الوقت الخاصة بتصميم مكافحة الاحتيال في OP.
والنتيجة هي أن أنظمة منع الاحتيال لا تعمل على تحسين الأمن مقارنة بالنهج الذي يعتمد فقط على التدخل في حالات الطوارئ من قبل مجلس الأمن.
طبيعة الثغرة الأمنية
المؤقتات هي الجانب الأكثر دقة في التصميم التفاعلي لمنع الاحتيال واحد. قد لا يتخذ الخصم أي إجراء في لعبة التحدي على الإطلاق، لذلك في مرحلة ما يجب أن يعلن البروتوكول أن اللاعبين الذين لم يتحركوا يخسرون عند انتهاء المهلة. لكن يمكن للخصوم أيضًا استخدام هجمات الرقابة ضد سلاسل L1 الأصلية (مثل Ethereum) لمنع الأطراف الصادقة من المشاركة في اللعبة.
إذا مر الوقت دون أن يتحرك اللاعب، فليس لدى البروتوكول طريقة لمعرفة ما إذا كان هذا اللاعب يخضع للرقابة، أم أنه رجل سيء يظل صامتًا ويتظاهر بذلك. تخضع للرقابة. (في كلتا الحالتين، لا يرى البروتوكول سوى "صمت الراديو" للاعب.) لذلك، يجب أن يمنح البروتوكول اللاعبين الصادقين مهلة كافية من الوقت حتى لا يفشلوا بسبب الرقابة، مع منع اللاعبين الضارين من تعطيل البروتوكول لفترة طويلة جدًا.
على سبيل المثال، في بروتوكول التحدي الفردي حيث يوجد لاعب على طرفي النزاع، يستخدم البروتوكول الذي تنشره Arbitrum حاليًا نهجًا الذي يعمل بشكل جيد للغاية. إليك طريقة بديهية لفهم الطريقة: يكسب كل لاعب "نقاط زمنية" عندما يحين دور اللاعب الآخر للتحرك، وإذا جمع اللاعب 7 أيام من النقاط الزمنية، فسيتم الفوز بالتحدي مقابل الوقت. الفكرة هي أنه إذا تأخر اللاعب لمدة 7 أيام، فلن يكون من غير المعقول أن يكون هذا التأخير بالكامل بسبب الرقابة، وبالتالي يمكن اعتبار اللاعب غير أمين - وبالتالي إعلان اللاعب خاسرًا بأمان. . وهذا يجعل الاتفاقيات الفردية آمنة من المراجعة لمدة تصل إلى سبعة أيام.
تعمل هذه الطريقة بشكل جيد عندما يكون هناك لاعب واحد فقط على طرفي النزاع. ولكن عندما تسمح للعديد من اللاعبين بالمشاركة، كما تفعل لعبة Optimism، يصبح من غير الواضح كيفية إدارة النقاط الزمنية. من السهل تقسيم اللاعبين إلى فريقين، فريق لكل طرف من أطراف النزاع، ولكل منهما نقاط زمنية. لكن عليك أن تكون حذرًا، لأن الخونة يهاجمون، ويتظاهر الطرف الخبيث بالصدق لفترة من الوقت، فقط ليطعن "زميل الفريق" الصادق في ظهره في أسوأ لحظة ممكنة.
بروتوكول OP الذي تم نشره في الأصل على شبكة الاختبار عرضة لهذا النوع من هجمات الخائن لأنه يسمح للخائن بالحصول على مكافآت زمنية غير مستحقة. وهذا من شأنه أن يسمح للممثل الخبيث بالفوز بلعبة مقاومة للاحتيال وينبغي أن يخسرها، وبالتالي قبول سجل السلسلة الاحتيالي أو رفض سجل السلسلة الصحيح.
هذه مشكلات يصعب حلها، وعلى الرغم من أن التصميم الأصلي لـ OP يمثل هجومًا خفيًا، فقد أجروا بعض التغييرات على رمز التعامل مع المؤقت الخاص بهم، للتغلب على الثغرات الأمنية التجريبية نحن نقدم. لم نقم بعد بإجراء تحليل أمني لبروتوكولهم المعدل.
التعامل مع الموقتات والخونة والهجمات الأخرى
بروتوكولات مكافحة الاحتيال، وخاصةً تلك الخاصة بها جوانب التوقيت صعبة للغاية في التصميم. ولهذا السبب يأتي بروتوكول BoLD الخاص بنا مزودًا بورقة فنية توفر نموذجًا تفصيليًا للتهديد ودليلًا على أن بروتوكول BoLD ليس عرضة لمثل هذه الهجمات المتمردة. ونظرًا لتعقيد هذه المشكلات ودقتها، نعتقد أنه من الضروري أن يكون لديك نموذج تهديد واضح وإثبات أمني لضمان عدم وجود هجمات محتملة. في الواقع، أثناء عملية إنشاء الدليل، اكتشفنا العديد من المشكلات وأصلحناها في بروتوكول BoLD.
الكشف الأمني الأصلي
فيما يلي الكشف الذي أرسلناه إلى OP Labs في 22 مارس مقتطف موسع من المحتوى:
لقد اكتشفنا (فريق Offchain Labs) عيبًا خطيرًا في النظام في الإصدار الحالي من نظام مقاومة الأعطال OP Stack. يصف هذا المستند هذه العيوب ويوفر نموذجًا لكود الثغرات الأمنية للرجوع إليه.
من شأن هذه العيوب أن تمكن الخصوم من تعطيل السلسلة من خلال جعل البروتوكول يقبل المطالبات الاحتيالية، أو يرفض المطالبات الصحيحة، أو يخلق نزاعات لا يمكن حلها ضمن حدود أمان الغاز L1 والنشاط. [ملاحظة (26 أبريل): تم الإعلان عن القضية الثالثة (النزاع غير القابل للحل) وتوثيقها، لذلك سنقوم بإزالة أي إشارات أخرى. ]
نعتقد أنه إذا تم نشر البروتوكول الحالي الخاص بك على الشبكة الرئيسية، فسوف يعرض أموال المستخدم لمخاطر عالية جدًا.
طبيعة العيوب
يبدو أن بعض العيوب تنبع من إدارة الموقتات في الخطأ -طريقة نظام التدقيق. باختصار، إن وراثة المؤقتات من مطالبات الأجداد تسمح للمطالبات المقدمة من الجهات الفاعلة الضارة بوراثة أرصدة المؤقت من المطالبات التي قدمها سابقًا ممثلون صادقون، وبالتالي تضخيم أرصدة المؤقتات للمطالبات الخبيثة بشكل مصطنع حتى يتمكن الممثل الخبيث من الفوز. تحدي. على سبيل المثال، يمكن لممثل خبيث الترتيب لوراثة نتيجة مؤقت أقل بقليل مما هو مطلوب للمطالبة بالنصر، ثم الإعلان عنها بسبب ضيق الوقت قبل أن يتمكن أي طرف آخر من الرد
أمثلة على الثغرات الأمنية
في ما يلي مجموعة من أمثلة الثغرات الأمنية التي توضح هذه الهجمات.
الثغرة الأمنية الأولى ( test_exploit_last_ Second_challenge
) تسمح للمهاجم بهزيمة الادعاءات الصادقة.
الثغرة الأمنية الثانية ( test_exploit_last_ Second_defend
) تسمح للمهاجم بقبول المطالبات الاحتيالية.
يبدو أن هذه الثغرات الأمنية تنطبق على أحدث إصدار من نظام OP Stack Fraud Proof System في وقت الإرسال 96a269bc793fa30c3e2aa1a8afd738e4605fa06e< /الكود>قوي>