ব্রিজের নিরাপত্তা সংশ্লিষ্ট প্রচলিত দুর্বলতাগুলো কী কী?
হোম
নিবন্ধ
ব্রিজের নিরাপত্তা সংশ্লিষ্ট প্রচলিত দুর্বলতাগুলো কী কী?

ব্রিজের নিরাপত্তা সংশ্লিষ্ট প্রচলিত দুর্বলতাগুলো কী কী?

প্রকাশিত হয়েছে Mar 22, 2023আপডেট হয়েছে Apr 21, 2023
9m

এই নিবন্ধটি একটি কমিউনিটি সাবমিশন। লেখক মিনঝি হে, Certik-এর একজন অডিটর।

এই নিবন্ধের মতামতের পেছনে অবদানকারী/লেখকের সাথে Binance অ্যাকাডেমির মতামতের মিল থাকবে এমন কোনো নিশ্চয়তা নেই।

TL;DR

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

ভূমিকা 

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

ব্লকচেইন ব্রিজ ব্লকচেইন স্পেসের মধ্যে আন্তঃকার্যক্ষমতা অর্জনের জন্য অপরিহার্য। তারা বিভিন্ন অন-চেইন এবং অফ-চেইন ভ্যালিডেশন ব্যবহার করে কাজ করে এবং তাই নিরাপত্তা সংশ্লিষ্ট বিভিন্ন দুর্বলতা রয়েছে।

ব্রিজের নিরাপত্তা অত্যন্ত গুরুত্বপূর্ণ কেন? 

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

এছাড়াও, এতে অনেকগুলো উপাদান জড়িত থাকায় ব্লকচেইন ব্রিজগুলোতে আক্রমণের বড় সুযোগ (Attack Surface) থাকে। এটি মাথায় রেখে, ক্ষতিকর ব্যক্তিরা বিপুল পরিমাণ ফান্ড চুরি করার জন্য ক্রস-চেইন অ্যাপ্লিকেশনগুলোকে লক্ষ্য করার জন্য অত্যন্ত অনুপ্রাণিত হয়। 

CertiK-এর অনুমান অনুযায়ী ব্রিজ আক্রমণের ফলে 2022 সালে 1.3 বিলিয়ন মার্কিন ডলারের বেশি ক্ষতি হয়েছে, যা বছরের মোট ক্ষতির 36%। 

ব্রিজের নিরাপত্তা সংশ্লিষ্ট প্রচলিত দুর্বলতাসমূহ

ব্রিজগুলোর নিরাপত্তা বাড়ানোর জন্য, ব্রিজের নিরাপত্তা সংশ্লিষ্ট প্রচলিত দুর্বলতাসমূহ বোঝা এবং লঞ্চের আগে তাদের জন্য ব্রিজগুলো পরীক্ষা করা গুরুত্বপূর্ণ। এই দুর্বলতাগুলো নিম্নলিখিত চারটি ক্যাটাগরিতে রাখা যায়। 

উইক অন-চেইন ভ্যালিডেশন

প্রচলিত ব্রিজগুলোর জন্য, বিশেষত নির্দিষ্ট DApp-এর জন্য ডিজাইন করা ব্রিজগুলোর জন্য, অন-চেইন ভ্যালিডেশন ন্যূনতম রাখা হয়। এই ব্রিজগুলো মিন্টিং, বার্নিং এবং টোকেন ট্রান্সফারের মতো মৌলিক কার্যক্রম চালানোর জন্য একটি কেন্দ্রীভূত ব্যাকএন্ডের উপর নির্ভর করে আর সকল যাচাইকরণ অফ-চেইনে সম্পাদিত হয়।

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

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

কিছু কিছু ব্রিজ "র‍্যাপকৃত টোকেন" ধারণা প্রয়োগ করে। উদাহরণস্বরূপ, কোনো ব্যবহারকারী ইথেরিয়াম থেকে BNB চেইনে DAI ট্রান্সফার করলে তাদের DAI ইথেরিয়াম কন্ট্রাক্ট থেকে নেওয়া হয় এবং BNB চেইনে সমপরিমাণ র‍্যাপকৃত DAI ইস্যু করা হয়। 

তবে, এই লেনদেনটি সঠিকভাবে যাচাই করা না হলে একজন আক্রমণকারী ফাংশনটি ম্যানিপুলেট করে ব্রিজ থেকে র‍্যাপকৃত টোকেন কোনো ভুল ঠিকানায় পাঠিয়ে দেওয়ার জন্য একটি ক্ষতিকর কন্ট্রাক্ট ডেপ্লয় করতে পারে। 

