همچنین شناخته شده به عنوان UI Redressing، نوعی حمله وب است که در آن مهاجم رابط کاربری یک وبسایت را به گونهای طراحی میکند که کاربر به صورت پنهانی بر روی چیزی کلیک کند که مهاجم قصد دارد. این حمله به مهاجم اجازه میدهد تا کاربران را فریب دهد تا بر روی المانهایی کلیک کنند که در واقع بخشی از وبسایت مهاجم است و نه آنچه که کاربر تصور میکند.
پنهان کردن محتوای واقعی: مهاجم رابط کاربری واقعی وبسایت هدف را در لایههای پنهان یا شفاف قرار میدهد، به طوری که کاربر بر روی آن کلیک کند بدون اینکه متوجه شود.
جعل کلیکها: با طراحی لایهها به گونهای که کاربر برروی دکمهها یا لینکهای مورد نظر مهاجم کلیک کند، مهاجم میتواند اقداماتی مانند ارسال درخواستهای غیرمجاز، تغییر تنظیمات، یا انجام اقدامات دیگر را انجام دهد.
مثال: فرض کنید وبسایت A به کاربران اجازه میدهد تا از طریق دکمه خاص، حساب خود را به روز کنند. مهاجم وبسایتی ایجاد میکند که به طور پنهانی دکمه "به روزرسانی حساب" وبسایت A را درون لایهای شفاف و غیرقابل مشاهده قرار میدهد. هنگامی که کاربر به وبسایت مهاجم میرود و برروی یک دکمه به ظاهر بیضرر کلیک میکند، درواقع برروی دکمه "به روزرسانی حساب" وبسایت A کلیک کرده است.
مهاجم: وبسایتی با ظاهری جذاب و دکمهای مانند "برنده شدن در مسابقه!" ایجاد میکند. این دکمه به طور مخفیانه برروی دکمه "انتقال وجه" وبسایت بانک قرار دارد.
<!-- The visible button on the attacker's site --> <button id="fakeButton">Win a Prize!</button> <!-- The hidden, transparent iframe covering the real button --> <iframe src="https://www.bank.com/transfer" style="opacity:0; position:absolute; top:0; left:0; width:100%; height:100%; border:none;"></iframe> document.getElementById('fakeButton').addEventListener('click', function() { });
فریب کاربر: کاربر به وبسایت مهاجم میرود و میبیند که یک دکمه به ظاهر جذاب برای شرکت در مسابقه با برنده شدن جایزه وجود دارد.
اجرای حمله: وقتی کاربر برروی دکمه "Win a Prize!" کلیک میکند، در واقع اون به دکمه "انتقال وجه" در وبسایت بانکی ارسال میشود. این عمل باعث میشود که پول از حساب کاربر به حساب مهاجم منتقل شود.
نتیجه: کاربر بدون اطلاع از اینکه برروی دکمهای که منجر به انتقال وجه شده است، کلیک کرده است، متضرر میشود.
سرقت اطلاعات حساس: با کلیک برروی المانهای پنهان شده، کاربران میتوانند اطلاعات حساس خود را افشا کنند.
تغییرات غیرمجاز: انجام عملیاتهای مالی یا تغییرات در تنظیمات حسابها به صورت غیرمجاز.
اجرای عملیاتهای غیرمجاز: ارسال درخواستهای غیرمجاز به سرور که ممکن است منجر به تغییر دادهها یا سوءاستفاده از حسابهای کاربری شود.
استفاده از X-Frame-Options Header: این هدر به مرورگرها میگوید که صفحه نباید درون iframe یا frame بارگذاری شود.
مثال:
X-Frame-Options: DENY
یا
X-Frame-Options: SAMEORIGIN
استفاده از CSP(Content Security Policy): با تنظیم سیاستهای CSP، میتوان از بارگذاری محتوا در iframeها از دامنههای غیرمجاز جلوگیری کرد.
مثال:
Content-Security-Policy: frame-ancestors 'self'
رعایت اصول طراحی امن: اجتناب از طراحی رابط کاربری که به راحتی قابل جعل باشد و استفاده از روشهای تعامل بصری واضح.
مکانیزمهای تایید: برای اقدامات حساس، مانند تغییرات مالی یا تنظیمات مهم، از تایید دومرحلهای یا سایر روشهای تایید امنیتی استفاده کنید.
این آسیبپذیری خطرناک است و میتواند به صورت موثر امنیت و حریم خصوصی کاربران را تهدید کند. اجرای تدابیر امنیتی مناسب و طراحی رابط کاربری بهینه میتواند به کاهش خطرات ناشی از این نوع حملات کمک کند.
مطلب بعدی: JavaScript Injection
taha daneshmand