امنیتتست نفوذ

همه چیز درباره حملات Clickjacking

دزدی کلیک (Clickjacking) چیست؟ و چگونه انجام می شود؟

Clickjacking نوعی از حملات هکرها است که با کلیک کردن کاربر بر روی یک عنصر وب سایت، عنصر دیگری که به صورت نامرئی و مخفی است اجرا میشود. این حمله باعث میشود که کاربران به صورت ناخواسته نرم افزارهای مخرب را دانلود کنند، به صفحات جعلی هدایت شوند و اطلاعاتشان به سرفت برود.

به طور معمول، clickjacking با نمایش یک صفحه یا یک عنصر HTML نامرئی در داخل iframe در بالای صفحات که کاربران آن را می بینند انجام می شود. کاربران معتقد هستند که بر روی چیزی که می بینند کلیک می کنند اما در حقیقت بر روی عناصر نامرئی که قابل مشاهده نیست کلیک کرده اند.

انواع مختلف حملات clickjacking

  • دزدی لایک (Likejacking) : تکنیکی است که در آن لایک های فیس بوک دستکاری می شود و باعث می شود کاربران صفحاتی را که اصلا دوست ندارند و یا ندیده اند، لایک کنند.
  • جاسوسی (Cursorjacking) : یک روش اصلاح UI است که مکان نما را برای موقعیتی که کاربر به موقعیت دیگری میرود، تغییر می دهد. Cursorjacking به آسیب پذیری های فلش و مرورگر فایرفاکس متکی است.

 مثالی برای حمله Clickjacking

  • ابتدا هکر یک صفحه جذاب ایجاد می کند (به عنوان مثال وعده مسافرت رایگان)
  • در پس زمینه، صفحه ای را که امکان انتقال پول وجود داشته باشد را فراهم می کند(صفحات بانکی) سپس صفحه جعلی خود را با استفاده از پارامترهای پرس و جو برای قرار دادن جزئیات بانکی، بارگیری می کند.
  • صفحه جعلی بانک در بالای یک صفحه با عنوان “هدیه رایگان” در یک iframe نامرئی نمایش داده می شود، که کاربر با کلیک بر روی دکمه “دریافت هدیه” دقیقا بر روی “تأیید انتقال” کلیک می کند.

این مثال نشان می دهد که در یک حمله clickjacking، میتواند عملیات فیشینگ و سرقت اطلاعات صورت گیرد. همچنین در این حملات ردیابی هکر نیز غیر ممکن است چرا که کاربر خود بر روی لینک کلیک کرده است.

Clickjacking - همه چیز درباره حملات Clickjacking

اقدامات لازم برای مقابله با clickjacking

دو روش کلی برای دفاع در برابر clickjacking وجود دارد:

  • روش های سمت کاربر (Client-side) : پرکاربردترین آن Frame Busting نامیده می شود. روش های سمت کاربر می تواند در بعضی موارد موثر باشد، اما می توان آنها را به آسانی دور زد.
  • روش های سمت سرور (Server-side) : پرکاربردترین آن X-Frame-Options است. روش های سمت سرور توسط کارشناسان به عنوان یک روش موثر برای دفاع در برابر حملات کلیک توصیه می شوند.

حملات کلیک با استفاده از X-Frame-Options

X-Frame-Options به عنوان بخشی از پاسخ HTTP یک صفحه وب می باشد و نشان می دهد که آیا یک مرورگر مجاز به رندر یک صفحه در داخل تگ <FRAME> یا <IFRAME> نبوده است.

سه مقدار برای هدر X-Frame-Options وجود دارد:

  • DENY : یه هیچ دامنه ای برای نمایش این صفحه در یک قاب اجازه نمی دهد.
  • SAMEORIGIN : اجازه می دهد صفحه فعلی در یک قاب در صفحه دیگری نمایش داده شود، اما فقط در دامنه فعلی است.
  • ALLOW-FROM URI : اجازه می دهد صفحه فعلی در یک قاب نمایش داده شود، اما فقط در یک URI خاص (به عنوان مثال site.com/frame-page)

X-Frame-Options به ناشران محتوا اجازه می دهد تا محتوای خود را در یک قاب نامرئی استفاده کنند. گزینه DENI امن ترین است، و از هر گونه استفاده از صفحه فعلی در یک قاب جلوگیری می کند. اما به طور معمول، SAMEORIGIN مورد استفاده قرار می گیرد، زیرا استفاده از فریم ها را فعال می کند، و آنها را به حوزه فعلی محدود می کند.

محدودیت های X-Frame-Options

  • برای فعال کردن گزینه SAMEORIGIN در یک وب سایت، هدر X-Frame-Options باید به عنوان بخشی از پاسخ HTTP برای هر صفحه جداگانه بازگردانده شود (نمی توان روی cross-site اعمال کرد).
  • X-Frame-Options از یک سری دامنه های مجاز پشتیبانی نمی کند، بنابراین با سایت های چند دامنه کار نمی کند که نیاز به نمایش محتوی قاب از بین آنها باشد.
  • فقط یک گزینه را می توان در یک صفحه استفاده کرد، برای مثال، ممکن است همان صفحه را به عنوان یک قاب در وب سایت فعلی و سایت خارجی نمایش ندهد.
  • گزینه ALLOW-FROM توسط تمام مرورگرها پشتیبانی نمی شود.
  • X-Frame-Options یک گزینه منسوخ در اغلب مرورگرها است.

آیا سایت شما آسیب پذیر به حملات clickjacking است؟

یک راه برای آزمایش این آسیب پذیری، ایجاد یک صفحه HTML و تلاش برای اضافه کردن یک صفحه حساس از وب سایت شما در یک iframe است. می توانید از کد زیر استفاده کند که در آسیب پذیری های OWASP نیز ارائه شده است:

<html>
<head>
<title>این صفحه برای clickjacking آسیب پذیر است</title>
</head>
<body>
<p>Website is vulnerable to clickjacking!</p>
<iframe src="http://www.yoursite.com/sensitive-page" width="500" height="500"></iframe>
</body>
</html>

سپس صفحه HTML را در یک مرورگر باز کرده و به صورت زیر ارزیابی کنید:

  • اگر وب سایت برای clickjacking آسیب پذیر باشد، محتوای این صفحه برای clickjacking آسیب پذیر است را مشاهده می کنید.
  • اگر شما محتوای صفحه حساس خود را نبینید، این صفحه به clickjacking آسیب پذیر نیست.

با این حال میتوان روش های دیگری را هم برای تست آسیب پذیر بودن وب سایت در برابر کلیک دزدی انجام داد تا از امنیت وب سایت خود اطمینان کافی را به دست آورد.

یوسف وفایی

فارغ التحصیل کارشناسی IT، علاقه مند به برنامه نویسی و علم امنیت، عاشق یادگیری حرفه های جدید، کنجکاو برای همه چیز، همچنین همیشه تلاش میکنم تا به هدفم برسم...

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


دکمه بازگشت به بالا