توبیت
آنتی ویروس پادویش

آسیب پذیری خطرناک در تلگرام دسکتاپ؛ چگونه کدهای پنهان جاوا اسکریپت پیام های خروجی شما را سرقت می کنند؟

آسیب پذیری خطرناک در تلگرام دسکتاپ؛ چگونه کدهای پنهان جاوا اسکریپت پیام های خروجی شما را سرقت می کنند؟

فهرست مطالب

به گزارش زوم تک از د هکر نیوز، محققان امنیتی در شرکت اکس پچ (ExPatch) موفق به کشف یک آسیب پذیری جدی در برنامه تلگرام دسکتاپ (Telegram Desktop) شده اند که می تواند امنیت و حریم خصوصی میلیون ها کاربر را در سراسر جهان به خطر بیندازد.

کانال بله زوم تکگیفت کارت

کشف رخنه امنیتی بحرانی در قابلیت خروجی گرفتن چت های تلگرام دسکتاپ

بر اساس گزارش تحلیلی منتشر شده توسط این پژوهشگران در تاریخ ۱۲ سپتامبر، یک نقص فنی در ساختار این برنامه پیام رسان به پیام های ارسال شده توسط ربات ها اجازه می داد تا کدهای مخرب جاوا اسکریپت را به صورت پنهانی درون فایل های خروجی اچ تی ام ال (HTML) جاسازی کنند.

نحوه نفوذ و سرقت اطلاعات چت ها از طریق مرورگر کاربر

پیام ارسالی از طرف ربات درون محیط نرم افزار تلگرام کاملا طبیعی، عادی و همراه با دکمه های شیشه ای حاوی پیوند اینترنتی به نظر می رسید. با این حال، خطوط کد مخرب تنها زمانی به اجرا در می آمدند که کاربر فایل خروجی اچ تی ام ال را درون یک مرورگر وب باز می کرد. به محض باز شدن این سند در مرورگر، اسکریپت نفوذگر فعال شده و قادر بود تا تمامی پیام های موجود در آن فایل پشتیبان را خوانده و آنها را به یک سرور تحت کنترل هکر ارسال کند، یا این که محتوای نمایش داده شده در صفحه را به طور کامل دستکاری نماید.

عدم محافظت فایل های قدیمی با به روز رسانی نرم افزار

اگرچه شرکت تلگرام یک وصله امنیتی را در ماه ژوئیه برای رفع این باگ عرضه کرده است، اما واقعیت ماجرا این است که به روز رسانی نرم افزار هیچ تاثیری بر روی فایل هایی که پیش از این با نسخه های قدیمی تر تلگرام خروجی گرفته شده اند ندارد. بنابراین، تمام نسخه های پشتیبان اچ تی ام ال قدیمی که در حافظه رایانه کاربران ذخیره شده اند، همچنان می توانند حامل این کد مخرب و بسیار خطرناک باشند.

مکانیزم ذخیره سازی داده ها در نسخه های مختلف تلگرام دسکتاپ

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

اشتباه در عدم کدگذاری کاراکترهای ویژه در زمان تولید خروجی

محققان امنیتی یعنی دنیس روستیل подозревалов (Denis Rostilov) و الکساندر روستیل (Aleksander Rostilov) متوجه شدند که تا پیش از انتشار وصله ترمیمی، کدهای بخش خروجی برنامه تلگرام دسکتاپ، متن نوشته شده روی دکمه ها را بدون انجام عملیات پاکسازی و ایمن سازی (Escaping) مستقیما درون صفحات اچ تی ام ال قرار می دادند. فرایند ایمن سازی کاراکترهای خاص مانند علامت کوچکتر را به متون بی خطر تبدیل می کند تا مرورگر آنها را به عنوان کد اجرایی تلقی نکند؛ کاری که تلگرام برای متن پیام ها و نام فرستندگان انجام می داد اما متن روی دکمه ها را نادیده گرفته بود.

تزریق برچسب های اسکریپت در دکمه های ظاهرا خالی

در نتیجه این غفلت فنی، یک ربات خرابکار می توانست تگ اسکریپت را به همراه کاراکترهای نامرئی درون متن دکمه های خود جاسازی کند. در این حالت، دکمه مورد نظر در نسخه های بررسی شده تلگرام دسکتاپ کاملا خالی و بدون نوشته به چشم می آمد و کاربر هیچ نشانه ای از مشکوک بودن پیام در ظاهر رابط کاربری تلگرام احساس نمی کرد.

انتشار غیر مستقیم بدون حضور مستقیم ربات در گروه ها

