Clickjacking حملهای است که کاربر را فریب میدهد تا بر روی عناصر مختلف صفحه وب که یا نامرئی هستند و یا تبدیل به یک عنصر دیگر میشوند، کلیک کند. این امر میتواند منجر به دانلود ناخواسته بدافزار، بازدید از وبسایتهای مخرب، ارائهی اطلاعات مهم، انتقال مبلغ یا خرید آنلاین گردد.
به طور معمول، کلیک جکینگ با به نمایش در آوردن یک صفحه نامرئی یا عناصر HTML در داخل یک ifram، در بالای قسمتی که کاربر میتواند ببیند، انجام میشود. کاربر بر این باور است که بر روی صفحات قابل مشاهده کلیک میکند، اما در حقیقت در حال کلیک بر روی عناصر نامرئی در یک صفحه اضافی است که به قسمت بالایی آن منتقل شده است.
ممکن است این صفحه نامرئی، یک صفحه مخرب باشد یا یک صفحه غیر قانونی که کاربر قصد بازدید از آن را ندارد. به عنوان مثال یک صفحه بر روی سایت بانک کاربر که عمل انتقال مبلغ، در آن مجاز است.
انواع مختلف کلیک جکینگ به شرح زیر است:
- likejacking: تکنیکی است که در آن دکمه “like” فیسبوک دستکاری شده و باعث میشود صفحهای که کاربر قصد ندارد آن را لایک کند، لایک شود.
- Cursorjacking: در این روش مکان نما بر اساس موقعیت کاربر، تغییر میکند. این روش، بر اساس نقطه ضعفهای Flash و Firefox بنا شده که در حال حاضر این ایرادات برطرف شده است.
مثالهایی از حمله Clickjacking
- مهاجم، صفحهای جذاب ایجاد میکند و به کاربر پیشنهادهایی در مورد سفر میدهد.
- مهاجم بررسی میکند که آیا کاربر به سایت بانک خود وارد لاگین شده یا خیر و اگر لاگین شده، صفحهای که کاربر را قادر به انتقال وجه میکند را لود میکند.
- صفحه انتقال بانک در یک iframe نامرئی در قسمت بالای صفحه جایزه رایگان نشان داده میشود به همراه دکمه “confirm transfer” که دقیقا بر روی دکمه “دریافت جایزه” برای کاربر قابل مشاهده است.
- کاربر از صفحه دیدن میکند و بر روی دکمه “رزرو سفر رایگان” کلیک میکند.
- در حقیقت، کاربر بر روی iframe نامرئی و دکمه “انتقال وجه” کلیک میکند و انتقال مبلغ به حساب مهاجم انجام میشود.
- کاربر به صفحهای در مورد دریافت رایگان هدیه هدایت میشود و هیچ اطلاعی ندارد که چه اتفاقی در حال افتادن است.
در این مثال، نشان داده شده که در حمله کلیک جکینگ، یک عملکرد مخرب (در این مثال روی وب سایت بانک) قابل ردیابی نیست زیرا کاربر آن را طوری انجام میدهد که گویا به طور قانونی وارد حساب خود شده است.
چطور میتوان کلیک جکینگ را کاهش داد؟
دو روش کلی جهت دفاع در برابر clickjacking وجود دارد:
- Client-side- method: رایجترین آن Frame Busting نام دارد. Client-side methods در برخی موارد میتواند موثر باشد، اما به این دلیل که به راحتی میتوان از آن عبور کرد، نمیتواند بهترین روش باشد.
- Server-side-method: متداولترین آن X-Frame-Option است. Server-side methods به عنوان یک روش موثر در دفاع در برابر کلیک جکینگ، توسط متخصصان امنیتی، توصیه میشود.
آیا سایت شما در برابر clickjacking آسیبپذیر است؟
یک روش اصلی جهت بررسی این که آیا سایت شما در برابر clickjacking آسیب پذیر است یا خیر، ایجاد یک صفحه HTML و تلاش جهت قرار دادن یک صفحه مهم از سایت خود در داخل iframe است. البته باید مد نظر داشت که کد تست بر روی سرور وب دیگری اجرا شود، زیرا این یک رفتار معمول در حملات clickjacking است.
میتوانید از کد زیر که قسمتی از راهنمای تست WASP است استفاده کنید:
صفحه HTML را در یک مرورگر مشاهده نمایید و میتوانید به شرح زیر ارزیابی کنید.
- در صورتی که با پیام “وب سایت در برابر clickjacking آسیبپذیر است”، روبرو شدید و در قسمت زیر آن محتوای پیج مهم خود را مشاهده نمودید، این صفحه در برابر clickjacking آسیبپذیر است.
- اما در صورتی که تنها پیام “وب سایت در برابر clickjacking آسیبپذیر است” ظاهر شد ولی محتوایی از پیج مهم سایت، قابل مشاهده نبود، این صفحه در برابر انواع سادهی clickjacking آسیبپذیر نیست.
قابل ذکر است، آزمایشهای دیگری نیز برای مشاهده اینکه از کدام روشهای ضد کلیک جکینگ استفاده میشود، و آیا توسط مهاجمان قابل عبور هست یا خیر، میبایست انجام شود.