عنوان:

‫خطرات به‌همراه استفاده از ASP.NET machine keys ثابت


نویسنده: وحید نصیری
تاریخ: ۱۴۰۳/۱۱/۲۰ ۰۸:۲۵
آدرس: www.dntips.ir

کلیدهای ماشین ASP.NET افشا شده و حملات تزریق کد ViewState

  • آسیب‌پذیری: مایکروسافت بیش از ۳۰۰۰ کلید ماشین ASP.NET افشا شده را شناسایی کرده‌است. این کلیدها می‌توانند در حملات تزریق کد ViewState مورد سوءاستفاده قرار گیرند.
  • نوع حمله: این حملات با استفاده از کلیدهای افشا شده، نوعی حمله تزریق کد ViewState هستند.
  • سطح خطر: کلیدهای افشا شده در مقایسه با کلیدهای به خطر افتاده/سرقت شده (که اغلب در انجمن‌های دارک وب فروخته می‌شوند) خطر بالاتری دارند، زیرا:
    • آنها به راحتی در چندین مخزن کد در دسترس هستند.
    • ممکن است ناخواسته و بدون تغییر در کد توسعه قرار گیرند.

مدیریت کلیدهای ماشین ASP.NET برای پیشگیری از تزریق کد
این بخش نحوه مدیریت کلیدهای ماشین ASP.NET را برای جلوگیری از حملات تزریق کد، با تمرکز بر دو سناریو توضیح می‌دهد: مزارع وب و سرورهای تکی.
مزارع وب (سرورهای متعدد):
  • مقادیر کلید ماشین ثابت در عنصر <machineKey> فایل web.config استفاده می‌شوند تا رمزگذاری/رمزگشایی ViewState به طور مداوم در چندین سرور در یک مزرعه وب تضمین شود. این امر ضروری است؛ زیرا درخواست‌ها می‌توانند توسط سرورهای مختلف در مزرعه انجام شوند.
  • برای به‌روزرسانی کلیدهای ماشین، مقادیر موجود را در همه سرورهای مزرعه با استفاده از IIS Manager یا PowerShell بچرخانید.
  • مهم این است که از همان مقادیر کلید تولید شده جدید در هر سرور مزرعه استفاده کنید.
سرور تکی:
  • مقادیر کلید ماشین ثابت در عنصر <machineKey> برای یک سرور تکی که برنامه ASP.NET را میزبانی می‌کند، استفاده می‌شوند.
  • حذف عنصر <machineKey> از فایل web.config باعث می‌شود که برنامه به مقادیر کلید ماشین تولید شده خودکار برگردد. این مقادیر در رجیستری کامپیوتر ذخیره می‌شوند.
  • عنصر <machineKey> را می‌توان از طریق فایل web.config یا کنسول IIS Manager حذف کرد.




مشاهده مطلب اصلی