স্মার্ট চুক্তিতে পরিষেবা আক্রমণের অস্বীকার: কীভাবে ঠিক করবেন এবং এড়িয়ে যাবেন (একজন বিশেষজ্ঞ গাইড) প্লাটোব্লকচেন ডেটা বুদ্ধিমত্তা। উল্লম্ব অনুসন্ধান. আ.

স্মার্ট চুক্তিতে পরিষেবা আক্রমণের অস্বীকৃতি: কীভাবে ঠিক করা যায় এবং এড়ানো যায় (একজন বিশেষজ্ঞ গাইড)

পড়ার সময়: 6 মিনিট

কখনও এমন একটি সাইট পরিদর্শন করেছেন যেটি এই মুহূর্তে খোলা যাবে না তা খুঁজে পেতে দীর্ঘ লোডিং সময় নিয়েছে? এটি কেবল পরিষেবা আক্রমণ অস্বীকারের প্রভাব সম্পর্কে। 

পরিষেবা অস্বীকার (DoS) আক্রমণগুলি হল অনেকগুলি দুর্বলতার মধ্যে একটি যা স্মার্ট চুক্তির অডিট করার সময় প্রধানত দেখা হয়৷ এই ব্লগের লক্ষ্য হল DoS আক্রমণের অন্তর্দৃষ্টি এবং আউটগুলি-এটি কী, এর প্রভাব, প্রকারগুলি এবং আরও অনেক কিছু যোগ করা।

আসুন দ্রুত প্রবেশ করি এবং সেগুলিকে অন্বেষণ করি। 

একটি DoS আক্রমণ কি?

DoS আক্রমণ একটি নেটওয়ার্ক, সার্ভার বা অ্যাপ্লিকেশনের প্রক্রিয়াকরণ ক্ষমতা ব্যাহত করতে চায়, বৈধ ব্যবহারকারীদের কাছ থেকে অনুরোধ গ্রহণ করা থেকে বিরত রাখে। এতে, আক্রমণকারী আরও বেশি ট্রাফিক পাঠিয়ে নেটওয়ার্ককে চাপা দেয় যা সার্ভারের মেমরি এবং ব্যান্ডউইথকে হ্রাস করে। 

ব্লকচেইনের অপার সম্ভাবনার কারণে, তারা সম্পদ চুরি করার জন্য DoS আক্রমণের প্রাথমিক লক্ষ্য। সবচেয়ে বিখ্যাত ক্রিপ্টোকারেন্সি, যেমন বিটকয়েন, Ethereum, ইত্যাদি, এছাড়াও DoS আক্রমণের সম্মুখীন হয়েছে৷ 

বিতরণ সেবা অস্বীকার (DDoS)

ডিস্ট্রিবিউটেড ডিনায়াল অফ সার্ভিস (DDoS) হল একটি DoS আক্রমণ যাতে আক্রমণকারী একাধিক ডিভাইস নিয়ন্ত্রণ করে টার্গেট নোডে আক্রমণ চালাতে।

আক্রমণকারী লক্ষ্য নোড পর্যবেক্ষণ করে এবং লক্ষ্য নোডে প্রচুর পরিমাণে তথ্য পাঠাতে তার নিয়ন্ত্রণাধীন একাধিক ডিভাইস চ্যানেল করে। এটি লক্ষ্য ক্র্যাশ করে এবং নির্দিষ্ট কাজটি পূরণ করতে অক্ষম।  

ব্লকচেইন ইকোসিস্টেমে DoS আক্রমণের লক্ষ্য

DoS আক্রমণের অতীত ঘটনাগুলির রেকর্ডিং থেকে, ব্লকচেইন ইকোসিস্টেমের প্রতিটি অংশই DoS আক্রমণের জন্য ঝুঁকিপূর্ণ। এবং কয়েকটি নাম বলতে, 

ক্রিপ্টোকারেন্সি ওয়ালেট: যেকোনো ওয়ালেটের মতো, ক্রিপ্টোকারেন্সি ওয়ালেটটি ক্রিপ্টোকারেন্সি সংরক্ষণ, পাঠাতে বা গ্রহণ করতে ব্যবহৃত হয়। এবং সেই অনলাইন ওয়ালেটগুলি স্মার্ট চুক্তি ব্যবহার করে, যেগুলি DoS আক্রমণের প্রবণ যা তাদের পরিষেবা এবং Dapps-এর সাথে মিথস্ক্রিয়াকে বাধা দেয়৷ 

