انواع حملات تغییر مسیرهای نامعتبر در برنامه‌های کاربردی وب

آشنایی با حملات تغییر مسیرهای نامعتبر


با توجه به اینکه حملات تغییر مسیرهای نامعتبر یا همان Invalidated Redirects And Forwards، ازنظر سازمان OWASP به‌عنوان یکی از خطرناک‌ترین حملات در امنیت سایت شناخته می‌شود. در این مقاله قصد داریم تا با موضوع این حملات و انواع گوناگون آن آشنا شویم.

در فضای کنونی اینترنت که غالباً کاربران عادی و غیرمتخصص، مخاطب آن هستند و کمتر به تغییر مسیرهای توجه می‌کنند و این امر باعث شده است تا هکرها با استفاده از این نقطه‌ضعف کاربران، مشکلات امنیتی جدی را به وجود آورند. درصورتی‌که کاربری وارد وب‌سایت شود که ازلحاظ امنیتی، نتواند اعتبارسنجی‌های لازم را برای تغییر مسیرهای مناسب انجام دهد، هکر می‌تواند قربانیان را به وب‌سایت‌های مخرب هدایت کرده و یا حتی آسیب‌های جدی را به کاربران وارد نماید.

در حالت کلی می‌توان بیان کرد که حملات تغییر مسیرهای نامعتبر، با اجازه دادن به داده‌های نامطمئن از یک URL، برای تصمیم‌گیری صفحه مقصد کاربر ایجاد می‌شوند. حملات تغییر مسیرهای نامعتبر در ترکیب با حملات مهندسی اجتماعی برای اهداف خطرناک و مخربی مانند فریب دادن کاربران برای دانلود نرم‌افزارهای مخرب، هدایت به سایت‌های فیشینگ و یا Forward کاربران برای دسترسی به صفحات غیرمجاز استفاده می‌گردد. ازآنجایی‌که URL های مخرب، نام سایت اصلی را در URL خود، دارند؛ می‌توانند اعتماد کاربران را به دست آورند و سپس عملیات مخرب خود را انجام دهند.

[caption id="attachment_697" align="aligncenter" width="300"]تغییر مسیرهای نامعتبر در سایت حملات تغییر مسیر های نامعتبر[/caption]

یک مثال آموزشی از حملات تغییر مسیرهای نامعتبر


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

http://www.Example.com/redirect?url=google.com


در آدرس بالا نگرانی اصلی با این تغییر مسیر این است که از یک پارامتر url برای تصمیم‌گیری مقصد استفاده‌شده است. در تغییر مسیر آدرس بالا ممکن است خطری وجود نداشته باشد، ولی هکر می‌تواند به‌راحتی با استفاده از ویژگی تغییر مسیر در صفحات وب، برای ارسال یک لینک دیگر استفاده نماید. برای مثال، هکر می‌تواند آدرس بالا را با ویژگی تغییر مسیر، به‌صورت زیر در جهت منافع خود Redirect نماید.

http://www/Example.com/redirect?url=hackweb.com


در چندین سال اخیر وب‌سایت‌های معروفی همچون AOL، Google و eBay مورد حملات تغییر مسیرهای نامعتبر شده‌اند؛ که باعث خسارات فراوانی به این شرکت‌ها گردیده است.

[caption id="attachment_698" align="aligncenter" width="256"]شناسایی حملات تغییر مسیرهای ناامن تشخیص حملات تغییر مسیر[/caption]

تشخیص و پیشگیری از حملات تغییر مسیرهای نامعتبر


با توجه به نوشتار و مقالاتی که سازمان OWASP منتشر نموده است، تشخیص این نوع حملات نسبتاً آسان خواهد بود. برای تشخیص این نوع حملات نیاز است تا هر کدی که از هدایت یا Forwarding استفاده می‌کند را بررسی کنیم. یک جست‌وجوی ساده از فایل‌های کلی دایرکتوری وب‌سایت، برای پیدا کردن کدهایی که کاربر را تغییر مسیر یا هدایت می‌کنند، می‌تواند تمام آسیب‌پذیری‌های احتمالی را نشان دهد. برایم مثال، یک وب‌سایت که از کد نویسی PHP برای طراحی وب‌سایت استفاده می‌کند، از تابع Header جهت هدایت استفاده می‌نماید.

