اجرای کد از راه دور (RCE)
اجرای کد از راه دور (RCE) یکی از آسیبپذیریهای بحرانی است که در آن ورودی کاربر وارد یک فایل یا رشته میشود و سپس توسط مفسر زبان برنامهنویسی اجرا میشود. این رفتار معمولاً توسط توسعهدهندگان وب برنامهها غیرمنتظره است. حملات RCE میتوانند به حملات تمام عیار تبدیل شوند و امنیت برنامه وب و سرور را به خطر بیندازند. همچنین، RCE میتواند تسهیل افزایش سطح دسترسی، جابجایی شبکه و ایجاد ماندگاری را به همراه داشته باشد که شدت آن را به سطح بالا یا بحرانی میرساند.
روشهای مختلف اجرای کد از راه دور:
-
- حمله تزریق: بسیاری از برنامهها ورودی کاربر را برای اجرای دستورات قبول میکنند. مهاجمان از این آسیبپذیری با ارائه دادههای ورودی عمداً نادرست برای اجرای کد دلخواه بهره میبرند.
- حمله عدم تعیین حد: برنامهها اغلب از بلوکهای حافظه ثابت برای ذخیره داده استفاده میکنند. نقص در تخصیص حافظه میتواند به مهاجمان اجازه دهد تا ورودیهایی ارائه دهند که خارج از بافر را بازنویسی کنند، از جمله کد اجرایی یا مخرب.
- ارزیابی کد از راه دور: برخی از توابع که کد را ارزیابی میکنند ورودی کاربر را قبول میکنند و این آنها را به بهرهبرداری آسیبپذیر میکند.
نمونههایی از آسیبپذیریهای RCE:
-
- Apache Struts (نشت اطلاعات Equifax): آسیبپذیری در فریمورک Apache Struts منجر به نشت اطلاعات شخصی حساس میلیونها فرد شد.
- Shellshock (Bash): آسیبپذیری در شل Bash که امکان اجرای کد دلخواه را فراهم میکرد و سیستمهای مبتنی بر یونیکس را تحت تأثیر قرار داد.
- Eternal Blue (WannaCry Ransomware): اکسپلویت NSA که به نشت اطلاعات توسط گروه Shadow Brokers منجر شد و گسترش سریع باجافزار WannaCry را تسهیل کرد.
- Heartbleed (OpenSSL): آسیبپذیری در کتابخانه OpenSSL که امکان دسترسی به اطلاعات حساس از حافظه سرور را فراهم میکرد.
روشهای جلوگیری:
-
- بهروزرسانی منظم نرمافزارها و سیستمها با پچهای امنیتی.
- انجام بازبینی کد و استفاده از ابزارهای تحلیل استاتیک برای شناسایی و رفع آسیبپذیریها.
- اجرای تقسیمبندی شبکه برای محدود کردن دسترسی به سیستمهای حیاتی.
- استفاده از فایروالهای برنامه وب (WAF) برای فیلتر و نظارت بر ترافیک HTTP به برنامههای وب و مسدود کردن تلاشها برای بهرهبرداری.