آسیب پذیری Rce یا Remote Code Execution چیست ؟ | با ذکر مثال
- کورش سنایی
- ۲۲ مرداد ۱۴۰۲
- 5 دقیقه
اجرای کد از راه دور (RCE) یک نوع آسیبپذیری است که به هکران اجازه میدهد تا کد مخرب خود را در یک سیستم هدف از راه دور اجرا کنند و کنترل کامل بر آن را به دست بگیرند.در این مقاله آسیب پذیری Rce یا Remote Code Execution چیست ؟ به شما توضیح میدهیم که RCE میتواند برای اهداف مختلفی از جمله سرقت دادهها، خرابکاری و کنترل سیستم استفاده شود. چندین راه مختلف برای سوء استفاده از آسیبپذیری RCE وجود دارد. یک روش رایج شامل ارسال یک فایل مخرب به سیستم هدف است که هنگام باز شدن، کد مخرب را اجرا میکند. روش دیگر شامل سوء استفاده از یک آسیبپذیری در نرمافزار است که به هکر اجازه میدهد تا کد مخرب را در سیستم هدف اجرا کند و …. همچنین به همراه مثال عملی.
انواع RCE یا Remote Code Execution
همونطور که در بالا گفتم این باگ به روش های مختلفی میتونه اتفاق بیفته که نسبت به خلاقیت و توانایی هکر میتونه متفاوت باشه البته به غیر از اینها شرایط هم خیلی دخیل هست که ما از چه تکنیکی استفاده کنیم. رایج ترین روش های انجام آسیب پذیری Rce یا Remote Code Execution عبارتند از :
- سو استفاده از یک آسیب پذیری در نرم افزار
- ارسال یک فایل مخرب به سیستم هدف
- استفاده از یک حمله مهندسی اجتماعی برای فریب یک کاربر برای اجرای کد مخرب
تاثیرات آسیب پذیری RCE
RCE یک خطر امنیتی جدی است و میتواند عوارض زیادی برای افراد و سازمانها داشته باشد، بهخصوص اگر یک سیستم شامل زیرساختهای حیاتی یا دادههای حساس باشد. بنابراین، برای توسعهدهندگان و مدیران، داشتن روشهای امنیتی قوی، مانند اعتبارسنجی ورودی، جداسازی امتیازات و بهروزرسانیهای منظم نرمافزار برای جلوگیری از آسیبپذیریهای RCE، از اهمیت بالایی برخوردار است.
همونطور که متوجه شدید تاثیرات RCE میتواند به شدت به سیستم هدف بستگی داشته باشد اما میتواند شامل موارد زیر باشد:
- سرقت داده ها
- خرابکاری
- کنترل سیستم
- قطعی سرویس
- ….
دلایل به وجود آمدن آسیب پذیری RCE یا Remote Code Execution
در تصویر بالا یک آسیب پذیری ای رو مشاهده میکنید با نام Log4Shell که خوب کاری به معنا و مفهوم CVE و CVSS و … که در تصویر بالا میبینید ندارم چون اینجا جاش نیست. از تصویر بالا میخوام این رو برداشت کنید که Type این آسیب پذیری (Log4Shell) Remote Code Execution یا همون RCE هست و در بخش Severity ما یک چیزی داریم به اسم CVSS که از 0 تا 10 به شدت آسیب پذیری اختصاص داده میشه که خوب میبینید که به RCE شدت 10 رو داده در این مثال و خوب نسبت به impact و … این نمره بالا و پایین میشه خلاصه درگیرش زیاد نشید فقط میخوام بگم بالا تر از 10 نداریم در شدت آسیب پذیری 🙂 در ادامه برخی از دلایل به وجود آمدن این آسیب پذیری رو باهم بررسی میکنیم :
- اشکالات نرمافزار: اشکالات نرمافزار رایجترین دلیل RCE هستند. این اشکالات میتوانند در هر قسمتی از نرمافزار رخ دهند، از جمله سیستم عامل، مرورگر وب و برنامههای کاربردی.
- استفاده از رمزهای عبور ضعیف: رمزهای عبور ضعیف یک دلیل دیگر رایج RCE هستند. هکران میتوانند از رمزهای عبور ضعیف برای هک کردن سیستمها و اجرای کد مخرب استفاده کنند.
- حملات مهندسی اجتماعی: حملات مهندسی اجتماعی یک روش دیگر برای RCE هستند. در این حملات، هکران از ترفندها و حیلهگریها برای فریب کاربران در اجرای کد مخرب استفاده میکنند.
- وصله (patching): عدم استفاده از آخرین وصلههای امنیتی و نداشتن بهروزرسانیهای منظم در دستگاهها و نرم افزار ها، آنان را در برابر حملات rce آسیبپذیر میسازد.
روش های جلوگیری از باگ RCE یا Remote Code Execution
برای محافظت در برابر Rce میتوانید اقداماتی را انجام دهیدبا انجام این اقدامات میتوانید به محافظت در برابر RCE و سایر آسیبپذیریهای امنیتی کمک کنید :
- بهروز نگه داشتن نرمافزار: توسعهدهندگان نرمافزار اغلب بهروزرسانیهایی را برای رفع اشکالات نرمافزار منتشر میکنند. نصب این بهروزرسانیها میتواند به محافظت در برابر RCE کمک کند.
- استفاده از رمزهای عبور قوی: از رمزهای عبور قوی که حداقل 12 کاراکتر دارند و شامل حروف بزرگ و کوچک، اعداد و نمادها هستند، استفاده کنید.
- آگاه باشید از حملات مهندسی اجتماعی: از حملات مهندسی اجتماعی آگاه باشید و از باز کردن ایمیلهای ناشناس، کلیک کردن روی پیوندهای مشکوک و دانلود فایلهای از منبع ناشناس خودداری کنید.
نمونه باگ Rce در دنیای واقعی
در تصویر پایین شما یک Entry دارید که اگر با اجزای URL اشنا نیستید این ویدیو رو ببینید(فیلتر شکن رو روشن کنید.) به اسم 404.php این فایل در این وبسایت وردپرسی یک کد Reverse shell درونش قرار داده شده که خوب به ما این امکان رو میده که به صورت ریموت کد خودمون رو روی دامنه اجرا کنیم. اگر با دستورات لینوکسی آشنایی داشته باشید اگر ندارید دوره کار با کالی لینوکس رایگان مارو ببینید میبینید که از دستور ls استفاده شده برای لیست کردن محتوای این دایرکتوری و در نهایت تونستیم محتوای دایرکتوری رو بدون اجازه ببینیم 🙂 البته نسبت به دسترسی User میتونید دستورات متعددی رو پیاده سازی کنید.