
استغلال رفض الخدمة لبوابة جهاز Microsoft HoloLens عبر طلبات اقتران API المتكررة، مما يؤدي إلى تحميل زائد لوحدة المعالجة المركزية وعدم استجابة النظام.
تانيا سيلفا، أنطونيو بينتو، بيدرو بينتو وسارا بايفا
يهدف هجوم رفض الخدمة (DoS) إلى إغراق النظام المستهدف بطريقة تجعله غير قادر تدريجياً على الاستجابة لجميع الطلبات المرسلة إليه. بهذه الطريقة، يفقد المستخدم الشرعي الوصول إلى خدمة، والتي، حسب مجال التطبيق، قد تكون حاسمة لعمليته. لهذه المشكلة، قمنا بتحليل نظارات HoloLens التي توفر تجربة الواقع المختلط (MR). توفر HoloLens 1 و 2 إطاراً لإدارة ومعالجة المحتوى والوظائف على HoloLens عن بُعد. تُسمى الأداة "بوابة الجهاز"، كما هو موضح في الشكل 1.1، وتسمح للمستخدم بإدارة التطبيقات والمستندات ومحتوى الوسائط المتعددة المخزنة على الجهاز المثبت على الرأس. تُمكّن هذه الأداة أيضاً من الرؤية الفورية لأنشطة المستخدم على الجهاز والتسجيل الفوري أو التقاط الشاشة. بالإضافة إلى ذلك، تُمكّن هذه الأداة من مراقبة مكونات النظام، بالإضافة إلى إدارة العمليات التي تعمل حالياً على النظام.
الشكل 1.1: بوابة جهاز HoloLens
في الشكل 1.2، تم توضيح هندسة الهجوم المنفذ. لتنفيذ الهجوم، يحتاج الفرد الخبيث إلى الاتصال بنفس شبكة الهدف. يتيح هذا الاتصال للمُخترق استخدام ماسح أمني لتحليل الشبكة بأكملها بهدف تحديد الأجهزة المتاحة على الشبكة.
يمكن لأي جهاز متصل بالشبكة الوصول إلى "بوابة الجهاز" بمجرد إدخال عنوان IP المقابل لـ HoloLens في المتصفح. من المعلومات التي جمعها الماسح، يمكن للمهاجم تحديد عنوان IP واستخدامه لمحاولة الوصول إلى خدمة الإدارة عن بُعد. من خلال تحليل حركة مرور الشبكة عند تنفيذ إجراء على "بوابة الجهاز"، يحصل المُخترق على إمكانية الوصول إلى الطلبات المقدمة لواجهة برمجة التطبيقات (API) الخاصة بالجهاز. باستخدام هذه المعلومات، يمكنهم تطوير برنامج نصي لتشغيل هذه الطلبات إلى API بشكل متتالٍ. عند استلام كل هذه الطلبات، يصبح المعالج (CPU) محملاً بشكل زائد، وبالتالي يصبح النظام غير مستجيب لأوامر المستخدمين الشرعيين، مما يمنع استخدام HoloLens. حتى إذا قرر المستخدم إعادة تشغيل النظارات، يستمر الهجوم طالما بقي عنوان IP دون تغيير أو قرر المهاجم إيقافه.
الشكل 1.2: هندسة هجوم رفض الخدمة على HoloLens
المتطلبات اللازمة لإعادة إنتاج هذا الهجوم بشكل صحيح هي:
ليس من الضروري وجود نظام تشغيل محدد لتنفيذ الهجوم. يجب تكييف البرنامج النصي المستخدم لرفض الخدمة وفقاً لمتطلبات الأداة المختارة لتشغيل البرنامج النصي.
يبدأ الفرد الخبيث الهجوم باختيار أداة مسح الشبكة لتحديد عنوان IP الحالي للنظارات المتصلة بالشبكة. للوصول إلى الصفحة الرئيسية لـ "بوابة الجهاز"، يكفي إدخال عنوان IP للنظارات في المتصفح. في هذه الصفحة، سيُطلب منك إدخال بيانات اعتماد تسجيل الدخول. ومع ذلك، بمجرد الوصول إلى عدد 3 محاولات غير صحيحة، يتم إعادة توجيه المستخدم إلى الصفحة حيث يمكن طلب إقران جديد بالنظارات، وبالتالي يمكن إنشاء مستخدم جديد. من خلال فحص عناصر صفحة الويب هذه، من الممكن تحليل طلبات الشبكة المقدمة إلى API الخاصة بـ HoloLens. تحتوي هذه الطلبات على معلومات حول نص الرأس (body) والرؤوس (headers) للطلب، والتي يمكن نسخها بسهولة في أداة أخرى، كما هو معروض في الشكل 1.3. تم تحديد القدرة على إرسال هذه الطلبات كمتجه الهجوم.
الشكل 1.3: طلب API لـ HoloLens
عندما يتم تقديم طلب إقران جديد، يتم إيقاف عمليات HoloLens مؤقتاً، ويتم عرض رمز PIN على رؤية المستخدم، والذي يجب إدخاله في صفحة الويب للمتابعة مع إقران الجهاز، كما هو موضح في الشكل 1.4. لا يستأنف HoloLens التشغيل العادي إلا عندما يختفي هذا الرمز. لجعله يختفي، يمكن للمستخدم إكمال عملية الإقران في صفحة الويب أو فتح قائمة الإعدادات حيث يمكنهم العودة إلى العرض النموذجي لـ HoloLens.
الشكل 1.4: رمز إقران HoloLens
لاختبار هذه المشكلة، تم تطوير برنامج نصي لتقديم طلبات إقران مكررة إلى API، متجاهلاً أي أخطاء محتملة قد تحدث حتى يتم إيقاف هذه العملية يدوياً بواسطة المهاجم (انظر الشكل 1.5 والملحق أ). تم تطوير هذا البرنامج النصي لـ Windows PowerShell، حيث أنه من الممكن جدولة البرنامج النصي للتشغيل في كل مرة يتم فيها تشغيل الكمبيوتر. بهذه الطريقة، يمكن للمهاجم تثبيت البرنامج النصي على أجهزة الهدف، والتي عادة ما تكون متصلة بنفس شبكة HoloLens. يعمل الهجوم في الخلفية دون أن يلاحظه المستخدمون، مما يجعل المعدات غير قابلة للاستخدام. يوفر Powershell الأمر New-ScheduledTask، والذي يسمح بإنشاء مشغل لتشغيل البرنامج النصي الخبيث كلما تم تشغيل الكمبيوتر.
الشكل 1.5: نص PowerShell
عندما يتم تقديم طلب إقران، يتم عرض رمز الإقران على رؤية المستخدم. نتيجة للاختبارات التي أجريت باستخدام البرنامج النصي السابق، لوحظ أن إرسال الطلبات باستمرار يتسبب في قيام HoloLens بعرض رموز إقران جديدة باستمرار على رؤية المستخدم، مما يمنعه من أداء أي مهام أخرى. لدى المستخدم خيار فتح قائمة فوق هذا الرمز، ومع ذلك، نظراً لأن النظارات تتلقى باستمرار طلبات جديدة، ليس لدى المستخدم الوقت الكافي لإجراء أي عمليات في هذه القائمة. بمرور الوقت، تبدأ النظارات في الظهور بشكل متقطع، ويواجه HoloLens صعوبة في فهم الإيماءات أو الأوامر المنطوقة من قبل المستخدم. بهذه الطريقة، لم يعد بإمكان المستخدم استخدام الجهاز حتى يتوقف الهجوم.
تم اختبار الهجوم في سيناريوهات مختلفة وأثبت فعاليته بالكامل. عندما يحاول المستخدم إعادة تشغيل HoloLens، كما هو متوقع، يتوقف API عن الاستجابة. ومع ذلك، كما هو محدد في البرنامج النصي، يجب تجاهل الأخطاء التي يعيدها الخادم، مما يسمح له بمواصلة العمل في الخلفية. بمجرد اكتشاف أن HoloLens أعاد إنشاء اتصال بالشبكة، يستمر الهجوم، مما يمنع المستخدم من أداء أي مهام أخرى. تم إجراء الاختبار أيضاً عندما كان جهاز موثوق به مقترناً بالفعل بالنظارات. كانت النتيجة هي نفسها، من الممكن تنفيذ الهجوم طالما أن عنوان IP للمرسل مختلف عن ذلك المقترن بالفعل.
خلال الاختبارات التي أجريت، لوحظ أن النظارات تعاني من ارتفاع درجة الحرارة بسبب زيادة تحميل المعالج. في الشكل 1.6، يتم توضيح معالجة وحدة المعالجة المركزية والذاكرة للنظارات أثناء الهجوم. كما يمكن رؤيته في لحظات معينة، يرتفع المعالج إلى مستويات عالية جداً، مما يتسبب في ارتفاع درجة حرارة الجهاز وتأخير استجابته للخدمات الأخرى.
الشكل 1.6: معالجة وحدة المعالجة المركزية والذاكرة
باختصار، يتضمن هجوم رفض الخدمة هذا إغراق API لـ HoloLens بطلبات الإقران. بهذه الطريقة، يتم عرض رموز إقران جديدة باستمرار على رؤية المستخدم في غضون ثوانٍ. يمنع هذا السلوك المستخدم الشرعي من القيام بأي مهام أخرى على HoloLens حتى يتوقف الهجوم. ستكون طرق التخفيف المناسبة لهذا النوع من الهجمات على مستوى API من خلال تطبيق قيود على طلبات الإقران القادمة من عنوان IP محدد. ومع ذلك، إذا كان المهاجم ينوي تزوير عنوان IP في طلباته، يمكن التغلب على هذه المنهجية بسهولة. لذلك، يُقترح أيضاً تقييد العدد الإجمالي للطلبات المقدمة خلال فترة زمنية قصيرة.