اسمارٹ کنٹریکٹس پر سروس حملوں سے انکار: کیسے درست کریں اور بچیں (ایک ماہر گائیڈ) پلیٹو بلاکچین ڈیٹا انٹیلی جنس۔ عمودی تلاش۔ عی

سمارٹ کنٹریکٹس پر سروس حملوں سے انکار: کیسے ٹھیک کریں اور بچیں (ایک ماہر گائیڈ)

پڑھنے کا وقت: 6 منٹ

کیا آپ نے کبھی کسی ایسی سائٹ کا دورہ کیا جس میں لوڈ ہونے میں کافی وقت لگا صرف یہ معلوم کرنے کے لیے کہ اسے اس وقت کھولا نہیں جا سکتا؟ یہ صرف سروس حملوں کے انکار کے اثر کے بارے میں ہے۔ 

سروس سے انکار (DoS) حملے ان بہت سے کمزوریوں میں سے ایک ہیں جن کو سمارٹ معاہدوں کا آڈٹ کرتے وقت بڑے پیمانے پر دیکھا جاتا ہے۔ اس بلاگ کا مقصد DoS حملے کے اندر اور نتائج کو کھولنا ہے- یہ کیا ہے، اس کے اثرات، اقسام اور بہت کچھ شامل کرنا ہے۔

آئیے جلدی سے اندر جائیں اور ان سب کو دریافت کریں۔ 

ایک DoS حملہ کیا ہے؟

DoS حملہ کسی نیٹ ورک، سرور یا ایپلیکیشن کی پروسیسنگ کی صلاحیتوں میں خلل ڈالنے کا ارادہ رکھتا ہے، جائز صارفین کی درخواستوں کو قبول کرنے سے روکتا ہے۔ اس میں حملہ آور زیادہ ٹریفک بھیج کر نیٹ ورک پر حاوی ہو جاتا ہے جو سرورز کی میموری اور بینڈوتھ کو ختم کر دیتا ہے۔ 

بلاکچین کے پاس موجود بے پناہ صلاحیت کی وجہ سے، وہ دولت کو چرانے کے لیے DoS حملوں کا بنیادی ہدف ہیں۔ سب سے مشہور کریپٹو کرنسی، جیسے بٹ کوائن، ایتھرموغیرہ، نے بھی DoS حملوں کا تجربہ کیا ہے۔ 

ڈیلیوری سروس کی تقسیم (ڈی ڈی او ایس)

ڈسٹری بیوٹڈ ڈینیئل آف سروس (DDoS) ایک DoS حملہ ہے جس میں حملہ آور ٹارگٹ نوڈ پر حملہ کرنے کے لیے متعدد آلات کو کنٹرول کرتا ہے۔

حملہ آور ٹارگٹ نوڈ کا مشاہدہ کرتا ہے اور اپنے کنٹرول میں موجود متعدد ڈیوائسز کو چینل کرتا ہے تاکہ ٹارگٹ نوڈ میں بڑی مقدار میں معلومات بھیجیں۔ اس سے ٹارگٹ کریش ہو جاتا ہے اور مخصوص کام کو پورا کرنے سے قاصر ہوتا ہے۔  

بلاکچین ایکو سسٹم میں DoS حملوں کے اہداف

DoS حملوں کے ماضی کے واقعات کی ریکارڈنگ سے، بلاکچین ماحولیاتی نظام کا ہر حصہ DoS حملوں کا شکار ہے۔ اور چند نام بتانا، 

کرپٹو کرنسی بٹوے: کسی بھی والیٹ کی طرح، cryptocurrency والیٹ کا استعمال cryptocurrencies کو ذخیرہ کرنے، بھیجنے یا وصول کرنے کے لیے کیا جاتا ہے۔ اور وہ آن لائن بٹوے سمارٹ کنٹریکٹس کا استعمال کرتے ہیں، جو DoS حملوں کا شکار ہوتے ہیں جو ان کی خدمات اور Dapps کے ساتھ تعامل میں رکاوٹ ہیں۔ 

کریپٹو کرنسی کے تبادلے کی خدمات: آن لائن پلیٹ فارم جہاں کرپٹو کرنسیوں کی تجارت ہوتی ہے، اور صارفین کے درمیان تبادلہ ہوتا ہے۔ وہ DoS حملے کرنے کے لیے ہیکرز کے لیے اہم ہدف ہیں جو پلیٹ فارم اور اس کی خدمات کی عدم دستیابی کا سبب بنتے ہیں۔ 

