رمزگشایی از تلهمتری مخفی گوشیهای ترنسیون
خلاصهٔ کاملتر
ترنسیون چهارمین سازندهی بزرگ موبایل دنیاست و برندهاش (TECNO، Infinix و itel) تو آفریقا، جنوب و جنوبشرق آسیا و آمریکای لاتین خیلی پرطرفدارن. رو همهی این گوشیها یه فریمورک تلهمتری اندرویدی نصبه: Athena برای جمعکردن رویدادها و oneID برای ردیابی بیناپلیکیشنی، که هر دو به دامنهی *.shalltry.com گزارش میدن. کاربرا مدتها میدونستن این گوشیها «به خونه زنگ میزنن»، ولی چون ترافیک رمزشده بود محتواش یه جعبهی سیاه مونده بود.
نویسنده میگه رمزنگاری واقعیه ولی عملاً مانع نیست، چون کلیدها مستقیم داخل خود کلاینت جاسازی شدن. محققها SDK رو از فرمورِ یه TECNO Spark 40 بیرون کشیدن و دیدن رمزنگاری یه AES/CBC سادهست بدون کد نیتیو یا محافظت white-box. بردار اولیه (IV) یه رشتهی ثابت ۱۶ بایتی بود که رو هر پیام و هر دستگاه یکسان میموند، و کلید هم از یه جدول انتخاب میشد.
مهمتر اینکه اون جدول ۶۴ کلیدی یه ثابت سراسریه؛ رو کل ناوگان دستگاهها و رو نسخههای مختلف SDK یکسانه. محققها با مقایسهی ترافیک دو دستگاه مختلف که خروجی رمزشدهی یکسان تولید میکردن این رو تایید کردن. یعنی یه بار بهدست آوردنِ این جدول کلید، عملاً همهی ترافیک رو باز میکنه. برای خوندنِ جدول از حافظه هم فقط یه هوک رانتایم رو یه دستگاه غیرروت لازم بود.
یه نمونه از payload رمزگشاییشده نشون میده که خود اپ Settings سیستم یه رویداد location میفرسته که شامل مختصات دقیق GPS و برجهای سلولیِ اطرافه. این مختصات تنها نمیره؛ داخل همون envelope دستگاه به حدود ۱۴ شناسهی دائمی (مثل gaid، شمارهی سریال هششده و شناسههای سختافزاری) گره میخوره که هیچکدوم توسط کاربر قابل ریست نیستن. همین شناسهها کلیدِ اتصالِ این لوکیشن به بقیهی رویدادها از همهی اپها در طول زمان هستن.
رو سختافزار ترنسیون این SDK یه کامپوننت سیستمیِ امضاشدهست (نسخههای -sys) که داخل پکیجهای پرمجوز مثل systemui، settings، لانچر، سرویس دوربین و یه هابِ مرکزی به اسم com.hoffnung (با لیبل TPMS) اجرا میشه. رویداد data_use این هاب گزارش میده هر اپ نصبشده چقدر داده مصرف کرده، حتی اپهایی که هیچوقت چیزی رو ادغام نکردن؛ رو یه دستگاه بیش از ۶۰ اپ گزارش شده بود. نویسنده میگه مهم نیست کاربر تو اون اپها آنالیتیکس رو قبول کرده یا نه، چون این سرویس سیستمی از بیرون همه رو میشماره.
نسخهی sandboxشده و app-level همین SDK تو اپهای محبوب third-party هم هست و رو هر گوشی اندرویدی (چه ترنسیون چه غیر) میره، که یه ریسک زنجیرهی تامینه. چون رو سختافزار ترنسیون این چیز غیرقابلحذفه، نویسنده میگه کنترلهای سمت کلاینت کافی نیستن و تنها راه موثر، بلاک سطح DNS رو کل دامنه (*.shalltry.com و *.transsion-os.com) هست؛ اون هم بهصورت apex-wildcard، چون فریمورک با GSLB مدام هاستهای جدید توزیع میکنه و بلاکلیستهای ساده جواب نمیدن.
نکات کلیدی:
- گوشیهای ترنسیون با فریمورک Athena لوکیشن دقیق، اپ باز و مصرف دادهی همهی برنامهها رو به *.shalltry.com میفرستن
- کلید AES و جدول ۶۴ کلیدی یه ثابت سراسریان و مستقیم داخل اپ جاسازی شدن، پس یه بار استخراج همهچی رو باز میکنه
- داده به شناسههای دائمیِ غیرقابلریست گره میخوره و چون SDK کامپوننت سیستمیه، تنها راه دفاع بلاک DNS با apex-wildcard هست




