هجمات رفض الخدمة على العقود الذكية: كيفية الإصلاح والتجنب (دليل خبير) ذكاء بيانات PlatoBlockchain. البحث العمودي. عاي.

هجمات رفض الخدمة على العقود الذكية: كيفية الإصلاح والتجنب (دليل خبير)

وقت القراءة: 6 دقائق

هل زرت موقعًا استغرق وقتًا طويلاً في التحميل لتجد أنه لا يمكن فتحه في الوقت الحالي؟ هذا ببساطة يتعلق بتأثير هجمات رفض الخدمة. 

هجمات رفض الخدمة (DoS) هي إحدى نقاط الضعف العديدة التي يتم البحث عنها بشكل كبير عند تدقيق العقود الذكية. تهدف هذه المدونة إلى التخلص من خصوصيات وعموميات هجوم DoS - ما هو وتأثيره وأنواعه والمزيد لإضافته.

دعنا ندخلها ونستكشفها جميعًا بسرعة. 

ما هو هجوم DoS؟

يهدف هجوم DoS إلى تعطيل قدرات المعالجة لشبكة أو خادم أو تطبيق ، مما يؤدي إلى منع تلقي الطلبات من المستخدمين الشرعيين. في هذا ، يطغى المهاجم على الشبكة عن طريق إرسال المزيد من حركة المرور التي تستنفد ذاكرة الخادم وعرض النطاق الترددي. 

بسبب الإمكانات الهائلة التي تمتلكها blockchain ، فهي الهدف الأساسي لهجمات DoS لسرقة الثروات. أشهر العملات المشفرة ، مثل البيتكوين ، إثيريم، وما إلى ذلك ، تعرضت أيضًا لهجمات DoS. 

رفض الخدمة الموزع (DDoS)

رفض الخدمة الموزع (DDoS) هو هجوم DoS يتضمن المهاجم الذي يتحكم في أجهزة متعددة لشن هجوم على العقدة المستهدفة.

يراقب المهاجم العقدة المستهدفة ويوجه الأجهزة المتعددة الخاضعة لسيطرته لإرسال كمية كبيرة من المعلومات لإغراق العقدة المستهدفة. هذا يجعل الهدف يتعطل وغير قادر على إنجاز المهمة المحددة.  

أهداف هجمات DoS في نظام Blockchain البيئي

من تسجيلات الأحداث السابقة لهجمات DoS ، فإن كل جزء من نظام blockchain البيئي عرضة لهجمات DoS. وعلى سبيل المثال لا الحصر ، 

محافظ العملات المشفرة: كما هو الحال مع أي محفظة ، تُستخدم محفظة العملة المشفرة لتخزين العملات المشفرة أو إرسالها أو تلقيها. وتستخدم تلك المحافظ عبر الإنترنت العقود الذكية ، المعرضة لهجمات DoS التي تعيق خدماتها وتفاعلها مع Dapps. 

خدمات صرف العملات المشفرة: النظام الأساسي عبر الإنترنت حيث يتم تداول العملات المشفرة ، ويتم التبادل بين المستخدمين. إنها أهداف رئيسية للمتسللين لتنفيذ هجمات DoS التي تسبب عدم توفر النظام الأساسي وخدماته. 

على سبيل المثال: منصة تبادل Bitcoin ، عانت Bifinex من هجمات DDoS عدة مرات. 

تجمعات الذاكرة (المعاملات): تتطلب المعاملات على blockchain التحقق من صحتها قبل إضافتها إلى الكتل. حتى ذلك الحين ، يتم تخزين طلبات المعاملات في mempool ، والذي يشبه مستودعًا للمعاملات غير المؤكدة التي تنتظر أن يتم انتقاؤها من قبل عامل منجم. 

من المرجح أن يختار عامل المنجم المعاملة ذات الرسوم المرتفعة. لذا فإن إغراق mempool بالعديد من المعاملات ذات الرسوم الصغيرة يؤدي إلى دفع المستخدم لرسوم عالية لمعالجة معاملاتهم. وهكذا فإن هجوم DoS قد عمل بسحره في رفع رسوم المعالجة. 

المشاركون بالإجماع: هم اللاعبون الذين يحلون المنطق ويقررون إضافة الكتل إلى blockchain. إن شن هجمات DoS على زعيم الإجماع يوقف النظام بأكمله. 

خدمات الخلط: يستخدم بروتوكول للمستخدمين لإجراء المعاملات بشكل مجهول. إنهم يعانون من هجمات DoS بوسائل مختلفة ، مثل طلبات المشاركة المفرطة في مجموعة الخلط ، والإدخال غير المتسق للخلط ، وما إلى ذلك. 

العقود الذكية: العقد الذكي هو البروتوكول الأساسي وراء كل معاملة على blockchain. يمكن أن تؤدي هجمات DoS على العقود الذكية إلى تعطل العقدة التي توقف عمل Dapps التي تستضيفها.

يتم تنفيذ هجمات DoS عليهم بعدة طرق ممكنة ، موضحة في القسم التالي.

تحليل أنواع هجمات DoS الخاصة بالعقود الذكية 

تؤدي ثغرة DoS في العقود الذكية إلى استخدام غير محدود للموارد أو التلاعب بالعقد. هذا يؤدي إلى تعليق في تنفيذ الأنشطة العادية أو المقاطعات وانهيار منطق العقد. 

يوجد أدناه تصنيف لهجمات DoS المختلفة في العقود الذكية

عودة DoS غير متوقع

لدراسة هجوم DoS على العقود الذكية ، لنأخذ عقد المزاد كمثال. يتم تحديث عقد المزاد مع كل أعلى عطاء تم استلامه ويعيد مبلغ العطاء لمقدم العطاء السابق لأنه أقل من العطاء الحالي.