ক্রিপ্টোকারেন্সি বিনিময় সেবা: অনলাইন প্ল্যাটফর্ম যেখানে ক্রিপ্টোকারেন্সি লেনদেন করা হয়, এবং বিনিময় ব্যবহারকারীদের মধ্যে ঘটে। প্ল্যাটফর্ম এবং এর পরিষেবাগুলির অনুপলব্ধতা সৃষ্টিকারী DoS আক্রমণগুলি সম্পাদন করার জন্য তারা হ্যাকারদের প্রধান লক্ষ্য। 

যেমন: বিটকয়েন এক্সচেঞ্জ প্ল্যাটফর্ম, Bifinex বেশ কয়েকবার DDoS আক্রমণের শিকার হয়েছে। 

মেমরি (লেনদেন) পুল: ব্লকচেইনে লেনদেনগুলি ব্লকে যোগ করার আগে যাচাই করা প্রয়োজন। ততক্ষণ পর্যন্ত, লেনদেনের অনুরোধগুলি মেমপুলে সংরক্ষিত থাকে, যা একজন খনি শ্রমিকের দ্বারা বাছাই করার অপেক্ষায় থাকা অনিশ্চিত লেনদেনের ভান্ডারের মতো। 

একটি উচ্চ ফি দিয়ে লেনদেন সম্ভবত খনি শ্রমিক দ্বারা বাছাই করা হবে. তাই অনেক ছোট লেনদেনের ফলে মেমপুল প্লাবিত হয় যার ফলে ব্যবহারকারী তাদের লেনদেন প্রক্রিয়া করতে উচ্চ ফি প্রদান করে। এইভাবে DoS আক্রমণ প্রক্রিয়াকরণ ফি বাড়ানোর ক্ষেত্রে তার জাদু কাজ করেছে। 

ঐকমত্য অংশগ্রহণকারীরা: তারাই এমন খেলোয়াড় যারা যুক্তির সমাধান করে এবং ব্লকচেইনে ব্লক যোগ করার সিদ্ধান্ত নেয়। ঐক্যমত্য নেতার উপর DoS আক্রমণ করা পুরো সিস্টেমকে বন্ধ করে দেয়। 

মিশ্রণ পরিষেবা: এটি ব্যবহারকারীদের বেনামে লেনদেন করার জন্য একটি প্রোটোকল নিয়োগ করে। তারা বিভিন্ন উপায়ে DoS আক্রমণের শিকার হয়, যেমন মিক্সিং পুলে অত্যধিক অংশগ্রহণের অনুরোধ, শাফেলের জন্য অসঙ্গতিপূর্ণ ইনপুট ইত্যাদি। 

স্মার্ট চুক্তি: স্মার্ট চুক্তি হল ব্লকচেইনের প্রতিটি লেনদেনের পিছনে অন্তর্নিহিত প্রোটোকল। স্মার্ট চুক্তিতে 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;
    }
}

আক্রমণকারীর চুক্তিটি কনস্ট্রাক্টরের নিলাম চুক্তির সাথে শুরু করা হয়, যা নিলাম চুক্তিতে অ্যাক্সেস লাভ করে। এতে, 'আক্রমণ()' ফাংশনকে কল করার মাধ্যমে, আক্রমণকারী পরিমাণটি লক করে দেয় এবং এর ফলে, এটি তার চেয়ে বেশি বিড পাওয়ার পরেও আক্রমণকারীকে বিডের পরিমাণ ফেরত দিতে ব্যর্থ হয়। 

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 আক্রমণের আরও বেশ কিছু প্রভাব রয়েছে। 

ফোলা খাতা: ব্লকচেইন লেজার হল যেখানে লেনদেনগুলি স্থায়ীভাবে রেকর্ড করা হয়। ব্লকচেইন নোডগুলি দ্বিগুণ খরচের জন্য যাচাই করার জন্য লেনদেনের একটি অনুলিপি সংরক্ষণ করে। একটি DoS আক্রমণ স্প্যাম লেনদেনের মাধ্যমে খাতাকে ফুলিয়ে দিতে পারে।

