مایکروسافت هشدار داده است که مهاجمان از حملات تزریق کد ViewState برای نصب بدافزار استفاده میکنند. آنها با استفاده از کلیدهای ثابت ماشین ASP.NET که بهصورت آنلاین در دسترس قرار گرفتهاند، این حملات را انجام میدهند. این یک تهدید امنیتی جدی برای اپلیکیشنهای وب مبتنی بر ASP.NET محسوب میشود، زیرا میتواند به اجرای کدهای مخرب و نفوذ به سیستم منجر شود.
کارشناسان امنیتی مایکروسافت دریافتهاند که برخی توسعهدهندگان از کلیدهای امنیتی عمومی validationKey و decryptionKey که به صورت آنلاین در مستندات یا مخازن کد در دسترس هستند، در پروژههای خود بدون تغییر استفاده میکنند. این یک مشکل امنیتی جدی است، زیرا مهاجمان میتوانند از این کلیدهای شناختهشده برای دور زدن مکانیسمهای امنیتی، دستکاری ViewState و افشای اطلاعات حساس استفاده کنند.
ViewState در ASP.NET Web Forms برای حفظ دادههای کاربر بین بارگذاریهای صفحه استفاده میشود. اما اگر مهاجمان به کلید ماشین (Machine Key) دسترسی پیدا کنند، میتوانند ViewState را دستکاری کنند. آنها با ایجاد یک امضای دیجیتال معتبر اما مخرب (MAC)، حملات تزریق کد انجام داده و کدهای مخرب را به صفحات وب ارسال میکنند. این میتواند به اجرای دستورات غیرمجاز در سرور منجر شود و امنیت سایت را به خطر بیندازد.
مهاجمان از کلیدهای ماشین (Machine Keys) افشا شده در اینترنت برای تزریق کد مخرب در ViewState استفاده میکنند. آنها با ساخت یک MAC جعلی اما معتبر، ViewState مخرب ایجاد کرده و میتوانند کنترل سرور را در دست بگیرند یا دادههای کاربر را دستکاری کنند. این حملات معمولاً در برنامههای ASP.NET Web Forms رخ میدهد که به درستی پیکربندی نشده باشند.
اگر مهاجمان کلیدهای امنیتی صحیح (Machine Keys) را داشته باشند، میتوانند ViewState مخرب بسازند و از طریق درخواستهای POST آن را به سرور ارسال کنند. سرور بدون شناسایی ماهیت مخرب این دادهها، ViewState را رمزگشایی، اعتبارسنجی، در حافظه پردازش بارگذاری و اجرا میکند. این به مهاجمان اجازه میدهد کدهای مخرب خود را در سرور اجرا کرده و کنترل آن را به دست بگیرند.
به دلیل آسیبپذیری در ViewState و استفادهی مهاجمان از کلیدهای ماشین (Machine Keys) فاششده، آنها موفق به اجرای کد از راه دور (RCE) روی سرورهای IIS شدهاند. این امکان به آنها اجازه میدهد کدهای مخرب بیشتری روی سرور نصب کنند و کنترل بیشتری بر روی سیستم داشته باشند، که میتواند شامل سرقت دادهها، ایجاد دربهای پشتی، یا اجرای بدافزارهای دیگر باشد.
در دسامبر ۲۰۲۴، یک مهاجم ناشناس از یک کلید امنیتی (Machine Key) فاششده برای نفوذ به یک سرور IIS استفاده کرد. او با این روش، چارچوب مخرب Godzilla را روی سرور مستقر کرد که اجازه اجرای دستورات مخرب و تزریق شلکد را به مهاجم میدهد. این حمله، بخشی از یک بهرهبرداری پس از نفوذ (Post-Exploitation) است که هدف آن کنترل بیشتر روی سیستم قربانی و اجرای کدهای مخرب در سرور است.
مایکروسافت اعلام کرده است که بیش از ۳,۰۰۰ کلید امنیتی (Machine Keys) که بهصورت عمومی افشا شدهاند، میتوانند برای حملات تزریق کد ViewState مورد استفاده قرار بگیرند. این حملات به مهاجمان اجازه میدهند کدهای مخرب را روی سرورهای وب IIS اجرا کنند. این یک تهدید امنیتی جدی برای وبسایتهای مبتنی بر ASP.NET محسوب میشود.
در حالی که بسیاری از حملات تزریق کد ViewState که قبلاً شناخته شده بودند، از کلیدهای به سرقت رفته یا به خطر افتادهای استفاده میکردند که اغلب در فرومهای دارک وب فروخته میشوند، این کلیدهای افشاشدهی عمومی میتوانند خطر بیشتری داشته باشند، زیرا در چندین مخزن کد (Code Repositories) در دسترس هستند و ممکن است بدون هیچ تغییری در کدهای توسعه وارد شده باشند.
“برای مسدود کردن چنین حملاتی، مایکروسافت به توسعهدهندگان توصیه میکند که کلیدهای ماشین (Machine Keys) را بهصورت ایمن تولید کنند، از کلیدهای پیشفرض یا کلیدهایی که بهصورت آنلاین پیدا میشوند استفاده نکنند، عناصر machineKey و connectionStrings را رمزگذاری کنند تا از دسترسی به اطلاعات متنی رمزگذارینشده جلوگیری شود، برنامهها را به ASP.NET 4.8 ارتقا دهند تا قابلیت Antimalware Scan Interface (AMSI) فعال شود، و سرورهای ویندوز را با استفاده از قوانین کاهش سطح حمله (Attack Surface Reduction Rules) مانند مسدود کردن ایجاد Webshell در سرورها مقاومسازی کنند.
مایکروسافت همچنین مراحل دقیق حذف یا جایگزینی کلیدهای ASP.NET را در فایل پیکربندی web.config با استفاده از PowerShell یا کنسول IIS Manager به اشتراک گذاشته است و نمونههای کلید را از مستندات عمومی خود حذف کرده است تا بیشتر از این این روش ناامن را دلسرد کند.
Redmond هشدار داد که : اگر بهرهبرداری موفقیتآمیز از کلیدهای افشاشدهی عمومی رخ داده باشد، تغییر کلیدهای ماشین (Machine Keys) بهتنهایی برای رفع درهای پشتی (Backdoors) یا روشهای ماندگاری (Persistence) که توسط یک مهاجم یا سایر فعالیتهای پس از بهرهبرداری (Post-Exploitation) ایجاد شدهاند، کافی نخواهد بود و ممکن است نیاز به تحقیقات بیشتری باشد.
بهطور خاص، سرورهایی که به اینترنت متصل هستند (Web-Facing Servers) باید بهطور کامل مورد بررسی قرار گیرند و در مواردی که کلیدهای افشاشدهی عمومی شناسایی شدهاند، فرمت و مجدداً بهصورت آفلاین نصب شوند، زیرا این سرورها بیشترین خطر بهرهبرداری احتمالی را دارند.