BitTorrent

یک آسیب‌پذیری حیاتی در یک برنامه به نام Transmission BitTorrent که به‌طور گستره توسط کاربران مورداستفاده قرار می‌گیرد کشف شده است که به مهاجمان اجازه می‌دهد تا از راه دور یک کد مخرب را بر روی کامپیوترهای کاربران BitTorrent اجرا کنند تا کنترل کامپیوتر آنان را در اختیار گیرند.

این آسیب‌پذیری توسط تیم گزارش آسیب‌پذیری گوگل یعنی Project Zero افشا شد و یکی از اعضای این تیم به نام Tavis Ormandy نیز یک حمله اثبات ادعای این آسیب‌پذیری را پس از ۴۰ روز از گزارش اولیه منتشر کرد.

معمولاً تیم Project Zero آسیب‌پذیری‌ها را پس از ۹۰ روز از گزارش کردن آن‌ها به سازندگان آلوده‌شده و یا پس از انتشار وصله مربوطه توسط سازندگان، به‌صورت عمومی افشا می‌کند.

بااین‌حال، در این مورد محققان Project Zero این آسیب‌پذیری را ۵۰ روز قبل از زمان واقعی افشا کردند، زیرا توسعه‌دهندگان Transmission یک وصله آماده به مصرف و تولیدشده توسط محققان را در یک ماه گذشته در اختیار کاربران قرار ندادند.

Ormandy در گزارش منتشرشده در این رابطه می‌گوید[۱]: “این موضوع ناامیدکننده است که سازندگان این Transmission پاسخگوی اشکالات امنیتی خود نیستند، من پیشنهاد دادم که این آسیب‌پذیری به‌صورت عمومی منتشر شود تا شاید این سازندگان وصله مربوطه را بلافاصله ارائه دهند. من شک دارم که آن‌ها این موضوع را بدون پاسخ رها کنند، اما باید منتظر شد و دید که چه پاسخی از طرف آن‌ها ارسال خواهد شد.”

بهره‌بردار اثبات این ادعا به‌صورت عمومی در دسترس است.

حمله اثبات این ادعا توسط Ormandy منتشر شده است[۲] که از یک تابع خاص در Transmission بهره‌برداری می‌کند که به کاربران اجازه می‌دهد تا برنامه BitTorrent خود را از طریق یک مرورگر وب کنترل کنند.

Ormandy تأیید کرده است که بهره‌بردار او بر روی Chrome و فایرفاکس و در ویندوز و لینوکس (Fedora و Ubuntu) کار می‌کند و معتقد است که سایر مرورگرها و سیستم‌عامل‌ها نیز به این حمله آسیب‌پذیر هستند.

برنامه Transmission BitTorrent بر اساس معماری server-client کار می‌کند که کاربران باید یک سرویس daemon را بر روی سیستم‌های خود نصب کنند تا به یک رابط بر پایه وب بر روی مرورگرهای محلی دسترسی داشته باشند.

Daemon نصب‌شده بر روی سیستم کاربر در مرحله بعدی با یک سرور ارتباط برقرار می‌کند تا فایل‌های موردنظر را از طریق مرورگر و با استفاده از درخواست‌های JSON RPC بارگیری یا بارگذاری کند.

Ormandy متوجه شد که یک تکنیک هک به نام حمله domain name system rebinding می‌تواند با موفقیت از این پیاده‌سازی بهره‌برداری کند و به هر وب‌سایت مخربی که کاربر از آن بازدید می‌کند اجازه می‌دهد که یک کد مخرب را بر روی رایانه کاربر و از راه دور و با کمک سرویس نصب‌شده daemon اجرا کند.

در اینجا چگونگی انجام این حمله آورده شده است:

این نقص بر پایه این حقیقت است که سرویس‌های نصب‌شده در localhost می‌توانند برای برقراری ارتباط با وب‌سایت‌های شخص ثالث دست‌کاری شوند.

Ormandy در یک گزارش جداگانه که حاوی وصله مربوطه نیز هست نوشته است[۳]: “من معمولاً با کاربرانی مواجه می‌شوم که قبول ندارند که وب‌سایت‌ها می‌توانند به سرویس‌های مربوطه در localhost یا اینترانت آن‌ها دسترسی داشته باشند. این کاربران این موضوع را قبول دارند که خدمات مربوط به localhost تنها برای یک نرم‌افزار خاص و یا مرورگر آن‌ها که در حال اجرا در دستگاه محلی است، قابل‌دسترسی است اما به‌نوعی بر این باورند که دسترسی به یک وب‌سایت transfers درجایی دیگر اجرا می‌شود. این موضع آن‌گونه که آن‌ها فکر می‌کنند نیست، اما این موضوع یک منبع مشترک برای سردرگمی است.”

مهاجمان می‌توانند با ایجاد یک نام DNS که مجاز به برقراری ارتباط با آن هستند، به‌سادگی از این آسیب‌پذیری بهره‌برداری کنند و سپس آن را به نام localhost کامپیوتر آسیب‌پذیر تبدیل کنند. در اینجا مراحل انجام این حمله آورده شده است:

DNS

  1. یک کاربر از سایت مخرب بازدید می‌کند که دارای یک iframe به یک subdomain است که تحت کنترل مهاجم قرار دارد.
  2. مهاجم سرور DNS خود را به‌طور متناوب به ۱۲۷٫۰٫۰٫۱ و ۱۲۳٫۱۲۳٫۱۲۳٫۱۲۳ (آدرس‌های کنترل‌شده توسط مهاجم) با یک TTL بسیار کم تنظیم می‌کند.
  3. هنگامی‌که مرورگر به ۱۲۳٫۱۲۳٫۱۲۳٫۱۲۳ پاسخ دهد، آن را به HTML منتقل می‌کند تا ورودی DNS به پایان برسد (یا آن را مجبور به خاتمه دادن توسط flooding کَش با lookupها می‌کند)، سپس مجوز خواندن و تنظیم header ها را دارد.

Ormandy گفت[۴] که این آسیب‌پذیری (CVE-2018-5702) یکی از آسیب‌پذیری‌های اجرای کد از راه دور در برنامه‌های محبوب torrent بود، هرچند که به دلیل زمان‌بندی عدم افشای ۹۰ روزه، نامی از دیگر برنامه‌های torrent آسیب‌پذیر نبرد.

یک مقام رسمی از توسعه‌دهندگان این Transmission به ArsTechnica گفته است[۵] که وصله مربوطه هر چه سریع‌تر منتشر می‌شود اما تاریخ دقیقی ذکر نکرده است.

منابع

[۱] https://bugs.chromium.org/p/project-zero/issues/detail?id=1447

[۲] https://lock.cmpxchg8b.com/rebinder.html

[۳] https://github.com/transmission/transmission/pull/468

[۴] https://twitter.com/taviso/status/951526615145566208

[۵]https://arstechnica.com/information-technology/2018/01/bittorrent-users-beware-flaw-lets-hackers-control-your-computer

[۶] https://thehackernews.com/2018/01/bittorent-transmission-hacking.html