مؤخراً، شارك أحد خبراء الأمن محتوى متعلق بأمان التمويل اللامركزي، واستعرض الأحداث الأمنية الكبرى في صناعة Web3 خلال أكثر من عام مضى، وناقش أسباب حدوث هذه الأحداث وكيفية تجنبها، وقدم ملخصاً للثغرات الأمنية الشائعة في العقود الذكية وتدابير الوقاية، كما قدم بعض النصائح الأمنية للمشاريع والمستخدمين.
أنواع الثغرات الشائعة في التمويل اللامركزي تشمل عادةً القروض الفورية، والتلاعب بالأسعار، ومشاكل صلاحيات الدوال، واستدعاءات خارجية عشوائية، ومشاكل دالة fallback، وثغرات منطق الأعمال، وتسرب المفاتيح الخاصة، وإعادة الإدخال، وغيرها. تركز هذه المقالة على ثلاثة أنواع: القروض الفورية، والتلاعب بالأسعار، وهجمات إعادة الإدخال.
قرض فوري
القرض السريع هو ابتكار في التمويل اللامركزي، ولكن عندما يستغله المتسللون، لا يحتاجون إلى إنفاق أي تكلفة لاقتراض الأموال، وبعد تنفيذ عملية التحكيم بالكامل، يعيدون الأموال، والجزء المتبقي هو عائدات التحكيم، حيث يحتاجون فقط لدفع رسوم غاز صغيرة للحصول على عائدات ضخمة.
غالبًا ما تكون الهجمات الشائعة مصحوبة بقروض سريعة، حيث يفضل المهاجمون اقتراض كميات كبيرة من الأموال من خلال القروض السريعة، للتلاعب بالأسعار، وهجوم منطق الأعمال، وما إلى ذلك. يحتاج المطورون إلى النظر في ما إذا كانت وظيفة العقد ستتأثر بشكل غير طبيعي بسبب كميات كبيرة من الأموال، أو من خلال كميات كبيرة من الأموال التي تتفاعل مع عدة وظائف في العقد في صفقة واحدة للحصول على المكافآت.
غالبًا ما يمكن رؤية بعض قيم عدد الرموز في العقود تُستخدم في حساب المكافآت، أو تُستخدم كعدد رموز في أزواج التداول في DEX للمشاركة في حسابات متنوعة. نظرًا لأن المطورين لم يأخذوا في الاعتبار إمكانية استغلال المهاجمين لاقتراض القرض الفوري للتلاعب بهذه المتغيرات عند تصميم هذه الوظائف، فقد أدى ذلك إلى سرقة أموال العقود.
على مدار العامين الماضيين، ظهرت العديد من المشكلات في القروض الفورية. تبدو العديد من مشاريع التمويل اللامركزي ذات عوائد مرتفعة، ولكن في الواقع، تختلف مستويات الفرق المطورة. على سبيل المثال، قد يكون الكود قد تم شراؤه، وحتى إذا لم يكن هناك ثغرات في الكود نفسه، فلا يزال هناك احتمال وجود مشاكل من الناحية المنطقية. على سبيل المثال، واجهنا مشروعًا كان يمنح مكافآت في أوقات ثابتة بناءً على عدد الرموز التي يمتلكها حاملوها، لكن المهاجمين استغلوا القرض الفوري لشراء كميات كبيرة من الرموز، وعند توزيع المكافآت، ذهبت معظم المكافآت إلى المهاجمين. بالإضافة إلى ذلك، هناك بعض المشاريع التي تحسب الأسعار من خلال الرموز، ويمكن أن تؤثر على الأسعار من خلال القرض الفوري، ويجب على الفرق المطورة أن تكون أكثر حذرًا بشأن هذه المشكلات.
التحكم في الأسعار
تتعلق مشكلة التلاعب في الأسعار ارتباطًا وثيقًا بالقروض الفورية، وتعود هذه المشكلة أساسًا إلى إمكانية التحكم في بعض المعلمات أثناء حساب السعر، وهناك نوعان شائعان من المشكلات التي تظهر.
واحدة هي استخدام بيانات طرف ثالث عند حساب السعر، لكن الطريقة المستخدمة غير صحيحة أو أن الفحص مفقود مما يؤدي إلى التلاعب الخبيث في السعر.
نوع آخر هو بسبب استخدام عدد من الرموز الخاصة ببعض العناوين كمتغيرات حسابية، حيث يمكن زيادة أو تقليل رصيد الرموز لتلك العناوين بشكل مؤقت.
هجوم إعادة الدخول
واحدة من المخاطر الرئيسية لاستدعاء العقود الخارجية هي أنها يمكن أن تتولى التحكم في تدفق التحكم، وتجري تغييرات غير متوقعة على بياناتك.
بسبب أن رصيد المستخدم لا يتم تعيينه إلى 0 حتى النهاية، فإن الاستدعاءات الثانية ( وما بعدها من ) ستظل ناجحة، وستستمر في سحب الرصيد مرة بعد مرة.
بالنسبة للعقود المختلفة، هناك العديد من الطرق التي يمكن من خلالها وجود إعادة الدخول، ويمكن دمج وظائف العقود المختلفة أو وظائف متعددة لعقود مختلفة لإتمام هجوم إعادة الدخول، لذلك عندما نحل مشكلة إعادة الدخول يجب أن ننتبه إلى النقاط التالية:
ليس فقط لمنع مشكلة إعادة الدخول لوظيفة واحدة;
اتبع نمط Checks-Effects-Interactions في التشفير ;
استخدم المعدل الذي تم التحقق منه زمنياً لمنع إعادة الإدخال.
في الواقع، ما أخشاه حقًا هو إعادة اختراع العجلة، فعندما تحتاج إلى شيء ما، تكتبه بنفسك. هناك العديد من أفضل الممارسات الأمنية في هذا المجال، يمكننا استخدامها فقط، وليس هناك حاجة على الإطلاق لإعادة اختراع العجلة. عندما تقوم بصنع عجلة، فإنها لم تمر بعملية تحقق كافية، وفي هذه الحالة، تكون فرصة حدوث مشكلة أكبر بكثير من فرصة حدوث مشكلة باستخدام شيء ناضج ومجرب.
قصة الثغرة في بروتوكول أومني --- صراع بين أربعة قراصنة
تمت مراقبة ميمبول إيثيريوم باستمرار من قبل عدد كبير من القراصنة، الذين يقومون بتحليل المعاملات باستمرار والقيام بالسباق على المعاملات المربحة لتحقيق الأرباح. تم التقاط معاملات الهجوم المقدمة من مكتشف ثغرة Omni Protocol بواسطة قراصنين، حيث استخدموا روبوت السباق في flashbot لنشر معاملات السباق والاستيلاء على 1200 ETH من بروتوكول Omni، بينما حصل المهاجم الذي اكتشف الثغرة على 480 ETH فقط. في هذه الأثناء، اكتشف قراصن آخر معاملة الهجوم المقدمة من قراصنة السباق في flashbot، واستغل الخصائص التي تتطلب شراء رمز Doodle ERC20 من معاملات الهجوم، وقام بهجوم ساندويتش، محققًا أرباحًا قدرها 151 ETH.
ليس من يكتشف الثغرات هو من يحقق أكبر الأرباح، بل يحققها Hunters آخرون في الغابة المظلمة. في هذه البيئة، يوجد Hunters في كل مكان، وقد يكون Hunters بعضهم فريسة لبعض، حتى لو كان من بدأ الهجوم، إذا كان مبتدئًا، فقد لا يستطيع أخذ معظم أموال المشروع، إلا إذا أخذها دفعة واحدة. وهناك الكثير من الأشخاص الذين يستخدمون رسوم Gas أعلى للتقدم وتنفيذ المعاملات، وإذا كانت المعاملات تتعلق بتداول الرموز في DEX، فقد يتعرضون لهجمات السندويش، وهو أمر فوضوي للغاية.
نصائح الأمان
أخيرًا، هي نصائح أمان للمشاريع والمستخدمين العاديين.
نصائح أمان المشروع
أولاً، يجب أن تتبع تطوير العقود أفضل الممارسات الأمنية.
ثانياً، العقود قابلة للتحديث والإيقاف: العديد من الهجمات ليست لمرة واحدة حيث يتم نقل جميع العملات، بل تتم عبر عدة معاملات، إذا كان هناك آلية مراقبة سليمة، يمكن اكتشافها. بعد الاكتشاف، يفترض أن تكون العقود قابلة للإيقاف، مما يساعد في تقليل الخسائر بشكل فعال.
ثالثاً، استخدام قفل زمني: مثل بعض الحالات، إذا كان هناك قفل زمني، لنفترض أنه يجب أن يتم الانتهاء في غضون 48 ساعة، في هذه الحالة يمكن للكثير من الأشخاص الذين لديهم قفل زمني اكتشاف أن المنشئ قد قام بتحديث طريقة mint، ويمكن لأي شخص استخدامها، الأشخاص المراقبون سيعرفون أن المشروع قد تم اختراقه، ويمكنهم إبلاغ فريق المشروع لتغييره، حتى لو افترضنا أنه تم إبلاغهم ولم يهتم أحد، على الأقل يمكنهم سحب جزء من أموالهم أولاً، لضمان عدم تأثر عوائدهم. لذلك، إذا لم يكن هناك قفل زمني في مشروع ما، من الناحية النظرية، فإن ذلك يزيد من فرص حدوث مشكلة.
رابعاً، زيادة الاستثمار في الأمان، وإنشاء نظام أمان متكامل: الأمان ليس نقطة واحدة، ولا خطاً واحداً، بل هو نظام متكامل. لا ينبغي أن تعتقد أن المشروع، مع تدقيق العقود من قبل عدة شركات، قد أصبح آمناً، حيث يمكن أن يسرق القراصنة المفتاح الخاص، حتى لو كان هناك توقيع مزدوج، يمكن أن تُسرق جميع المفاتيح الخاصة. أو أن النموذج الاقتصادي به مشكلة، أو أن نموذج العمل به مشكلة... هناك آلاف الطرق التي يمكن أن تؤدي إلى فقدان الأموال، الأمر يعتمد على ما إذا كان بالإمكان تجنب جميع مخاطر الأمان مسبقاً. يجب أن نسعى إلى عمل نمذجة للمخاطر، ثم تدريجياً نتجنب معظم المخاطر، ويجب أن تكون المخاطر المتبقية مقبولة، ضمن نطاق التحمل. الأمان والكفاءة لا يمكن تحقيقهما معاً، لذا يجب إجراء بعض التنازلات. ولكن إذا لم يتم الاهتمام بالأمان، وعدم الاستثمار فيه، فإن التعرض للهجمات سيكون أمراً طبيعياً.
خمسة، تعزيز الوعي الأمني بين جميع الموظفين: تعزيز الوعي الأمني لا يتطلب الكثير من التقنية. على تويتر، غالبًا ما نرى الكثير من الأشخاص يفقدون NFTs بسبب الاحتيال، في الواقع، طريقة الاحتيال تستغل نقاط ضعف الإنسان، فربما إذا كنت أكثر انتباهاً، فلن تقع في الفخ. في بيئة Web3 هذه، يكفي أن تسأل قليلاً عن السبب، وتفكر قليلاً، لتجنب العديد من المشاكل.
ستة، الوقاية من الأذى الداخلي، مع تحسين الكفاءة وتعزيز السيطرة على المخاطر: دعونا نأخذ بعض الأمثلة. أولاً، مالك العقد هو توقيع فردي وليس توقيع متعدد، إذا فقد المفتاح الخاص، سيتحكم في المشروع بأكمله؛ ثانياً، لم يتم استخدام قفل زمني، بعض العمليات التحديثية الهامة، تم تحديثها على الفور، دون علم أحد، وهذا غير عادل تمامًا بالنسبة لجميع المشاركين في البروتوكول؛ وأخيرًا، الأذى الداخلي، لم تعمل آليات الأمان الداخلية بأي شكل من الأشكال.
كيف يمكن لبروتوكولات الشبكة أن تضمن الكفاءة مع تحسين الأمان في نفس الوقت؟ بعض أدوات الأمان يمكن أن تحدد شخصاً معيناً لتنفيذ عملية معينة، مثل التوقيع المتعدد بنسبة ثلاثة من خمسة؛ يمكن أن تحدد عنواناً معيناً يمكنه القيام بعملية معينة، مثل إعطاء عقدة موثوقة للغاية رصد المخاطر الأمنية، على فرض أنه تم اكتشاف أن البروتوكول يتعرض لهجوم، وأن الأموال تنتقل تدريجياً إلى عنوان القرصنة، إذا كانت هذه العقدة تحتوي على وظيفة إيقاف، فإننا سنمنح وظيفة الإيقاف لشخص ما، ويمكنه القيام بهذه العملية.
على سبيل المثال، بالنسبة لصانعي السوق في DEX، إذا لم يتم تقييد صلاحيات المالك، فإن المالك يمكنه تحويل الأموال إلى عنوان آخر، ويمكنه تقييد عناوين تحويل العملات، وتحديد العملات التي يمكن التعامل معها، وضبط سحب الأموال إلى عنوان معين. مع تحسين الكفاءة، يتم ضمان مستوى معين من الأمان.
سبعة، أمن الأطراف الثالثة: كجزء من النظام البيئي، سيكون لكل مشروع أطرافه العليا والسفلى. هناك مبدأ "افتراضي بأن الأطراف العليا والسفلى غير آمنة" فيما يتعلق بالأمان. يجب إجراء التحقق، سواء من الأطراف العليا أو السفلى. من الصعب جدًا التحكم في الأطراف الثالثة، مما يجعل مخاطر الأمان كبيرة جدًا، لذا يجب أن نكون حذرين للغاية عند إدخال الأطراف الثالثة. العقود مفتوحة المصدر، ويمكن استيرادها أو استدعاؤها؛ إذا كانت العقود غير مفتوحة المصدر، فلا يمكن استيرادها بأي شكل من الأشكال. لأننا لا نعرف ما هي المنطق بداخلها، أو أن استيراد هذه العقدة نفسها قد تكون عقدة قابلة للتحديث، قد لا توجد مشاكل عند استخدامها بشكل طبيعي، ولكن لا يمكننا التنبؤ ما إذا كان في يوم من الأيام سيتحول إلى عقدة ضارة، وهذا لا يمكن التحكم فيه.
كيف يمكن للمستخدمين / LP تحديد ما إذا كانت العقود الذكية آمنة؟
بالنسبة للمستخدمين العاديين، نحكم على ما إذا كان المشروع آمناً بناءً على النقاط الست التالية:
أولاً، هل العقد مفتوح المصدر: أي مشروع لا يكون عقده مفتوح المصدر، لا نقترب منه، لأننا لا نستطيع معرفة ما هو مكتوب في العقد.
ثانياً، هل يعتمد المالك على التوقيع المتعدد، وهل التوقيع المتعدد لامركزي: إذا لم يتم استخدام التوقيع المتعدد، فلا يمكننا الحكم على منطق المشروع التجاري ومحتواه، وعند حدوث حدث أمني، لا يمكننا تحديد ما إذا كان ذلك نتيجة قرصنة. حتى وإن تم استخدام التوقيع المتعدد، يجب أيضاً الحكم على ما إذا كان التوقيع المتعدد لامركزياً.
ثالثاً، حالة التداول الحالية للعقد: خاصة أن هناك العديد من المشاريع المحتالة في السوق، قد تقوم بإنشاء عقد مشابه، في هذه الحالة علينا النظر في وقت نشر العقد، وعدد التفاعلات، إلخ، فهذه كلها معايير لتقييم ما إذا كان العقد آمناً.
الرابع، هل العقد هو عقد وكيل، هل يمكن ترقيته، هل هناك قفل زمني: إذا كان العقد غير قابل للتحديث تمامًا، سيكون ذلك صارمًا للغاية، لذلك من الأفضل أن يكون العقد الخاص بالمشروع قابلًا للتحديث. ولكن يجب أن تكون هناك طريقة للترقية، وعندما تحتوي الترقية على محتوى ترقية، وتغييرات مهمة في المعلمات، يجب أن يكون هناك قفل زمني، ويجب إعطاء الجميع نافذة زمنية لتحديد ما إذا كانت الترقية الحقيقية ضارة للمستخدمين أم مفيدة، وهذه أيضًا طريقة للشفافية.
خمسة، هل تم تدقيق العقد بواسطة شركات متعددة ( لا تثق بشكل أعمى بشركات التدقيق )، هل صلاحيات المالك كبيرة جدًا: أولاً، لا يجب أن تثق فقط بشركة تدقيق واحدة، لأن شركات التدقيق المختلفة، والمراجعين المختلفين، لديهم وجهات نظر مختلفة. إذا كان هناك مشروع لديه نتائج تدقيق من عدة مؤسسات، واكتشفوا مشاكل مختلفة، وقد قامت الجهة المسؤولة عن المشروع بإصلاحها، فإن ذلك يعتبر أكثر أمانًا بالمقارنة مع وجود تدقيق من شركة واحدة فقط. الجهة المسؤولة عن المشروع التي تتحمل المسؤولية ستقوم بالبحث عن عدة مؤسسات تدقيق لإجراء تدقيق متقاطع.
ثانياً يجب النظر في ما إذا كانت صلاحيات المالك كبيرة جداً. على سبيل المثال، هناك بعض مشاريع الپيهوا، حيث يمكن للمالك التحكم بالكامل في أموال المستخدمين. إذا كانت كمية الرموز المشتراة صغيرة، يمكن الشراء والبيع بشكل طبيعي، ولكن إذا كانت كمية الرموز المشتراة ضخمة، يمكن للمالك فوراً التحكم وإغلاقها، مما يمنع التداول. وهناك أيضاً بعض مشاريع NFT بنفس الطريقة. يجب أن تكون صلاحيات المالك في مشروع طبيعي قابلة للتحكم، مما يقلل من العمليات عالية المخاطر، وستكون العمليات محمية بواسطة قفل زمني، مما يتيح للمستخدمين معرفة ما هي العمليات. خاصة عندما تكون الأسواق غير جيدة، هناك العديد من المشاريع المحتالة، لذلك يجب على الجميع أن يأخذوا صلاحيات المالك على محمل الجد.
ستة، انتبه إلى الأوراكيل: إذا كان المشروع يستخدم الأوراكيل الرائد في السوق، فلن تكون هناك مشاكل كبيرة، ولكن إذا كان يستخدم أوراكيل تم إنشاؤه ذاتيًا، أو إذا تم استخدام بعض الرموز المميزة بشكل عشوائي كضمان، فقد تظهر مشاكل.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
تسجيلات الإعجاب 18
أعجبني
18
4
مشاركة
تعليق
0/400
Layer2Observer
· منذ 14 س
من الناحية البرمجية، كان ينبغي إصلاح هذه الثغرات منذ فترة.
تقرير شامل عن أمان التمويل اللامركزي: تدابير الحماية ضد القروض السريعة، والتلاعب في الأسعار، وهجمات إعادة الدخول
التمويل اللامركزي أمان: الثغرات الأمنية الشائعة وتدابير الوقاية
مؤخراً، شارك أحد خبراء الأمن محتوى متعلق بأمان التمويل اللامركزي، واستعرض الأحداث الأمنية الكبرى في صناعة Web3 خلال أكثر من عام مضى، وناقش أسباب حدوث هذه الأحداث وكيفية تجنبها، وقدم ملخصاً للثغرات الأمنية الشائعة في العقود الذكية وتدابير الوقاية، كما قدم بعض النصائح الأمنية للمشاريع والمستخدمين.
أنواع الثغرات الشائعة في التمويل اللامركزي تشمل عادةً القروض الفورية، والتلاعب بالأسعار، ومشاكل صلاحيات الدوال، واستدعاءات خارجية عشوائية، ومشاكل دالة fallback، وثغرات منطق الأعمال، وتسرب المفاتيح الخاصة، وإعادة الإدخال، وغيرها. تركز هذه المقالة على ثلاثة أنواع: القروض الفورية، والتلاعب بالأسعار، وهجمات إعادة الإدخال.
قرض فوري
القرض السريع هو ابتكار في التمويل اللامركزي، ولكن عندما يستغله المتسللون، لا يحتاجون إلى إنفاق أي تكلفة لاقتراض الأموال، وبعد تنفيذ عملية التحكيم بالكامل، يعيدون الأموال، والجزء المتبقي هو عائدات التحكيم، حيث يحتاجون فقط لدفع رسوم غاز صغيرة للحصول على عائدات ضخمة.
غالبًا ما تكون الهجمات الشائعة مصحوبة بقروض سريعة، حيث يفضل المهاجمون اقتراض كميات كبيرة من الأموال من خلال القروض السريعة، للتلاعب بالأسعار، وهجوم منطق الأعمال، وما إلى ذلك. يحتاج المطورون إلى النظر في ما إذا كانت وظيفة العقد ستتأثر بشكل غير طبيعي بسبب كميات كبيرة من الأموال، أو من خلال كميات كبيرة من الأموال التي تتفاعل مع عدة وظائف في العقد في صفقة واحدة للحصول على المكافآت.
غالبًا ما يمكن رؤية بعض قيم عدد الرموز في العقود تُستخدم في حساب المكافآت، أو تُستخدم كعدد رموز في أزواج التداول في DEX للمشاركة في حسابات متنوعة. نظرًا لأن المطورين لم يأخذوا في الاعتبار إمكانية استغلال المهاجمين لاقتراض القرض الفوري للتلاعب بهذه المتغيرات عند تصميم هذه الوظائف، فقد أدى ذلك إلى سرقة أموال العقود.
على مدار العامين الماضيين، ظهرت العديد من المشكلات في القروض الفورية. تبدو العديد من مشاريع التمويل اللامركزي ذات عوائد مرتفعة، ولكن في الواقع، تختلف مستويات الفرق المطورة. على سبيل المثال، قد يكون الكود قد تم شراؤه، وحتى إذا لم يكن هناك ثغرات في الكود نفسه، فلا يزال هناك احتمال وجود مشاكل من الناحية المنطقية. على سبيل المثال، واجهنا مشروعًا كان يمنح مكافآت في أوقات ثابتة بناءً على عدد الرموز التي يمتلكها حاملوها، لكن المهاجمين استغلوا القرض الفوري لشراء كميات كبيرة من الرموز، وعند توزيع المكافآت، ذهبت معظم المكافآت إلى المهاجمين. بالإضافة إلى ذلك، هناك بعض المشاريع التي تحسب الأسعار من خلال الرموز، ويمكن أن تؤثر على الأسعار من خلال القرض الفوري، ويجب على الفرق المطورة أن تكون أكثر حذرًا بشأن هذه المشكلات.
التحكم في الأسعار
تتعلق مشكلة التلاعب في الأسعار ارتباطًا وثيقًا بالقروض الفورية، وتعود هذه المشكلة أساسًا إلى إمكانية التحكم في بعض المعلمات أثناء حساب السعر، وهناك نوعان شائعان من المشكلات التي تظهر.
هجوم إعادة الدخول
واحدة من المخاطر الرئيسية لاستدعاء العقود الخارجية هي أنها يمكن أن تتولى التحكم في تدفق التحكم، وتجري تغييرات غير متوقعة على بياناتك.
بسبب أن رصيد المستخدم لا يتم تعيينه إلى 0 حتى النهاية، فإن الاستدعاءات الثانية ( وما بعدها من ) ستظل ناجحة، وستستمر في سحب الرصيد مرة بعد مرة.
بالنسبة للعقود المختلفة، هناك العديد من الطرق التي يمكن من خلالها وجود إعادة الدخول، ويمكن دمج وظائف العقود المختلفة أو وظائف متعددة لعقود مختلفة لإتمام هجوم إعادة الدخول، لذلك عندما نحل مشكلة إعادة الدخول يجب أن ننتبه إلى النقاط التالية:
في الواقع، ما أخشاه حقًا هو إعادة اختراع العجلة، فعندما تحتاج إلى شيء ما، تكتبه بنفسك. هناك العديد من أفضل الممارسات الأمنية في هذا المجال، يمكننا استخدامها فقط، وليس هناك حاجة على الإطلاق لإعادة اختراع العجلة. عندما تقوم بصنع عجلة، فإنها لم تمر بعملية تحقق كافية، وفي هذه الحالة، تكون فرصة حدوث مشكلة أكبر بكثير من فرصة حدوث مشكلة باستخدام شيء ناضج ومجرب.
قصة الثغرة في بروتوكول أومني --- صراع بين أربعة قراصنة
تمت مراقبة ميمبول إيثيريوم باستمرار من قبل عدد كبير من القراصنة، الذين يقومون بتحليل المعاملات باستمرار والقيام بالسباق على المعاملات المربحة لتحقيق الأرباح. تم التقاط معاملات الهجوم المقدمة من مكتشف ثغرة Omni Protocol بواسطة قراصنين، حيث استخدموا روبوت السباق في flashbot لنشر معاملات السباق والاستيلاء على 1200 ETH من بروتوكول Omni، بينما حصل المهاجم الذي اكتشف الثغرة على 480 ETH فقط. في هذه الأثناء، اكتشف قراصن آخر معاملة الهجوم المقدمة من قراصنة السباق في flashbot، واستغل الخصائص التي تتطلب شراء رمز Doodle ERC20 من معاملات الهجوم، وقام بهجوم ساندويتش، محققًا أرباحًا قدرها 151 ETH.
ليس من يكتشف الثغرات هو من يحقق أكبر الأرباح، بل يحققها Hunters آخرون في الغابة المظلمة. في هذه البيئة، يوجد Hunters في كل مكان، وقد يكون Hunters بعضهم فريسة لبعض، حتى لو كان من بدأ الهجوم، إذا كان مبتدئًا، فقد لا يستطيع أخذ معظم أموال المشروع، إلا إذا أخذها دفعة واحدة. وهناك الكثير من الأشخاص الذين يستخدمون رسوم Gas أعلى للتقدم وتنفيذ المعاملات، وإذا كانت المعاملات تتعلق بتداول الرموز في DEX، فقد يتعرضون لهجمات السندويش، وهو أمر فوضوي للغاية.
نصائح الأمان
أخيرًا، هي نصائح أمان للمشاريع والمستخدمين العاديين.
نصائح أمان المشروع
أولاً، يجب أن تتبع تطوير العقود أفضل الممارسات الأمنية.
ثانياً، العقود قابلة للتحديث والإيقاف: العديد من الهجمات ليست لمرة واحدة حيث يتم نقل جميع العملات، بل تتم عبر عدة معاملات، إذا كان هناك آلية مراقبة سليمة، يمكن اكتشافها. بعد الاكتشاف، يفترض أن تكون العقود قابلة للإيقاف، مما يساعد في تقليل الخسائر بشكل فعال.
ثالثاً، استخدام قفل زمني: مثل بعض الحالات، إذا كان هناك قفل زمني، لنفترض أنه يجب أن يتم الانتهاء في غضون 48 ساعة، في هذه الحالة يمكن للكثير من الأشخاص الذين لديهم قفل زمني اكتشاف أن المنشئ قد قام بتحديث طريقة mint، ويمكن لأي شخص استخدامها، الأشخاص المراقبون سيعرفون أن المشروع قد تم اختراقه، ويمكنهم إبلاغ فريق المشروع لتغييره، حتى لو افترضنا أنه تم إبلاغهم ولم يهتم أحد، على الأقل يمكنهم سحب جزء من أموالهم أولاً، لضمان عدم تأثر عوائدهم. لذلك، إذا لم يكن هناك قفل زمني في مشروع ما، من الناحية النظرية، فإن ذلك يزيد من فرص حدوث مشكلة.
رابعاً، زيادة الاستثمار في الأمان، وإنشاء نظام أمان متكامل: الأمان ليس نقطة واحدة، ولا خطاً واحداً، بل هو نظام متكامل. لا ينبغي أن تعتقد أن المشروع، مع تدقيق العقود من قبل عدة شركات، قد أصبح آمناً، حيث يمكن أن يسرق القراصنة المفتاح الخاص، حتى لو كان هناك توقيع مزدوج، يمكن أن تُسرق جميع المفاتيح الخاصة. أو أن النموذج الاقتصادي به مشكلة، أو أن نموذج العمل به مشكلة... هناك آلاف الطرق التي يمكن أن تؤدي إلى فقدان الأموال، الأمر يعتمد على ما إذا كان بالإمكان تجنب جميع مخاطر الأمان مسبقاً. يجب أن نسعى إلى عمل نمذجة للمخاطر، ثم تدريجياً نتجنب معظم المخاطر، ويجب أن تكون المخاطر المتبقية مقبولة، ضمن نطاق التحمل. الأمان والكفاءة لا يمكن تحقيقهما معاً، لذا يجب إجراء بعض التنازلات. ولكن إذا لم يتم الاهتمام بالأمان، وعدم الاستثمار فيه، فإن التعرض للهجمات سيكون أمراً طبيعياً.
خمسة، تعزيز الوعي الأمني بين جميع الموظفين: تعزيز الوعي الأمني لا يتطلب الكثير من التقنية. على تويتر، غالبًا ما نرى الكثير من الأشخاص يفقدون NFTs بسبب الاحتيال، في الواقع، طريقة الاحتيال تستغل نقاط ضعف الإنسان، فربما إذا كنت أكثر انتباهاً، فلن تقع في الفخ. في بيئة Web3 هذه، يكفي أن تسأل قليلاً عن السبب، وتفكر قليلاً، لتجنب العديد من المشاكل.
ستة، الوقاية من الأذى الداخلي، مع تحسين الكفاءة وتعزيز السيطرة على المخاطر: دعونا نأخذ بعض الأمثلة. أولاً، مالك العقد هو توقيع فردي وليس توقيع متعدد، إذا فقد المفتاح الخاص، سيتحكم في المشروع بأكمله؛ ثانياً، لم يتم استخدام قفل زمني، بعض العمليات التحديثية الهامة، تم تحديثها على الفور، دون علم أحد، وهذا غير عادل تمامًا بالنسبة لجميع المشاركين في البروتوكول؛ وأخيرًا، الأذى الداخلي، لم تعمل آليات الأمان الداخلية بأي شكل من الأشكال.
كيف يمكن لبروتوكولات الشبكة أن تضمن الكفاءة مع تحسين الأمان في نفس الوقت؟ بعض أدوات الأمان يمكن أن تحدد شخصاً معيناً لتنفيذ عملية معينة، مثل التوقيع المتعدد بنسبة ثلاثة من خمسة؛ يمكن أن تحدد عنواناً معيناً يمكنه القيام بعملية معينة، مثل إعطاء عقدة موثوقة للغاية رصد المخاطر الأمنية، على فرض أنه تم اكتشاف أن البروتوكول يتعرض لهجوم، وأن الأموال تنتقل تدريجياً إلى عنوان القرصنة، إذا كانت هذه العقدة تحتوي على وظيفة إيقاف، فإننا سنمنح وظيفة الإيقاف لشخص ما، ويمكنه القيام بهذه العملية.
على سبيل المثال، بالنسبة لصانعي السوق في DEX، إذا لم يتم تقييد صلاحيات المالك، فإن المالك يمكنه تحويل الأموال إلى عنوان آخر، ويمكنه تقييد عناوين تحويل العملات، وتحديد العملات التي يمكن التعامل معها، وضبط سحب الأموال إلى عنوان معين. مع تحسين الكفاءة، يتم ضمان مستوى معين من الأمان.
سبعة، أمن الأطراف الثالثة: كجزء من النظام البيئي، سيكون لكل مشروع أطرافه العليا والسفلى. هناك مبدأ "افتراضي بأن الأطراف العليا والسفلى غير آمنة" فيما يتعلق بالأمان. يجب إجراء التحقق، سواء من الأطراف العليا أو السفلى. من الصعب جدًا التحكم في الأطراف الثالثة، مما يجعل مخاطر الأمان كبيرة جدًا، لذا يجب أن نكون حذرين للغاية عند إدخال الأطراف الثالثة. العقود مفتوحة المصدر، ويمكن استيرادها أو استدعاؤها؛ إذا كانت العقود غير مفتوحة المصدر، فلا يمكن استيرادها بأي شكل من الأشكال. لأننا لا نعرف ما هي المنطق بداخلها، أو أن استيراد هذه العقدة نفسها قد تكون عقدة قابلة للتحديث، قد لا توجد مشاكل عند استخدامها بشكل طبيعي، ولكن لا يمكننا التنبؤ ما إذا كان في يوم من الأيام سيتحول إلى عقدة ضارة، وهذا لا يمكن التحكم فيه.
كيف يمكن للمستخدمين / LP تحديد ما إذا كانت العقود الذكية آمنة؟
بالنسبة للمستخدمين العاديين، نحكم على ما إذا كان المشروع آمناً بناءً على النقاط الست التالية:
أولاً، هل العقد مفتوح المصدر: أي مشروع لا يكون عقده مفتوح المصدر، لا نقترب منه، لأننا لا نستطيع معرفة ما هو مكتوب في العقد.
ثانياً، هل يعتمد المالك على التوقيع المتعدد، وهل التوقيع المتعدد لامركزي: إذا لم يتم استخدام التوقيع المتعدد، فلا يمكننا الحكم على منطق المشروع التجاري ومحتواه، وعند حدوث حدث أمني، لا يمكننا تحديد ما إذا كان ذلك نتيجة قرصنة. حتى وإن تم استخدام التوقيع المتعدد، يجب أيضاً الحكم على ما إذا كان التوقيع المتعدد لامركزياً.
ثالثاً، حالة التداول الحالية للعقد: خاصة أن هناك العديد من المشاريع المحتالة في السوق، قد تقوم بإنشاء عقد مشابه، في هذه الحالة علينا النظر في وقت نشر العقد، وعدد التفاعلات، إلخ، فهذه كلها معايير لتقييم ما إذا كان العقد آمناً.
الرابع، هل العقد هو عقد وكيل، هل يمكن ترقيته، هل هناك قفل زمني: إذا كان العقد غير قابل للتحديث تمامًا، سيكون ذلك صارمًا للغاية، لذلك من الأفضل أن يكون العقد الخاص بالمشروع قابلًا للتحديث. ولكن يجب أن تكون هناك طريقة للترقية، وعندما تحتوي الترقية على محتوى ترقية، وتغييرات مهمة في المعلمات، يجب أن يكون هناك قفل زمني، ويجب إعطاء الجميع نافذة زمنية لتحديد ما إذا كانت الترقية الحقيقية ضارة للمستخدمين أم مفيدة، وهذه أيضًا طريقة للشفافية.
خمسة، هل تم تدقيق العقد بواسطة شركات متعددة ( لا تثق بشكل أعمى بشركات التدقيق )، هل صلاحيات المالك كبيرة جدًا: أولاً، لا يجب أن تثق فقط بشركة تدقيق واحدة، لأن شركات التدقيق المختلفة، والمراجعين المختلفين، لديهم وجهات نظر مختلفة. إذا كان هناك مشروع لديه نتائج تدقيق من عدة مؤسسات، واكتشفوا مشاكل مختلفة، وقد قامت الجهة المسؤولة عن المشروع بإصلاحها، فإن ذلك يعتبر أكثر أمانًا بالمقارنة مع وجود تدقيق من شركة واحدة فقط. الجهة المسؤولة عن المشروع التي تتحمل المسؤولية ستقوم بالبحث عن عدة مؤسسات تدقيق لإجراء تدقيق متقاطع.
ثانياً يجب النظر في ما إذا كانت صلاحيات المالك كبيرة جداً. على سبيل المثال، هناك بعض مشاريع الپيهوا، حيث يمكن للمالك التحكم بالكامل في أموال المستخدمين. إذا كانت كمية الرموز المشتراة صغيرة، يمكن الشراء والبيع بشكل طبيعي، ولكن إذا كانت كمية الرموز المشتراة ضخمة، يمكن للمالك فوراً التحكم وإغلاقها، مما يمنع التداول. وهناك أيضاً بعض مشاريع NFT بنفس الطريقة. يجب أن تكون صلاحيات المالك في مشروع طبيعي قابلة للتحكم، مما يقلل من العمليات عالية المخاطر، وستكون العمليات محمية بواسطة قفل زمني، مما يتيح للمستخدمين معرفة ما هي العمليات. خاصة عندما تكون الأسواق غير جيدة، هناك العديد من المشاريع المحتالة، لذلك يجب على الجميع أن يأخذوا صلاحيات المالك على محمل الجد.
ستة، انتبه إلى الأوراكيل: إذا كان المشروع يستخدم الأوراكيل الرائد في السوق، فلن تكون هناك مشاكل كبيرة، ولكن إذا كان يستخدم أوراكيل تم إنشاؤه ذاتيًا، أو إذا تم استخدام بعض الرموز المميزة بشكل عشوائي كضمان، فقد تظهر مشاكل.