مثال کے طور پر: بٹ کوائن ایکسچینج پلیٹ فارم، Bifinex کو کئی بار DDoS حملوں کا سامنا کرنا پڑا ہے۔ 

میموری (لین دین) کے تالاب: بلاکچین پر ٹرانزیکشنز کو بلاکس میں شامل کرنے سے پہلے ان کی توثیق کی ضرورت ہوتی ہے۔ اس وقت تک، لین دین کی درخواستیں میمپول میں محفوظ کی جاتی ہیں، جو کہ غیر مصدقہ لین دین کے ذخیرے کی مانند ہے جو ایک کان کن کے چننے کے منتظر ہے۔ 

ایک اعلی فیس کے ساتھ لین دین کا سب سے زیادہ امکان ہے کہ کان کن کے ذریعہ اٹھایا جائے۔ لہذا چھوٹی فیسوں کے بہت سارے لین دین کے ساتھ میمپول میں سیلاب آنے کے نتیجے میں صارف اپنے لین دین پر کارروائی کرنے کے لئے زیادہ فیس ادا کرتا ہے۔ اس طرح DoS حملے نے پروسیسنگ فیس بڑھانے میں اپنا جادو چلایا ہے۔ 

متفقہ شرکاء: وہ وہ کھلاڑی ہیں جو منطق کو حل کرتے ہیں اور بلاکس کو بلاک چین میں شامل کرنے کا فیصلہ کرتے ہیں۔ متفقہ رہنما پر DoS کے حملے پورے نظام کو روک دیتے ہیں۔ 

اختلاط کی خدمات: یہ صارفین کو گمنام طریقے سے لین دین کرنے کے لیے ایک پروٹوکول کا استعمال کرتا ہے۔ وہ مختلف طریقوں سے DoS حملوں کا شکار ہوتے ہیں، جیسے مکسنگ پول میں شرکت کی ضرورت سے زیادہ درخواستیں، شفل کے لیے متضاد ان پٹ وغیرہ۔ 

سمارٹ معاہدے: اسمارٹ کنٹریکٹ بلاکچین پر ہر لین دین کے پیچھے بنیادی پروٹوکول ہے۔ سمارٹ معاہدوں پر DoS حملے نوڈ کو کریش کر سکتے ہیں جو Dapps کی میزبانی کو روکتا ہے۔

ان پر DoS حملے کئی ممکنہ طریقوں سے کیے جاتے ہیں، جن کی وضاحت درج ذیل حصے میں کی گئی ہے۔

سمارٹ کنٹریکٹ ڈی او ایس حملوں کی اقسام کا تجزیہ کرنا 

سمارٹ معاہدوں میں DoS کی کمزوری کے نتیجے میں وسائل کے لامحدود استعمال یا معاہدے میں ہیرا پھیری ہوتی ہے۔ اس سے معمول کی سرگرمیوں کے نفاذ میں تعطل پیدا ہوتا ہے یا معاہدے کی منطق میں خلل پڑتا ہے۔ 

ذیل میں سمارٹ معاہدوں میں مختلف DoS حملوں کی درجہ بندی ہے۔

غیر متوقع طور پر Revert 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;
    }
}

حملہ آور کا معاہدہ کنسٹرکٹر میں نیلامی کے معاہدے کے ساتھ شروع کیا جاتا ہے، جو نیلامی کے معاہدے تک رسائی حاصل کرتا ہے۔ اس میں، 'اٹیک()' فنکشن کو کال کرکے، حملہ آور رقم کو لاک کر دیتا ہے اور اس طرح، وہ اس سے زیادہ بولی ملنے پر بھی حملہ آور کو بولی کی رقم واپس کرنے میں ناکام رہتا ہے۔ 

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

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

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

}

اس کی وجہ یہ ہے کہ 'حملہ آور' کے معاہدے میں ایتھر کو واپس کرنے کے لیے کوئی 'receive()' یا فال بیک فنکشن شامل نہیں ہے، جس کے نتیجے میں غیر متوقع طور پر واپسی ہوتی ہے۔ اس سے حملہ آور کا معاہدہ ہمیشہ سب سے زیادہ بولی لگانے والا ہوتا ہے۔ 

