امروز عصر، روی فید اسکات گاتری، معاون مایکروسافت در توسعه تکنولوژی دات نت، خبری مبنی بر ضعف امنیتی NET Framework. قرار گرفت…
این ضعف امنیتی در کلیه نسخه های ASP.NET از 1.1 تا 4.0 موجود می باشد. این ضعف امنیتی در آخرین ساعات روز جمعه در یک کنفرانس امنیتی اعلان شده است…
این ضعف امنیتی قادر به چه کاریست؟
مهاجم از طریق نرم افزارهای تولید شده توسط ASP.NETفایل هایی نظیر web.config که عموما حاوی اطلاعات مهم و محرمانه می باشد را دانلود نماید! همچنین مهاجم بوسیله این ضعف امنیتی قادر به رمزگشایی اطلاعات رمزنگاری شده ارسال شده به سمت کلاینت نظیر viewstate خواهد بود.
این ضعف امنیتی چگونه کار میکند؟
پیش از هرچیز باید با برخی واژه های علم رمزنگاری آشنا شویم.
oracle: به صورت تئوری میتوان آن را یک Black Box نامید که طی پروسه رمزنگاری وظیقه پاسخ دادن رندم از بین توزیع یکنواخت دامنه خروجی را داراست. oracle موضف است به کلیه درخواست های این حوزه پاسخ دهد.
حال ضعف ASP.NET در بخش oracle رمزنگاری است که اجازه می دهد تا مهاجم متن رمز شده را به سمت سرور ارسال نماید و پاسخ را پیرامون اینکه متن به درستی از حالت رمز درآمده با نه را تحت کدی که از طرف سرور برمی گردد دریافت نماید.
بدین صورت مهاجم شروع به ارسال متن های مختلف به صورت آزمون و خطا خواهد کرد و بر اساس پاسخ سرور متوجه متن از رمز درامده خواهد شد.
و اما راه حل مقابله با این ضعف:
خیلی ساده است: اولین راهکار اینه که بخش <customErrors> را در فایل web.config تنظیم نمایید تا تمام خطاهای اتفاق افتاده کاربر را به سمت یک صفحه هدایت نماید. چرا؟ زیرا مهاجم متوجه نوع خطا و کد خطا نگردد، اگر فقط برخی خطاها موجب هدایت کاربر به سمت صفحه اعلان خطا گردد، خیلی خطاهای دیگه بدون درنظرگرفته شدن به مهاجم اعلام می شود و نمایش کد و متن خطا یکی از موهبات الهی برای مهاجم است.
مثال:
wow! thanx
بسیار متشکر استاد