জুন ২১ তারিখে, এথেরিয়াম নেটওয়ার্কের সবচেয়ে সক্রিয় MEV Bot গুলির মধ্যে একটি হিসাবে পরিচিত Jaredfromsubway.eth একটি পরিকল্পিত “মধুর ট্র্যাপ আক্রমণ” (honeypot attack) এর শিকার হয়ে 7.5 মিলিয়ন ডলারের বেশি ক্রিপ্টো সম্পদ হারায়। নিচে Beosin সিকিউরিটি টিমের এই আক্রমণের বিশ্লেষণ এবং চুরি করা অর্থের পথ ট্র্যাকিং দেওয়া হল।
আক্রমণ প্রক্রিয়া বিশ্লেষণ
আক্রমণ কন্ট্রাক্ট ফ্যামিলি
- কোঅর্ডিনেটর স্মার্ট কন্ট্রাক্ট (0xb84db016324e8f2bfdd8dd9c260338aee0a8df52): বর্তমান ব্লকটি কি armed অবস্থায় আছে তা রেকর্ড করে এবং চূড়ান্ত পর্যায়ে সাব-কন্ট্রাক্টগুলি কল করে ফান্ড প্রত্যাহার করে। - ট্রিগার কন্ট্রাক্ট (0x4de8c729a064ff6087cc84a4152969349e4feb98): একই ব্লকের ভিতরে মিথ্যা ট্রেডিং পেয়ারের অবস্থা সেট করে, যাতে আরবিট্রেজ পাথগুলি সম্ভবপর মনে হয়। - সাব-কন্ট্রাক্ট / ফেক টোকেন কন্ট্রাক্ট: বাস্তব অনুমতি পাওয়ার জন্য সাধারণ ERC-20 টোকেনের মতো আচরণ করে। - হাব কন্ট্রাক্ট: MEV Bot-এর জন্য লাভজনক মনে হওয়ার জন্য কিছুটা বাস্তব আয় প্রদান করে। - Ring V2 pair: মিথ্যা Uniswap v2 ট্রেডিং পেয়ার। - ফেক ইন্টারমিডিয়েট টোকেন কন্ট্রাক্ট: fCAP, fUSDC-এর মতো মাল্টি-হপ আরবিট্রেজ পাথগুলি তৈরির জন্য।
আক্রমণের মূল বিষয়: অনুমতি প্রতারণা
চেইন-ভিত্তিক লেনদেনের বিশ্লেষণের মাধ্যমে, আক্রমণকারী একাধিক বাইট লেনদেন তৈরি করেছে:
- বড় পরিমাণে USDC: রোবট প্রায় 36.997120 USDC লাভ করে, কিন্তু 20 USDC অনুমতি রেখে যায়। - বড় পরিমাণে USDT: রোবট প্রায় 37.053440 USDT লাভ করে, কিন্তু 20 USDT অনুমতি রেখে যায়। - বড় পরিমাণে WETH: রোবট প্রায় 0.0179 WETH লাভ করে, কিন্তু 16 WETH অনুমতি রেখে যায়। - ছোট ট্রেডগুলি সাধারণভাবে কাজ করে, যেখানে অনুমতি একই ট্রেডের মধ্যেই ব্যবহার করা হয়, যাতে সন্দেহ কমে।
ছোট লেনদেনে, রোবট প্রকৃত টোকেনের অনুমতি দেওয়ার পরে, সাব-কন্ট্রাক্ট তাত্ক্ষণিকভাবে প্রকৃত টোকেন স্থানান্তর করে, অনুমতি ব্যবহার করা হয়, যা সম্পূর্ণরূপে স্বাভাবিক মনে হয়।
বড় লেনদেনে, সাব-কন্ট্রাক্টটি প্রকৃত টোকেন স্থানান্তরের জন্য transferFrom কল করে না, বরং মিথ্যা লেনদেনের মাধ্যমে মিথ্যা টোকেন মিন্ট করে। রোবটটি মনে করে যে এটি সাধারণ swap প্রস্তুতি পদক্ষেপগুলি সম্পন্ন করেছে, কিন্তু প্রকৃত টোকেনের অনুমতি এখনও সংরক্ষিত থাকে।
এটিই সম্পূর্ণ আক্রমণের মূল বিষয়: ছোট লেনদেনগুলি অনুমতি সাধারণভাবে ব্যয় করে, বড় লেনদেনগুলি অনুমতি সংরক্ষণ করে।
আক্রমণ প্রক্রিয়া
USDC-এর জন্য আক্রমণাত্মক ট্রেডের উদাহরণ হিসাবে:
(1) আক্রমণকারী কোঅর্ডিনেটরকে কল করে বর্তমান ব্লককে armed হিসাবে সেট করে। (2) আক্রমণকারী ট্রিগারকে কল করে একাধিক জাল Ring V2 pair-এর অবস্থা আপডেট করে। (3) MEV Bot আর্বিট্রেজ সুযোগ শনাক্ত করে এবং ট্রেড সম্পাদন করে।
MEV বটের ট্রেডিং প্রক্রিয়াটি প্রায় এইরকম:
(1) MEV Bot কন্ট্র্যাক্ট একটি সাব-কন্ট্র্যাক্টকে বড় পরিমাণে USDC অনুমতি দেয় (2) MEV Bot সাব-কন্ট্র্যাক্টের wrapTo/wrap ফাংশন কল করে (3) সাব-কন্ট্র্যাক্ট বর্তমান অবস্থা armed হওয়ায়, প্রকৃত USDC ব্যয় না করে pair-এর জন্য মিথ্যা টোকেন মিন্ট করে, USDC অনুমতি সংরক্ষিত থাকে (4) MEV Bot মিথ্যা pair-এর swap-এর জন্য আবারও কল করে (5) দ্বিতীয় হপ pair টোকেনটি MEV Bot-এর কাছে পাঠায় (6) hub কন্ট্র্যাক্ট MEV Bot-কে কিছুটা প্রকৃত USDC লাভ প্রদান করে

