سرویس تلگرام در ۱۰ اردیبهشت ۱۳۹۷ به دستور یک بازپرس بهشکل کامل مسدود شد. یکی از امکانات تلگرام استفاده از الگوریتم رمزنگاری غیرمتقارنی به نام 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 را ارزیابی کنیم. این مقدار 0x00000000000000000000000000000000 بود! با استفاده از این مقدار توانستیم هش مورد نظر را محاسبه و به عنوان کلید رمزگشایی از آن استفاده کنیم.
با استفاده از کلید بهدست آمده و I.V با الگوریتم AES-256bit در مُد CTR، توانستیم کل پیام را رمزگشایی کنیم. یکی از امضاهای پروتکل MTProto داشتن مقادیر 0xefefefef یا 0xeeeeeeee و یا 0xdddddddd در بایت ۵۷ام است که در ترافیک نمونهگیری شده، مشاهده میشود.
تیم امنیت ابر آروان پس از مطمین شدن از جنس ترافیک، به کانالهای تلگرامی ارایه دهندهی سرویس MTProxy مراجعه کرد. برخی از سرورهای ارایه شده در این کانالها، به نشانی IP ابرآروان resolve میشدند که تعدادی از این نشانیها در فهرست زیر آمده است:
Atom.ChMTP.Info
walking.firewall-gateway.com
ToKhobi.MyFirewall.org
سخن پایانی
در این یادداشت به رخدادی اشاره کردیم که به احتمال زیاد حملهای است که در نوع خود تاکنون گزارش نشده است. این مشکل از فیلتر شدن تلگرام شروع میشود. نبود نگاه چند جانبه نسبت به فناوریهای روز باعث حذف یک پیامرسان با میلیونها مخاطب شد، موضوعی که در مقاطع مختلف با تهدیدات متفاوتی کشور را مواجه کرده است.
رواج بیش از اندازه نسخههای غیر اصل از تلگرام که متهم به سو استفاده از دستگاههای شخصی کاربران ایرانی بودند یکی از این موارد، و اکنون نیز استفاده از MTProxy رایگان، و ترویج آن تهدید بزرگ دیگری را در برابر کاربران ایرانی قرار داده است.
در حال حاضر ابر آروان هشدار جدی میدهد که اگر تصمیمات سختی اتخاذ نشود، مدیران کانالهای تلگرامی که اقدام به ترویج MTProxyهای رایگان میکنند، دو قدرت بسیار مهم در اختیار خواهند داشت:
- سو استفاده از کاربران بیشمار ایرانی برای DDoS کردن وبسایتهای یا سامانههای حیاتی کشور
- گمراه کردن دستگاههای حاکم بر فضای سایبری و قربانی کردن سرورهای بیگناه با ارسال ترافیک MTProto به این سرورها
54 دیدگاه
ممنون از مقاله خوبتون
بسیار جامع بود تشکر
آفرین به شما بابت انتشار تجربتون
این نوع رو دیگه ب عقل جن هم نمیرسه واقعا :))
خسته نباشید واقعا حتی پیدا کردنش هم میشه گفت ب عقل نمیرسه ، لایک ♥
نکات خیلی خوبی بود. ممنون از اشتراک گذاری گزارش
متاسفانه فیلترینگ تلگرام مرگ خاموش کسب و کارهای ایرانی بود و هنوز هم آثارش ادامه داره
متوجه نشدم. resolve کردن با سرورهای ابر آروان چه ربطی به حمله داشت؟ حمله کننده هویت داشته یا ماهیت وجود mtproxy و resolveشون باعث وجود انباشت درخواست شده؟
یعنی چی ترافیک رمز گزاری شده است ؟ ترافیک یعنی چی ؟ شما تعاریف پایه ای هم یعنی بلد نیستید ؟
لطفاً از الفاظ درست استفاده کنید تا به دانش ابتدایی شما شک نکنیم .
اینها چیه تحویل ملت میدید ؟
کاری ندارم که کلاً مطلبی که گفتید در علم شبکه عملاً چرت هست . شما چرا باید edge تون باز باشه که بخوان ترافیک روش بفرستن همینطوری ؟
متشکرم از اشتراک گذاری تجربه
فقط اگر یکم به نگارش املایی کلمات هم توجه می کردید عالی تر می شد. به هر حال موفق باشید.
ما هم این مشکل چند روز قبل تر برامون پیش اومده بود که نتونستیم عامل اش رو کشف کنیم.
ممنون برای اشتراک
الان از خودتون به خودتون اتک زدند کشف کردید گزارش دادید آفرین این معمار های تخصصی چه می کنند ! ؟ بعد فیلتر بردارند که سو استفاده از ابروان کمتر بشه حملات بیاد پایین ؟ راه حل دیگه جز پاک کردن صورت مسئله هم دارید ارائه بدید ؟؟
بسیار گزارش جالبی بود ممنون که این تجربه رو به اشتراک گذاشتید.
چه روش خلاقانه و جالبی بود برای حمله DDOS
احسنت، چه کار هوشمندانهای کردن این حملهکنندهها
عالی بود ممنونم
چیزی که به ذهنم میرسه، با وجود یک چنین مشکلی، خطر بیخ گوش همه ی ما هست
با یک چنین سیستمی خیلی راحت میشه هر سرویسی رو هدف قرار داد
به این فکر کردم اگر IP سرور ما رو داشته باشن و بجای آروان اتک روی زیر ساخت خودمون باشه چه خواهیم کرد
کی به این نتیجه می رسیم که فیلتر کردن ابزارها کار درستی نیست خدا می دونه
جالب اینه که این ابزارها تو کشورهای دیگه هم مورد استفاده قرار میگیره
و برای هیچ کشوری بجز ما دردسر درست نمیکنه و فقط برای ما این مشکلات رو درست میکنه
شاید از DNS های شما برای فیلتر نشدن استفاده میکردند :)))
دستمریزاد، اونجا که با حدس کلید 0x000 گفتید “توانستیم کل پیام را رمزگشایی کنیم” منظورتان چی بود؟ یعنی به تکست پیام هم دسترسی پیدا شد؟
ممنون از انتشار تجریبات
سکرت کی شون تو حلقم!
ولی دمتون گرم
مرسی تحلیل !
در نظر بگیر که یک کانال تلگرامی مربوط به mtproto دست به انتشار دامنه های جعلی mtproto بزند و در اصل این دامنه ها به ip یک سرور در ابرآروان resolve میشود
در این صورت زمانی که کاربران کانال این دامنه های جعلی را به لیست mtprotoهای برنامه تلگرتم خود اضافه کنند، برنامه تلگرام تلاش می کند که به لین سرور به عنوان یک سرور mtproto متصل شود. به دلیل اینکه برنامه تلگرام نمی تواند به این سرور متصل شود در بازه های زمانی متناوب دوباره تلاش می گند به سرور متصل شود.
در این حمله از منظر سرور ترافیک لایه ۷ نامتعارف و رمز شده ای دیده می شود که برای سرور بی معنی هستند. در این وضعیت مقداری از منابع سرور صرف ایجاد و نگهداری connectionهای tcp می شود و در صورتی که تعداد کابران آلوده به صورت همزمان بسیار زیاد باشد سرور از پاسخ دادن باز می ماند.
البته به نظر من تحلیل ابرآروان درست نیست. برای مثال فرض کنید ۱ میلیون نفر به صورت همزمان آلوده شده اند و همگی به یک سرور حمله می کنند. در صورتی که پس از انجام شدن hanshak tcp یک بسته با حداکثر سایز ارسال شود و این کار هر ۱ ثانیه یکبار توسط کلاینتهای تلگرام انجام شود در مجموع در بدترین حالت پپ۱.۵ گیگابیت بر ثانیه ترافیک ایجاد می شود و این اعداد برای تولید یک حمله ddos اعداد قابل توجهی نیستند و حتی طبق ادعای ابرآروان یک در صد توان آنها هم به حساب نمی آید در نتیجه به نظرم این تحلیل صحیح نیست
سلام بهترین کار اینه اطلاعات رو به شرکت تلگرام هم ارسال کنید تا بررسی کنند
خوب شاید مردم MTProxy هاشون رو روی سرورهای ابرآروان آورده بودهاند (میدانم غیر قانونی است).
شواهدی از فیلتر شدن MTProxy ها توسط DPI وجود داره که ممکنه به دلیل این موضوع Retryهای clientها این ترافیک رو ایجاد کرده باشه (با توجه به این که اندازهی نمودارهای ترافیک را نیاوردهاید نمیدانم حدس منطقیای هست یا نه)
این ترد گیتهاب هم خواندنی است:
https://github.com/TelegramMessenger/MTProxy/issues/35
مطلب جالبی بود
سلام
من خیلی از این proxy ها استفاده می کنم و تا این لحظه به این مسئله فکر نکرده بودم واقعا متاسف شدم از اینکه شاید من هم ابزاری شده باشم برای ضربه زدن به کسب و کار های داخلی، و همچنین از شما به خاطر این مقاله آگاهی بخش بسیار ممنونم و امیدوارم تمام کسانی که این مقاله رو خوندن در جهت کاهش استفاده از این proxy ها تلاش کنند.
سلام توی این وضعیت الان من چطور وارد بشم وقتی برای ورود به ایمیل من فرستادید پیام رو!؟
ممنون از تیم ابرآروان بابت انتشار این تجربه. از این دست مقالات در سطح وب فارسی واقعا کم هستند. امیدوارم کم کم به سمتی حرکت کنیم که این نوع مقالات ارزشمند بیشتر توسط شرکت و افراد فعال منتشر شود.
سلام بله ما می اومدیم یک سرور خارجی می ساختیم اون رو پاپلیک میکردیم و بعد که فیلتر میشد مداوم ای پی سرور های که باهاشون مشکل داشتیم رو قرار میدادیم به سادگی سرور شرکت ها فیلتر میشد. ولی خوب برای حمله DDS باید تعداد کاربران یک پراکسی به حد بسیار بالایی برسه و مالتی آپی باشه
سلام
خسته نباشید.
ممنون از اینکه این تجربه را در اختیار همه قرار دادید و امیدوارم همیشه موفق و سربلند باشید.
:/ خب برادر از دی ان اس کلود شما جهت مخفی کردن آیپی سرور mtproto استفاده کردن
resolve بکنی آی پی شما برمیگرده اینکه چیز طبیعی هست چه ربطی به حمله داشت…
واقعا عالی بود. ممنون از شما.
حمید جان یک دامین پروکسی میتواند دارای چندین نشانی IP باشد و تلگرام به تمام این IPها درخواست را ارسال میکند. اگر یکی از این IPها برای حمله استفاده شودresolve کردن با سرورها و باقی آنها درست کار کند، کاربر تنها با کندی سرویس پروکسی مواجه و متوجه قطع سرویس نمیشود.
وقتی که بدون فکر یک کاری انجام میشه همین میشه ، آموزش امنیت توی فضاهای سایبر سخت تره یا کنترل این حملات که خدا میدونه کی استفاده میکنه یا برنامه های جعلی تلگرام که خودش یک نوع نفوذ به حساب میاد یا فسادی که بعد از فیلتر شدن بیشتر شده توی اون فضا ها
با تشکر از مقاله خوبتون …
فقط غلط دیکته زیادی داشت لطفا اصلاح بفرمایید
متشکرم از به اشتراک گذاری تجربتون
مقاله بسیار خوبی بود. برای من هوش و درایت کارشناسان امنیت ابر آروان قابل تحسین هست. اصلا فکرش رو نمی کردم که بشه از این روش مردم رو قربانی کرد و بدون اینکه بدونند موبایل افراد وسیله حملات به سرورهای سایت ها بشن. به امید روزی که تعقل جایگزین تعصب بشه!
واقعا خسته نباشید و خدا قوت . عالی بود.
ابرآروانی ها املای خودشون رو دارن که خیلی هم جالب هست
پیشنهاد میکنم صفحه زیر رو مطالعه کنید:
https://www.arvancloud.com/fa/culture/orthography
خیلی جالب بود
فقط کاش یکم ساده تر مینوشتید یا یک منبعی برای مطالعه بیشتر افراد با دانش کمتر هم میگذاشتید.
مطالب بسیار ارزنده ای بیان کرده بودید. از معضلات فیلترینگ به وجود آمدن همین مشکلات است
سلام , ممنون گزارش فوق العاده ای بود , نکات خوبی رو فرمودید , تشکر از اشتراک گذاریتون.
ممکنه هم فقط یه سری پروکسی با استفاده از آیپی های شما ساخته شده که یکی یکی از کار افتادن و هیچ حمله ی عمدی ای در کار نبوده
سلام و تشکر از مقاله خیلی خوبتون هم کاربردی بود و هم جامع موفق باشید
سلام خسته نباشید
مقاله تون خیلی مفید بود حتما به اشتراک میذارم.
سلام خسته نباشید مطلبتون واقعا جامع بود حتما به اشتراک میذازم
مطلب واقعا جالبی بود
به طور قالب MTProxy های رایگان برای استفاده تجاری از داده هاست و امکان شنود و بازنویسی وجود داره
متشکرم از به اشتراک گذاری تجربتون
واقعا خسته نباشید و خدا قوت
ممنون از انتشار تجریبات
نکات خیلی خوبی بود. ممنون
بسیار جامع بود
تیم خیلی خوبی دارید با اینکه کلی مخالف داره ولی من سرویستون رو به کلودفلر ترجیه دادم
با سلام
اگر MTProxy باعث این مشکل شده است. چه ارتباطی می تونه داشته باشه به ابرآروان.
مبدا MTProxy سیستم یا موبایل کاربر تلگرام هست و مقصد این ترافیک میشه سرورهایی که پروکسی های رایگان بر روی آنها قرار دارند و از اون طرف هم سرورهای پروکسی این ترافیک رو روی سرورهای تلگرام ارسال می کنند. این وسط چه ارتباطی به شرکت ابراروان داره؟
درود
مهدی عزیز
وقتتون بخیر
حمله کننده آدرس سرورهای ابر آروان را در میان فهرست آدرس سرورهای پروکسی تلگرام قرار داده بود و کلاینت کاربر از هر چند درخواست یکی هم به سرورهای آروان ارسال میکرد و به دلیل تعداد بالای کاربران حمله شکل میگرفت.