Trojan.Android.Chameleon.Ia

شرح کلی

نوع: تروجان (Trojan)

درجه تخریب: متوسط

میزان شیوع: متوسط

اسامی بدافزار

  • (Padvish) Trojan.Android.Chameleon.Ia
  • (Kaspersky) HEUR:Trojan-Banker.AndroidOS.Coper.a
  • (Avira) ANDROID/Spy.Banker.yectp
  • (ESET) Android/Spy.Banker.CHB

تروجان چیست؟

تروجان‌ها نوعی از بدافزارها محسوب می‌شوند که خود را در قالب نرم‌افزاری سالم و قانونی نشان می‌دهند و بسیار شبیه نرم‌افزارهای مفید و کاربردی رفتار می‌کنند. اما هنگامی ‌که اجرا می‌شوند، خرابی‌های زیادی را برای سیستم ایجاد می‌کنند.

از جمله راه‌های ورود تروجان‌ها به سیستم: نرم‌افزارهای دانلود شده از اینترنت، جاساز شدن در متن HTML، ضمیمه شدن به یک ایمیل و غیره هستند. تروجان‌ها برخلاف ویروس‌ها و کرم‌های کامپیوتری قادر به تکثیر خود نیستند.

خانواده بدافزاری (Android) Chameleon چیست؟

بدافزار Chameleon یک تروجان بانکی پیشرفته در سیستم‌عامل اندروید است که از سال 2023 تاکنون در عملیات گسترده‌ی سرقت اطلاعات مالی و تصاحب غیرمجاز حساب‌های کاربری مورد استفاده قرار گرفته است.

این بدافزار که اخیراً دامنه‌ اهداف خود را گسترش داده، عمدتاً از طریق تکنیک‌های مهندسی اجتماعی و توزیع فایل‌های APK آلوده با ظاهر اپلیکیشن‌های معتبری مانند Google Chrome توزیع می‌شود.

Chameleon با سوءاستفاده از Accessibility Services، افزون بر اجرای حملات Overlay جهت سرقت اطلاعات، قادر به دور زدن مکانیزم‌های حفاظتی بیومتریک و از بین بردن امنیت دستگاه با مجبور کردن کاربر به استفاده از رمز عبور سنتی (مانند پین‌کد یا الگو (Pattern)) است.

توضیحات فنی

❌ علائم آلودگی

  • دريافت مجوزهاي حساس مانند دسترسی به پیامک ها، مخاطبان، Accessibility Service، دوربین و غیره
  • کند شدن گوشی
  • مصرف بالای اینترنت
  • ناتوانی در حذف بدافزار از روش‌های معمول
  • بسته شدن صفحه احراز هویت بیومتریک
  • مخفی شدن آیکون بدافزار

شرح عملکرد

در نسخه‌های جدیدتر، این بدافزار از طریق چارچوب توزیع Zombinder گسترش می‌یابد. Zombinder یک سرویس توزیع بدافزار (malware-binder) است که روی دارک‌وب فعالیت می‌کند. این پلتفرم به مهاجمان اجازه می‌دهد کد مخرب را به اپلیکیشن‌های قانونی اندروید بچسبانند. بدین ترتیب هنگامی که کاربر نرم افزار را نصب می‌کند، افزون بر عملکرد معمول نرم‌افزار، بدافزار نیز به صورت پنهانی در پس‌زمینه اجرا شود.

Zombinder یک “APK Obfuscator” هم محسوب می‌شود، یعنی کد مخرب را طوری داخل اپلیکیشن قانونی (مثل اینستاگرام یا واتساپ) جاسازی می‌کند که مکانیزم‌های امنیتی معمول مثل (Google Play Protect) در لحظه نصب آن را شناسایی نکنند.

به عنوان مثال:

  1. مهاجمان ابتدا یک برنامه قانونی یا پرطرفدار را انتخاب می‌کنند.
  2. سپس با استفاده از Zombinder، آن اپ را با یک لودر مخرب malware loader / (dropper ) ترکیب می‌کنند.
  3. در این روش، کاربر پس از نصب برنامه، با هیچ رفتار غیرعادی مواجه نمی‌شود، در صورتی که بدافزار هم با نصب فعال می‌شود.

در Chameleon نیز مانند سایر بدافزار های بانکی (banker) شاهد سوءاستفاده‌ هدفمند از سرویس Accessibility در اندروید هستیم. در این بدافزار از سرویس Accessibility جهت کنترل کامل دستگاه قربانی استفاده می‌شود.
این کنترل شامل انجام تراکنش‌های بانکی به‌جای کاربر، دور زدن احراز هویت بیومتریک و هدایت کاربر از طریق یک صفحه HTML فریبنده برای فعال‌سازی سرویس Accessibility است.

سرویس  Accessibility

🟠 اکتیویتی Zfba281053d998643b

این اکتیویتی، هسته مرکزی اخذ مجوزهای مورد نیاز بدافزار است.

برنامه بلافاصله پس از اجرا، با استفاده از دیالوگ‌های غیرقابل لغو و مکانیزم تکرار خودکار (۵ تا ۱۰ ثانیه تأخیر در صورت انتخاب «Cancel») کاربر را تحت فشار مداوم قرار می‌دهد تا تمامی دسترسی‌های مورد نیاز بدافزار را اعطا کند؛ از جمله:

  • دسترسی کامل به پیامک‌ها و تبدیل شدن به برنامه پیش‌فرض پیامک (Default SMS App)
  • فعال‌سازی Accessibility Service برای اقدامات مرتبط با Key logging، کلیک خودکار و خواندن تمام صفحه‌ها
  • فعال‌سازی Device Administrator برای جلوگیری از حذف برنامه.
  • گرفتن مجوز های Overlay Permission، Ignore Battery Optimization، Usage Access، Notification Listener، Auto-start با بهینه شدن برای برندهای مختلف گوشی موبایل Xiaomi،Huawei،Oppo،Vivo،Asus
  • دسترسی به فایل‌ها، تنظیمات سیستم و سایر مجوزهای حساس

در نهایت، یک WebView با جاوااسکریپت فعال بارگذاری می‌کند، کوکی‌ها و داده‌های جلسات وب به‌ ویژه در صفحات بانکی و درگاه‌های پرداخت را سرقت کرده و به سرور c2 ارسال می‌کند.

بدین صورت که در متد onCreate این اکتیویتی:

  1. یک CookieHandler سفارشی تنظیم می‌کند تا مدیریت کوکی‌ها به‌صورت خاص انجام شود.
  2. WebView را از layout پیدا کرده و جاوااسکریپت و بارگذاری خودکار تصاویر را فعال می‌کند.
  3. در ادامه، با تعریف یک WebViewClient سفارشی، کنترل کامل فرآیند بارگذاری صفحه در اختیار بدافزار قرار می‌گیرد. در متد onPageFinished، پس از اتمام بارگذاری هر صفحه، ابتدا با فراخوانی متد sync از کلاس CookieSyncManager کوکی‌های موجود در WebView با سیستم مدیریت کوکی‌های دستگاه همگام‌سازی می‌شوند تا نسخه‌ بروز و کامل کوکی‌ها در دسترس قرار بگیرد.
  4. اگر گزینه‌ «intercept_cookies» فعال باشد، بدافزار با استفاده از متد getCookie از کلاس CookieSyncManager تمام کوکی‌های دامنه‌ی فعلی را دریافت کرده و آن‌ها را برای سرقت و ارسال به سرور مهاجم جمع‌آوری می‌کند.

🟠 اکتیویتی Zf00116792c811dda5

این اکتیویتی یک راه‌انداز برای گرفتن اجازه ضبط صفحه (Screen Capture) و ایجاد MediaProjection است. هنگام اجرا، اندازه واقعی صفحه را محاسبه می‌کند، سپس از طریق کلاس MediaProjectionManager درخواست اجازه ضبط صفحه را به کاربر نشان می‌دهد.

بعد از اینکه کاربر اجازه را صادر کرد، یک MediaProjection ساخته می‌شود و با ساختن ImageReader و VirtualDisplay، جریان پیکسل‌های صفحه به ImageReader هدایت می‌شود. همچنین در صورتی که کاربر مجوز را تأیید نکند وارد یک چرخه اجباری درخواست مجوز می‌شود.

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

اکتیویتی Zf00116792c811dda5

🟠 اکتیویتی Zdfc75d031908202df

این اکتیویتی به صورت تمام‌ صفحه بصورت WebView است که صفحه HTML داخلی (رمزگذاری‌شده با Base64) را نمایش می‌دهد (تصویر مرتبط با این اکتیویتی قبلا در بخش شرح عملکرد آمده است). هدف اصلی آن فریب کاربر برای فعال‌سازی Accessibility Service است.

اکتیویتی مذکور، صفحه را به‌ صورت تمام‌صفحه و بدون امکان ScreenShot نمایش می‌دهد و با فراهم‌سازی دسترسی JavaScript به کد جاوا، کاربر را به ‌طور مداوم به صفحات مدیریت مجوزها از جمله Autostart، Battery Optimization و Permission Editor هدایت می‌کند. اقدامی که با هدف افزایش ماندگاری بدافزار در سیستم انجام می‌شود.

🟠 سرویس Z4198b5d917ab69bd0

این مورد یک سرویس پس‌زمینه‌ای (Background Service) در یک اپلیکیشن اندرویدی مخرب است که نقش هماهنگ‌کننده و پایدارکننده اصلی بدافزار را ایفا می‌کند.

✔️ وظایف کلیدی این سرویس عبارتند از:

  • سرویس پس از اجرا، با ارتقا به Foreground Service از طریق متد startForeground و نمایش Notification جعلی با ظاهرGoogle Play  Protect ، به صورت مداوم اجرا می‌شود تا از توقف برنامه توسط سیستم‌عامل جلوگیری شود.
  • استفاده از AlarmManager و BroadcastReceiverهای متعدد برای راه‌اندازی مجدد خودکار سرویس در صورت بسته شدن یا حذف تسک.
  • اعمال تکنیک‌های مخفی‌سازی (Chameleon) شامل پنهان‌کردن آیکون اپلیکیشن، نمایش پیام جعلی «App is deleted» و در برخی موارد جایگزینی هویت برنامه با بسته‌های معتبر سیستم مانند Gmail.
  • برقراری ارتباط دوره‌ای با سرور فرمان و کنترل (C2) مهاجم جهت دریافت و اجرای دستورات از راه دور.
  • نظارت بر اپلیکیشن‌های در حال اجرا از طریق UsageStatsManager، برای تشخیص باز شدن اپلیکیشن‌های هدف (مانند اپلیکیشن‌های بانکی یا پرداخت). هنگامی که برنامه هدف شناسایی می‌شود، بدافزار به صورت خودکار یک لایه پوششی (Overlay) فیشینگ را روی برنامه اصلی ایجاد می‌کند. این لایه پوششی یک WebView است که محتوای HTML/JS جعلی را از سرور دریافت می‌کند و ظاهر و رفتار آن شبیه اپلیکیشن واقعی طراحی شده است تا کاربر بدون اینکه متوجه شود، اطلاعات حساس خود مانند نام کاربری، رمز عبور، شماره کارت اعتباری یا کد OTP را وارد کند.
  • ارسال پیام های مداوم و آزاردهنده تا زمان فعال‌سازی Accessibility Service توسط کاربر.

🟠 سرویس Ze9babf3ba34aa0a3c

این سرویس یک AccessibilityService جامع است که توانایی کنترل رابط کاربری، نمایش overlay، مدیریت مجوزها و اجرای دستورات از راه دور را فراهم می‌کند و با طراحی Singleton (به‌منظور فعال بودن تنها یک نمونه از سرویس و استفاده از آن در بخش های مختلف) و استفاده از تسک‌های MainLooper (اجرا روی Thread اصلی اندروید)، عملکرد پایدار و متمرکزی روی دستگاه ارائه می‌دهد.

همچنین این سرویس برای انجام وظایف مذکور از زیرکلاس‌های مخربی استفاده می‌کند که در ادامه بررسی خواهند شد:

🔺 کلاس Z8c3a8a6c13eef60a9

این کلاس یک مدیریت کننده هوشمند برای دسترسی به قفل صفحه و بیومتریک است که از طریق سرویس Accessibility، می‌تواند شرایط امنیتی صفحه را بررسی کرده و در صورت نیاز آن‌ها را دور بزند یا مدیریت کند. عملکرد دقیق این کلاس به صورت زیر است:

  • مدیریت Singleton سرویس Accessibility: این کلاس یک نمونه از Ze9babf3ba34aa0a3c را نگه می‌دارد و در صورت نیاز آن را مقداردهی می‌کند تا از همان instance برای کنترل دستگاه و دسترسی به رابط کاربری استفاده شود.
  • دسترسی به KeyguardManager: از طریق KeyguardManager دستگاه، کلاس می‌تواند وضعیت امنیتی قفل صفحه را بررسی کند و تشخیص دهد که آیا قفل صفحه فعال است یا خیر.
  • قطع کردن یا دور زدن سیستم بیومتریک: متد interruptBiometric بررسی می‌کند که اگر رویداد Accessibility مربوط به صفحه بیومتریک یا قفل باشد و شرایط خاصی برقرار باشد، اقدام به بستن یا دور زدن آن می‌کند. این کار با استفاده از:

بررسی وجود lockPatternView (نمایش و پردازش الگوی قفل ۹ نقطه‌ای)، pinEntry (ورود کد عددی PIN) یا passwordEntry (ورود رمز عبور متنی یا عددی-متنی) در پنجره فعال انجام شده و در صورت عدم وجود آنها، دستورات global برای بازگشت به صفحهٔ اصلی یا بستن پنجره‌ها اجرا می‌شود.

  • تعامل با رویدادهای Accessibility: کلاس می‌تواند بسته به package name و وضعیت Key guard، رویدادهای دریافتی را بررسی و مدیریت کند تا امنیت بیومتریک یا PIN/Pattern را به نحوی دور بزند یا کنترل کند.
  • ارزیابی وضعیت صفحه و قفل با ترکیب Keyguard Manager و Accessibility Event:
    متد interruptBiometric به‌ صورت هم‌ زمان از API KeyguardManager و رویدادهای AccessibilityEvent برای بررسی وضعیت فعلی صفحه نمایش و قفل دستگاه استفاده می‌کند. این متد، وضعیت keyguard را نسبت به مکانیزم‌های مختلف قفل از جمله الگو (Pattern)، پین (PIN) و رمز عبور (Password) ارزیابی می‌کند و تشخیص می‌دهد که دستگاه در مرحله احراز هویت بیومتریک قرار دارد یا خیر.
    در صورت برقرار بودن شرایط مشخص، بدافزار با استفاده از اکشن‌های Accessibility، جریان احراز هویت را از بیومتریک به احراز هویت پین منتقل می‌کند. این فرآیند باعث نادیده گرفته شدن درخواست بیومتریک شده و امکان باز کردن دستگاه را از طریق روش‌های سنتی احراز هویت برای بدافزار فراهم می‌سازد.

 کلاس Z8c3a8a6c13eef60a9

🔺 زیر کلاس Z6826b0987fac45969

این زیر کلاس یک مدیر تعامل با قفل صفحه در اندروید است که از Accessibility API استفاده می‌کند. عملکرد اصلی آن شامل موارد زیر است:

  1. بررسی و شناسایی نوع قفل:
    • این کلاس می‌تواند تشخیص دهد که صفحه قفل از نوع الگو (Pattern)، PIN یا پسورد است.
    • این کار با جستجو در  AccessibilityNodeInfo و بررسی ID یا نام Widgetهای مرتبط با قفل انجام می‌شود.
  2. باز کردن قفل به صورت خودکار:
    • اگر Pattern باشد، مسیر نقاط الگو روی صفحه با استفاده از Path ساخته می‌شود و یک Gesture شبیه‌سازی می‌شود تا الگو کشیده شود.
    • اگر PIN یا پسورد باشد، مقادیر ورودی با متدهای inputText یا کلیک روی دکمه‌ها وارد می‌شوند و در نهایت اقدام به ارسال ورودی (Enter) می‌کند.
  3. حفظ و مدیریت وضعیت:
    • کلاس برخی مقادیر مثل آخرین الگو یا PIN وارد شده را در متغیرهای استاتیک ذخیره می‌کند و می‌تواند آنها را پاک یا بازنشانی کند.
    • وضعیت در حال اجرا بودن عملیات باز کردن قفل با boolean کنترل می‌شود.
  4. قابلیت Singleton:
    • این کلاس به صورت Singleton پیاده‌سازی شده تا فقط یک نمونه در طول اجرای برنامه وجود داشته باشد.

به طور خلاصه، این کلاس یک ابزار خودکار برای تعامل با صفحه قفل اندروید است که توانایی وارد کردن Pattern ،PIN یا Password را با استفاده از Accessibility Service دارد.

🔷 در ادامه اجزای این کلاس بررسی خواهد شد:

1️⃣ وظایف این بخش از کد عبارتند از:

  • با فراخوانی ‎logViewHierarchy ساختار فعلی رابط کاربری (UI) فعال را ثبت و بررسی می‌کند.
  • سپس بررسی می‌کند که آیا در رابط کاربری فعلی، یکی از شناسه‌های مربوط به قفل الگوی اندروید (نظیر ‎lockPatternView و غیره) وجود دارد یا خیر.
  • در صورت یافتن این نوع View اگر طول الگوی دریافتی از ورودی کمتر از حداقل مورد انتظار باشد، مقدار الگوی ذخیره‌شده‌ قبلی بازیابی می‌شود.
  • در ادامه، مختصات الگوی مورد نظر از رشته دریافت و تجزیه می‌شود (به‌ صورت آرایه‌های مختصات).
  • با استفاده از این مختصات، یک شیء ‎Path ساخته شده و نقاط الگو به ترتیب با عملیات ‎moveTo و ‎lineTo روی مسیر قرار داده می‌شوند تا مسیر رسم الگو روی صفحه دستگاه شبیه‌سازی شود.
    وظایف زیر کلاس Z6826b0987fac45969

2️⃣ در این بخش از کد، برنامه ابتدا تلاش می‌کند مقدار ویژگی سیستمی ro.miui.ui.version.code را از کلاس android.os.SystemProperties دریافت کند تا تشخیص دهد آیا دستگاه از MIUI (رابط کاربری شیائومی) استفاده می‌کند یا خیر. بر اساس نتیجه این بررسی، مقدار ثابت i3 تنظیم می‌شود (در صورت وجود MIUI عدد 87 و در غیر این صورت 100).

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

در پایان، یک مسیر گرافیکی (Path) ساخته می‌شود به‌ گونه‌ای که برای اولین نقطه از متد moveTo و برای نقاط بعدی از متد lineTo استفاده شده و در نهایت شکل یا الگوی مورد نظر به صورت یک مسیر ترسیم می‌شود.

3️⃣ این بخش از کد وظیفه شبیه‌سازی تعامل با قفل صفحه را بر عهده دارد. اگر مسیر (Path) الگوی قفل موجود باشد و نسخه اندروید برابر یا بالاتر از ۲۴ باشد، ابتدا یک شیء GestureDescription.Builder ساخته می‌شود و Stroke شامل مسیر محاسبه‌ شده به آن افزوده می‌گردد.

سپس Gesture ایجاد شده با استفاده از متد dispatchGesture از کلاس AccessibilityService اجرا می‌شود و نتیجه آن توسط callback داخلی مدیریت می‌شود تا تکمیل یا لغو عملیات ثبت شود.

در غیر این صورت، اگر قفل از نوع PIN رنگی یا عددی باشد، برنامه با استفاده از متد AccessibilityNodeInfo به هر کلید دسترسی پیدا کرده و با بررسی قابل کلیک کردن آن، عمل لمس شبیه‌سازی می‌شود.

در نهایت، اگر خود کلید قابل لمس نباشد، والد آن برای شبیه‌سازی لمس فراخوانی می‌شود تا ورود PIN به‌ صورت کامل انجام گیرد. این مکانیزم امکان تعامل خودکار با انواع مختلف قفل صفحه اندروید را فراهم می‌کند.

استفاده از متد AccessibilityNodeInfo 

4️⃣ این بخش از کد مربوط به مدیریت ورود به قفل صفحه‌های مبتنی بر PIN یا پسورد متنی است.

به‌ صورت دقیق‌تر:

  • ابتدا با استفاده از سرویس Accessibility، نمایه‌ای از Widgetهای مربوط به ورودی PIN یا پسورد را پیدا می‌کند. شناسه‌های مورد بررسی شامل “pinEntry“, “passwordEntry“, “fixedPinEntry” و “vivo_pin_edittext” هستند.
  • اگر این Widget پیدا شد، مقدار رشته‌ای که به‌ عنوان رمز عبور یا PIN دریافت شده است (strMTkkpc7fc7f71c446eac67df7) به آن وارد می‌شود. در اندروید نسخه 30 و بالاتر، عمل تایید ورودی با اجرای اکشن accessibilityActionImeEnter انجام می‌شود.
  • سپس برای هر رقم یا حرف ورودی، تلاش می‌شود تا عنصر متنی مربوط در نمای صفحه پیدا و بر روی آن کلیک شود. این مرحله به طور خاص برای شبیه‌سازی تعامل کاربر با کیبورد نرم‌افزاری یا نمایش ارقام/حروف روی صفحه است.
  • در نهایت، اگر دکمه‌ی ورود (key_enter) پیدا شود، روی آن کلیک می‌شود تا رمز عبور ارسال و قفل صفحه باز شود.
  • پس از انجام تمام این عملیات، فلگ usXh93a1d53972b77e359a01f56d به false بازگردانده می‌شود تا نشان دهد عملیات بازکردن قفل پایان یافته است.

به طور خلاصه، این بلوک مسئول خودکارسازی فرآیند وارد کردن PIN یا پسورد و ارسال آن جهت باز کردن قفل صفحه با استفاده از Accessibility API است.

قفل صفحه‌های مبتنی بر PIN یا پسورد متنی

🔷 نحوه شناسایی سرور c2

با بررسی پکت‌های ارسالی بدافزار مشخص شد که به دلیل عدم دسترسی به سرور C2، هیچ پاسخی از سوی آن دریافت نمی‌شود. آدرس این سرور 6783: 161[.]61[.]11[.]185 است.

در جدول زیر، دستورات C2 مورد استفاده در این بدافزار نمایش داده شده‌اند.

کاربردها دستورات
دانلود و نصب خودکار APK از لینک دلخواه مهاجم (حتی بدون اطلاع کاربر) می‌تواند بدافزار جدید نصب کند یا آپدیت بگیرد. loader download / install
استفاده از سرویس Accessibility برای کنترل کامل دستگاه: تایپ متن، کلیک خودکار، باز کردن برنامه ها، وارد کردن الگوی قفل صفحه، شبیه‌سازی دکمه‌های Home/Back/Recent و غیره accessibility insert / click / pattern / back / home / recent / etc
روشن/خاموش کردن لایه سیاه (overlay) روی صفحه برای مخفی کردن فعالیت بدافزار از چشم کاربر blackscreen on/off
شروع/توقف ضبط صفحه (screen recording) بدون اطلاع کاربر capture start/stop/restart
ارسال پیامک دلخواه و خواندن تمام پیامک‌های دستگاه sms send / get
خواندن تمام مخاطبان و زنگ زدن خودکار به شماره دلخواه contacts get / call
خواندن تاریخچه تماس‌ها calls get
ارسال پیام جعلی، قطع یا رهگیری پیام برنامه های دیگر (بعنوان مثال به منظور Phishing یا مخفی‌سازی هشدارها) push make / intercept / ignore
راه‌اندازی پراکسی SOCKS5 روی دستگاه قربانی، تمام ترافیک دستگاه را می‌توان از راه دور هدایت یا شنود کرد. socks start/stop/restart

تکنیک‌های بدافزار

🔴 تکنیک‌های ضد تحلیل

این تکنیک‌ها که در اکتیویتی اصلی برنامه (Zb4306c527fe442f95) پیاده‌سازی شده‌اند، مجموعه‌ای از روش‌های پیشرفته ضد تحلیل، ضد شبیه‌ساز و ضد سندباکس را شامل می‌شود.

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

🔷 این بررسی‌ها شامل موارد زیر هستند:

  • بررسی محیط‌های شبیه‌سازی شده مانند ttvm (Tencent TV Emulator) و nox
  • تحلیل مقدار gsm.version.baseband (ورژن نرم‌افزار مودم رادیویی دستگاه) و برد دستگاه
  • ارزیابی Platform و Hardware برای تشخیص سیستم‌های جعلی
  • بررسی تعداد حسگرها و وجود فلش دوربین برای شناسایی دستگاه‌های غیرواقعی
  • شمارش پکیج‌های نصب‌شده برای تشخیص Sandbox یا محیط‌های آزمایش
  • بررسی وجود فایل در مسیر /proc/self/cgroup، که معمولاً در Emulatorها موجود نیست
  • ایجاد یک LocalServerSocket برای جلوگیری از اجرای هم‌زمان چند نمونه از برنامه
  • بررسی اتصال Debugger و وضعیت قابل دیباگ بودن برنامه

در صورت مشاهده هر گونه نشانه از تحلیل، دستکاری، یا اجرای غیر واقعی، بدافزار بلافاصله فرآیند خود را با System.exit(0) متوقف می‌کند.

تکنیک‌های ضد تحلیل chameleon

🔴 تکنیک فریب

تکنیک فریب این بدافزار در اکتیوتی Zb4306c527fe442f95 وجود دارد،که خود بدافزار برای این تکنیک از نام Chameleon Mode استفاده می‌کند و نام خانواده این بدافزار هم از همین بخش انتخاب شده است.

این قابلیت به بدافزار اجازه می‌دهد تا آیکون و نام خود را شبیه برنامه‌های پر طرفدار و شناخته‌ شده کند تا کمتر برای کاربر قابل شناسایی باشد.

◼️ برخی از برنامه‌هایی که بدافزار می‌تواند آنها را جعل کند، عبارتند از:

  1. Gmail
  2. Facebook
  3. Youtube
  4. Google Play
  5. Telegram
  6. Contacts
  7. Discord
  8. Chrome

◼️ نحوه کار Chameleon Mode به شرح زیر است:

  1. ابتدا مقدار  app_chameleon از حافظه داخلی بدافزار خوانده می‌شود. این مقدار تعیین می‌کند که حالت Chameleon فعال باشد یا خیر.
  2. در صورتی که مقدار  true باشد، بدافزار خودش را از طریق یک اکتیویتی داخلی (Zfba281053d998643b.class) اجرا می‌کند و قابلیت فریب (deception) فعال می‌گردد.
  3. در غیر این صورت، کد تلاش می‌کند تا برنامه‌ای که نام پکیج آن در متغیر strValueOf قرار دارد را اجرا کند. به عبارت دیگر، بدافزار سعی می‌کند ظاهر خود را پنهان کرده و به جای نمایش خود، برنامه‌ی دیگری را به کاربر نشان دهد.
  4. اگر اجرای برنامه هدف موفقیت‌آمیز نباشد، مقدار app_chameleon دوباره به true بازنشانی می‌شود تا دفعات بعد، بدافزار خودش اجرا شود.
  5. در پایان، با استفاده از متد finishAndRemoveTask، بدافزار خود را از لیست برنامه‌های اخیر حذف می‌کند تا هیچ ردی از فعالیتش باقی نماند. این اقدام بخش مهمی از تکنیک فریب و استتار آن است.

نحوه کار Chameleon Mode

روش مقابله و پاکسازی سیستم

✅ برای ایجاد اطمینان از عدم آلودگی دستگاه، آنتی‌ویروس پادویش را نصب و فایل پایگاه داده آن را به‌ روز نگهدارید و اسکن آنتی‌ویروس را انجام دهید.

روش‌های پیشگیری از آلودگی تلفن همراه:

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

✅ تلفن‌ همراه خود را بروز نگه دارید، آن را در حالت ایده‌آل تنظیم کنید تا به صورت خودکار به روز شود.

✅ از دانلود و نصب برنامه از منابع و مارکت‌های موبایلی نامعتبر خودداری کنید.

✅ از فایل‌ها و اطلاعات مهم موجود در گوشی خود، به طور مستمر پشتیبان‌گیری کنید.

✅ از نسخه‌های غیر رسمی برنامه‌ها استفاده نکنید.