یکی از امکانات تلگرام استفاده از الگوریتم رمزنگاری غیرمتقارنی به نام MTProto در راستای رمزنگاری محتوا بود. بعدها تلگرام از سرویسی با نام MTProxy استفاده کرد تا بتواند بهکمک این پروتکل با فیلترینگ ایران مقابله کند.
نفوذ بسیار بالای تلگرام در ایران باعث شده است کاربران بیشماری علاوهبر استفاده از فیلترشکنها به فکر استفاده از MTProxyهای رایگان بیفتند. افرادی که بیاطلاع از همهجا امروز تبدیل به باتنتهای یک شبکهی بزرگ خرابکاری اینترنتی شدهاند.
ابر آروان با تحلیل حملات گستردهی روزهای گذشته به زیرساختهای خود یک نوع حملهی کاملن توزیعشدهی جدید را تشخیص داد. این حملات تفاوتهای اساسی با حملات پیشین داشتند:
- این حملات مستقیمن به آدرس IP و پورت ۸۰ سرورهای لبهی ابر آروان ارسال شده بودند و اثری از دامنهای خاص در درخواستهای آنها یافت نمیشد.
- ترافیک دریافتی کاملن تصادفی به نظر میرسید. حتا آنتروپی محاسبه شده روی اطلاعات درخواستهای دریافتی تقریبن معادل ۴ بود.
- ترافیک دریافتی در لایهی ۷ بود. اما از هیچیک از پروتکلهای معروف این لایه مانند HTTP، HTTPS، FTP و… پیروی نمیکرد.
- حمله کاملن داخلی بود و IPهای حملهکننده، در داخل کشور قرار داشتند.
تصویر ۱: درخواستهای عادی به سرورهای لبهی ابر آروان
حجم بالای این حملات میتوانست بسیاری از وبسایتها و سامانههای آنلاین را دچار اختلال کند، اما برای ساختار توزیعشده و سامانههای جلوگیری از حملات DDoS ابر آروان مقابله با این حملات کار سختی به نظر نمیرسید، اما تحلیل این حملات به آسانی همیشه نبود.
نه از دادههای ارسالی میتوانستیم سرنخی بهدست آوریم، نه نشانیهای درخواستهای ارسالی الگوی مشترکی داشتند که بتوانیم از آنها استفاده کنیم.
تصویر ۲: درخواستهای ارسالی به سرورهای لبهی ابر آروان در حمله
این حمله در روز سهشنبه ۱۴ آبان ساعت ۲۳:۳۶ دقیقه شروع و در روز یکشنبه ۱۹ آبان ساعت ۲۳:۴۶ دقیقه به پایان رسید. اوج این حملات روز چهارشنبه بود که تعداد درخواستهای ارسالی به سمت سرورهای ابر آروان به حدود ۱۰۰ هزار درخواست در ثانیه رسید. اگرچه این حملات در مقابل حملات گستردهای که در ابر آروان با آن مقابله میشود از شدت بسیار بالایی برخوردار نبودند اما همین حملات، امکان از دسترس خارج کردن بیشتر وبسایتهای کشور را دارند. تفاوت مهم دیگر، وجود منشا داخلی این حملات بود که باعث پررنگتر شدن آن میشود.
کشف منشا
برای یافتن منشا حملات، فعالیتهای زیادی انجام شد که بسیاری از آنها شکست خوردند. اما در ساعات انتهایی روز شنبه، به حدسی هوشمندانه دست یافتیم؛ شاید ترافیک برای سرویس MTProxy نرمافزار تلگرام باشد!
چند نکته در ترافیک نمونهگیری شده وجود داشت که این حدس را تقویت میکرد:
- ترافیک سرویس MTProxy رمزنگاری شده است و ترافیک رمز شده معمولن رفتاری مانند ترافیک تصادفی دارد. همچنین در پروتکل MTProto این درهمریختگی تصادفی، تشدید نیز میشود.
- متاسفانه با فیلتر شدن تلگرام استفاده از سرویس MTProxy برای دور زدن فیلترینگ، روی این سرویس بسیار شایع شده است که با توزیعشدگی شدید این حمله تطابق داشت.
- ارسال و استفاده از سرویسهای رایگان MTProxy در کانالهای تلگرام امری شایع و ساده است. بهراحتی میتوان با تغییر نشانی IP یکی از این سرورها به نشانی ابر آروان، ترافیک مشابه ایجاد کرد.
- بهدلیل ساختار استفاده از سرویس MTProxy، چند نشانی بهعنوان سرور در اختیار نرمافزار قرار میگیرد که بهوسیلهی تلگرام بررسی میشوند. این بررسی خودکار میتواند منجر به ایجاد ترافیک بدون اطلاع کاربر شود.
- یک دامین پروکسی میتواند دارای چندین نشانی IP باشد و تلگرام به تمام این IPها درخواست را ارسال میکند. اگر یکی از این IPها برای حمله استفاده شود و باقی آنها درست کار کند، کاربر تنها با کندی سرویس پروکسی مواجه و متوجه قطع سرویس نمیشود.
با شبیهسازی سناریوی احتمالی، حدس سرویس MTProxy تقویت شد. ترافیک ایجاد شده به ترافیک دریافتی شباهت زیادی داشت. موضوعی که با بررسی ترافیک نمونهگیری از درستی آن اطمینان پیدا کردیم.
در زیر تصویر یکی از استریمهای TCP کپچر شده در نرمافزار Wireshark آمده که بهشکل hexdump آن را مشاهده میکنید.
سپس قسمت پیام ارسالی را کپی و براساس پروتکل MTProto جداسازی کردیم که در شکل زیر آن را مشاهده میکنید.
بر اساس پروتکل MTProto، قسمت کلید اولیه از پیام جدا شده را با ترکیبی از secret سرویس MTProxy ساختیم. اما مقدار secret برای ما قابل ارزیابی نبود. با یک حدس هوشمندانه توانستیم مقدار درست secret را ارزیابی کنیم. این مقدار ۰x00000000000000000000000000000000 بود! با استفاده از این مقدار توانستیم هش مورد نظر را محاسبه و به عنوان کلید رمزگشایی از آن استفاده کنیم.
با استفاده از کلید بهدست آمده و I.V با الگوریتم AES-256bit در مُد CTR، توانستیم کل پیام را رمزگشایی کنیم. یکی از امضاهای پروتکل MTProto داشتن مقادیر ۰xefefefef یا ۰xeeeeeeee و یا ۰xdddddddd در بایت ۵۷ام است که در ترافیک نمونهگیری شده، مشاهده میشود.
تیم امنیت ابر آروان پس از مطمین شدن از جنس ترافیک، به کانالهای تلگرامی ارایه دهندهی سرویس MTProxy مراجعه کرد. برخی از سرورهای ارایه شده در این کانالها، به نشانی IP ابرآروان resolve میشدند که تعدادی از این نشانیها در فهرست زیر آمده است:
Atom.ChMTP.Info
walking.firewall-gateway.com
ToKhobi.MyFirewall.org
سخن پایانی
در این یادداشت به رخدادی اشاره کردیم که به احتمال زیاد حملهای است که در نوع خود تاکنون گزارش نشده است. این مشکل از فیلتر شدن تلگرام شروع میشود. نبود نگاه چند جانبه نسبت به فناوریهای روز باعث حذف یک پیامرسان با میلیونها مخاطب شد، موضوعی که در مقاطع مختلف با تهدیدات متفاوتی کشور را مواجه کرده است.
رواج بیش از اندازه نسخههای غیر اصل از تلگرام که متهم به سو استفاده از دستگاههای شخصی کاربران ایرانی بودند یکی از این موارد، و اکنون نیز استفاده از MTProxy رایگان، و ترویج آن تهدید بزرگ دیگری را در برابر کاربران ایرانی قرار داده است.
در حال حاضر ابر آروان هشدار جدی میدهد که اگر تصمیمات سختی اتخاذ نشود، مدیران کانالهای تلگرامی که اقدام به ترویج MTProxyهای رایگان میکنند، دو قدرت بسیار مهم در اختیار خواهند داشت:
- سو استفاده از کاربران بیشمار ایرانی برای DDoS کردن وبسایتهای یا سامانههای حیاتی کشور
- گمراه کردن دستگاههای حاکم بر فضای سایبری و قربانی کردن سرورهای بیگناه با ارسال ترافیک MTProto به این سرورها