ব্রিজ কন্ট্রাক্ট থেকে অ্যাসেট চুরি করার জন্য "transferFrom" ফাংশন ব্যবহার করে টোকেন ট্রান্সফার করার ব্রিজ কন্ট্রাক্ট অনুমোদনের জন্যও আক্রমণকারীদের কোনো একজন ভিক্টিম প্রয়োজন। 

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

উইক অফ-চেইন ভ্যালিডেশন

কিছু কিছু ব্রিজ সিস্টেমে, অফ-চেইন ব্যাকএন্ড সার্ভার ব্লকচেইন থেকে প্রেরিত বার্তাগুলোর ভ্যালিডেশন যাচাই করার ক্ষেত্রে একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। এই উদাহরণে, আমরা জমার লেনদেনের যাচাইকরণের উপর ফোকাস করছি। 

অফ-চেইন ভ্যালিডেশন থাকা কোনো ব্লকচেইন ব্রিজ নিম্নরূপে কাজ করে: 

  1. ব্যবহারকারীরা সোর্স চেইনের স্মার্ট কন্ট্রাক্টে টোকেন জমা করতে DApp-এর সাথে যোগাযোগ করে।

  2. DApp তারপর একটি API-এর মাধ্যমে ব্যাকএন্ড সার্ভারে ডিপোজিট লেনদেন হ্যাশ পাঠায়।

  3. সার্ভার থেকে লেনদেন হ্যাসের একাধিক ভ্যালিডেশন হয়। বৈধ বলে বিবেচিত হলে, একজন স্বাক্ষরকারী একটি বার্তা স্বাক্ষর করে এবং API-এর মাধ্যমে ইউজার ইন্টারফেসে স্বাক্ষরটি ফেরত পাঠায়।

  4. স্বাক্ষর পাওয়ার পর, DApp এটি যাচাই করে এবং ব্যবহারকারীকে তাদের টোকেনগুলো টার্গেট চেইন থেকে উত্তোলন করার অনুমতি দেয়।

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

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

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

নেটিভ টোকেনের অনুপযুক্ত ব্যবস্থাপনা

নেটিভ টোকেন এবং ইউটিলিটি টোকেনের পরিচালনায় ব্রিজ ভিন্ন ভিন্ন পন্থা অবলম্বন করে। উদাহরণস্বরূপ, ইথেরিয়াম নেটওয়ার্কে নেটিভ টোকেন হলো ETH এবং অধিকাংশ ইউটিলিটি টোকেন ERC-20 স্ট্যান্ডার্ড মেনে চলে। 

কোনো ব্যবহারকারী তার ETH অন্য চেইনে ট্রান্সফার করতে চাইলে প্রথমে অবশ্যই এটি ব্রিজ কন্ট্রাক্টে জমা দিতে হবে। এটি করতে ব্যবহারকারী লেনদেনের সাথে শুধুমাত্র ETH সংযুক্ত করে এবং লেনদেনের "msg.value" ফিল্ড পড়ে ETH-এর পরিমাণ পুনরুদ্ধার করা যায়।

ERC-20 টোকেন জমা করা ETH জমা করার থেকে অনেক আলাদা। একটি ERC-20 টোকেন জমা দেওয়ার জন্য ব্যবহারকারীকে প্রথমে ব্রিজ কন্ট্রাক্টকে তাদের টোকেন ব্যয় করার অনুমতি দিতে হবে। অনুমোদন এবং ব্রিজ কন্ট্রাক্টে টোকেনগুলো জমা করার পরে কন্ট্রাক্টটি "burnFrom()" ফাংশন ব্যবহার করে ব্যবহারকারীর টোকেনগুলোকে বার্ন করবে বা "transferFrom()" ফাংশন ব্যবহার করে কন্ট্রাক্টে ব্যবহারকারীর টোকেন ট্রান্সফার করবে। 

এটিকে আলাদা করার একটি পদ্ধতি হলো একই ফাংশনের মধ্যে if-else স্টেটমেন্ট ব্যবহার করা। আরেকটি পদ্ধতি হলো প্রতিটি পরিস্থিতি পরিচালনা করার জন্য পৃথক দুটি ফাংশন তৈরি করা। ERC-20 ডিপোজিট ফাংশন ব্যবহার করে ETH জমা করার চেষ্টা করলে এই ফান্ড হারানো যেতে পারে।

