تیم امنیتی اندروید به تازگی گزارشی دریافت کرده که نشان میدهد یک نقص طراحی در Android 16، به برنامههای مخرب اجازه میدهد حتی با وجود فعال بودن سختگیرانهترین تنظیمات امنیتی، ترافیک شبکهای را خارج از تونل VPN ارسال کنند!
در ادامه این تکنیک که به نام "The Tiny UDP Cannon" معرفی شده را به زبان ساده و فنی بررسی میکنیم:
🔍 ریشه مشکل چیست؟
در اندروید ۱۶ قابلیت جدیدی برای پروتکل QUIC اضافه شده تا زمانی که یک برنامه بسته میشود، سیستم به طور خودکار یک بسته خداحافظی (CONNECTION_CLOSE) برای سرور بفرستد تا اتصال معلق نماند. اما توسعهدهندگان اندروید چند اشتباه بزرگ در پیادهسازی این ویژگی انجام دادهاند:
۱. برای استفاده از این قابلیت، هیچ دسترسی یا مجوز خاصی (Permission) بررسی نمیشود.
۲. سیستم بایتهای تحویلی برنامه را تایید اصالت نمیکند؛ یعنی برنامه میتواند هر داده دلخواهی را به عنوان بسته QUIC جا بزند.
۳. سیستم بررسی نمیکند که آیا برنامه فرستنده تحت محدودیت و قفلِ VPN قرار دارد یا خیر.
🛠️ مکانیزم دور زدن VPN
یک برنامه معمولی که در وضعیت «قرنطینه ویپیان» قرار دارد، نمیتواند مستقیماً به شبکه واقعی دستگاه (مثلاً وایفای) متصل شود و خطای EPERM دریافت میکند. اما این آسیبپذیری با یک ترفند زیرکانه فایروال اندروید را دور میزند:
۱. فریب در سطح هسته: برنامه ابتدا با استفاده از دستور سیستمی bind() در سطح هسته لینوکس، سوکت خود را مستقیماً به IP وایفای دستگاه متصل میکند. هسته لینوکس این کار را مجاز میداند و سیاستهای کاربردی VPN اندروید را در این مرحله چک نمیکند.
۲. سپردن مأموریت به سیستم: برنامه بایتهای مورد نظر خود را به همراه آدرس سرور مقصد (سرور مهاجم) به سرویس سیستمی اندروید (system_server) تحویل میدهد و سپس فوراً بسته میشود.
۳. شلیک از پشت خطوط دفاعی: از آنجایی که سرویس system_server با دسترسیهای بالای سیستمی اجرا میشود، به طور کامل از قوانین فیلترینگ و مسیریابی VPN معاف است. این سرویس سیستمی، دادهها را مستقیماً از طریق اینترنت واقعی وایفای به سمت مقصد شلیک میکند! در نتیجه، فیلتر لایه کاربردی VPN دور زده شده و سرور مقصد، IP واقعی و عمومی شما را مشاهده میکند.
🤷♂️ پاسخ ناامیدکننده گوگل
نویسنده مقاله این آسیبپذیری را به همراه کد مخرب نمونه (PoC) به گوگل گزارش داد. با این حال، تیم امنیتی اندروید این گزارش را با وضعیت "Won't Fix" (برطرف نخواهد شد) بست و اعلام کرد که این مورد در مدل تهدیدات امنیتی آنها جایی ندارد و برای آن اصلاحیه رسمی منتشر نخواهد شد! به همین دلیل، این باگ به صورت عمومی افشا شده است.
🛡️ روش موقت پیشگیری (Mitigation)
اگر از کاربران اندروید ۱۶ هستید و به شدت به امنیت و عدم نشت IP خود وابسته هستید، میتوانید از طریق ابزار ADB این ویژگی را به طور کامل غیرفعال کنید:
adb shell device_config put tethering close_quic_connection -1
adb reboot
با اجرای این دستور و ریبوت کردن گوشی، قابلیت ارسال بسته پویای QUIC متوقف شده و این روزنه عبور ترافیک کاملاً مسدود میشود.
🌐 لینک مقاله اصلی جهت مطالعه جزئیات بیشتر و کدهای جاوا:
🔗 https://lowlevel.fun/posts/tiny-udp-cannon-android-vpn-bypass/
🆔 @androidSec_fa
#Android #Security #Vulnerability #VPN_Bypass #Android16 #CyberSecurity