یکی از خطرناک ترین ابعاد این نقص امنیتی آن است که ربات اصلا نیازی به عضویت در گروه هدف ندارد. پیامی که دکمه های آن فقط شامل پیوند های وب هستند، در صورت فوروارد شدن توسط کاربران به گفت و گوهای دیگر، دکمه های خود را حفظ می کند. بنابراین هر عضوی که پیام ربات را به یک گروه فوروارد کند، نادانسته حامل کد مخرب خواهد بود. این پیام سال ها یا ماه ها می تواند در آرشیو تاریخچه گروه باقی بماند تا روزی فردی از آن چت خروجی بگیرد.

گزارش مسئولانه آسیب پذیری به تیم امنیتی تلگرام

محققان اعلام کرده اند که این حفره نفوذ را در تاریخ اول ژوئن شناسایی کرده و تنها دو روز بعد یعنی در ۳ ژوئن آن را به تلگرام گزارش داده اند. آنها تاکید کرده اند که این سناریو تنها روی حساب ها و گروه های آزمایشی خودشان تست شده و در گزارش آنها هیچ ادعایی مبنی بر سوء استفاده عملی و نفوذ واقعی به حساب های کاربران عادی ثبت نشده است.

اجرای خودکار کدهای سرقت اطلاعات بدون نیاز به کلیک کاربر

بر اساس یافته های این پژوهشگران، به محض باز شدن فایل اچ تی ام ال حاوی آن پیام در مرورگر وب، کد مخرب بدون نیاز به کوچک ترین کلیک یا تعامل بعدی به طور خودکار اجرا می شد. این اسکریپت می توانست تک تک پیام های موجود در آن فایل، نام فرستندگان، زمان دقیق پیام ها، نام چت، نوع گفت و گو، تعداد اعضا و حتی مسیر محلی فایل روی دیسک کاربر را خوانده و بلافاصله به سرور مهاجم انتقال دهد.

تقسیم بندی فایل های پشتیبان و محدودیت دسترسی در یک فایل

کدهای خروجی تلگرام دسکتاپ فایل های طولانی را به بخش های ۱۰۰۰ پیامی تقسیم می کنند، به همین دلیل باز شدن یک فایل منفرد نهایتا محتویات همان بخش از پیام ها را افشا می کند و به یکباره کل تاریخچه حساب یا تمام گفت و گوها را در معرض خطر قرار نمی دهد. با این حال، دستیابی به ۱۰۰۰ پیام نیز برای قربانی پیامدهای بسیار ناگواری به همراه دارد.

فیشینگ و جعل صفحه تایید هویت تلگرام درون مرورگر

اسکریپت مذکور تنها به سرقت داده ها بسنده نمی کرد، بلکه می توانست محتوای سند را بازنویسی کند. پژوهشگران در آزمایش خود نشان دادند که چگونه این اسکریپت توانست کل محتوای صفحه را پاک کرده و آن را با یک فرم فیشینگ جعلی به عنوان فرم تایید هویت تلگرام جایگزین کند. این روش می توانست به عنوان یک راهکار بسیار فریبنده برای دزدیدن اطلاعات کاربری و دسترسی های دیگر عمل کند.

دستکاری تاریخ و مشخصات پیام ها بدون تغییر در سرور

همچنین این کنترل می توانست برای تغییر دادن تاریخ ها، نام فرستنده ها یا متن پیام های یک سند چت که ممکن است به عنوان مدرک یا سابقه نگهداری می شود، مورد سوء استفاده قرار گیرد. البته این اسکریپت تاثیری روی نسخه ذخیره شده چت ها در سرورهای ابری تلگرام یا فایل اصلی روی دیسک نداشت و تغییرات صرفا در هنگام رندر شدن صفحه در مرورگر اعمال می شد.

امتیاز شدت آسیب پذیری و شروط لازم برای اجرای حمله

محققان امنیت سایبری بر اساس شاخص CVSS امتیاز ۸.۲ از ۱۰ را به این آسیب پذیری اختصاص داده اند که نشان دهنده سطح خطر بالایی است، هرچند پایگاه داده آسیب پذیری های ملی آمریکا هنوز امتیازی برای آن درج نکرده است. برای اجرای این حمله سه شرط لازم بود: خروجی اچ تی ام ال باید با نسخه ای قدیمی از تلگرام ایجاد شده باشد، پیام حاوی اسکریپت درون آن بخش ذخیره شده باشد، و فایل در مرورگری با جاوا اسکریپت فعال باز شود.

تفاوت قالب های خروجی و رفتار سیستم در انواع گفت و گوها