ERC-20 জমার অনুরোধগুলো পরিচালনা করার সময় ব্যবহারকারীরা প্রচলিত জমার ফাংশনে ইনপুট হিসেবে টোকেন ঠিকানা প্রদান করে। এটি উল্লেখযোগ্য ঝুঁকি তৈরি করে কারণ লেনদেনের সময় অবিশ্বস্ত বহিরাগত কল ঘটতে পারে। ঝুঁকি কমানোর জন্য প্রচলিত একটি চর্চার মধ্যে রয়েছে শুধুমাত্র ব্রিজ দ্বারা সমর্থিত টোকেন থাকা একটি শ্বেততালিকা বাস্তবায়ন করা। শুধুমাত্র শ্বেততালিকাভুক্ত ঠিকানাগুলোকে আর্গুমেন্ট হিসেবে পাস করার অনুমতি দেওয়া হয়। প্রজেক্ট টিম ইতোমধ্যেই টোকেন ঠিকানাটি ফিল্টার করে ফেলায় এটি বহিরাগত কলকে বাধা দেয়।

তবে, নেটিভ টোকেনের কোনো ঠিকানা না থাকায় ব্রিজ যখন নেটিভ টোকেন ক্রস-চেইন ট্রান্সফার পরিচালনা করে তখনও সমস্যা দেখা দিতে পারে। নেটিভ টোকেনের ঠিকানা হলো একটি শূন্য ঠিকানা (0x000...0)। এটি সমস্যাজনক হতে পারে কারণ ফাংশনে শূন্য ঠিকানা পাস করা শ্বেততালিকার যাচাইকরণকে বাইপাস করতে পারে এমনকি যদি ভুলভাবে প্রয়োগ করা হয় তবুও। 

ব্রিজ কন্ট্রাক্ট ব্যবহারকারীর অ্যাসেটকে কন্ট্রাক্টে ট্রান্সফার করার জন্য "transferFrom" কল করলে শূন্য ঠিকানায় এক্সটার্নাল কল ফলস রিটার্ন করে কারণ শূন্য ঠিকানায় কোনো "transferFrom" ফাংশন প্রয়োগ করা নেই। তবে, এরপরেও লেনদেন ঘটতে পারে যদি কন্ট্রাক্ট যথাযথভাবে রিটার্ন ভ্যালু পরিচালনা না করে। এটি আক্রমণকারীদের কন্ট্রাক্টে কোনো টোকেন ট্রান্সফার না করেই লেনদেন সম্পাদন করার সুযোগ তৈরি করে দেয়।

ভুল কনফিগারেশন

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

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

ব্রিজের নিরাপত্তা কীভাবে উন্নত করবেন

উপরে বর্ণিত চারটি প্রচলিত ব্রিজ দুর্বলতা একটি আন্তঃসংযুক্ত ব্লকচেইন ইকোসিস্টেমে নিরাপত্তা নিশ্চিত করার চ্যালেঞ্জ। এই দুর্বলতাগুলোর প্রতিটি নিয়ন্ত্রণ করার জন্য উল্লেখযোগ্য বিবেচ্য বিষয় রয়েছে এবং কোনো একক প্লেবুক তাদের সকলের জন্য প্রযোজ্য নয়। 

উদাহরণস্বরূপ, প্রতিটি ব্রিজের ইউনিক যাচাইকরণ প্রয়োজনীয়তা থাকায় একটি ত্রুটি-মুক্ত যাচাইকরণ প্রক্রিয়া নিশ্চিত করার জন্য সাধারণ কোনো নির্দেশিকা প্রদান করা চ্যালেঞ্জিং। যাচাইকরণ বাইপাস প্রতিরোধ করার জন্য সবচেয়ে কার্যকর পদ্ধতি হলো সম্ভাব্য সকল অ্যাটাক ভেক্টরের বিরুদ্ধে ব্রিজটিকে পুঙ্খানুপুঙ্খভাবে পরীক্ষা করা এবং যাচাইকরণের লজিক সঠিক কিনা তা নিশ্চিত করা। 

সংক্ষেপে বলতে গেলে, সম্ভাব্য আক্রমণের বিরুদ্ধে কঠোর পরীক্ষা করা এবং ব্রিজে প্রচলিত দুর্বলতার দিকে বিশেষ মনোযোগ দেওয়া অপরিহার্য।  

শেষ কথা 

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

আরো পড়ুন

ব্লকচেইন ব্রিজ কী?

ক্রস-চেইন আন্তঃকার্যক্ষমতা কী?

তিনটি জনপ্রিয় ক্রিপ্টো ব্রিজ এবং সেগুলোর কাজের পদ্ধতি

র‍্যাপকৃত টোকেন কী?

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