Belkin Wemo Smart Plug V2 – বাফার ওভারফ্লো যা প্যাচ করা হবে না

Belkin Wemo Smart Plug V2 – বাফার ওভারফ্লো যা প্যাচ করা হবে না

উত্স নোড: 2657924

আইওটি নিরাপত্তা সংস্থা স্টারনামের গবেষকরা ভিতরে খনন সুপরিচিত ডিভাইস ব্র্যান্ড Belkin থেকে একটি জনপ্রিয় হোম অটোমেশন মেইন প্লাগ।

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

পুরানো (স্বল্পমেয়াদী আধুনিক অর্থে) যদিও তারা হতে পারে, গবেষকরা উল্লেখ করেছেন যে:

ডিভাইসটির প্রতি আমাদের প্রাথমিক আগ্রহ আমাদের ল্যাবের চারপাশে পড়ে থাকা এবং আমাদের বাড়িতে ব্যবহার করা থেকে এসেছিল, তাই আমরা শুধু দেখতে চেয়েছিলাম যে সেগুলি ব্যবহার করা কতটা নিরাপদ (বা না)। [... T]তাকে বেশ জনপ্রিয় ভোক্তা ডিভাইস বলে মনে হচ্ছে[; b]এই সংখ্যার উপর ভিত্তি করে, এটা অনুমান করা নিরাপদ যে একা Amazon-এ মোট বিক্রি কয়েক হাজারের মধ্যে হওয়া উচিত।

সহজ কথায় বলতে গেলে, সেখানে অনেক লোক আছেন যারা ইতিমধ্যেই এই জিনিসগুলি কিনেছেন এবং প্লাগ ইন করেছেন এবং এখনই তাদের বাড়িতে বৈদ্যুতিক আউটলেটগুলি নিয়ন্ত্রণ করতে ব্যবহার করছেন৷

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

আইওটিতে এস…

অনেক তথাকথিত ইন্টারনেট অফ থিংস (IoT) ডিভাইসের সমস্যা, পুরানো কৌতুক হিসাবে, এটি হল "IoT" তে "S" অক্ষর যা নিরাপত্তার জন্য দাঁড়ায়...

…অর্থাৎ, অবশ্যই, প্রায়শই আপনি যতটা আশা করতে পারেন ততটা সাইবার সিকিউরিটি থাকে না, এমনকি কোনোটিও হয় না।

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

আমরা এর আগে থেকে বিভিন্ন পণ্যের বিস্তৃত পরিসরে IoT নিরাপত্তাহীনতা সম্পর্কে লিখেছি ইন্টারনেট কেটল (হ্যাঁ, সত্যিই) যা আপনার বাড়ির ওয়াই-ফাই পাসওয়ার্ড ফাঁস করতে পারে, নিরাপত্তা ক্যামেরায় যা দুর্বৃত্তরা তাদের রাখতে ব্যবহার করতে পারে তোমার দিকে নজর অন্য পথের পরিবর্তে, নেটওয়ার্ক-সংযুক্ত ডিস্ক ড্রাইভ পাওয়ার ঝুঁকিতে ransomware দ্বারা splatted সরাসরি ইন্টারনেট জুড়ে।

এই ক্ষেত্রে, গবেষকরা 2023 সালের জানুয়ারিতে ওয়েমো মিনি স্মার্ট প্লাগে রিমোট কোড এক্সিকিউশন হোল খুঁজে পান, এটি ফেব্রুয়ারি 2023-এ রিপোর্ট করেছিলেন এবং 2023 সালের মার্চ মাসে এটির জন্য একটি CVE নম্বর পেয়েছিলেন (জন্য CVE-2023-27217).

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

(আমরা নিশ্চিত নই যে ডিভাইসটির 120V AC বা 230V AC বৈদ্যুতিক সার্কিট্রিতে কোনও ত্রুটি থাকলে এই ধরণের "জীবনের শেষ" বরখাস্ত করা কতটা গ্রহণযোগ্য হবে, যেমন অত্যধিক উত্তাপ এবং ক্ষতিকারক রাসায়নিক পদার্থ বা সেটিংয়ের সম্ভাবনা। আগুন লেগেছে, কিন্তু মনে হচ্ছে ডিভাইসের লো-ভোল্টেজ ডিজিটাল ইলেকট্রনিক্স বা ফার্মওয়্যারের ত্রুটিগুলি উপেক্ষা করা যেতে পারে, এমনকি যদি সেগুলি সাইবার আক্রমণকারীকে ডিভাইসের মেইন পাওয়ার সুইচটি ইচ্ছামত বারবার চালু এবং বন্ধ করে দেয়।)

যখন বন্ধুত্বপূর্ণ নামগুলি আপনার শত্রু

গবেষকরা যে সমস্যাটি আবিষ্কার করেছিলেন তা একটি ভাল পুরানো ছিল স্ট্যাক বাফার ওভারফ্লো ডিভাইস সফ্টওয়্যারের অংশে যা আপনাকে তথাকথিত পরিবর্তন করতে দেয় FriendlyName ডিভাইসের - টেক্সট স্ট্রিং যেটি প্রদর্শিত হয় যখন আপনি এটির সাথে আপনার ফোনে একটি অ্যাপের সাথে সংযুক্ত হন।

