
اخیراً، یک مطالعه دانشگاهی اشاره کرد که X-VPN برای اندروید ممکن است در معرض حملات Blind In/On-Path قرار گیرد، که توجه را جلب کرده و منجر به برخی تفسیرهای نادرست در برخی رسانهها شده است.
ما این موضوع را بسیار جدی میگیریم و بلافاصله یک تحقیق داخلی و آزمایشهای تولید را آغاز کردهایم. در راستای شفافیت و پاسخگویی، حقایق اصلی، دامنه تأثیر و اقداماتی که در حال انجام هستیم را به اشتراک خواهیم گذاشت.
Table of Contents
یافتههای کلیدی ما
در حین بررسی پدیده مشاهده شده، ما مدل حمله سه مرحلهای توصیف شده در ادبیات عمومی را دنبال کردیم، حملات کور در/بر روی مسیر و کاربردها در VPNها، و ادعاهای امنیتی را در برابر X-VPN در یک محیط آزمایش کنترل شده تأیید کردیم.
بر اساس یک تأیید متمرکز بر انطباق، به نتایج زیر رسیدیم:
- ما تعیین کردهایم که این نگرانی امنیتی ناشی از پیکربندی/رفتار شبکه در لایه پلتفرم اندروید است، که نمایانگر یک ریسک در سطح پلتفرم به جای یک نقص امنیتی ذاتی در هر محصول VPN واحد است.
- از آنجا که این مشکل به پیکربندی سیستم مربوط میشود، نمیتوان آن را بهطور بنیادی تنها در سطح برنامه حل کرد؛ همچنین ما مجوزی برای تغییر یا وصلهکردن تنظیمات سطح هسته اندروید بهطور مستقیم نداریم.
- برای بررسی کاهشهای بالقوه با ذهنیت یادگیری، همان آزمایشها را بر روی چندین ارائهدهنده VPN اصلی دیگر انجام دادیم. با این حال، همان ریسک را مشاهده کردیم، از جمله ExpressVPN، NordVPN، Surfshark، Norton VPN و Proton VPN.
- در حین تأیید، ما تغییرات جزئی در جزئیات تولید مشاهده کردیم که ممکن است به تغییرات عملکردی در سیستم مربوط باشد.
به دلیل ملاحظات امنیتی و اخلاقی، ما هیچ جزئیات فنی که ممکن است برای تکرار، بهرهبرداری یا تشدید خطرات استفاده شود را به طور عمومی افشا نخواهیم کرد. تمام اطلاعات و مشاهدات لازم برای تولید به گوگل از طریق رویههای افشای مسئولانه ارسال شده است تا این پلتفرم بتواند مسئله را ارزیابی و حل کند.
Blind In/On-Path Attacks چیستند؟
حملات Blind In/On-Path نوعی حمله هستند: زمانی که یک مهاجم، که قادر به مشاهده یا کنترل جزئی بخش شبکهای است که به آن متصل هستید، میتواند یک اتصال فعال را با آزمایش و مشاهده پاسخهای دستگاه شناسایی کند و زمانی که شرایط اجازه میدهد، آن را مختل کند یا سعی کند بستههای جعلی را تزریق کند.
اصطلاح “کور” در اینجا به ناتوانی جسمی اشاره ندارد – بلکه به این معنی است که حملهکننده نمیتواند محتوای ارتباط را ببیند یا رمزگشایی کند، اما میتواند با اندازهگیری تفاوتها در رفتار شبکه، حقایق مفیدی را استنباط کند.
حملات Blind In/On-Path چگونه در طول یک جلسه VPN کار میکنند؟
زمانی که به یک سرویس VPN متصل میشوید، یک تونل رمزگذاری شده بین دستگاه شما و سرور VPN برقرار میشود تا انتقال دادههای ایمن را امکانپذیر کند. این تونل مانند یک پوشش سیاه و غیرقابل نفوذ عمل میکند که دادههای شما را در بر میگیرد و به طور مؤثری محتوای اصلی را از خوانده شدن یا دستکاری شدن محافظت میکند. مردم نخواهند دانست که شما کی هستید، پیامهایی که ارسال میکنید را نخواهند دید یا به طور مستقیم به دادههای فرم که ارسال میکنید دسترسی نخواهند داشت.
با این حال، حتی اگر محتوا رمزگذاری شده باشد، ترافیک پروب خاصی میتواند پاسخهای قابل مشاهدهای از دستگاه شما ایجاد کند. این پاسخها به خودی خود دادههای رمزگذاری شده را فاش نمیکنند، اما میتوانند توسط مالک یک نقطه دسترسی شبکه مخرب (مانند Wi-Fi مخرب) مشاهده شوند و برای استنباط اطلاعات اضافی، مانند اینکه آیا شما از VPN استفاده میکنید یا کدام وبسایت را بازدید میکنید، استفاده شوند.
بر اساس موارد فوق، اکنون میتوانیم مکانیکهای حملات Blind In/On-Path را ترسیم کنیم. تصور کنید که در یک کافه در حال کار با تلفن خود هستید، با VPN خود فعال و به آنچه به نظر میرسد Wi-Fi رایگان کافه است متصل هستید (که در واقع توسط یک مهاجم راهاندازی شده است).
پس از آن، یک حمله Blind In/On-Path میتواند از طریق دو مرحله زیر انجام شود:
مرحله 1. شناسایی
مرحله 2. بهرهبرداری/ اختلال
به طور خلاصه، ماهیت حملات Blind In/On-Path در وابستگی آنها به مشاهده خارجی به جای رمزگشایی مستقیم نهفته است. در نتیجه، این نوع حمله لزوماً ناشی از ارائهدهنده VPN نیست که مسئول رمزگذاری دادهها است. حملات Blind In/On-Path اغلب به ضعفهای سطح سیستم یا پلتفرم وابسته هستند که شناسایی را به طور قابل توجهی آسانتر میکند. این همچنین محور بخش بعدی است.
سکوپ و پلتفرمهای تحت تأثیر
با دریافت گزارشهایی مبنی بر اینکه X-VPN ممکن است در برابر حملات Blind In/On-Path آسیبپذیر باشد، به سرعت تحقیقات امنیتی را در تمام پلتفرمها آغاز کردیم. از طریق آزمایشهای عملی، نتایج زیر را کشف کردیم:
برای اندروید:
مکانیسم آسیبپذیری
اندروید به دلیل یک آسیبپذیری در سطح پلتفرم، بیشتر در معرض حملات Blind In/On-Path قرار دارد.
علت اصلی این است که اندروید فیلتر کردن مسیر معکوس سختگیرانه را فعال نمیکند (یعنی پارامتر سیستم net.ipv4.conf.all.rp_filter به 1 تنظیم نشده است). در این پیکربندی، اندروید مسیر منبع بستههای ورودی را تأیید نمیکند؛ ترافیکی که از هر رابط شبکهای میرسد ممکن است به رابط هدف منتقل شده و پاسخی را ایجاد کند.
در اندروید، هنگام اتصال به یک سرویس VPN، برنامهها از API VpnService برای درخواست از سیستمعامل به منظور ایجاد یک رابط شبکه مجازی به نام Tun استفاده میکنند. سپس، ترافیک از دستگاه از طریق این رابط Tun به کلاینت VPN منتقل میشود و سپس از طریق یک تونل رمزگذاری شده به سرور VPN هدایت میشود. این مکانیزم بنیادی است که VPNها دادههای کاربر را در اندروید محافظت میکنند.
حالا فرض کنید به یک شبکه Wi-Fi جعلی که توسط یک حملهکننده راهاندازی شده متصل هستید. حملهکننده میتواند بستههای جعلی ایجاد کند که آدرس IP مقصد برابر با آدرس رابط Tun باشد.
هنگام پردازش چنین بستههایی، سیستم دو گزینه دارد: آنها را رها کند یا به جلو ارسال کند و پاسخ دهد. از آنجا که rp_filter به طور دقیق فعال نیست، اندروید گزینه دوم را انتخاب میکند – این بستههای جعل شده را از رابط WLAN به رابط Tun ارسال میکند و یک پاسخ را تحریک میکند. در نتیجه، مهاجم میتواند وضعیت ارتباطی رابط شبکه قربانی را از طریق این پاسخها استنباط کند و تحت شرایط خاص، اتصالات را مختل کند یا محتوای ارتباطی را تزریق/دستکاری کند.

