آسیب پذیری روز صفر Atlas VPN

آسیب پذیری روز صفر Atlas VPN

تاریخ ایجاد

یک آسیب‌پذیری روز صفر (zero-day) در Atlas VPN که بر روی کاربران لینوکس تاثیر دارد، اطلاعات واقعی IP کاربر را به‌راحتی توسط بازدید از یک وب‌سایت فاش می‌کند. Atlas VPN یک محصول وی‌پی‌ان (VPN) است که یک راه‌حل اقتصادی بر پایه WireGuard ارائه می‌دهد و تمامی سیستم‌عامل‌های اصلی را پشتیبانی می‌کند. AtlasVPN، که یک دیمون را در سیستم‌عامل لینوکس اجرا می‌کند، همچنین یک سرور HTTP برای پذیرش دستورات رابط خط فرمان (CLI) اجرا می‌کند. این پیش‌فرض با 127.0.0.1:8076 متصل است. مشخص شد که این سرور HTTP هنگام اجرای دستورات هیچ احراز هویتی ندارد. سرور HTTP انتهای 127.0.0.1:8076/connection/stop را اجرا می‌کند که می‌تواند یک درخواست POST را دریافت کند. این کار می‌تواند برای قطع اتصال AtlasVPN استفاده شود.
در یک نمونه عملی از (exploit) به اشتراک گذاشته شده در Reddit، یک محقق توضیح داده است که کلاینت لینوکس Atlas VPN، به خصوص آخرین نسخه 1.0.3، یک نقطه پایان واسط برنامه‌نویسی (API) دارد که در localhost (127.0.0.1) به پورت 8076 گوش می‌دهد. این API یک رابط خط فرمان (CLI) برای انجام اقدامات مختلف ارائه می‌دهد، مانند قطع اتصال یک جلسه وی‌پی‌ان با استفاده از آدرس http://127.0.0.1:8076/connection/stop. با این حال، این API هیچ احراز هویتی انجام نمی‌دهد و به هر کسی اجازه می‌دهد تا دستوراتی به CLI صادر کند، حتی وب‌سایتی که شما دارید بازدید می‌کنید. یک کاربر Reddit به نام 'Educational-Map-8145' یک آسیب پذیری PoC را در Reddit منتشر کرد که از API لینوکس Atlas VPN برای فاش کردن IP واقعی کاربر استفاده می‌کند.
این PoC یک فرم مخفی ایجاد می‌کند که به‌صورت خودکار توسط جاوااسکریپت بهURL http://127.0.0.1:8076/connection/stop ارسال می‌شود. وقتی به این URL دسترسی داده می‌شود، به طور خودکار جلسات فعال Atlas VPN را که آدرس IP کاربر را مخفی می‌کنند، قطع می‌کند. پس از قطع شدن اتصال وی‌پی‌ان، PoC به URL api.ipify.org متصل می‌شود تا IP واقعی بازدیدکننده را ثبت کند.
این موضوع، نقض جدی حریم خصوصی برای هر کاربر وی‌پی‌ان است چرا که موقعیت فیزیکی تقریبی و آدرس IP واقعی او را نمایش می‌دهد و به او اجازه می‌دهد که رهگیری شود و یکی از دلایل اصلی استفاده از وی‌پی‌ان را نقض می‌کند.
این PoC از تراز (Cross-Origin Resource Sharing) CORS موجود در مرورگرهای وب عبور می‌کند زیرا درخواست‌ها به API لینوکس Atlas VPN به عنوان درخواست فرم ارسال می‌شوند. مکانیسم CORS یا "Cross-Origin Resource Sharing" یک مکانیسم امنیتی در مرورگرهای وب است که تاکید دارد، درخواست‌ها از یک دامنه مخصوص به دامنه‌ای دیگر باید محدود شوند. با این حال، تعریف می‌کند که درخواست‌هایی که به عنوان «درخواست‌های ساده» شناخته می‌شوند، معاف از این محدودیت هستند. درخواست‌های ساده به درخواست‌هایی اشاره دارد که از متد‌های HTTP معمولی مانند GET، POST، یا HEAD استفاده می‌کنند و از هدرهای خاصی مثل `Content-Type` استفاده نمی‌کنند. این درخواست‌ها به‌طور معمول از دامنه مبدا به دامنه مقصد ارسال می‌شوند و توسط مرورگر تشخیص داده می‌شوند که به عنوان درخواست‌های ساده شناخته می‌شوند. به‌عبارت دیگر، آن‌ها از معماری مرورگر برای اجرای درخواست‌های متقابل دامنه‌ای به دامنه‌های مختلف استفاده می‌کنند.
درخواست‌های فرم به عنوان «درخواست‌های ساده» در محدودیت‌های CORS معاف هستند. به‌عبارت دیگر، اگر یک وب‌سایت درخواست فرمی را ارسال کند، این درخواست ممکن است به دامنه دیگری ارسال شود (مثلاً به دامنه localhost با پورت 8076 در مورد متن اصلی) و مرورگر این درخواست را به‌عنوان درخواست ساده در نظر می‌گیرد. این می‌تواند برای اجرای درخواست‌های از راه دور به منابع مختلف بدون محدودیت اجازه دهد که در مورد آسیب‌پذیری امنیتی (که در متن مطرح شده است)، به واقعیت منجر شود.
کاربر Reddit ادعا کرده است که با مسئولان Atlas VPN در مورد مشکل تماس گرفته ولی نادیده گرفته شده و از آنجایی که شرکت برنامه پاداشی برای یافتن آسیب‌پذیری در نظر نداشت، افشای عمومی تنها گزینه منطقی باقی مانده بود. Atlas VPN در نهایت چهار روز پس از افشای مشکل به آن پاسخ داد و از گزارش‌دهنده عذرخواهی کرده و قول داده است که به زودی یک رفع مشکل برای کلاینت لینوکس خود منتشر خواهد کرد. همچنین، کاربران لینوکس به محض انتشار به روزرسانی مطلع خواهند شد.
سخنگوی Atlas VPN پیام زیر را ارسال کرده است: «ما از آسیب‌پذیری امنیتی که بر روی کلاینت لینوکس Atlas VPN ما تأثیر می‌گذارد، آگاه هستیم. ما امنیت و حریم خصوصی کاربران را بسیار جدی می‌گیریم. بنابراین، ما در حال کار برای رفع آن هستیم. پس از حل مشکل، کاربران ما در رابطه با بروزرسانی نرم‌افزار لینوکس خود آگاه خواهند شد.»
با توجه به اهمیت حیاتی این آسیب‌پذیری روز صفر که تا زمان انتشار یک پچ هنوز قابل بهره‌برداری است، به کاربران کلاینت لینوکس Atlas VPN به شدت توصیه می‌شود تا اقدامات فوری ایمنی را انجام دهند، از جمله در نظر گرفتن یک راه‌حل VPN جایگزین.
توصیه های امنیتی
1. به‌روزرسانی و دریافت نسخه جدید: اگر از AtlasVPN برای لینوکس استفاده می‌کنید، مطمئن شوید که نسخه جدیدتر و به‌روز شده را نصب کرده‌اید. گاهی اوقات تولیدکنندگان نرم‌افزارهای امنیتی پس از کشف آسیب‌پذیری‌ها پچ‌ها و به‌روزرسانی‌هایی منتشر می‌کنند تا مشکلات امنیتی را برطرف کنند.
2. محدود کردن دسترسی به API: اگر امکان استفاده از AtlasVPN API در یک محیط محدود دارید، تنظیمات سرور را طوری تنظیم کنید که فقط از دامنه‌ها یا مکان‌های امنیتی خاصی دسترسی داشته باشد. این کار می‌تواند مسائل امنیتی را کاهش دهد.
3. پیکربندی درست CORS: اگر شما مسئول پیکربندی وب‌سایت‌ها هستید و از امکانات CORS برای محافظت از منابع خود در برابر درخواست‌ها از دامنه‌های مختلف استفاده می‌کنید، مطمئن شوید که پیکربندی CORS به‌درستی انجام شده باشد و درخواست‌هایی را که نباید به دامنه‌های دیگر دسترسی داشته باشند، محدود کنید.
4. استفاده از یک راه‌حل VPN جایگزین: اگر نگران امنیت AtlasVPN برای لینوکس هستید، می‌توانید به دنبال راه‌حل‌های VPN دیگری باشید که امنیت بیشتری ارائه می‌دهند و از آسیب‌پذیری‌های امنیتی جلوگیری می‌کنند.
منبع خبر