Belkin Wemo Smart Plug V2 - تجاوز سعة المخزن المؤقت الذي لن يتم تصحيحه

Belkin Wemo Smart Plug V2 - تجاوز سعة المخزن المؤقت الذي لن يتم تصحيحه

عقدة المصدر: 2657924

باحثون في شركة أمن إنترنت الأشياء Sternum حفرت في قابس رئيسي للتشغيل الآلي للمنزل من ماركة Belkin المعروفة للأجهزة.

النموذج الذي نظروا إليه ، ويمو ميني سمارت بلج (F7C063) يبدو أنه يقترب من نهاية مدة صلاحيته ، لكننا وجدنا الكثير منها معروضًا للبيع عبر الإنترنت ، إلى جانب نصائح وإرشادات مفصلة على موقع Belkin حول كيفية إعدادها.

على الرغم من أنها قد تكون قديمة (بالمعنى الحديث قصير المدى) ، إلا أن الباحثين لاحظوا ما يلي:

جاء اهتمامنا الأولي بالجهاز من وجود العديد من هذه الأجهزة حول مختبرنا واستخدامها في منازلنا ، لذلك أردنا فقط معرفة مدى أمان (أو عدم أمان) استخدامها. [… T] يبدو أنه جهاز استهلاكي مشهور جدًا [؛ ب] بناءً على هذه الأرقام ، من الآمن تقدير أن إجمالي المبيعات على أمازون وحدها يجب أن يكون بمئات الآلاف.

ببساطة ، هناك الكثير من الأشخاص الذين قاموا بالفعل بشراء وتوصيل هذه الأشياء ، ويستخدمونها الآن للتحكم في المنافذ الكهربائية في منازلهم.

"القابس الذكي" ، ببساطة ، هو مقبس طاقة يتم توصيله بمقبس حائط موجود ويتداخل مع مفتاح يتم التحكم فيه عن طريق Wi-Fi بين مأخذ التيار الكهربائي في الجزء الأمامي من مقبس الحائط ومأخذ التيار الكهربائي المتطابق في المظهر الجزء الأمامي من القابس الذكي. فكر في الأمر على أنه محول طاقة بدلاً من تحويل ، على سبيل المثال ، مقبس أوروبي دائري إلى مقبس ثلاثي في ​​المملكة المتحدة ، يحول ، على سبيل المثال ، مقبسًا أمريكيًا يتم تبديله يدويًا إلى مقبس أمريكي بتبديل إلكتروني يمكن التحكم فيه عن بُعد عبر تطبيق أو واجهة من نوع الويب.

الأس في إنترنت الأشياء ...

المشكلة مع العديد من أجهزة إنترنت الأشياء (IoT) المزعومة ، كما تقول النكتة القديمة ، هي أن الحرف "S" في "IoT" هو الذي يرمز إلى الأمان ...

... مما يعني ، بالطبع ، أنه في كثير من الأحيان لا يوجد قدر كبير من الأمن السيبراني كما قد تتوقع ، أو حتى أي شيء على الإطلاق.

كما يمكنك أن تتخيل ، فإن جهاز التشغيل الآلي للمنزل غير الآمن ، خاصة الجهاز الذي قد يسمح لشخص ما خارج منزلك ، أو حتى على الجانب الآخر من العالم ، بتشغيل وإيقاف تشغيل الأجهزة الكهربائية حسب الرغبة ، قد يؤدي إلى الكثير من المتاعب.

لقد كتبنا عن انعدام الأمن في إنترنت الأشياء في مجموعة واسعة من المنتجات المختلفة من قبل ومن غلايات الإنترنت (نعم ، حقًا) يمكن أن يؤدي ذلك إلى تسريب كلمة مرور Wi-Fi المنزلية الخاصة بك ، إلى الكاميرات الأمنية التي يمكن للمحتالين استخدامها للاحتفاظ بهم عين عليك بدلاً من العكس ، إلى محركات الأقراص المتصلة بالشبكة المعرضة لخطر الحصول عليها مضروبة عن طريق انتزاع الفدية مباشرة عبر الإنترنت.