নেটওয়ার্ক ট্রাফিক: আমরা পিয়ার-টু-পিয়ার মোডের উপর ভিত্তি করে ব্লকচেইন ফাংশন জানি। ব্লকচেইনের প্রতিটি নোড লেনদেনের একটি অনুলিপি পায়। একটি DoS বন্যার ফলে নেটওয়ার্ক ব্যান্ডউইথ গ্রাস করে লেনদেনের পরিমাণ বড় হতে পারে। 

নোড ব্যর্থতা: নোডগুলিতে ব্লকচেইন ফাংশনগুলি যেগুলি প্রচুর পরিমাণে ডেটা পরিচালনা করতে সফ্টওয়্যারের সমর্থন প্রয়োজন। লেনদেন বন্যার সময়, নোডের মেমরি ফুরিয়ে যেতে পারে, অপারেশন বন্ধ করে দিতে পারে।

সফ্টওয়্যার ক্র্যাশডাউন: আমরা যেমন আলোচনা করেছি, মেমপুল বা ব্লকগুলি তাদের জন্য বরাদ্দ করা মেমরির নির্দিষ্ট সীমার সাথে আসে। সফ্টওয়্যারটি নির্ধারিত সীমার মধ্যে লেনদেন গ্রহণ করে, প্রক্রিয়া করে এবং সঞ্চয় করে। যখন ইনকামিং লেনদেন অন্তর্নির্মিত সীমা অতিক্রম করে, সফ্টওয়্যার ক্র্যাশ হয়।  

DoS আক্রমণ থেকে স্মার্ট কন্ট্রাক্ট রোধ করুন 

DoS আক্রমণের বিশ্লেষণ থেকে, আক্রমণ প্রশমিত করার জন্য নিম্নলিখিত উপায়গুলি ব্যবহার করা যেতে পারে। 

প্রহেলিকা: সার্ভারগুলি মেমরি পাজল, টাইম-লক পাজল, সিপিইউ-বাউন্ড পাজল ইত্যাদির মতো পাজল তৈরি করতে পারে৷ কোনও ব্যবহারকারীকে কোনও পরিষেবায় অ্যাক্সেস পেতে, ধাঁধাগুলি সমাধান করতে হবে, যা স্প্যাম আক্রমণের বিরুদ্ধে লড়াই করে৷

ফি-ভিত্তিক পদ্ধতি: ব্লকচেইনে অতিরিক্ত ফি আরোপ করা যেতে পারে, যেমন মাইনিং পুলের জন্য মাইনিং ফি, লেনদেন ফি ইত্যাদি। এটি আক্রমণকারীদের জন্য DoS হ্যাককে ব্যয়বহুল করে তোলে, যার ফলে এই ধরনের আক্রমণ কম হয়। 

সমাপ্ত নোট

একটি স্মার্ট চুক্তি অডিটিং এ সঞ্চালিত কুইলআউডিটস কোডিং এর মধ্যে থাকা সম্ভাব্য দুর্বলতার জন্য খোঁজ করে। তাদের মধ্যে কয়েকটির মধ্যে রয়েছে পুনরায় প্রবেশের দুর্বলতা, স্টোরেজ সংঘর্ষ, এলোমেলো আক্রমণ, পরিষেবা অস্বীকার ইত্যাদি। 

এর মানে স্পষ্টভাবে স্মার্ট চুক্তি পরিষেবা আক্রমণের হুমকি থেকে অস্বীকার করার জন্য পুঙ্খানুপুঙ্খভাবে পরীক্ষা করা হয়। এটি নিশ্চিত করে যে আপনার প্রকল্পটি Web3 স্পেসের সম্ভাব্য দুর্বলতা থেকে রক্ষা পেয়েছে।

আমাদের পরিষেবাগুলির সর্বশেষ অন্তর্দৃষ্টি সংগ্রহ করতে আমাদের টেলিগ্রাম চ্যানেলের দিকে নজর রাখুন: https://t.me/quillhash

13 মতামত

সময় স্ট্যাম্প:

থেকে আরো কুইল্যাশ