یک آسیبپذیری که ۱۸ سال پیش افشا شده و به نام “۰٫۰٫۰٫۰ Day” معروف است، به وبسایتهای مخرب اجازه میدهد تا با دور زدن مکانیزمهای امنیتی در Google Chrome, Mozilla Firefox و Apple Safari، با سرویسهای موجود در شبکه محلی تعامل داشته باشند.
این آسیبپذیری فقط بر روی دستگاههای لینوکس و macOS تأثیر میگذارد و روی سیستمعامل ویندوز عمل نمیکند.
برای دستگاههایی که تحت تأثیر این آسیبپذیری قرار دارند، مهاجمان سایبری میتوانند از این نقص بهرهبرداری کنند تا از راه دور تنظیمات دستگاه را تغییر دهند، به اطلاعات محافظتشده بهطور غیرمجاز دسترسی پیدا کنند و در برخی موارد حتی کد مخرب را از راه دور اجرا کنند.
با وجود اینکه این مشکل در سال ۲۰۰۸ گزارش شده است، یعنی ۱۸ سال پیش (در زمان انتشار متن)، همچنان در مرورگرهای Chrome ، Firefox و Safari حل نشده باقی مانده است. با این حال، هر سه مرورگر این مشکل را تأیید کردهاند و در حال کار بر روی یافتن یک راهحل برای آن هستند.
پژوهشگران شرکت امنیتی Oligo Security گزارش دادهاند که این خطر نه تنها بهصورت نظری امکان انجام حملات را فراهم میکند، بلکه مشاهده شده که چندین گروه مهاجم واقعاً از این آسیبپذیری به عنوان بخشی از زنجیره حملات خود استفاده کردهاند.
جریان آسیب پذیری ۰٫۰٫۰٫۰ Day
آسیبپذیری “۰٫۰٫۰٫۰ Day” ناشی از نبود مکانیزمهای امنیتی یکسان در مرورگرهای مختلف و عدم استانداردسازی است. این نقص باعث میشود که وبسایتهای عمومی بتوانند با استفاده از آدرس IP عمومی “۰٫۰٫۰٫۰”، با سرویسهای شبکه محلی ( Local Network ) ارتباط برقرار کنند.
بهطور معمول، آدرس “۰٫۰٫۰٫۰” نمایانگر همه آدرسهای IP روی دستگاه محلی یا تمام رابطهای شبکه روی میزبان است. این آدرس میتواند بهعنوان یک آدرس جایگزین در درخواستهای DHCP استفاده شود یا در شبکه محلی بهعنوان آدرس “localhost” (127.0.0.1) تفسیر شود.
وبسایتهای مخرب میتوانند درخواستهای HTTP را به آدرس “۰٫۰٫۰٫۰” ارسال کنند که هدف آن یک سرویس در حال اجرا روی دستگاه محلی کاربر است. به دلیل نبود امنیت یکسان و هماهنگ، این درخواستها اغلب به سرویس مورد نظر هدایت شده و پردازش میشوند.
طبق توضیحات شرکت Oligo مکانیزمهای حفاظتی موجود، مانند Cross-Origin Resource Sharing (CORS) و Private Network Access (PNA)، نمیتوانند این فعالیت خطرناک را متوقف کنند
بهطور پیشفرض، مرورگرهای وب از ارسال درخواستهای یک وبسایت به یک وبسایت سوم شخص و استفاده از اطلاعات برگشتی جلوگیری میکنند. این کار به منظور جلوگیری از اتصال وبسایتهای مخرب به URLهای دیگری که ممکن است کاربر در مرورگرش به آنها وارد شده باشد، انجام میشود. به عنوان مثال، این اقدامات امنیتی برای جلوگیری از دسترسی غیرمجاز به سایتهای حساس مانند پورتالهای بانکی آنلاین، سرورهای ایمیل، یا دیگر سایتهای حساس طراحی شدهاند.
مرورگرهای وب مکانیزم Cross-Origin Resource Sharing (CORS) را معرفی کردهاند تا به وبسایتها اجازه دهند تا در صورت اجازه صریح، به دادههای سایتهای دیگر دسترسی پیدا کنند. به عبارت دیگر، CORS به وبسایتها این امکان را میدهد که دادهها را از منابع خارجی بارگذاری کنند، اما تنها در صورتی که منبع خارجی بهطور خاص این دسترسی را مجاز کرده باشد.
شرکت Oligoتوضیح داد :
CORS (Cross-Origin Resource Sharing) بسیار مفید است و اینترنت را بسیار امنتر کرده است. CORS از رسیدن پاسخها به مهاجم جلوگیری میکند، بنابراین مهاجمان نمیتوانند دادهها را زمانی که درخواستهای نامعتبر ارسال میکنند، بخوانند. به عبارت دیگر، زمانی که یک درخواست ارسال میشود، اگر هدرهای CORS در پاسخ موجود نباشند، کد جاوا اسکریپت مهاجم قادر نخواهد بود محتوای پاسخ را بخواند.
CORS از این جلوگیری میکند که پاسخها به جاوا اسکریپت مهاجم ارسال شوند و از خوانده شدن توسط آن جلوگیری میکند.
اما درخواستهایی که در حالت “no-cors” ارسال میشوند، میتوانند به سرور بروند و به سرور دسترسی پیدا کنند، بدون اینکه نگران محتوای پاسخ آنها باشیم، زیرا پاسخها به کد جاوا اسکریپت برگشت داده نمیشود.
اگر مهاجم فقط به دنبال برقراری ارتباط با سرویس یا نقطه پایان خاصی در دستگاه محلی است و هدف او تغییر تنظیمات یا اجرای عملیاتی است، نیازی به مشاهده یا دریافت پاسخ از آن سرویس ندارد.
شرکت Oligo توضیح میدهد که ویژگی امنیتی Private Network Access (PNA) کمی متفاوت از CORS عمل میکند؛ بهطوریکه PNA هر گونه درخواستی که سعی کند به آدرسهای IP محلی یا خصوصی متصل شود را مسدود میکند.
تحقیقهای Oligo نشان داده است که آدرس IP خاص ۰٫۰٫۰٫۰ در فهرست آدرسهای محدود شده توسط ویژگی امنیتی Private Network Access (PNA) قرار ندارد، در حالی که به عنوان مثال، آدرس ۱۲۷٫۰٫۰٫۱ در این فهرست وجود دارد. به همین دلیل، پیادهسازی PNA در این مورد ضعیف است.
ه اگر درخواستی در حالت “no-cors” به آدرس خاص ۰٫۰٫۰٫۰ ارسال شود، میتواند PNA را دور بزند و همچنان به URL وبسرویسی که بر روی ۱۲۷٫۰٫۰٫۱ در حال اجرا است متصل شود.
فعال بودن Exploit
متأسفانه، خطر “۰٫۰٫۰٫۰ Day” فقط یک تهدید نظری نیست. Oligo Security چندین مورد واقعی را شناسایی کرده است که در آنها این آسیبپذیری در عمل و بهطور فعال در محیطهای واقعی مورد سوءاستفاده قرار میگیرد.
اولین مورد از سوءاستفاده از آسیبپذیری “۰٫۰٫۰٫۰ Day” کمپین ShadowRay است که همان پژوهشگران در مارس گذشته آن را مستند کردهاند. این کمپین به طور خاص بر روی بارهای کاری AI که به طور محلی بر روی دستگاههای توسعهدهندگان در حال اجرا هستند، هدف قرار میدهد.
ه حمله با کلیک بر روی یک لینک که از طریق ایمیل ارسال شده یا در یک سایت مخرب یافت شده، آغاز میشود. این لینک باعث اجرای کدی در جاوا اسکریپت میشود که یک درخواست HTTP به آدرس ‘http://0[.]0[.]0[.]0:8265’ ارسال میکند، که معمولاً توسط Ray استفاده میشود.
این درخواستها به local Ray cluster میرسند و به این ترتیب سناریوهایی مانند اجرای کد دلخواه، ایجاد reverse shell و تغییرات در پیکربندی را باز میکنند.
مورد دیگری از سوءاستفاده از آسیبپذیری “۰٫۰٫۰٫۰ Day” مربوط به یک کمپین است که Selenium Grid را هدف قرار میدهد و توسط Wiz ماه گذشته کشف شده است. در این کمپین، مهاجمان از جاوا اسکریپت در یک دامنه عمومی برای ارسال درخواستها به آدرس ‘http://0[.]0[.]0[.]0:4444’ استفاده میکنند.
این درخواستها به سرورهای Selenium Grid هدایت میشوند و این امکان را به مهاجمان میدهد که کد اجرا کنند یا پایش شبکه (network reconnaissance) انجام دهند.
آسیبپذیری “ShellTorch” توسط Oligo در اکتبر ۲۰۲۳ گزارش شده است. در این آسیبپذیری، پانل وب TorchServe بهطور پیشفرض به آدرس IP 0.0.0.0 متصل شده بود بهجای localhost، که باعث شده است این پانل در معرض درخواستهای مخرب قرار گیرد.
واکنشهای توسعهدهندگان مرورگرها
Oligo گزارش میدهد که از ماه گذشته، تعداد وبسایتهای عمومی که با ۰٫۰٫۰٫۰ ارتباط برقرار میکنند به طور ناگهانی افزایش یافته است و اکنون به حدود ۱۰۰,۰۰۰ وبسایت رسیده است.
در واکنش به افشای این فعالیت توسط Oligo، توسعهدهندگان مرورگرهای وب سرانجام در حال شروع به اقدام هستند.
گوگل کروم، که محبوبترین مرورگر وب در جهان است، تصمیم گرفته است اقداماتی انجام دهد و دسترسی به ۰٫۰٫۰٫۰ را مسدود کند. این مسدودسازی بهطور تدریجی از نسخه ۱۲۸ (نسخهای که در آینده منتشر میشود) تا نسخه ۱۳۳ اجرا خواهد شد.
Mozilla Firefox ویژگی Private Network Access (PNA) را پیادهسازی نکرده است، اما این موضوع در اولویت بالای توسعه قرار دارد. تا زمانی که PNA پیادهسازی شود، یک رفع موقتی در حال اجرا است، اما تاریخهای دقیقی برای اجرای این رفع موقتی ارائه نشده است.
اپل در مرورگر Safari از طریق تغییرات در WebKit، بررسیهای اضافی بر روی IP پیادهسازی کرده است و دسترسی به ۰٫۰٫۰٫۰ را در نسخه ۱۸ (که به زودی منتشر میشود) مسدود خواهد کرد. این نسخه جدید با macOS Sequoia معرفی خواهد شد.
تا زمانی که فیکسهای مرورگر برای مشکل مورد نظر ارائه شود، Oligo توصیه میکند که توسعهدهندگان اپلیکیشن اقدامات امنیتی زیر را پیادهسازی کنند:
- پیاده سازی هدرهای PNA
- هدرهای HOST را بررسی کنید تا از حملات DNS rebinding محافظت کنید.
- حتی اگر localhost در دسترس است، نباید به آن اعتماد کرد و باید مجوز اضافه کرد.
- در هر زمان که ممکن است از HTTPS استفاده کنید.
- پیاده سازی CSRF Token حتی برای اپلیکیشن های Local
توسعهدهندگان باید به یاد داشته باشند که تا زمانی که فیکسها منتشر نشوند، هنوز امکان دارد که وبسایتهای مخرب درخواستهای HTTP را به آدرسهای IP داخلی هدایت کنند. بنابراین، باید این ملاحظات امنیتی را در هنگام توسعه اپلیکیشنها مد نظر قرار دهند.