أدخلت تقنية جديدة لتحديد هوية المتصفح والنظام المخفي

مجموعة من الباحثين من جامعة غراتس التقنية (النمسا)، المعروفة سابقاً بتطوير أساليب الهجوم MDS, نت سبيكتر и مطرقة, مكشوفة معلومات حول تقنية تحليل قناة الطرف الثالث الجديدة التي تسمح لك بتحديد الإصدار الدقيق للمتصفح ونظام التشغيل المستخدم وبنية وحدة المعالجة المركزية واستخدام الوظائف الإضافية لمكافحة التعريف المخفي.

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

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

وظيفة الحصول على الخصائص (س) {
نتيجة فار = [];
بينما (س!== فارغة) {
result = result.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
نتيجة العودة
}

على سبيل المثال، بالنسبة لـ Firefox، تنص الوثائق على دعم 2247 خاصية، في حين أن العدد الفعلي للخصائص المحددة، بما في ذلك الخصائص غير الموثقة، هو 15709 (في متصفح Tor - 15639)، بالنسبة لـ Chrome تم الإعلان عن 2698 خاصية، ولكن في الواقع يتم تقديم 13570 (في متصفح Tor) كروم لنظام أندرويد - 13119). يختلف عدد الخصائص وقيمها من إصدار متصفح لآخر وعبر أنظمة التشغيل المختلفة.

يمكن استخدام قيم ووجود خصائص معينة لتحديد نوع نظام التشغيل. على سبيل المثال، في Kubuntu، يتم تعيين الخاصية window.innerWidth على 1000، وفي Windows 10 يتم تعيينها على 1001. الخاصية window.navigator.activeVRDisplays متاحة على Windows، ولكنها غير متوفرة على Linux. بالنسبة لنظام التشغيل Android، يتم توفير العديد من المكالمات المحددة، ولكن window.SharedWorker ليس كذلك. لتحديد نظام التشغيل، يُقترح أيضًا استخدام تحليل معلمات WebGL، التي تعتمد حالتها على برامج التشغيل. بالإضافة إلى ذلك، فإن استدعاء WEBGL_debug_renderer_infoextension يسمح لك بالحصول على معلومات حول محرك عرض OpenGL، والذي يختلف باختلاف نظام التشغيل.

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

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

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

وتشمل طرق تحديد الهوية الأخرى مراعاة البيانات غير المباشرة مثل دقة الشاشة، قائمة بأنواع MIME المدعومة، ومعلمات محددة في الرؤوس (HTTP / 2 и HTTPS)، تحليل المثبتة الإضافات والخطوط، توفر واجهات برمجة تطبيقات ويب معينة خاصة ببطاقات الفيديو ملامح التقديم باستخدام WebGL و لوحة جدارية (لوحة كانفس), تلاعب مع CSS، تحليل ميزات العمل معها الفأر и لوحة المفاتيح.

المصدر: opennet.ru

إضافة تعليق