Belkin Wemo Smart Plug V2 - بفر اوور فلو جس پر پیچ نہیں کیا جائے گا۔

Belkin Wemo Smart Plug V2 - بفر اوور فلو جس پر پیچ نہیں کیا جائے گا۔

ماخذ نوڈ: 2657924

IoT سیکیورٹی کمپنی Sternum کے محققین میں کھودا معروف ڈیوائس برانڈ بیلکن کا ایک مقبول ہوم آٹومیشن مینز پلگ۔

انہوں نے جس ماڈل کو دیکھا، وہ Wemo Mini Smart Plug (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 Smart Plug V2 کے مالک ہیں، اس بات کو یقینی بنائیں کہ آپ نے اپنے گھر کے روٹر کو انٹرنیٹ پر "باہر" سے ڈیوائس تک رسائی کی اجازت دینے کے لیے کنفیگر نہیں کیا ہے۔ اس سے وہ چیز کم ہو جاتی ہے جو آپ کی اصطلاح میں مشہور ہے۔ حملہ سطح کے علاقے.
  • اگر آپ کے پاس ایسا راؤٹر ہے جو یونیورسل پلگ اینڈ پلے کو سپورٹ کرتا ہے، UPnP کے نام سے بھی جانا جاتا ہے، یقینی بنائیں کہ یہ آف ہے۔ UPnP اندرونی آلات کے لیے نادانستہ طور پر باہر کے لوگوں کے لیے کھولنا انتہائی آسان بنا دیتا ہے۔
  • اگر آپ پروگرامر ہیں، صرف چند بائٹس بچانے کے لیے سافٹ ویئر کی حفاظتی خصوصیات (جیسے اسٹیک پروٹیکشن یا اسٹیک کینری چیکنگ) کو بند کرنے سے گریز کریں۔ اگر واقعی آپ کی یادداشت ختم ہو رہی ہے، تو سیکیورٹی کو کم کرنے کے بجائے اپنے کوڈ کو بہتر بنا کر یا فیچرز کو ہٹا کر اپنے قدموں کے نشان کو کم کرنے کی کوشش کریں تاکہ آپ مزید اندر جا سکیں۔

ٹائم اسٹیمپ:

سے زیادہ ننگی سیکیورٹی