پایه (rp_filter=1 سخت) در مقابل آسیبپذیر (RPF شل/غیرفعال)


با فرض اینکه نام رابط شبکه مجازی VPN Tun0 باشد و نام رابط شبکه Wi-Fi دستگاه WLAN0 باشد.
منشأ آسیبپذیری
ما مشاهده کردیم که این آسیبپذیری از مقاله Blind In/On-Path Attacks and Applications to VPNs نشأت گرفته و شماره CVE CVE-2019-14899 به آن اختصاص داده شده است.
نویسندگان یک آسیبپذیری را گزارش میدهند که در سیستمعاملهای Linux، FreeBSD، OpenBSD، macOS، iOS و Android مشاهده شده است و به یک نقطه دسترسی مخرب یا کاربر مجاور اجازه میدهد تا تعیین کند که آیا هدف از VPN استفاده میکند، استنباطهای فعال درباره وبسایتهای بازدید شده انجام دهد و شمارههای توالی و تأیید TCP صحیح را شناسایی کند. این، به نوبه خود، میتواند به یک مهاجم اجازه دهد تا دادهها را به جریان TCP تزریق کند و شرایط لازم برای ربودن اتصالات فعال در داخل یک تونل VPN را فراهم کند.
رفع آسیبپذیری
پس از شناسایی آسیبپذیری، ما سعی کردیم یک راهحل پیادهسازی کنیم. با این حال، در سیستمهای اندروید، برنامه ما فاقد امتیازات ریشه است و این موضوع حل کامل مشکل را غیرممکن میسازد.
در واقع، به عنوان مثال در سال 2019، Proton یک بیانیه رسمی در مورد CVE-2019-14899 صادر کرد و به طور مشابه بیان کرد که علت اصلی چنین مشکلاتی ناشی از روشهای پردازش یا نقصهای پیکربندی در سطح پلتفرم/سیستم است. این مشکلات نیاز به اصلاحات از سوی فروشندگان پلتفرم دارد، نه خطاهای طراحی در یک اپلیکیشن VPN خاص. به عبارت دیگر، رفع این مشکلات نیاز به وصلههای سمت فروشنده یا تغییرات پیکربندی در سطح سیستم دارد؛ راهحلهای سطح اپلیکیشن به تنهایی به احتمال زیاد نمیتوانند مشکل را به طور کامل حل کنند.
با این حال، بر اساس نتایج آزمایش فعلی ما، به نظر میرسد که این آسیبپذیری به طور کامل در دستگاههای اندروید برطرف نشده است. ما هنوز هم توانستیم مشکل را به طور جزئی بازتولید کنیم؛ علاوه بر این، پس از تنظیم جزئیات خاص حمله، توانستیم آسیبپذیری را به طور کامل تکرار کنیم—یعنی به اهداف حمله سه مرحلهای که در Blind In/On-Path Attacks and Applications to VPNs توصیف شده است، دست یابیم.
برای لینوکس:
در حین آزمایش بر روی پلتفرم لینوکس، ما همچنین رفتارهای سطح سیستمی مشابه با آنچه در اندروید مشاهده شده بود را شناسایی کردیم. با این حال، لینوکس به کاربران اجازه میدهد تا دارای امتیازات ریشه باشند، که به ما این امکان را میدهد تا با تنظیم پارامترهای شبکه هسته یا استقرار حفاظتهای سطح سیستمی در نقاط ورودی، آسیبپذیریهای مذکور را کاهش دهیم و ترافیک جعلی که نباید به رابطهای شبکه مجازی برسد را فیلتر یا حذف کنیم.
برای macOS و iOS و Windows:
در محدوده مستندات عمومی و آزمایشهای مربوط به انطباق ما، macOS و iOS الگوهای پاسخ قابل بهرهبرداری مشابه با آنچه در برخی پیادهسازیهای Android مشاهده شده است، نشان ندادهاند. به همین ترتیب، Windows نیز در آزمایشهای عمومی و مرور ادبیات ما رفتار مشکلساز معادلی را نشان نداد. به عبارت دیگر، macOS، iOS و Windows در حال حاضر تحت تأثیر این آسیبپذیری قرار ندارند.
آنچه تا کنون انجام دادهایم
با وجود اینکه یافتههای تحقیق ما نشان میدهد که آسیبپذیری از لایه سیستم/پلتفرم ناشی شده و نه از نقص نرمافزار X-VPN، ما همچنان متعهد به اولویت دادن به امنیت کاربران هستیم و اقدامات زیر را در پاسخ به این ریسک امنیتی انجام دادهایم:
1. به گوگل گزارش شده است: ما یک فرآیند افشای مسئولانه را از طریق ورود رسمی آسیبپذیری گوگل دنبال کردیم و دادههای تولید واضح، یادداشتهای مشاهده، دامنه تأثیر و تمام آثار مرتبط را ارسال کردیم. ما به طور فعال با فرآیند ارزیابی پلتفرم همکاری میکنیم.

2. کاهش خطرات لینوکس تکمیل شد: ما تدابیر حفاظتی را در پلتفرمهای لینوکس با پیکربندی iptables برای مسدود کردن تمام ترافیک شخص ثالث که به آدرس IP رابط tun0 ما هدایت میشود، پیادهسازی کردهایم.
3. بررسی راهکارهای کاهش آسیب در لایه اپلیکیشن در اندروید: با استناد به تحقیقات و مستندات عمومی، ما در حال بررسی استراتژیهای کاهش آسیب غیر روت در اندروید هستیم، مانند نظارت و محافظت در برابر رفتارهای غیرعادی شناسایی. در حالی که چنین رویکردهایی ممکن است در برخی سناریوها خطرات را کاهش دهند، اما یک راه حل اساسی نیستند. آنها همچنین ممکن است ناپایداری اتصال و آسیبپذیریهای بالقوه در برابر حملات انکار سرویس را معرفی کنند. در حال حاضر، تحقیقات در حال ادامه است.
4. روشن کردن ارتباطات خارجی و رسیدگی به سوء تفاهمهای رسانهای: ما از طریق کانال رسمی حقایق را به کاربران، شرکا و رسانهها روشن میکنیم. ما به اشتراکگذاری بهروزرسانیها بهطور شفاف و مسئولانه ادامه خواهیم داد تا از ایجاد نگرانیهای غیرضروری یا نتیجهگیریهای گمراهکننده جلوگیری کنیم.
در عین حال، X-VPN به تقویت حریم خصوصی و امنیت در سطوح مهندسی و جامعه ادامه میدهد:
1. ممیزی کد و اسکنهای منظم آسیبپذیری: ما بهطور منظم ممیزی کد و اسکنهای دورهای آسیبپذیری را انجام میدهیم تا اطمینان حاصل کنیم که مشتری ما تعادل مناسبی بین عملکرد و امنیت برقرار میکند.
2. برنامه پاداش باگ: X-VPN به طور فعال با کاربران همکاری میکند و از محققان امنیتی دعوت و تشویق میکند تا گزارشهای امنیتی مسئولانه را از طریق کانال رسمی ما ارسال کنند. ما به مشکلات معتبر و قابل بازتولید با یک پاداش باگ پاداش میدهیم تا امنیت کلی اکوسیستم خود را بهبود بخشیم.
توصیههایی برای کاربران
البته، تا زمانی که گوگل یک راه حل سطح سیستم منتشر کند یا ما یک راه حل پایدار و غیر روت برای کاهش مشکلات توسعه دهیم، کاربران اندروید باید اقدامات مؤثری برای خودحفاظتی انجام دهند تا خطرات حریم خصوصی و امنیتی را کاهش دهند. در اینجا چند توصیه ساده و قابل اجرا وجود دارد:
- از شبکههای Wi-Fi عمومی غیرمعتبر در اندروید خودداری کنید؛ در محیطهای ناآشنا، شبکههای معتبر یا دادههای موبایل را در اولویت قرار دهید.
- به سایتها و برنامههای رمزگذاری شده با HTTPS/TLS اولویت دهید؛ از ارسال اطلاعات حساس—از جمله نامهای کاربری/گذرواژهها، نامهای واقعی، آدرسها و شمارههای کارت بانکی—از طریق HTTP بدون رمزگذاری خودداری کنید.
- احراز هویت چندعاملی (MFA) را برای عملیات حساب حساس به حریم خصوصی یا حیاتی فعال کنید تا لایه اضافی از حفاظت را اضافه کنید.
- سیستم و برنامههای خود را بهروز نگهدارید تا از بهبودهای امنیتی در سطح پلتفرم بهرهمند شوید (بهعنوان مثال، بهروزرسانیهای رسمی رفع اشکال اندروید).
- اگر در حین مرور با رفتار غیرعادی شبکه مواجه شدید—مانند قطع شدن مکرر یا هدایت به صفحات مشکوک، فقط از هرگونه عملیات حساس در آن شبکه خودداری کنید و بلافاصله قطع کنید.
علاوه بر این، X-VPN برای اندروید یک ویژگی Kill Switch برای تمام کاربران ارائه میدهد. ما توصیه میکنیم این ویژگی را در محیطهای شبکه عمومی یا غیرقابل اعتماد فعال کنید—حتی کاربران رایگان نیز میتوانند از آن برای قطع فوری اتصال به شبکه در صورت افت ناگهانی VPN استفاده کنند و خطرات احتمالی افشای دادهها را به حداقل برسانند.