ডিফল্টরূপে, এই ডিভাইসগুলি এর লাইন বরাবর একটি বন্ধুত্বপূর্ণ নাম দিয়ে শুরু হয় Wemo mini XYZ, কোথায় XYZ তিনটি হেক্সাডেসিমেল সংখ্যা বোঝায় যা আমরা অনুমান করছি যেগুলি ছদ্ম এলোমেলোভাবে বেছে নেওয়া হয়েছে।

এর মানে হল যে আপনি যদি এই ডিভাইসগুলির মধ্যে দুটি বা তিনটির মালিক হন তবে তারা প্রায় অবশ্যই বিভিন্ন নাম দিয়ে শুরু করবে যাতে আপনি সেগুলি সহজেই সেট আপ করতে পারেন।

তবে আপনি সম্ভবত পরবর্তীতে তাদের নাম পরিবর্তন করতে চাইবেন যাতে ভবিষ্যতে তাদের আলাদা করে বলা সহজ হয়, তারপরে বন্ধুত্বপূর্ণ নাম বরাদ্দ করে যেমন TV power, Laptop charger এবং Raspberry Pi server.

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

কিন্তু তারা চেক করতে ভুলে গেছে যে আপনি যে নামটি সরবরাহ করেছেন সেটি সেই 68-বাইট স্লটে ফিট হবে।

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

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

আমরা সবাই জানি কেন ক্লায়েন্ট সাইডকে সার্ভার সাইডে চেক করার পরিবর্তে (অথবা আরও ভালোভাবে) ত্রুটি পরীক্ষা করতে দেওয়া একটি ভয়ানক ধারণা:

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

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

স্ট্যাক কলুষিত

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

প্রযুক্তিগতভাবে, এই "কোথায় যেতে হবে পরবর্তী" ডেটা খণ্ড হিসাবে পরিচিত ঠিকানা ফিরিয়ে দিন, এবং সেগুলি স্বয়ংক্রিয়ভাবে সংরক্ষিত হয় যখন একটি প্রোগ্রাম কল করে যা a নামে পরিচিত ক্রিয়া, বা সাবরুটিন, যা কোডের একটি অংশ (উদাহরণস্বরূপ, "এই বার্তাটি মুদ্রণ করুন" বা "একটি সতর্কীকরণ ডায়ালগ পপ আপ করুন") যা আপনি আপনার প্রোগ্রামের বিভিন্ন অংশে ব্যবহার করতে সক্ষম হতে চান৷

প্রতিবার সাবরুটিন ব্যবহার করার সময় স্ট্যাকে রিটার্ন অ্যাড্রেস ম্যাজিকলি রেকর্ড করা হয়, যাতে কম্পিউটার স্বয়ংক্রিয়ভাবে "আনওয়াইন্ড" করতে পারে যেখান থেকে সাবরুটিনটি কল করা হয়েছিল সেখানে ফিরে যাওয়ার জন্য, যা প্রতিবার সক্রিয় করার সময় ভিন্ন হতে পারে।

(যদি একটি সাবরুটিনের একটি নির্দিষ্ট রিটার্ন ঠিকানা থাকে, তবে আপনি এটিকে আপনার প্রোগ্রামের একটি জায়গা থেকে কল করতে পারেন, যা প্রথমে সেই কোডটিকে একটি পৃথক সাবরুটিনে প্যাকেজিং করতে বিরক্ত করা অর্থহীন করে তুলবে।)

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

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

নিছক ক্র্যাশ হওয়ার পরিবর্তে, ভুল নির্দেশিত প্রোগ্রামটিকে আক্রমণকারীর পছন্দের কোড চালানোর জন্য প্রতারিত করা যেতে পারে, এইভাবে যা একটি হিসাবে পরিচিত দূরবর্তী কোড নির্বাহ শোষণ, বা RCE.

দুটি সাধারণ প্রতিরক্ষা এই ধরণের শোষণ থেকে রক্ষা করতে সহায়তা করে:

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

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

কিন্তু গবেষকদের স্ট্যাক ক্যানারি সমস্যা নিয়ে চিন্তা করার দরকার নেই, কারণ বগি অ্যাপটি তার সোর্স কোড থেকে কম্পাইল করা হয়েছে "ইনসার্ট ক্যানারি-চেকিং নিরাপত্তা নির্দেশাবলী" বৈশিষ্ট্যটি বন্ধ করে।

(ক্যানারি-সুরক্ষিত প্রোগ্রামগুলি সাধারণত অরক্ষিত প্রোগ্রামগুলির চেয়ে কিছুটা বড় এবং ধীর হয় কারণ নিরাপত্তা পরীক্ষা করার জন্য প্রতিটি সাবরুটিনে অতিরিক্ত কোডের প্রয়োজন হয়৷)

কি করো?

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

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

থেকে আরো নগ্ন সুরক্ষা