یک روش آسان دیگر که توسط طراحان استقبالی بیشتر از آن می‌شود، این است که وبمستران با استفاده از خدمات آنلاین دیگر وب‌سایت‌ها که تشخیص مسیریابی و آنالیز سایت را انجام می‌دهند، می‌توانند تغییر مسیرهایی که مربوط به کدهای 300 و 307 پروتکل HTTP است را تشخیص دهند. برای مثال سایت gtmetrix.com آنالیز کاملی از وب‌سایت را برای وبمستران فراهم می‌آورد و یکی از خدمات این سایت، مشخص نمودن تغییر مسیرها در وب‌سایت است.

درهرصورت اگر یک پارامتر تغییر مسیری را ایجاد نماید، باید حتماً موردبررسی قرار گیرد. سازمان OWASP برای جلوگیری از تغییر مسیرها و هدایت‌ها، سه مرحله ساده را بیان نموده است که در زیر بیان‌شده‌اند.

  • از تغییر مسیرها (Redirect) و هدایت‌ها (Forwarding) اجتناب کنید.

  • از ورودی کاربر برای تعیین مقصد استفاده نکنید.

  • اگر از پارامترهای مقصد نمی‌توان اجتناب کرد، حتماً بررسی شود که مقادیر ارائه‌شده برای کاربر، مجاز و معتبر باشد.


گاهی ممکن است به‌طور کامل نتوان از تغییر مسیرها و هدایت‌ها اجتناب کرد، بنابراین باید توجه داشت که مقادیر ارائه‌شده حتماً مجاز و معتبر باشند. روش‌های گوناگونی برای جلوگیری استفاده از داده‌های نامعتبر وجود دارد که در زیر بیان‌شده‌اند.

  • ایجاد یک لیست سفید یا Whitelist از صفحات مجاز وب‌سایت یا سایت‌های خارجی (توجه داشته باشید که نباید از لیست‌های سیاه استفاده نمود.)

  • فقط اجازه تغییر مسیر یا هدایت در شرایط مناسب و خاص داده شود.

  • از فرهنگ لغت یا دیکشنری برای نشان دادن مقادیر به صفحات یا سایت‌های معتبر استفاده کنید (به‌عنوان‌مثال، بجای استفاده از عبارت Home از Home.php استفاده نمایید.)

  • تغییر مسیرهای که مورداستفاده قرار نمی‌گیرند را غیرفعال نمایید.

  • تمامی درخواست‌های HTTP برای تغییر مسیری که استفاده نمی‌شود را اسکن نموده و آن‌ها را نادیده گرفته یا Ignore نمایید.


[caption id="attachment_700" align="aligncenter" width="256"]تشخیص تغییر مسیرهای نامعتبر در امنیت سایت شناسایی تغییر مسیرها در سایت ها[/caption]

درحالی‌که سایر کلاه‌برداری‌های فیشینگ ممکن است وجود داشته باشد، باید به این موضوع توجه داشت که حملات تغییر مسیرهای نامعتبر بسیار خطرناک بوده و هکر می‌تواند پسوردهای کاربر را به سرقت برده و یا حتی فایل‌های مخربی را با ترغیب کاربر بر روی سیستم او بارگذاری نماید و حملات دیگری را به وجود آورد.

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

همچنین طراحان و برنامه نویسان باید حتماً وب‌سایت‌ها را با حداقل تغییر مسیرها طراحی نمایند و مسائلی که در بالا به آن اشاره شد را در اولویت کاری خود قرار دهند.

انواع حملات تغییر مسیرهای نامعتبر


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

Comments

Popular posts from this blog

انواع حملات CSRF یا حملات جعل درخواست فرا وبگاهی در برنامه‌های کاربردی وب

آشنایی با دستورات کاربردی MySQL برای حملات SQL Injection بخش ششم

آشنایی با مفهوم اولیه پایگاه داده و دلیل استفاده از پایگاه‌های داده