Clickjacking
سنشرح في هذا القسم ماهية Clickjacking باللغة العربية اختطاف النقرات ، ونصف الأمثلة الشائعة لهجمات الاختراق ونناقش كيفية الحماية من هذه الهجمات.
ما هو الاختراق ؟
Clickjacking هو هجوم قائم على الواجهة
يتم فيه خداع المستخدم للنقر على محتوى قابل للتنفيذ على موقع ويب مخفي من خلال
النقر على بعض المحتوى الآخر في موقع ويب خادع. تأمل المثال التالي:
يصل مستخدم الويب إلى موقع
ويب خادع (ربما يكون هذا رابطًا تم توفيره بواسطة بريد إلكتروني) وينقر على زر
للفوز بجائزة. دون علمهم ، تم خداعهم من
قبل مهاجم للضغط على زر مخفي بديل وهذا يؤدي إلى دفع حساب على موقع آخر. هذا مثال على هجوم الاختراق
. تعتمد التقنية على دمج صفحة
ويب غير مرئية وقابلة للتنفيذ (أو صفحات متعددة) تحتوي على زر أو رابط مخفي ، على
سبيل المثال ، داخل إطار iframe . يتم وضع إطار
iframe فوق محتوى صفحة الويب الوهمية المتوقعة للمستخدم. يختلف هذا الهجوم عن هجوم CSRF في أن المستخدم مطالب بتنفيذ
إجراء مثل النقر على زر أثناء هجوم CSRF يعتمد على تزوير طلب كامل
دون علم أو مدخلات المستخدم.
غالبًا ما يتم توفير الحماية
ضد هجمات CSRF من خلال استخدام رمز CSRF المميز :
رقم
خاص بالجلسة أو للاستخدام الفردي أو رقم
nonce. لا يتم التخفيف من هجمات Clickjacking بواسطة رمز CSRF حيث يتم إنشاء جلسة مستهدفة
بمحتوى تم تحميله من موقع ويب أصلي ومع حدوث جميع الطلبات في المجال. يتم وضع رموز CSRF المميزة في الطلبات وتمريرها إلى
الخادم كجزء من جلسة يتم التصرف فيها بشكل طبيعي. يتمثل الاختلاف مقارنة بجلسة
المستخدم العادية في أن العملية تحدث داخل إطار iframe مخفي .
كيفية إنشاء هجوم اختراق النقر الأساسي
تستخدم هجمات Clickjacking CSS لإنشاء الطبقات ومعالجتها. يدمج المهاجم موقع الويب المستهدف كطبقة iframe متراكبة على موقع الويب
الخادع. مثال على استخدام علامة
النمط والمعلمات كما يلي:
<head>
<style>
#target_website {
position:relative;
width:128px;
height:128px;
opacity:0.00001;
z-index:2;
}
#decoy_website {
position:absolute;
width:300px;
height:400px;
z-index:1;
}
</style>
</head>
...
<body>
<div id="decoy_website">
...decoy web content here...
</div>
<iframe id="target_website"
src="https://vulnerable-website.com">
</iframe>
</body>
يتم وضع إطار iframe لموقع الويب الهدف داخل المتصفح بحيث يكون هناك تداخل دقيق
للإجراء المستهدف مع موقع الويب الخادع باستخدام قيم موضع العرض والارتفاع
المناسبة. تُستخدم قيم الموضع المطلقة
والنسبية لضمان تداخل موقع الويب المستهدف بدقة مع شرك بغض النظر عن حجم الشاشة
ونوع المتصفح والنظام الأساسي. يحدد الفهرس z ترتيب التكديس لطبقات iframe وموقع الويب. يتم تحديد قيمة العتامة على أنها 0.0 (أو قريبة
من 0.0) بحيث يكون محتوى iframe شفافًا للمستخدم. قد تطبق حماية اختطاف نقرات المتصفح اكتشاف شفافية إطار
iframe المستند إلى العتبة (على سبيل المثال ، يتضمن
الإصدار 76 من Chrome هذا السلوك بينما لا يتضمن Firefox) يحدد المهاجم قيم العتامة بحيث يتم تحقيق
التأثير المطلوب دون تشغيل سلوكيات الحماية.
Clickjacking مع إدخال النموذج المعبأ مسبقًا
تسمح بعض مواقع الويب التي
تتطلب إكمال النموذج وإرساله بالتعبئة المسبقة لمدخلات النموذج باستخدام معلمات GET قبل التقديم. قد تتطلب مواقع الويب الأخرى
نصًا قبل إرسال النموذج. نظرًا لأن قيم GET تشكل جزءًا من عنوان URL ، فيمكن تعديل عنوان URL الهدف لتضمين قيم اختيار
المهاجم ويتم وضع زر "إرسال" الشفاف على موقع شرك كما في مثال النقر الأساسي .
نصوص خرق الإطار
تعد هجمات Clickjacking ممكنة متى يمكن تأطير مواقع
الويب. لذلك ، تعتمد الأساليب
الوقائية على تقييد إمكانية تأطير المواقع الإلكترونية. تتمثل إحدى الحماية الشائعة
من جانب العميل والتي يتم تفعيلها من خلال متصفح الويب في استخدام البرامج النصية
لكسر الإطارات أو كسر الإطار. يمكن تنفيذ ذلك من خلال
إضافات أو ملحقات
JavaScript لمتصفح الملكية مثل NoScript . غالبًا ما يتم تصميم البرامج
النصية بحيث تؤدي بعض أو كل السلوكيات التالية:
·
تحقق وفرض أن نافذة التطبيق
الحالية هي النافذة الرئيسية أو العلوية ،
·
اجعل كل الإطارات مرئية ،
·
منع النقر على الإطارات غير
المرئية ،
·
اعتراض وإبلاغ المستخدم عن هجمات اختراق النقر المحتملة .
غالبًا ما تكون تقنيات كسر الإطارات خاصة
بالمتصفح والنظام الأساسي وبسبب مرونة HTML يمكن للمهاجمين التحايل
عليها. نظرًا لأن برامج إزالة
الإطارات هي JavaScript ، فقد تمنع إعدادات أمان المتصفح تشغيلها أو في الواقع قد لا يدعم
المتصفح JavaScript. يتمثل أحد الحلول الفعالة
للمهاجم ضد برامج إزالة الإطارات في استخدام سمة وضع الحماية HTML5 iframe . عندما يتم تعيين هذا مع السماح أشكال أو النصية تسمح القيم و تسمح أعلى الملاحة تم حذف القيمة ثم النصي إطار المغفل يمكن
تحييدها باعتبارها الإطار من لا يمكن أن تحقق ما إذا كان أو لم يكن هو
الإطار العلوي:
< iframe id =
" officer_website " src =
"https://victim-website.com" sandbox =
"allow- Forms "> </ iframe >
تسمح كل من قيم allow-Forms و allow-scripts بالإجراءات المحددة داخل
إطار iframe ولكن التنقل في المستوى
الأعلى معطل. هذا يمنع سلوكيات خرق الإطار
مع السماح بالوظائف داخل الموقع المستهدف.
الجمع بين clickjacking وهجوم DOM XSS
حتى الآن ، نظرنا إلى الاختراق على أنه هجوم قائم بذاته. تاريخيًا ، تم استخدام clickjacking لأداء سلوكيات مثل تعزيز
"الإعجابات" على صفحة Facebook . ومع ذلك ، يتم الكشف عن الفاعلية الحقيقية لاختراق النقر عند استخدامه كناقل لهجوم
آخر مثل هجوم DOM XSS . يعد تنفيذ هذا الهجوم
المشترك بسيطًا نسبيًا على افتراض أن المهاجم قد حدد أولاً ثغرة XSS. ثم يتم دمج استغلال XSS مع عنوان URL الهدف iframe بحيث ينقر المستخدم على الزر
أو الرابط وبالتالي ينفذ هجوم DOM
XSS.
متعددة الخطوات clickjacking
قد تتطلب معالجة المهاجم
لمدخلات موقع الويب المستهدف إجراءات متعددة. على سبيل المثال ، قد يرغب
أحد المهاجمين في خداع المستخدم لشراء شيء ما من موقع ويب للبيع بالتجزئة ، لذا
يجب إضافة العناصر إلى سلة التسوق قبل تقديم الطلب. يمكن تنفيذ هذه الإجراءات من
قبل المهاجم باستخدام عدة أقسام أو إطارات مضمنة . تتطلب مثل هذه الهجمات قدرًا كبيرًا من الدقة
والعناية من منظور المهاجم إذا كان لها أن تكون فعالة ومتخفية.
كيفية منع هجمات الاختراق
لقد ناقشنا آلية منع من جانب
المتصفح شائعة الاستخدام ، وهي البرامج النصية لكسر الإطارات. ومع ذلك ، فقد رأينا أنه غالبًا ما يكون من
السهل على المهاجم التحايل على وسائل الحماية هذه. وبالتالي ، فقد تم ابتكار
بروتوكولات تعتمد على الخادم تقيد استخدام إطار
iframe للمتصفح وتقلل من الاختراق .
Clickjacking هو سلوك من جانب المتصفح
ويعتمد نجاحه أو بطريقة أخرى على وظائف المتصفح والتوافق مع معايير الويب السائدة
وأفضل الممارسات. يتم توفير الحماية من جانب الخادم ضد النقر فوق الاختراق من خلال تحديد وتوصيل القيود على استخدام المكونات
مثل إطارات iframe . ومع ذلك ، يعتمد تنفيذ
الحماية على امتثال المتصفح وتطبيق هذه القيود. هناك آليتان لحماية الاختراق من جانب الخادم هما X-Frame-Options و Content Security Policy .
X-Frame-Options
تم تقديم
X-Frame-Options في الأصل كرأس استجابة غير رسمي في Internet Explorer 8 وتم اعتماده بسرعة في
المتصفحات الأخرى. يوفر الرأس لمالك موقع الويب
إمكانية التحكم في استخدام إطارات iframe أو الكائنات بحيث يمكن حظر
تضمين صفحة ويب داخل إطار باستخدام توجيه الرفض :
X-Frame-Options: deny
بدلا من ذلك، تأطير يمكن تقييد
نفس المصدر كما في الموقع باستخدام sameorigin التوجيه
X-Frame-Options: sameorigin
أو إلى موقع ويب محدد باستخدام
الأمر allow-from :
X-Frame-Options: allow-from
https://normal-website.com
لا يتم
تنفيذ X-Frame-Options باستمرار عبر المتصفحات ( التوجيه allow-from غير مدعوم في Chrome الإصدار 76 أو
Safari 12 على سبيل المثال). ومع ذلك ، عند تطبيقها بشكل
صحيح بالاقتران مع سياسة أمان المحتوى كجزء من إستراتيجية دفاع متعددة الطبقات ،
يمكن أن توفر حماية فعالة ضد هجمات النقر .
سياسة أمان المحتوى ( CSP )
سياسة أمان المحتوى (CSP) هي آلية للكشف والوقاية توفر التخفيف من
الهجمات مثل XSS و clickjacking . عادةً ما يتم تنفيذ CSP في خادم الويب كرأس إرجاع للنموذج:
Content-Security-Policy: policy
حيث السياسة عبارة عن سلسلة من
توجيهات السياسة مفصولة بفواصل منقوطة. يوفر CSP لمتصفح العميل معلومات حول المصادر المسموح بها
لموارد الويب التي يمكن للمتصفح تطبيقها على اكتشاف السلوكيات الضارة واعتراضها.
ولذلك لكي تكون فعالة ضد clickjacking و XSS ، يحتاج CSPs إلى التطوير والتنفيذ
والاختبار بعناية ويجب استخدامها كجزء من إستراتيجية دفاع متعددة الطبقات.
0 Comments:
إرسال تعليق