contract Auction {
    address frontRunner;
    uint256 highestBid;

    function bid() public payable {
        require(msg.value > highestBid, "Need to be higher than highest bid");
        // Refund the old leader, if it fails then revert   
        require(payable(frontRunner).send(highestBid), "Failed to send Ether");
 
        frontRunner = msg.sender;
        highestBid = msg.value;
    }
}

يُبرم عقد المهاجم بعقد المزاد في المُنشئ ، الذي يحصل على حق الوصول إلى عقد المزاد. في هذا ، من خلال استدعاء وظيفة "attack ()" ، يقوم المهاجم بإغلاق المبلغ وبالتالي يفشل في إعادة مبلغ العطاء إلى المهاجم حتى عند تلقي عرض سعر أعلى من ذلك. 

import "./Auction.sol";   
contract Attacker{
    Auction auction;

    constructor(Auction _auctionaddr){
        auction = Auction(_auctionaddr);
    }

    function attack (){
        auction.bid{value: msg.value}();
    }

}

ذلك لأن عقد "المهاجم" لا يتضمن أي "استلام ()" أو وظيفة احتياطية لاسترداد إيثر ، مما يؤدي إلى عودة غير متوقعة. هذا يجعل عقد المهاجم هو أعلى مزايد دائمًا. 

كتلة الغاز الحد DoS 

تحتوي الكتلة على حد أقصى من الغاز المراد إنفاقه والذي يتناسب مع كمية العمل الحسابي الذي يتعين القيام به. في حالة تجاوز حد الغاز ، يؤدي ذلك إلى نوعين من هجمات DoS.

DoS حد الغاز - عملية عقد غير مقيد

يوجد حد معين للغاز ، وإذا وصلت المعاملات إلى حد غاز أعلى من الحد الذي تم تعيينه ، فسيؤدي ذلك إلى فشل المعاملة. 

يصبح الأمر أسوأ عندما يتلاعب المهاجم بالغاز المطلوب. هذا عندما يضيف المهاجم بعض العناوين لاسترداد مبلغ صغير جدًا. كل استرداد يكلف رسوم غاز ؛ وبالتالي ، فإن تكلفة الغاز تتجاوز الحد الذي يمنع معاملات الاسترداد من الحدوث. 

struct Payee {
    address addr;
    uint256 value;
}

Payee[] payees;
uint256 nextPayeeIndex;

function payOut() {
    uint256 i = nextPayeeIndex;
    while (i < payees.length && msg.gas > 200000) {
      payees[i].addr.send(payees[i].value);
      i++;
    }
    nextPayeeIndex = i;
}

لذلك ، يجب مراعاة الخطوات الضرورية أثناء تنفيذ حلقة عبر مصفوفة. 

حشو القوالب

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

من خلال دفع رسوم الغاز المرتفعة ، يضمن المهاجم إضافة المعاملات المقصودة فقط إلى الكتل مع ترك باقي الكتل. 

إجراء المالك

لكل عقد عنوان مالك له سلطة فتح أو تعليق المعاملات. تعتمد العملية بأكملها على عنوان المالك ، وبالتالي في حالة فقدها ، لا يمكن للمستخدم إرسال الرموز على الإطلاق ، وسوف ينهار عمل العقد.

تأثير هجوم DoS

يعد حشو الكتل أحد التأثيرات العديدة التي تمنع إضافة المعاملات المشروعة إلى الكتل. ومع ذلك ، هناك العديد من الآثار الأخرى لهجمات DoS. 

دفتر الأستاذ المتضخم: دفتر الأستاذ blockchain هو المكان الذي يتم فيه تسجيل المعاملات بشكل دائم. تخزن عقد blockchain نسخة من المعاملات للتحقق من الإنفاق المزدوج. يمكن أن يؤدي هجوم DoS إلى تضخيم دفتر الأستاذ بمعاملات البريد العشوائي.

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

فشل العقدة: يعمل Blockchain على العقد التي تتطلب دعم البرنامج للتعامل مع كميات كبيرة من البيانات. أثناء إغراق المعاملة ، قد تنفد ذاكرة العقد مما يؤدي إلى توقف العمليات.

برنامج Crashdown: كما ناقشنا ، تأتي مجموعة الذاكرة أو الكتل مع قيود معينة على الذاكرة المخصصة لها. يتلقى البرنامج المعاملات ويعالجها ويخزنها ضمن الحد المعين. عندما تطغى المعاملات الواردة على الحدود المضمنة ، يتعطل البرنامج.  

امنع العقود الذكية من هجمات DoS 

من تحليل هجمات DoS ، يمكن استخدام الطرق التالية للتخفيف من حدة الهجوم. 

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

النهج القائم على الرسوم: يمكن فرض رسوم إضافية على blockchain ، مثل رسوم التعدين لتجمعات التعدين ، ورسوم المعاملات ، وما إلى ذلك. وهذا يجعل اختراق DoS مكلفًا للمهاجمين ، وبالتالي تقليل مثل هذه الهجمات. 

ملاحظة ختامية

تم إجراء تدقيق ذكي للعقد في QuillAudits يبحث عن نقاط الضعف المحتملة التي تكمن في الترميز. يتضمن بعضها ضعف إعادة الدخول ، وتصادم التخزين ، والهجوم العشوائي ، ورفض الخدمة وما إلى ذلك. 

هذا يعني بوضوح أن العقود الذكية تم اختبارها بدقة لتكون خالية من تهديدات هجوم رفض الخدمة. هذا يضمن حماية مشروعك من نقاط الضعف المحتملة في مساحة Web3.

احترس من قناة Telegram الخاصة بنا لجمع أحدث الأفكار حول خدماتنا: https://t.me/quillhash

13 المشاهدات

الطابع الزمني:

اكثر من كويلهاش