مفهوم آسیب پذیری امنیت وب و جلوگیری از آن در نرم افزار تحت وب
سه شنبه 26 خرداد 1394امروزه اینترنت یکی از مهم ترین و گسترده ترین ارتباطات در سراسر جهان می باشد و نقش بسیار مهمی را ایفا می کند .
امروزه اینترنت یکی از مهم ترین و گسترده ترین ارتباطات در سراسر جهان می باشد . در جمع آوری دانش ،به اشتراک گذاری اطلاعات یا شبکه های اجتماعی نقش بسیار مهی ایفا می کند . از زمانی که همه چیز بصورت خودکار انجام شد و مردم ترجیح دادند همه کارها را نشسته در مقابل کامپیوتر انجام دهند،عصر اینترنت هم تهدید های امنیتی در وب به شکل هایی مانند هکر ، spammers و ویروس ها به ارمغان آورد .
در مرحله بعد ، آسیب پذیری و تهدیدات امنیتی که می توانند در برنامه های کاربردی یافت شوند و راه های جلوگیری از آن ها بررسی می شوند.
نحوه ایجاد یک سایت امن در ASP.Net
در این بخش انواع تهدیدات امنیتی و راه های متفاوتی جلوگیری از آن ارئه شده است .
حملات Code Injection
این کار بطور معمول با حدس نام کاربری و رمز عبور انجام می شود،سرقت نام کاربری و رمز عبور از لینک های ارتباطی non-SSL می باشد .
3 . پیشگیری از حملات code injection.
4 . زمان آخرین بازدید و و IP که کاربر برای اطمینان از اعتبار سنجی مجدد سایت مشاهده کرده ، نمایش داده می شود .کاربر را قادر می سازد که در صورت نیاز رمز عبور را تغییر دهد .
Web Parameter Tampering یا Parameter manipulation
Form fields ، View State و Query String در برابر این حمله آسیب پذیر هستند . کاربر مخرب می تواند اطلاعات حساسی را که از طریق این پارامتر ها ارسال شده اند را نگه داری کند و در عملکرد نرم افزار شما اختلال ایجاد می کند .
نحوه انجام آن بصورت زیر می باشد :
1 .استفاده از ابزار جستجوی شبکه برای خواندن اطلاعات حفاظت شده ای که درسراسر لینک های ارتباطی non-SSL مانند حمله Network eavesdropping ارسال شده اند .
2 . مهاجم میتواند شناسه Session را از Query String سرقت کند و به قسمت محدود شده دسترسی یابد .
3 . مهاجم می تواند cookie ها را سرقت کند و به قسمت های محدود شده دسترسی یابد .
نحوه پیشگیری از Web Parameter Tampering یا Parameter manipulation
1 . همیشه از SSL در اعتبار سنجی صفحات و در ماژول هایی که برخی transactionهای امن را انجام می دهند، استفاده شود .
2 . برای ذخیره سازی تایید اعتبار شناسه Session از cookieهای مداوم استفاده نشود .
3 . به عنوان کاربر،گزینه Remember password را در صفحه Logon یک سیستم عمومی انتخاب نکنید .
Network eavesdropping
مهاجم می تواند از برخی ابزار نظارت بر شبکه برای دسترسی به اطلاعات حساسی که از بسته اطلاعاتی که بین کاربر و سرور ارسال می شوند استفاده کند .
افشای اطلاعات (Information disclosure)
این زمانی رخ می دهد که نرم افزا ما از تکنیک مدیریتی ضعیفی استفاده کند . برای مثال ، نرم افزار ممکن است زمانی که مدیریت مناسب نداشته باشیم، جزئیات فنی با جزئیات استثنایی را از بین ببرد. جزئیاتی مانند نام پایگاه داده،طرح جزئیات،جزئیات مسیر شبکه و ... ممکن است در معرض خطر قرار گیرند .
نحوه انجام آن بصورت زیر می باشد :
مهاجم می تواند توسط ارائه ورودی های مناسب و ایجاد موارد استثنا با اطلاعات حساس از نرم افزار شما بهره برداری کند .
متن زیر را به عنوان یک پیغام استثنا در نظر بگیرید :
System.Data.SqlClient.SqlException: Invalid object name 'Employees1'.
پیام بالا به روشنی می گوید ، هیچ شی در پایگاه داده بنامEmployees1 وجود ندارد. نرم افزاری که در برابر Sql injection اسیب پذیری دارد می تواند با استفاده از جزئیات بالا براحتی بهره برداری کند . مهاجم می تواند نام های مختلف جدول ها حدس بزند خصوصا نام هایی که صفحه ارئه میدهد و در نهایت نام صحیح جدول را به دست می آورد و آسیب ایجاد می کند .
نحوه پیشگیری از آسیب پذیری افشای اطلاعات
1 . پیام های عمومی را در موارد استثنا نمایش می دهد. زمانی که هر خطایی رخ دهد می توانید جزئیات استثنا را مشاهده کنید و به منظور اشکال زدایی Trace کنید .
2 . زمانی که خطایی رخ می دهد مسیر خود را به صفحه خطای عمومی تغییر دهید .
3 . هرگز در Web.Config ویژگی mode را در <customErrors> برابر با Off قرار ندهید.
4 . پیغام خطا را با اطلاعات خاص که مهاجم را به هدفش نزدیک می کند ارائه ندهید. برای مثال،هرگز در صفحه log in پیام هایی مانند “Your userid is invalid” یا “Your password does not match the typed userid” نمایش ندهید . می توانید از پیامی مانند “Login failed. Try again” استفاده کنید .
- ASP.net
- 3k بازدید
- 9 تشکر