إلغاء الهوية من خلال Clickjacking في عام 2019

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

بدأ كل شيء مع Google YOLO


بدأت رحلتي عندما صادفت منشورًا رائعًا على المدونة يسمى Google YOLO ، مؤلفًا من filedescriptor ، حول الثغرة الأمنية في clickjacking لأداة الويب Google YOLO (يمكنك تسجيل الدخول مرة واحدة فقط) التي توفر ترخيصًا مضمنًا بنقرة واحدة على مواقع الويب . أوصي بشدة بالتنزيل وقراءة منشور المدونة الذي يصف تقنيات النقر بالضغط بطريقة تفاعلية.

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

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

عندما عثرت أولاً على منشور مدونة Google YOLO ، كانت Google قد أصلحت المشكلة بالفعل عن طريق تقييد الميزة على مواقع الويب التابعة فقط. يصف منشور المدونة هذا أيضًا النقر فوق استخدام أداة Facebook Like ، ولكن عند النقر فوق الزر ، طلبت الأداة المصغرة تأكيدًا:

صورة

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

وكنتيجة لذلك ، توصلت إلى استنتاج مفاده أن الشركات الكبيرة قد حلت هذه المشكلة ، ونسيتها لفترة من الوقت ، حتى أصبحت لدي فكرة جديدة ...

فيسبوك تعليق القطعة: "typejacking"


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

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

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

لدهشتي ، فإن تقنية likejacking ، وهو مصطلح يصف تقنية clickjacking للحصول على الإعجابات ، معروف منذ عام 2010 على الأقل . واليوم ، بعد 9 سنوات ، لا يزال هذا الأمر ذا صلة. وأيضًا ، عندما يتعلق الأمر بـ "الإعجاب" ، نادراً ما يتم ذكر مسألة تحديد الهوية. تمت كتابة مسألة إلغاء الهوية بشكل علني ، على الأقل منذ عام 2012 ، ولكن لا يزال ، أعتقد أنه لا يوجد عدد كاف من الناس يعرفون عنها ، خاصة في عصرنا ، عندما يفهم المزيد والمزيد من الناس أهمية الخصوصية على الإنترنت.

أما بالنسبة لتقنية typejacking ، فما زلت أضيف صفحة ويب توضح الهجوم . يمكنك تجربة نفسك أو مشاهدة الفيديو:



Clickjacking ، typejacking ... ماذا بعد؟


بالتفكير في تقنية clickjacking ، تساءلت عما يمكن القيام به باستخدام القدرة على إدراج عناصر واجهة المستخدم الخارجية ومعالجتها على موقع ويب ضار. تم تصميم تقنيات Clickjacking و typejacking لتفاعل المستخدم مع عنصر واجهة المستخدم. ماذا لو بدلاً من ذلك نقنع المستخدم بتزويدنا بمعلومات من الأداة؟

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

صورة

Clickjacking الوقاية لأصحاب المواقع


لا يوجد حتى الآن طريقة موثوقة لمنع clickjacking.

في عام 2009 ، تم تقديم رأس HTTP X-Frame-Options ، والذي يوفر حماية جزئية من النقر فوق النقر. يسمح الرأس لمالك موقع الويب بتحديد الصفحات التي يجب ألا تكون في الإطار. سيرفض المستعرض الذي يدعم الرأس تحميل هذه الصفحات في إطار. على الرغم من أن هذا يمنع نقر النقر في بعض الحالات ، إلا أنه لا يساعد في استخدام عناصر واجهة المستخدم التي تحتاج إلى تحميلها في إطار ، مثل عنصر واجهة تعامل Like أو عنصر واجهة تعامل تعليق.

بالنظر إلى العنوان X-Frame-Options ، تساءلت عن سبب عدم اتخاذ خيار مماثل يوفر قدراً من الحماية مع السماح لصفحة الويب بالتحميل في إطار؟ فكر ، على سبيل المثال ، في عنصر واجهة تعبير "أعجبني": هل هناك سبب وجيه لقيام صفحة ويب بالاعتماد على زر واحد؟ تغيير حجم أو أزرار الشفافية؟ هل أي التلاعب الأخرى مثل مرشحات CSS؟ السبب الوحيد الذي يمكنني أن أتخيله هو النقر فوق الجاك. لماذا لا تقدم خيار X-Frame-Options جديدًا ، مثل X-Frame-Options: Isolate ، والذي يسمح بتحميل صفحة الويب في الإطار ، ولكنه يضمن عدم إمكانية تغيير حجم الإطار وعدم إمكانية تغيير موقع الويب الأصل. له. كما هو الحال مع الأفكار السابقة ، اقترح شخص ما هذا لي بالفعل .

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

تحديث: اتضح أن Chrome يمنح مالكي التطبيق المصغر القدرة على اكتشاف النقر بالضغط باستخدام وظيفة Intersection Observer v2 . يتم تمكين هذه الميزة افتراضيًا بدءًا من Chrome 74 ، الذي تم إصداره في أبريل 2019. لسوء الحظ ، يقوم Chrome في الوقت الحالي فقط بتنفيذ ذلك ، وهو ليس سهل الاستخدام - على الأقل أكثر صعوبة من إضافة رأس. See Trust is Good ، الملاحظة أفضل للحصول على مزيد من المعلومات.

Clickjacking منع للمستخدمين


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

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

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

ميزة أخرى لحظر ملفات تعريف ارتباط الطرف الثالث هي أن الحجب يمكن أن يحمي من هجمات القناة الجانبية التي لا تتطلب تدخل المستخدم. على سبيل المثال ، توضح هذه الطريقة استخدام CSS3 لإعادة تعريف مستخدمي Facebook دون تدخل المستخدم الإضافي مع صفحة الويب. مثال آخر على مشكلة عدم حصانة قديمة ولكنها مثيرة للاهتمام يمكن منعها عن طريق حظر ملفات تعريف ارتباط الطرف الثالث ، سرقة المجال المتقاطع المتقاطعة العامة ، والتي تستغل ثغرة في مواصفات CSS لإجبار المستعرض على استخدام صفحة الأصل المشترك ك CSS والوصول إلى معلومات محددة ( قضية مشروع Chromium ).

استنتاج


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

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

كتب PS On Habré مشكلة مماثلة على موقع VKontakte على الإنترنت قبل 5 سنوات. يبدو أن العرض التوضيحي لم يعد يعمل (تحتاج إلى تأكيد الإجراء في نافذة منبثقة) ، ولكن ، كما ترون ، لا يزال السمة ذات صلة. ربما في VKontakte هناك عنصر واجهة مستخدم آخر يمكنك استخدامه ، على سبيل المثال ، عنصر واجهة مستخدم للتعليق. لكن ، لسوء الحظ ، في هذه المقالة ، لم يذكر المؤلف حظر ملفات تعريف ارتباط الطرف الثالث.

Source: https://habr.com/ru/post/ar473552/


All Articles