یک کد اثبات مفهوم (PoC) برای آسیبپذیری جدی در نرمافزار AnyDesk نسخه لینوکس منتشر شده است که به مهاجمان اجازه میدهد بدون نیاز به احراز هویت یا تایید کاربر، دستورات سیستمی را با دسترسی Root اجرا کنند.
جزئیات فنی و علت وقوع
این نقص امنیتی که AnyPwn نامیده شده، نسخه 8.0.2 لینوکس AnyDesk را تحت تاثیر قرار میدهد و در نسخه 8.0.3 برطرف شده است. این آسیبپذیری از نوع اجرای کد از راه دور (RCE)، پیش از احراز هویت (Pre-authentication) و بدون نیاز به تعامل کاربر (Zero-click) است که بر اثر یک Heap Buffer Overflow رخ میدهد.
بر اساس تحلیلهای تیم امنیتی V12، این مشکل در پروتکل نشست (Session Protocol) AnyDesk وجود دارد که مدیریت تبادل دادهها بین کلاینت و سرویس را بر عهده دارد. در نسخه آسیبپذیر، هندلر بستههای جریان mode-5، طول Payload دریافتی را پیش از اعتبارسنجی صحیح میپذیرد و سپس یک هدر ۱۶ بایتی را با استفاده از محاسبات ۳۲ بیتی به آن اضافه میکند.
یک مهاجم میتواند با ارسال طول دادهای خاص، باعث ایجاد Wrap-around در محاسبات شود؛ در نتیجه برنامه فضای حافظه بسیار کوچکی را رزرو میکند اما همچنان با آن به عنوان یک شیء بزرگ رفتار میکند. این عدم تطابق منجر به شرایط Out-of-bounds Write شده و به مهاجم اجازه میدهد دادههای تحت کنترل خود را خارج از محدوده حافظه تخصیصی بنویسد و در نهایت جریان اجرای برنامه را تغییر داده و دستورات دلخواه را اجرا کند.
تاثیرات امنیتی
از آنجایی که سرویس AnyDesk در لینوکس به طور پیشفرض با سطح دسترسی Root اجرا میشود، تاثیر این آسیبپذیری بسیار شدید است. دسترسی Root بالاترین سطح دسترسی در سیستمعامل است و کنترل کامل بر فایلها، فرآیندها، حسابهای کاربری و تنظیمات امنیتی را فراهم میکند.
این مورد با ریسکهای معمول نرمافزارهای پشتیبانی از راه دور متفاوت است، زیرا برای بهرهبرداری از آن نیازی به سرقت اعتبارنامه (Credentials)، تایید کاربر یا رمز عبور دسترسی بدون نظارت (Unattended Access) نیست.
محدودیتهای اکسپلویت و راهکارهای مقابله
اکسپلویت منتشر شده برای سیستمهای x86_64 که در حالت Service Mode اجرا میشوند و از طریق پورت TCP 7070 در دسترس هستند، طراحی شده است. با این حال، موفقیت این حمله به چیدمان حافظه (Memory Layout) بستگی دارد و در صورت نامناسب بودن این چیدمان، ممکن است سرویس به جای اجرای کد، دچار Crash شود.
برای مقابله با این تهدید، مدیران شبکه و تیمهای SOC باید اقدامات زیر را انجام دهند:
- شناسایی سیستمهای لینوکسی که از نسخه 8.0.2 یا قدیمیتر AnyDesk استفاده میکنند و بهروزرسانی فوری آنها به نسخه 8.0.3 یا بالاتر.
- محدود کردن دسترسیهای ورودی به پورت TCP/7070 در فایروالها، درگاههای VPN و گروههای امنیتی ابری (Cloud Security Groups).
- بررسی لاگهای سرویس AnyDesk، شناسایی فرآیندهای مشکوک با سطح دسترسی Root و تحلیل اتصالات خروجی در سیستمهایی که پورت مذکور در آنها باز بوده است.