অনুমোদনের উদাহরণ
ট্রানজেকশন হ্যাশ: 0x0121e07a916c06eea3e7daf11893f3f0b95b9e1684124545ae14c32aee6029bb
MEV বট দ্বারা পর্যবেক্ষিত ফলাফল: একটি সফল আর্বিট্রেজ ট্রেড, যা বাস্তবিক USDC লাভ অর্জন করেছে। তবে USDC-এর অনুমতি সাব-কন্ট্রাক্ট দ্বারা সংরক্ষিত হয়েছে। এই প্রক্রিয়াগুলি যথাক্রমে USDC, USDT, WETH-এর জন্য পুনরাবৃত্তি হয়েছে এবং শেষপর্যন্ত বড় পরিমাণে অনুমতি তৈরি হয়েছে।
আক্রমণ ট্রেড হ্যাশ:
0x2be8704f5a59b69e0b71f64aefdb99eb0e8ae9fb3926147c581910d71bcf3e65
আক্রমণকারী কোঅর্ডিনেটর স্মার্ট কন্ট্রাক্টের ড্রেইন লুপ কল করে, যার calldata-এ 66টি সাব-কন্ট্রাক্ট ঠিকানা এবং MEV Bot স্মার্ট কন্ট্রাক্টের ঠিকানা অন্তর্ভুক্ত থাকে। যদি MEV Bot স্মার্ট কন্ট্রাক্ট আগে থেকেই সাব-কন্ট্রাক্টগুলিকে অনুমতি দিয়ে থাকে, তাহলে সাব-কন্ট্রাক্টগুলি সরাসরি প্রাসঙ্গিক বাস্তব টোকেনগুলি আক্রমণকারীকে পাঠিয়ে দিতে পারে।
চূড়ান্ত ফলাফল:
- 20টি USDC বড় অনুমতি সম্পূর্ণরূপে ব্যবহৃত হয়েছে - 16টি WETH বড় অনুমতি সম্পূর্ণরূপে ব্যবহৃত হয়েছে - USDT-এর কিছু অনুমতি এখনও বিদ্যমান, তবে USDT ব্যালেন্স অপর্যাপ্ত
ফান্ড ফ্লো বিশ্লেষণ
আক্রমণ সফল হওয়ার পর, আক্রমণকারীর ঠিকানা (0x3e37f4A10d771Ba9dE44b6d301410b1BEdeA65d0) এ $2.87M USDC, $2.04M USDT এবং 1,474 WETH পায়। তারপর আক্রমণকারী স্থিতিশীল মুদ্রাগুলি ETH-এ রূপান্তর করে নিম্নলিখিত 4টি ঠিকানায় প্রেরণ করে:
- 0xe3Da36E4bd1a5738fa5D6Ef4F0e4dF40bDeB5f17 (প্রায় 1,000 ETH) - 0x74Dc5b93586D248D5Aec64b3586736FF0A0D0e65 (1,001 ETH) - 0xd8C125efCBc99408eC8723E9BBd81d1E8D39D845 (1,001 ETH) - 0x71d4416A7A85e08a5Fe7227Ca3B44Fc639e94e97 (1,423 ETH)
যেখানে 0xe3Da3 একটি ট্রান্সফার করেছে 1,000 ETH Tornado Cash-এ, অন্য তিনটি ঠিকানার ETH-এর কোনো আরও ট্রান্সফার হয়নি। এর ফান্ড ফ্লো ডায়াগ্রাম নিম্নরূপ:

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