گامهای بعدی و تماس
در آینده، ما به دقت ارزیابیها و پیشرفتهای اصلاحی فروشندگان پلتفرمهای مرتبط مانند گوگل را پیگیری خواهیم کرد و آگاهی و ایمنی کاربران را به عنوان اولویت اصلی خود حفظ خواهیم کرد.
با فرض اینکه افشای اطلاعات خارجی خطرات امنیتی ایجاد نکند، ما هرگونه اطلاعات عمومی یا راهنماییهای قابل اقدام را به محض در دسترس بودن به سرعت منتشر خواهیم کرد. اگر گوگل وصلههای سیستمی را منتشر کند، X-VPN به طور همزمان به آمادهسازی و ارسال بهروزرسانیهای لازم برای مشتریان و دستورالعملهای عملیاتی خواهد پرداخت تا به کاربران ما کمک کند تا هر چه سریعتر از حفاظت کامل برخوردار شوند.
به طور همزمان، ما یک حسابرسی امنیتی مستقل از طرف شخص ثالث را برای افزایش شفافیت و تأیید تعهدات خود به حفاظت از حریم خصوصی و سیاست عدم ثبت اطلاعات پیش میبریم. پس از اتمام، نتایج حسابرسی را به طور عمومی با تمام کاربران به اشتراک خواهیم گذاشت.
این بیانیه بر اساس تکرار و تحلیل ما در پلتفرمها و دستگاههای مختلف است. با این حال، به دلیل تفاوتهای پلتفرم و عدم قطعیت در بهروزرسانیهای آینده، برخی سناریوها ممکن است پوشش داده نشوند یا تفسیرها ممکن است متفاوت باشند. اگر هر گونه خطا، اطلاعات اضافی یا پیشنهادات اصلاحی قابل اجرا را شناسایی کردید، لطفاً با ما تماس بگیرید: security@xvpn.io.
با تشکر صمیمانه از تمام کاربران به خاطر حمایت شما،
تیم X-VPN
سوالات متداول
چرا X-VPN جزئیات آزمایش را به اشتراک نمیگذارد؟
ما جزئیات خاصی از رویههای آزمایش یا جزئیات تولید را به دلیل ملاحظات ایمنی کاربران و مسئولیتهای صنعتی فاش نمیکنیم. در دسترس قرار دادن جزئیات عملیاتی قابل بهرهبرداری به طور عمومی، به بازیگران بد نیت یک “کتاب درسی” برای حمله میدهد و در نتیجه خطرات را افزایش میدهد. به همین دلیل، ما تنها اطلاعات ضروری را از طریق کانالهای کنترل شده و مطابق به فروشندگان پلتفرم ارسال میکنیم.
چرا اندروید در حال حاضر تنها پلتفرمی است که در برابر حملات Blind In/On-Path آسیبپذیر است؟
تحقیقات ما نشان میدهد که اندروید دارای یک آسیبپذیری در سطح سیستم است که انجام حملات Blind In/On-Path را آسانتر میکند. از آنجا که ارائهدهندگان VPN در اندروید دسترسی ریشه ندارند، نمیتوانیم این مشکل را در منبع آن حل کنیم. در حالی که لینوکس آسیبپذیریهای مشابهی با اندروید دارد، ارائهدهندگان VPN در این پلتفرم دسترسی ریشه دارند که به ما امکان میدهد تدابیر حفاظتی را پیادهسازی کنیم. و برای macOS، iOS و ویندوز، هنوز همان آسیبپذیری قابل بهرهبرداری را پیدا نکردهایم.
آیا فقط برخی از ارائهدهندگان VPN تحت تأثیر قرار گرفتهاند؟
خیر. این نگرانی امنیتی ناشی از مشکلات خاص محصول نیست، بلکه یک ریسک در سطح پلتفرم در اندروید است. تأیید محدود ما نشان داده است که همان مشکلات امنیتی در سایر VPN های اصلی نیز وجود دارد، که ما را به این نتیجه رسانده است که این مشکل گسترده است.
Does this mean X-VPN itself is not secure?
خیر، X-VPN خود ایمن است. رمزگذاری انتقال ما، حفاظت از حریم خصوصی و شیوههای امنیتی روزانه به طور مداوم مؤثر و به طور مداوم تقویت میشوند و اطمینان حاصل میکنند که دادههای کاربران در برابر دسترسی غیرمجاز محافظت میشود. در مورد آسیبپذیری اخیر اندروید، ما به طور فعال با تولیدکنندگان همکاری میکنیم تا اصلاحات را تسهیل کنیم و تدابیر کاهش خطر در سمت مشتری را تقویت کنیم تا خطرات برای کاربران خود را به حداقل برسانیم.