في هذه الحالة ، وجد الباحثون ثغرة في تنفيذ التعليمات البرمجية عن بُعد في Wemo Mini Smart Plug مرة أخرى في يناير 2023 ، وأبلغوا عنها في فبراير 2023 ، وتلقوا رقم CVE الخاص بها في مارس 2023 (CVE-2023-27217).

لسوء الحظ ، على الرغم من أنه من شبه المؤكد أن العديد من هذه الأجهزة قيد الاستخدام النشط في العالم الحقيقي ، إلا أن شركة Belkin قالت على ما يبدو إنها تعتبر الجهاز "في نهاية عمره الافتراضي" وبالتالي لن يتم تصحيح الثقب الأمني.

(لسنا متأكدين من مدى قبول هذا النوع من الفصل "نهاية العمر" إذا تبين أن الجهاز به خلل في داراته الكهربائية 120 فولت أو 230 فولت تيار متردد ، مثل احتمال ارتفاع درجة الحرارة وانبعاث مواد كيميائية ضارة أو الإعداد على النار ، ولكن يبدو أنه يمكن تجاهل الأعطال في الأجهزة الإلكترونية الرقمية ذات الجهد المنخفض أو البرامج الثابتة في الجهاز ، حتى لو كانت قد تؤدي إلى قيام أحد المهاجمين الإلكترونيين بإيقاف تشغيل مفتاح الطاقة الرئيسي في الجهاز وإيقاف تشغيله بشكل متكرر حسب الرغبة.)

عندما تكون الأسماء المألوفة هي عدوك

كانت المشكلة التي اكتشفها الباحثون قديمة جيدة تجاوز سعة المخزن المؤقت في جزء برنامج الجهاز الذي يسمح لك بتغيير ما يسمى ب FriendlyName الجهاز - السلسلة النصية التي يتم عرضها عند الاتصال بها باستخدام تطبيق على هاتفك.

بشكل افتراضي ، تبدأ هذه الأجهزة باسم مألوف على غرار Wemo mini XYZ، حيث XYZ يشير إلى ثلاثة أرقام سداسية عشرية نعتقد أنه تم اختيارها عشوائيًا.

هذا يعني أنه حتى إذا كنت تمتلك جهازين أو ثلاثة من هذه الأجهزة ، فمن شبه المؤكد أنها ستبدأ بأسماء مختلفة حتى تتمكن من إعدادها بسهولة.

ولكنك ربما تريد إعادة تسميتها لاحقًا حتى يسهل التمييز بينهما في المستقبل ، من خلال تعيين أسماء مألوفة مثل TV power, Laptop charger و Raspberry Pi server.

يبدو أن مبرمجي Belkin (أو بشكل أكثر دقة ، مبرمجو الكود الذي انتهى بهم الأمر في هذه الأجهزة التي تحمل علامة Belkin التجارية ، والذين ربما زودوا برامج المكونات الذكية لأسماء العلامات التجارية الأخرى أيضًا) قد حجزوا 68 بايتًا من التخزين المؤقت لتتبع اسم جديد أثناء عملية إعادة التسمية.

لكنهم نسوا التحقق من أن الاسم الذي قدمته سيتناسب مع الفتحة التي يبلغ حجمها 68 بايت.

بدلاً من ذلك ، افترضوا أنك ستستخدم تطبيق الهاتف الرسمي الخاص بهم لإجراء عملية إعادة تسمية الجهاز ، وبالتالي يمكنهم تقييد كمية البيانات المرسلة إلى الجهاز في المقام الأول ، من أجل تجنب أي فائض في المخزن المؤقت قد يكون بخلاف ذلك تنشأ.

