چگونه توانستم بیش از ۳۰۰ نود خروجی تور را با اسکریپت خود حذف کنم؟ — How I got over 300 Tor exit nodes removed
خلاصه
یک توسعهدهنده با شناسایی ۳۳۳ نود خروجی آلوده در شبکه تور که دست به حملات مرد میانی (MITM) روی پروتکل SSH زده بودند، موفق شد با همکاری تیم تور آنها را از شبکه خارج کند. این مقاله ابعاد فنی این نفوذ گسترده و نحوه شناسایی نودهای مخرب را بررسی میکند.
در روزهای ابتدایی ماه اکتبر، شبکه تور (Tor) با یکی از عجیبترین و هماهنگترین حملات تاریخ خود مواجه شد. در این رویداد، ۳۳۳ نود خروجی (Exit Relay) که تقریباً ۱۰ درصد از کل ظرفیت خروجی شبکه تور را تشکیل میدادند، به یک باره کنترلی هماهنگ را برای رهگیری ترافیک آغاز کردند. بررسیها نشان داد که مهاجمان از ماهها قبل به این سرورها دسترسی پیدا کرده و بدافزار Ebury را روی آنها نصب کرده بودند.
پسزمینه و اهداف حمله
هدف اصلی این کمپین مخرب دو چیز بود:
- جمعآوری ترافیک ایمیلهای رمزنشده
- رهگیری اتصالهای SSH با استفاده از حمله مرد میانی (MITM)
مهاجمان با مسدود کردن برخی پورتها، نودهای خود را مجبور کردند تا تنها ترافیکهای خاصی را پردازش کنند. هنگامی که یک کاربر به طور تصادفی به یکی از این نودهای آلوده هدایت میشد و قصد برقراری ارتباط SSH روی پورت ۲۲ را داشت، ترافیک او بدون اینکه متوجه شود به سرورهای رهگیری مهاجمان هدایت میشد.
اگر کاربر هشدار تغییر کلید میزبان (Host Key) را نادیده میگرفت و به اتصال ادامه میداد، مهاجمان دو کار انجام میدادند:
- ارتباطی با سرور مقصد باز کرده و تمام دستورات تایپشده را مانیتور میکردند.
- اتصال دومی به سرور ایجاد کرده و تلاش میکردند بدافزار Ebury را روی آن مستقر کنند.
نحوه شناسایی و ابزارها
نویسنده مقاله با استفاده از ابزار exitmap و نوشتن یک اسکریپت سفارشی، موفق شد تمام نودهای آلوده را شناسایی کند. منطق این اسکریپت به این صورت بود:
- یک نود خروجی پین (Pin) میشد.
- ارتباط SSH از سرور A به سرور B برقرار میشد.
- سرور A بررسی میکرد که آیا کلید اثر انگشت (Fingerprint) صحیح را از سرور B دریافت کرده است یا خیر.
- سرور B بررسی میکرد که آیا اتصال از نود خروجی پینشده آمده یا به سرورهای رهگیری هدایت شده است.
با اجرای این اسکریپت روی کل ۳۰۰۰ نود خروجی شبکه تور، مشخص شد که بیش از ۳۰۰ نود ترافیک را به سمت سرورهای واسطه هدایت میکنند. نویسنده همچنین با استفاده از هانیپات sshesame دریافت که مهاجمان از کتابخانه پایتون paramiko و اسکریپتهای Perl برای اجرای دستورات مخرب استفاده میکنند.
واکنش تیم تور و جامعه توسعهدهندگان
پس از اینکه نویسنده یافتههای خود را در شامگاه جمعه به تیم سلامت شبکه تور (Tor Network Health Team) گزارش داد، آنها به سرعت وارد عمل شدند. این تیم طی اطلاعیهای به اپراتورها هشدار داد و نودهای آلوده با برچسب BadExit مشخص شدند تا کلاینتها دیگر از آنها استفاده نکنند. روز دوشنبه تمامی سرورهای آلوده یا توسط اپراتورها و یا توسط خود مهاجمان خاموش شدند.
در بخش نظرات هکرنیوز، توسعهدهندگان به نکات جالبی اشاره کردند:
- احراز هویت مبتنی بر کلید SSH (در مقابل رمز عبور) مانع از سرقت مستقیم رمز عبور توسط این نوع حملات میشود.
- فرضیهای وجود دارد که نشان میدهد برخی از این نودها به دلیل نفوذ در سطح ارائهدهندگان VPS و زیرساخت میزبانی (Hosting Provider) آلوده شدهاند، موضوعی که باعث شده برخی مهندسان دوباره به سمت سرورهای اختصاصی (Dedicated Servers) متمایل شوند.
چرا این موضوع برای مهندسان نرمافزار مهم است؟
این رویداد بار دیگر یادآوری میکند که زیرساختهای متکی بر حریم خصوصی و سرورهای میزبان رلهها و پلها، ماشینهای تولیدی بسیار حساسی هستند که باید به چشم اهداف با ارزش بالا به آنها نگاه کرد. استفاده از احراز هویت مبتنی بر کلیدهای سختافزاری و مقاومسازی پیکربندیهای SSH بیش از پیش اهمیت خود را نشان میدهد.
این مطلب بهصورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل