بکدور FlutterShell که با تبلیغات گوگل پخش میشه
خلاصهٔ کاملتر
به گزارش تیم Unit 42، یه کمپین بدافزاری روزافزون داره کاربرای macOS رو هدف میگیره. این کمپین که اسمش رو Operation FlutterBridge گذاشتن، ادامهی یه کمپین قبلی به نام JSCoreRunner هست و مهاجمهای مالیانگیزهی پشتش از پخش آگهیافزار ساده، به پخش آگهیافزاری رسیدن که قابلیت کامل بکدور داره. خود پیلود رو هم FlutterShell نامیدن. این فعالیت زیر یه خوشه به اسم CL-CRI-1089 ردیابی میشه.
FlutterShell با فریمورک Flutter ساخته شده و خودش رو جای نرمافزار واقعی جا میزنه. مهمترین ویژگیش معماری مبتنی بر WebView با یه پل JavaScript-to-native هست. یعنی بهجای اینکه منطق خرابکارانه داخل فایل اجرایی هاردکد بشه، روی یه وبسایت تحت کنترل مهاجم میزبانی میشه و فقط وقتی اپ اون محتوای وب رو لود میکنه فعال میشه. مزیتش برای مهاجم اینه که میتونه رفتار بدافزار رو همون لحظه و بدون کامپایل دوباره یا توزیع مجدد اپ تغییر بده. مجموعه دستورهای داخلیش هم اجرای دستور دلخواه، تعامل با فایلسیستم و استخراج متغیرهای محیطی (environment variables) رو شامل میشه.
نویسندهها سه نسخه از FlutterShell رو دیدن که خودشون رو جای یه اپ پادکست و دو نمایشگر PDF مختلف جا زده بودن. نکتهی نگرانکننده اینه که همهی نمونهها با Apple Developer ID معتبر امضا شده بودن و فرایند notarization اپل رو هم با موفقیت رد کرده بودن؛ یعنی بررسیهای امنیتی خودکار اپل موقع ثبت، اونها رو خرابکار تشخیص نداده بود. در زمان تحلیل هم هر سه اپ روی VirusTotal صفر تشخیص داشتن.
سه نسخهی اصلی، تقریباً ماهی یه بار منتشر شدن و با هر نسخه، مبهمسازی (obfuscation) پیشرفتهتر شده. نسخهی دوم (PDF-Brain) بخشی از رشتههاش رو مبهم کرده بود و نسخهی سوم (PDF-Ninja) از پرچم بومی Flutter یعنی --obfuscate استفاده کرده که اطلاعات دیباگ رو حذف و نام نمادها رو تصادفی میکنه و مهندسی معکوس رو خیلی سختتر میکنه. مهاجمها حتی اسم دستورهای خرابکارانه رو طوری عوض کردن که شبیه عملیات قانونی کتابخونههای PDF به نظر بیان تا از تحلیل ایستا و فرایند notarization اپل عبور کنن.
یه ویژگی جالب نسخههای PDF-Brain و PDF-Ninja، یه ابزار خلاصهسازی هوش مصنوعیه که همزمان نقش کانال استخراج داده رو هم بازی میکنه. بهجای اینکه محتوای فایل مستقیم به یه عامل (agent) هوش مصنوعی فرستاده بشه، FlutterShell اول محتوا رو به سرور C2 مهاجم میفرسته و سرور بهعنوان واسطه اون رو به سرویس هوش مصنوعی پاس میده. نتیجه اینه که کاربر خلاصهاش رو میگیره، ولی مهاجم همزمان کل محتوای هر سندی که پردازش میشه رو برداشت و استخراج میکنه. هدف اصلی نسخههای دیدهشده هم ربودن مرورگر بود؛ بدافزار فایل پیکربندی محافظتشدهی Chrome (همون Secure Preferences) رو دستکاری میکنه تا موتور جستجوی پیشفرض و صفحهی تب جدید به دامنهی مهاجم برن و ترافیک کاربر از یه سایت واسط پر از تبلیغ رد بشه.
بخش دیگهی ماجرا شبکهی توزیع گسترده از طریق تبلیغات گوگله. به گفتهی Unit 42، مهاجمها از شرکتهای پوششی (shell companies) تأییدشدهی گوگل مثل AdsParkPro LTD و Advantage Web Marketing LLC استفاده میکردن تا از بررسیهای شبکهی تبلیغاتی عبور کنن. این شرکتها سالها قبل از شروع فعالیت خرابکارانه ثبت شده بودن و یه فاصلهی حدوداً یکساله بین ثبت اکانت Google Ads و اولین خرج تبلیغاتی داشتن؛ یه استراتژی «جا انداختن» برای رد کردن فیلترهای اولیهی تشخیص تقلب. گوگل بعد از گزارش، این اکانتها رو بهخاطر نقض سیاستهاش معلق کرد. نویسنده نتیجه میگیره با توجه به توسعهی سریع نسخههای تازه، این کمپین هنوز تموم نشده و احتمالاً همین معماری پل JavaScript-to-native تو کمپینهای آیندهی مکاواس و ویندوز هم دیده میشه.
نکات کلیدی:
- FlutterShell یه بکدور مکاواس مبتنی بر Flutter هست که منطق خرابکارانهاش رو روی سرور مهاجم نگه میداره تا هر لحظه قابل تغییر باشه
- همهی نمونهها با Apple Developer ID معتبر امضا و notarize شده بودن و روی VirusTotal صفر تشخیص داشتن
- معماری WebView با پل JavaScript-to-native اجازه میده رفتار بدافزار بدون آپدیت اپ عوض بشه
- ابزار خلاصهسازی هوش مصنوعیش محتوای اسناد رو از طریق سرور C2 استخراج میکنه
- توزیع از طریق صدها تبلیغ تأییدشدهی گوگل و شرکتهای پوششی انجام میشد که گوگل بعداً معلقشون کرد




