مهاجم با بهرهبرداری از این باگ میتواند نشستهای «امن» VPN افراد دورکار را سرقت کرده و به جریان TCP آنها داده وارد کند.
اخیراً یک آسیبپذیری که در نسخههای منتشر شده لینوکس کشف شده است این امکان را برای نفوذگران سایبری فراهم میکند تا اتصال VPN قربانی که در مجاورت وی قرار دارد را به سرقت برده و دادههای مبهمی را وارد تونل امنی کند که توسط کاربر برای ارتباط با سرور راه دور مورد استفاده قرار میگیرد.
بر اساس گفته محققان دانشگاه نیومکزیکو، این باگ که با کد CVE-2019-14899 شناخته میشود، «اجازه اتصال یا عدم اتصال کاربر به VPNرا داده و مشخص میکند که IP مجازی، توسط سرور VPNاختصاص داده شود یا خیر و این که آیا ارتباط با وب سایت مورد نظر هم برقرار شود یا نه؟».
محققان در توصیهنامه منتشر شده در هفته اخیر گفتهاند که: «به محض آن که اکسپلویت، اجازه تعیین آدرس IP مجازی برای کلاینت VPN را به مهاجمان داده و تحلیلهایی را در خصوص ارتباطات فعال ارایه میکند، آنها میتوانند از پاسخهای رمزنگاری شده برای ارسال بستههای ناخواسته استفاده کرده و توالی و تعداد تصدیقهای ارتباطات را تعیین کنند. انجام چنین کاری، فرصت سرقت نشستهای TCPو وارد کردن داده به آن را برای مهاجم¬ها فراهم میکند».
بررسی ساختار حمله
برای اجرای موفق حمله، ابتدا باید کاربر متقاعد شود که به یک اکسسپوینت (نقطه دسترسی) بیسیم (یا سایر ارتباطات اینترنتی) دارای مشکل که تحت کنترل فرد خرابکار است، متصل شوند. مهاجم در ادامه میتواند دستگاههای متصل به این اکسسپوینت را اسکن کرده و نشستهای VPN فعال را شناسایی کند.
برای انجام این کار، اکسسپوینت یک بسته SYN-ACK به تمامی دستگاههای متصل ارسال میکند. زمانی که SYN-ACK به آدرس IP دستگاه قربانی ارسال میشود، دستگاه پاسخ خواهد داد. در صورتی که دستگاه دریافت کننده، IP مجازی نادرستی داشته باشد، چیزی به دست حمله کننده نخواهد رسید. مهاجم با یک اسکریپت خودکار میتواند این رویه را تسهیل هم بکند.
پس از آن که نفوذگر، وجود یک ارتباط TCP فعال بر روی سرور خارجی را تصدیق کرد؛ گام بعدی، شنود توالی اعداد و تعداد ACK هایی است که بتوان بستههای جعلی را به ارتباط وارد کرد. وی برای یافتن این توالی و ارقام میتواند به شکل پیوسته بستههای بازنشانی جعلی را در اتصال فعال وارد کند تا زمانی که ACKهای مورد نظر را به دست آورد.
«دستگاه قربانی برای هر ACK بستههای بازنشانی دریافتی، یک TCP ارسال میکند که تعداد توالی اتصالات موجود در آن ذخیره شده است. برای مثال، اگر کاربر از OpenVPNبرای تبادل بستههای رمزنگاری شده به سرور VPN استفاده کند، کلاینت در پاسخ، یک بستهSSL به طول 79 بایت ارسال خواهد کرد».
با این رویه، مهاجم میتواند باقی اطلاعات مورد نیاز برای واردکردن بار دلخواه به نشست فعال VPN قربانی را به دست آورد.
سیستم عاملها و VPNهای آلوده شده
این باگ بر روی سیستم عامل مک، iOS و اندروید و همچنین بیشتر نسخههای لینوکس مانند Ubuntu، Fedora و Debian و نیز سیستم عاملهای یونیکسی همچون FreeBSD و OpenBSD اثرگذار است. خطر جدیتر برای نسخههایی از لینوکس است که از نسخه systemdکه بعد از بیست و هشتم نوامبر سال گذشته منتشر شده است، استفاده میکنند. نسخه IPV4 سیستم عامل CentOS این باگ را ندارد.
از دیدگاه فناوریVPN ، این اکسپلویت بر روی OpenVPN، WireGuard و IKEv2/IPSec کار میکند و فرایند تست Tor هنوز ادامه دارد.
«ظاهراً فناوری VPN مورد استفاده، چندان اهمیتی ندارد و حتی اگر پاسخهای ارسالی توسط سیستم قربانی، رمزنگاری شده باشند، با استفاده از اندازه و تعداد بستههای ارسالی میتوان در اتصال، مداخله کرده و نوع بستههای ارسالی از طریق تونل VPN رمزنگاری شده را مشخص کرد».
این باگ به همه توزیع کنندگان و تیم امنیتی هسته لینوکس و سایر سیستمهایی که از آن تأثیر میپذیرند نظیر Systemd، گوگل، اپل، OpenVPN و WireGuard گزارش شده است.