بلاک گیس کی حد 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 حملوں کے کئی دیگر اثرات ہیں۔ 

پھولا ہوا لیجر: بلاکچین لیجر وہ جگہ ہے جہاں لین دین کو مستقل طور پر ریکارڈ کیا جاتا ہے۔ بلاکچین نوڈس دوگنا اخراجات کی تصدیق کے لیے لین دین کی ایک کاپی اسٹور کرتے ہیں۔ DoS حملہ سپیم لین دین کے ساتھ لیجر کو پھول سکتا ہے۔

نیٹ ورک ٹریفک: ہم پیئر ٹو پیئر موڈ پر مبنی بلاک چین کے افعال کو جانتے ہیں۔ بلاکچین میں ہر نوڈ کو لین دین کی ایک کاپی ملتی ہے۔ ایک DoS سیلاب کے نتیجے میں لین دین کا حجم ایک بڑا ہو سکتا ہے، نیٹ ورک بینڈوتھ کو استعمال کرتا ہے۔ 

نوڈ کی ناکامیاں: نوڈس پر بلاکچین فنکشنز جنہیں ڈیٹا کی بڑی مقدار کو سنبھالنے کے لیے سافٹ ویئر کی مدد کی ضرورت ہوتی ہے۔ لین دین کے سیلاب کے دوران، نوڈس کی میموری ختم ہو سکتی ہے، جس سے کارروائیاں رک جاتی ہیں۔

سافٹ ویئر کریش ڈاؤن: جیسا کہ ہم نے تبادلہ خیال کیا، میمپول یا بلاکس ان کے لیے مختص میموری پر کچھ حدود کے ساتھ آتے ہیں۔ سافٹ ویئر طے شدہ حد کے اندر لین دین وصول کرتا ہے، پروسیس کرتا ہے اور اسٹور کرتا ہے۔ جب آنے والے لین دین پہلے سے موجود حدود کو مغلوب کر لیتے ہیں، تو سافٹ ویئر کریش ہو جاتا ہے۔  

سمارٹ معاہدوں کو DoS حملوں سے روکیں۔ 

DoS حملوں کے تجزیہ سے، حملے کو کم کرنے کے لیے درج ذیل طریقے استعمال کیے جا سکتے ہیں۔ 

پہیلیاں: سرورز پزل تیار کر سکتے ہیں جیسے کہ میموری پہیلیاں، ٹائم لاک پہیلیاں، سی پی یو سے منسلک پہیلیاں وغیرہ۔ کسی سروس تک رسائی حاصل کرنے کے لیے صارف کے لیے پہیلیاں حل کرنی پڑتی ہیں، جو اسپام حملوں کا مقابلہ کرتی ہیں۔

فیس پر مبنی نقطہ نظر: بلاک چین پر ایک اضافی فیس لگائی جا سکتی ہے، جیسے مائننگ پولز کے لیے کان کنی کی فیس، لین دین کی فیس وغیرہ۔ اس سے حملہ آوروں کے لیے DoS ہیک مہنگا پڑ جاتا ہے، اس طرح اس طرح کے حملوں میں کمی آتی ہے۔ 

اختتامی نوٹ

ایک سمارٹ کنٹریکٹ آڈیٹنگ پر کیا گیا۔ QuillAudits کوڈنگ میں موجود ممکنہ کمزوریوں کو تلاش کرتا ہے۔ ان میں سے کچھ میں دوبارہ داخلے کا خطرہ، اسٹوریج کا تصادم، بے ترتیب حملہ، سروس سے انکار وغیرہ شامل ہیں۔ 

اس کا واضح مطلب ہے۔ سمارٹ معاہدے سروس سے انکار کے حملے کے خطرات سے پاک ہونے کے لیے اچھی طرح جانچ کی جاتی ہے۔ یہ یقینی بناتا ہے کہ آپ کا پروجیکٹ Web3 اسپیس کی ممکنہ کمزوریوں سے محفوظ ہے۔

ہماری خدمات کے بارے میں تازہ ترین بصیرتیں جمع کرنے کے لیے ہمارا ٹیلیگرام چینل دیکھیں: https://t.me/quillhash

13 مناظر

ٹائم اسٹیمپ:

سے زیادہ Quillhash