ومن المفارقات ، أنهم اهتموا كثيرًا ليس فقط بإبقائك على الحد الأقصى البالغ 68 بايت المطلوب للجهاز نفسه لكي يتصرف بشكل صحيح ، ولكن حتى لتقييدك بالكتابة بـ 30 حرفًا فقط.

نعلم جميعًا سبب كون ترك جانب العميل يقوم بفحص الأخطاء ، بدلاً من التحقق بدلاً من ذلك (أو الأفضل من ذلك أيضًا) على جانب الخادم ، فكرة سيئة:

  • قد يخرج رمز العميل ورمز الخادم عن التوافق. قد تقرر تطبيقات العميل المستقبلية أن الأسماء المكونة من 72 حرفًا ستكون خيارًا جيدًا ، وتبدأ في إرسال المزيد من البيانات إلى الخادم أكثر مما يمكنه التعامل معها بأمان. قد يلاحظ المبرمجون المستقبليون من جانب الخادم أنه لم يبد أن أي شخص يستخدم كامل 68 بايتًا محجوزًا ، ويقررون بشكل أحادي أن 24 يجب أن تكون أكثر من كافية.
  • يمكن للمهاجم اختيار عدم الإزعاج بالتطبيق. من خلال إنشاء طلباتهم الخاصة ونقلها إلى الجهاز ، فإنهم سيتجاوزون بشكل تافه أي فحوصات أمنية تعتمد على التطبيق وحده.

تمكن الباحثون بسرعة من تجربة أسماء أطول من أي وقت مضى لدرجة أنهم يمكن أن يعطلوا جهاز Wemo حسب الرغبة عن طريق الكتابة فوق نهاية مخزن الذاكرة المؤقت للاسم الجديد ، وإفساد البيانات المخزنة في البايتات التي تليها على الفور.

إفساد المكدس

لسوء الحظ ، في نظام التشغيل القائم على المكدس ، ينتهي معظم البرامج بمخازن الذاكرة المؤقتة المستندة إلى المكدس الموضوعة بحيث يتم اتباع معظم هذه المخازن المؤقتة عن كثب بواسطة كتلة حيوية أخرى من الذاكرة تخبر البرنامج إلى أين يذهب عندما ينتهي ما ما تفعله الآن.

من الناحية الفنية ، تُعرف أجزاء البيانات "إلى أين تتجه بعد ذلك" باسم عناوين الإرجاع، ويتم حفظها تلقائيًا عندما يستدعي البرنامج ما يُعرف بـ وظيفةالطرق أو روتين، وهو جزء من التعليمات البرمجية (على سبيل المثال ، "اطبع هذه الرسالة" أو "يظهر مربع حوار تحذير") التي تريد أن تكون قادرًا على استخدامها في عدة أجزاء من برنامجك.

يتم تسجيل عنوان المرسل بطريقة سحرية على المكدس في كل مرة يتم فيها استخدام الروتين الفرعي ، بحيث يمكن للكمبيوتر "فك" مساره تلقائيًا للعودة إلى المكان الذي تم استدعاء الروتين الفرعي منه ، والذي يمكن أن يكون مختلفًا في كل مرة يتم تنشيطها.

(إذا كان للروتين الفرعي عنوان إرجاع ثابت ، فلا يمكنك الاتصال به إلا من مكان واحد في برنامجك ، مما يجعل من غير المجدي أن تزعج نفسك بتعبئة هذا الرمز في روتين فرعي منفصل في المقام الأول.)

كما يمكنك أن تتخيل ، إذا دست على عنوان الإرجاع السحري هذا قبل أن ينتهي الإجراء الفرعي ، فعندما ينتهي ، سوف "يفسد" نفسه إلى المكان الخطأ بثقة ولكن عن غير قصد.

مع قليل من الحظ (أو ربما الكثير) ، قد يكون المهاجم قادرًا على التنبؤ مسبقًا بكيفية الدوس على عنوان المرسل بطريقة إبداعية ، وبالتالي يخطئ في توجيه البرنامج بطريقة متعمدة وخبيثة.

