اخبار داخلی آرمان داده پویان

مقالات

دزدیدن کلیک یا Clickjacking چیست؟

X-Frame-Options

دزدیدن کلیک یا Clickjacking چیست؟

دزدین کلیک یا همان Clickjacking حملهای است که در آن مهاجم با گمراه کردن کابر باعث میشود تا بر روی لینک، ویدئو، تصویر، دکمه و یا هرچیز دیگری در یک صفحه وب که به ظاهر خطری ندارد، کلیک نماید و با این کلیک مهاجم را به مقصودش برساند. برای روشن شدن این موضوع مثالی میزنیم. مهاجم یک صفحه وب با استفاده از HTML طراحی میکند. با استفاده از کد HTML، صفحه وبسایت شما را در قالب iframe در صفحهی ساختگی بالا میآورد. خب حالا صفحهای داریم که کاملا مثل سایت شماست ولی در واقع یک iframe از سایت شما می‌باشد. این موضوع برای بازدیدکنندگان سایت شما یک تهدید جدی محسوب خواهد شد، زیرا صفحهی جعلی به ظاهر سایت شماست و خرابکاران میتوانند کلیکهای بازدیدکنندگان را در جهت پیشبرد مقاصد خود بدزدند. برای فهم بهتر این موضوع کدهای HTML برای ساختن این صفحه جعلی را ببینید.

راههای پیشگیری از دزدیدن کلیک

برای پاسخ به این موضوع باید بگوییم دو سمت را در این حمله بایستی در نظر بگیریم. یکی سمت کاربر و دیگری سمت وب سرور و در واقع صاحبان و مدیران وبسایتها. یک مدیر وبسایت با به کارگیری راهکارهای امنیتی میتواند تا حدود زیادی امنیت بازدیدکنندگان خود را تامین کنند. این موضوع را توضیح خواهیم داد.

سمت کاربر

باید این موضوع را متذکر شویم که در سمت کاربر اقدامات چندان موثری نمیتوان انجام داد و بهترین و موثرترین روش در سمت کاربران، آموزش آنها میباشد. اینکه بر روی هر لینکی در هر سایتی کلیک ننمایند. به طور مثال اگر در یک وبسایت دکمهای وجود داشت و روی آن نوشته شده بود جایزه، ممکن است با کلیک بر روی آن دچار این حمله شوند. اما یکی از راهکارهایی که برای کاربران وجود دارد و چندان هم موثر نیست Framebusting میباشد. این یک روش قدیمی است که با استفاده از جاوااسکریپت، ناوشگر کاربر تشخیص میدهد که آیا صفحهای که میخواهد بارگذاری نماید در یک iframe است یا خیر. اگر جواب مثبت باشد یا آن را بارگذاری نمیکند و یا از صفحه اصلی(والد) بارگذاری مینماید. برای ناوشگرهای قدیمی که از سرآیندهای امنیتی HTTP پشتیبانی نمینمایند این تنها راهکار میباشد. جاوااسکریپتهای متعددی برای این منظور وجود دارند اما این تنها جاوااسکریپتی است که  انجمن OWASP آن را تایید کرده است.

 

<script type="text/javascript">
   if (self === top) {
       var antiClickjack = document.getElementById("antiClickjack");
       antiClickjack.parentNode.removeChild(antiClickjack);
   } else {
       top.location = self.location;
   }
script>

سمت سرور

همان‌طور که قبلا هم گفتیم شما می‌توانید از بازدیدکنندگان وب‌سایت‌تان در مقابل حملات Clickjacking محافظت نمایید. یکی از راهکارها پیکربندی سرآیند X-Frame-Options در وب‌ سرور می‌باشد. اما چطور این سرآیند می‌تواند از حمله Clickjacking جلوگیری نماید؟ همان‌طور که گفتیم یک مهاجم بعد از ساختن صفحه جعلی سایت شما را به صورت iframe در آن صفحه بالا می‌آورد. حال اگر در وب سرور خود سرآیند امنیتی X-Frame-Options را پیکربندی نمایید دیگر اجازه نخواهید داد تا سایت شما به صورت iframe در صفحه‌ی HTML دیگری بارگذاری شود. زمانی که بخواهید این سرآیند را در وب سرور و در فایل پیکر‌بندی HTTP تنظیم نمایید می‌توانید یکی از این سه حالت را انتخاب نمایید:

DENY (رد کردن): این حالتی است که بالاترین امنیت را فراهم خواهد آورد و پیشنهاد می‌گردد انتخاب نمایید.
SAMEORIGIN (اصل یکسان داشتن): در این حالت تنها به وب سایت خود چنین اجازه‌ای خواهید داد.
ALLOW-FROM (اجازه دادن- به): تنها به سایت‌هایی که می‌خواهید و ذکر می‌کنید اجازه‌ی چنین کاری را خواهید داد.

اما نکته‌ی مهمی که وجود دارد این است که اگر ناوشگر کاربر از این سرآیند پشتیبانی نکند، آن را در نظر نگرفته و به کار خود ادامه می‌دهد. می‌توانید در عکس پشتیبانی و یا عدم پشتیبانی ناوشگرهای مختلف را می‌توانید مشاهده نمایید.

پشتیبانی و یا عدم پشتیبانی ناوشگرهای مختلف از سرآِیند X-Frame-Options

یکی دیگر از سرآیندهایی که در خصوص حملات Clickjackin موثر است سرآیند content-security-policy میباشد که شرح آن را میتوانید در سایت آرمان داده پویان مطالعه بفرمایید. از طریق پیکربندی دستورالعمل (directive) موسوم به frame-ancestors در سرآیند content-security-policy می‌توانید از حملات clickjacking پیشگیری نمایید. مانند قبل سه حالت وجود خواهد داشت:

Content-Security-Policy: frame-ancestors ‘none’;

یعنی صفحات سایت شما نمیتواند در iframe قرار گیرد، که مشابه حالت Deny در سرآیند X-frame میباشد.

Content-Security-Policy: frame-ancestors ‘self’;

یعنی صفحات سایت شما تنها در iframe در سایت خودتان نمایش داده خواهد شد، که مشابه حالت Sameorigin در سرآیند X-frame میباشد.

Content-Security-Policy: frame-ancestors [source] [someOtherSource];

یعنی صفحات سایت شما تنها در iframe در سایتهایی که مشخص کردهاید بارگذاری خواهد شد، که مشابه حالت Allow-From در سرآیند X-frame میباشد.

Content-Security-Policy: frame-ancestors [source] [someOtherSource];

ناوشگرهایی که از دستورالعمل frame-ancestors پشتیبانی می‌نمایند

آرمان داده پویان در زمینه‌ سنجش آسیب‌پذیری (تست نفوذ) و ارزیابی امنیتی خدمات ارزشمندی را به سازمان شما ارائه خواهد داد.

تعداد بازدید: 470


تازه ترین ها