آسیب‌پذیری در MikroTik و مدیریت نادرست دسترسی‌ها در Rest API

آسیب‌پذیری در MikroTik و مدیریت نادرست دسترسی‌ها در Rest API

تاریخ ایجاد

یک آسیب‌پذیری با شناسه CVE-2023-41570 در MikroTik RouterOS کشف شده است که منجر به عدم کنترل مناسب دسترسی در Rest API خواهد شد. MikroTik اخیرا یک سرور REST را به عنوان یک API جدید برای مدیریت روتر اضافه کرده است که یک جایگزین مناسب برای API اختصاصی هنگام خودکارسازی RouterOS می‌باشد. RouterOS  (در Mikrotik) یک سیستم‌عامل مبتنی بر لینوکس closed-source برای اجزای شبکه، به ویژه سوئیچ‌ها، روترها و فایروال‌ها است که در میکروتیک (مانند RouterBOARD) استفاده می‌شود و یا می‌توان آن را دانلود و بر روی سایر دستگاه‌ها و ماشین‌های مجازی نصب کرد. رابط‌های مدیریت RouterOS شامل SSH، MAC-Telnet، Winbox (یک ابزار اختصاصی برای ویندوز)، Webfig (یک رابط کاربری وب) و یک API اختصاصی (ISP ها دارای TR-069 هستند) می‌باشد. RouterOS از نسخه v7.1beta4، یک سرور REST نیز دارد. سرور REST به عنوان یک منبع فرعی(sub-resource) از Webfig در  /restراه‌اندازی می‌شود.
RouterOS  از پایگاه‌های اطلاعاتی احراز هویت و مجوز دسترسی کاربر محلی و از راه دور (از طریق RADIUS) پشتیبانی می‌کند. کاربران شامل گروه‌هایی می‌شوند که هر یک دارای مجموعه مجوزهای خاص خود هستند. به طور پیش‌فرض، فقط پایگاه داده محلی استفاده می‌شود و شامل سه گروه است: گروه یک: سطح دسترسی کامل و نامحدود به روتر، گروه دو: با دسترسی تقریبا کامل به جز دسترسی انتقال فایل (به/از خود روتر) و سیاست‌های کاربر(فقط نوشتن) و گروه سه: با دسترسی فقط خواندنی (به‌همراه امتیاز راه اندازی مجدد)؛ همچنین، به طور پیش فرض rest-api  یک مجوز خاص است که به همه گروه‌ها اعطا می‌شود. کاربران ممکن است محدود به ورود به سیستم از آدرس‌های IP یا شبکه‌های خاص باشند.
REST APIs توسط HTTP Basic authentication محافظت می‌شوند. جهت بهره‌برداری از این آسیب‌پذیری باید نام کاربری و رمز عبور معتبر داشت. نام کاربری باید rest-api داشته باشد (که به طور پیش فرض به همه گروه‌ها اختصاص داده می‌شود). در واقع در حالی که سایر رابط‌ها (SSH، Webfig و غیره) بررسی می‌کنند که آیا کاربر مجاز به ورود از طریق آن آدرس IP خاص است یا خیر، این مورد برای سرور REST صادق نیست. کاربران می‌توانند از هر آدرس IP به سرور REST دسترسی داشته باشند، حتی اگر در پایگاه داده کاربران مجاز نباشند.
جهت بهره‌برداری از این آسیب‌پذیری مهاجم باید نام کاربری و رمز عبور معتبر که دارای مجوز rest-api است، داشته باشد (اجازه ورود از طریق آدرس IP مهاجم را ندارد). همچنین فایروال باید از آدرس IP مهاجم اجازه دسترسی به رابط کاربری وب را بدهد. Webfig (واسط کاربری وب) باید فعال باشد: سرور REST بخشی از Webfig است. بطور پیش‌فرض همه گروه‌ها مجوز rest-api را دارند (هر کاربری مجاز است از REST API استفاده کند) و Webfig فعال است. هیچ راهی برای غیرفعال کردن سرور REST وجود ندارد، زیرا در Webfig یکپارچه شده است. معمولاً سرویس‌هایی مانند SSH یا APIهای اختصاصی در منوی «IP» -> «Services» با ورودی مستقل خود قرار دارند. حداقل باید یک پرچم (flag) در Webfig service www وجود داشته باشد تا سرور REST را بتوان به‌صورت انتخابی فعال کرد (خاموش پیش فرض). هنگامی که Webfig  فعال است، نقطه پایانی REST نیز در دسترس است و هر کاربر می‌تواند بدون در نظر گرفتن فیلتر IP پیکربندی شده در پایگاه‌داده کاربر، به آن دسترسی داشته‌ باشد.
گروه‌های کاربری با دسترسی فقط خواندن، دارای مجوزهای خطرناکی مانند sniff (جهت رهگیری ترافیک)، راه‌اندازی مجدد و خواندن اطلاعات حساس، مانند رمزهای عبور Wi-Fi یا کلیدهای IPSec pre-shared  می‌باشند. 

محصولات تحت تأثیر
این آسیب‌پذیری MikroTik RouterOS نسخه 7.1 تا 7.11 را تحت تاثیر قرار می‌دهد. 

توصیه‌های امنیتی
توصیه می‌شود کاربران در اسرع وقت نسبت به ارتقاء Mikrotik RouterOS به نسخه 7.12 اقدام نمایند. 

منبع خبر:


https://www.enricobassetti.it/2023/11/cve-2023-41570-access-control-vulnerability-in-mikrotik-rest-…;