بدلاً من مجرد التعطل ، يمكن خداع البرنامج الذي تم توجيهه بشكل خاطئ إلى تشغيل رمز من اختيار المهاجم ، مما يتسبب في حدوث ما يُعرف بـ تنفيذ التعليمات البرمجية عن بعد استغلال أو RCE.

هناك دفاعان شائعان يساعدان في الحماية من عمليات الاستغلال من هذا النوع:

  • التوزيع العشوائي لتخطيط مساحة العنوان ، المعروف أيضًا باسم ASLR. يقوم نظام التشغيل عن عمد بتحميل البرامج في مواقع ذاكرة مختلفة قليلاً في كل مرة يتم تشغيلها. هذا يجعل من الصعب على المهاجمين تخمين كيفية إساءة توجيه برامج عربات التي تجرها الدواب بطريقة تحصل في النهاية على التحكم وتحتفظ به بدلاً من مجرد تعطل الكود.
  • كومة الكناري ، سميت على اسم الطيور التي اعتاد عمال المناجم أخذها معهم تحت الأرض لأنها ستصاب بالإغماء في وجود الميثان ، مما يوفر تحذيرًا مبكرًا قاسيًا ولكنه فعال لخطر الانفجار. يقوم البرنامج عمدًا بإدراج كتلة معروفة ولكن عشوائية من البيانات أمام عنوان المرسل مباشرةً في كل مرة يتم فيها استدعاء إجراء فرعي ، بحيث يقوم تجاوز سعة المخزن المؤقت بالكتابة فوق "الكناري" بشكل لا مفر منه ويمكن اكتشافه أولاً ، قبل تجاوزه كثيرًا بما يكفي للدوس على عنوان المرسل المهم للغاية.

للحصول على استغلالهم للعمل بسرعة وموثوقية ، احتاج الباحثون إلى إجبار مقبس Wemo على إيقاف تشغيل ASLR ، وهو ما لن يتمكن المهاجمون عن بُعد من القيام به ، ولكن مع الكثير من المحاولات في الحياة الواقعية ، قد يحالف المهاجمون الحظ مع ذلك ، خمن بشكل صحيح في عناوين الذاكرة المستخدمة من قبل البرنامج ، وتحكم على أي حال.

لكن الباحثين لم يكونوا مضطرين للقلق بشأن مشكلة Stack canary ، لأن تطبيق عربات التي تجرها الدواب قد تم تجميعه من كود المصدر الخاص به مع إيقاف تشغيل ميزة "insert canary-check السلامة".

(عادةً ما تكون البرامج المحمية في Canary أكبر قليلاً وأبطأ من البرامج غير المحمية بسبب الكود الإضافي المطلوب في كل روتين فرعي لإجراء فحوصات الأمان.)

ماذا ستفعلين.. إذًا؟

  • إذا كنت مالك Wemo Smart Plug V2 ، تأكد من أنك لم تقم بتكوين جهاز التوجيه المنزلي الخاص بك للسماح بالوصول إلى الجهاز من "الخارج" ، عبر الإنترنت. هذا يقلل مما يعرف في المصطلحات باسم الخاص بك منطقة سطح الهجوم.
  • إذا كان لديك جهاز توجيه يدعم Universal Plug and Play ، المعروف أيضًا باسم UPnP ، تأكد من إيقاف تشغيله. يجعل UPnP من السهل جدًا فتح الأجهزة الداخلية عن غير قصد للغرباء.
  • إذا كنت مبرمجًا ، تجنب إيقاف تشغيل ميزات أمان البرامج (مثل حماية المكدس أو فحص الكناري المكدس) فقط لتوفير عدد قليل من البايت. إذا نفدت الذاكرة حقًا ، فابحث عن تقليل بصمتك عن طريق تحسين التعليمات البرمجية أو إزالة الميزات بدلاً من تقليل الأمان حتى تتمكن من حشر المزيد.

الطابع الزمني:

اكثر من الأمن عارية