پژوهش های انجام شده صرفا روی حالت خروجی اچ تی ام ال تلگرام دسکتاپ تمرکز داشته و فرمت خروجی جیسون (JSON) یا سایر اپلیکیشن های موبایلی بررسی نشده اند. علاوه بر این، قرار گرفتن پیام فوروارد شده ربات در خروجی به نحوه تهیه بکاپ بستگی دارد؛ خروجی گرفتن از منوی یک چت خاص پیام تمام اعضا را شامل می شود، در حالی که بکاپ کامل حساب کاربری در حالت پیش فرض فقط پیام های خود کاربر در گروه ها و کانال ها را در بر می گیرد اما در چت های دونفره یا چت با ربات ها، همه پیام ها صادر می شوند.

جزئیات وصله منتشر شده و تاریخچه نسخه های آسیب پذیر تلگرام

رفع این نقص امنیتی در تعهد کدی با شناسه 8457d13a توسط توسعه دهنده تلگرام دسکتاپ، جان پرستون، نوشته شد که کاراکترهای متنی دکمه ها را پاکسازی می کند. این اصلاحیه در تاریخ ۳۰ ژوئن نوشته شد و در نسخه بتا ۶.۹.۴ در تاریخ ۳ ژوئیه و سرانجام در نسخه پایدار ۷.۰.۱ در ۱۴ ژوئیه منتشر گردید. بررسی ها حاکی از آن است که این خط کد بدون پاکسازی از نسخه ۴.۱۵.۱ در مارس ۲۰۲۴، یعنی حدود دو سال و چهار ماه درون نسخه های پایدار تلگرام باقی مانده بود.

نسخه های تحت تاثیر و بازه های زمانی به روز رسانی

تمامی نسخه های تلگرام دسکتاپ از ۴.۱۵.۱ تا نسخه ۶.۹.۳ تحت تاثیر این آسیب پذیری بوده اند. این مشکل در نسخه آزمایشی ۶.۹.۴ و نسخه های پایدار ۷.۰.۱ و بالاتر به طور کامل برطرف شده است. به همین علت، کارشناسان به تمام افراد توصیه می کنند که نرم افزار خود را فورا به آخرین نسخه در دسترس ارتقا دهند تا از خطرات مشابه مصون بمانند.

توصیه های مهم و کلیدی به کاربران جهت حفظ امنیت خروجی چت ها

کارشناسان شرکت اکس پچ توصیه های متعددی را مطرح کرده اند: کاربران باید تلگرام دسکتاپ را به نسخه ۷.۰.۱ یا نسخه های جدیدتر به روز رسانی کنند. پس از ارتقا، اگر چت هایی قبلا به صورت اچ تی ام ال ذخیره شده اند باید دوباره خروجی گرفته شوند، یا اینکه فایل های قدیمی تنها در مرورگری باز شوند که جاوا اسکریپت در آن به صورت کامل غیرفعال شده است. علاوه بر این، باید تمام خروجی های قدیمی تر به عنوان فایلی غیرقابل اعتماد تلقی شوند، به خصوص اگر از گروه های شلوغی باشند که فرستنده پیام ها در آنها نامشخص است.

سکوت تلگرام، نبود شناسه CVE و چالش های افشاگری امنیتی

در یادداشت های انتشار نسخه های جدید تلگرام دسکتاپ و مخزن گیت هاب این برنامه هیچ اشاره ای به وجود این وصله امنیتی نشده و هیچ شناسه رسمی CVE برای آن به ثبت نرسیده است. محققان اعلام کرده اند که تلگرام در تاریخ ۱ ژوئیه وجود این نقص را تایید کرد و پاداش ۵۰۰ دلاری کشف باگ به آنها پیشنهاد داد که آنها این مبلغ را رد کرده و خواستار اهدای آن به امور خیریه شدند. با وجود درخواست محققان برای هماهنگی زمان اعلام عمومی، تیم پشتیبانی تلگرام در ایمیلی اعلام کرد که حتی با افشای عمومی آسیب پذیری های برطرف شده نیز موافق نیست، چرا که این موضوع می تواند کاربران را در معرض حملات بعدی قرار دهد. با این حال، به دلیل نبود هیچ گونه قرارداد عدم افشاگری (NDA)، محققان پس از گذشت چند ماه از انتشار وصله، یافته های خود را به طور کامل منتشر کردند.

به این پست امتیاز بدید

نظرات در مورد : آسیب پذیری خطرناک در تلگرام دسکتاپ؛ چگونه کدهای پنهان جاوا اسکریپت پیام های خروجی شما را سرقت می کنند؟

0 دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *