مشخصه اصلی xHelper ماندگاری آن است؛ بهنحوی که حتی پس از حذف برنامه آن و یا حتی بازگردانی تنظیمات کارخانهای دستگاه، همچنان فعال باقی میماند.
منبع : مرکز مدیریت راهبردی افتا
مشخصه اصلی xHelper ماندگاری آن است؛ بهنحوی که حتی پس از حذف برنامه آن و یا حتی بازگردانی تنظیمات کارخانهای دستگاه، همچنان فعال باقی میماند.
به گزارش افتانا (پایگاه خبری امنیت فناوری اطلاعات)، حدود یک سال قبل شرکت Kaspersky حملات گستردهای را شناسایی کرد که در جریان آنها تروجان xHelper بر روی گوشیهای هوشمند مبتنی بر Android نصب میشد. اکنون این شرکت از تداوم فعالیت این بدافزار خبر داده است.
مشخصه اصلی xHelper ماندگاری آن است؛ بهنحوی که حتی پس از حذف برنامه آن و یا حتی بازگردانی تنظیمات کارخانهای دستگاه، همچنان فعال باقی میماند. در این مطلب این توانایی ویژه xHelper مورد بررسی قرار گرفته است.
در ابتدا به منطق خانواده بدافزار بر اساس نمونهای از آن که در حال حاضر فعال بوده و با نام Trojan-Dropper.AndroidOS.Helper.h شناخته میشود، میپردازیم. بدافزار اینطور وانمود میکند که یک برنامه معروف پاکسازی و بهبود سرعت گوشیهای هوشمند است. اما در واقعیت هیچ کار سودمندی انجام نمیدهد. پس از نصب شدن، برنامه جعلی ناپدید شده و نشانی از آن در صفحه اصلی و در منوی برنامهها قابل مشاهده نخواهدبود. تنها با وارسی فهرست برنامههای نصب شده در تنظیمات سیستم است که میتوان از حضور آن مطلع شد.
شیوه رمزگذاری مورد استفاده xHelper از همان نسخههای اولیه آن ساده و بدون هر گونه پیچیدگی خاصی بودهاست. کد مخرب تروجان در /assets/firehelper.jar رمزگذاری میشود. وظیفه اصلی آن ارسال اطلاعاتی در خصوص گوشی قربانی نظیر شناسه android_id، سازنده، مدل، نسخه ثابتافزار (Firmware) به https://lp.cooktracking[.]com/v۱/ls/get است. در ادامه ماژول مخرب بعدی با نام Trojan-Dropper.AndroidOS.Agent.of دریافت شده و با استفاده از کتابخانهای اختصاصی که در بدافزار لحاظ شدهاست کد مخرب را رمزگشایی و اجرا میکند. رویکردی که موجب دشوار شدن تحلیل ماژول میشود. در این مرحله، دانلودکننده بعدی، Trojan-Dropper.AndroidOS.Helper.b رمزگشایی و فعال شده و اقدام به اجرای بدافزار Trojan-Downloader.AndroidOS.Leech.p میکند.
Leech.p موظف است تا با دریافت همقطار قدیمی خود، HEUR:Trojan.AndroidOS.Triada.dd به همراه مجموعهای از بهرهجوها (Exploit) دسترسی را تا سطح root ارتقا دهد.
فایلهای مخرب بهصورت پیدرپی در پوشه دادههای برنامه که برنامههای دیگر به آن دسترسی ندارند ذخیره میشوند. این سبک مبهمسازی که Kaspersky آن را به ماتریوشکا (عروسک تودرتوی روسی) تشبیه کرده نویسندگان بدافزار را قادر میکند تا ماژولهای مخرب شناختهشده را بدون مزاحمت راهکارهای امنیتی، مورد استفاده قرار دهند. اکنون بدافزار بهخصوص بر روی دستگاههای چینی با نسخه ۶ و ۷ سیستم عامل Android (شامل مدلهای موسوم به ODM) به امتیازات root دست مییابد. پس از فراهم شدن سطح دسترسیهای مورد نیاز، xHelper قادر به نصب مستقیم فایلهای مخرب در پارتیشن سیستمی خواهد بود.
باید توجه داشت که پارتیشن سیستمی در حین راهاندازی، بهصورت فقطخواندنی Mount میشود. اما امتیاز دسترسی root تروجان را قادر به Mount مجدد در حالت قابلنوشتن میکند. با این اقدام اسکریپت forever.sh شروع به کار خواهد کرد. Triada از ترفندهای معروف نظیر Mount مجدد پارتیشن سیستمی برای نصب برنامههای خود در آنجا استفاده میکند. در نمونه مورد بررسی توسط Kaspersky، بسته com.diag.patches.vm۸u نصب میشود.
همچنین چندین فایل اجرایی زیر در مسیر /system/bin کپی میشوند: • patches_mu۸v_oemlogo — Trojan.AndroidOS.Triada.dd • debuggerd_hulu —AndroidOS.Triada.dy • kcol_ysy — HEUR:Trojan.AndroidOS.Triada.dx • /.luser/bkdiag_vm۸u_date — HEUR:Trojan.AndroidOS.Agent.rt
فایلهای زیر نیز در مسیر /system/xbin ذخیره میشوند: • diag_vm۸u_date • patches_mu۸v_oemlogo
یک فراخوانی فایلها از پوشهxbin در install-recovery.sh افزوده میشود که در نتیجه آن Triada قادر به اجرا شدن در حین راهاندازی سیستم میشود. ضمن اینکه به تمامی فایلها در پوشههای مورد نظر بدافزار ویژگی immutable تخصیص داده میشود. اقدامی که سبب میگردد که حتی کاربران با سطح دسترسی بالا نیز قادر به حذف آنها نباشند. با این حال این سازوکار خودحفاظتی بدافزار با حذف این ویژگی از طریق فرمانchattr قابل بیاثر شدن است.
در اینجا ممکن است این سئوال پیش بیاید که همانطور که بدافزار قادر به Mount مجدد پارتیشن سیستم در وضعیت قابلنوشتن بوده تا خود را در آنجا کپی کند آیا کاربر میتواند با همین استراتژی آن را حذف کند؟ سازندگان Triada این حالت را هم در نظر گرفتهاند و با ظرافت یک تکینک حفاظتی دیگر را که شامل ویرایش کتابخانه سیستمی /system/lib/libc.so است پیادهسازی کردهاند. کتابخانه مذکور شامل کد مشترکی است که توسط تقریباً تمامی فایلهای اجرایی بر روی دستگاه استفاده میشود. Triada کد خود را در libc برای تابعMount که وظیفه آن Mount کردن سیستمهای فایل است جایگزین کرده و بنابراین از Mount شدن پارتیشن /system در وضعیت قابلنوشتن توسط کاربر جلوگیری میگردد.
مهمتر از همه اینکه تروجان چندین برنامه مخرب دیگر نظیر HEUR:Trojan-Dropper.AndroidOS.Necro.z را دریافت و نصب کرده و دسترسیهای برنامههای معروف به Root Access Control همچون Superuser را عزل میکند.
همانطور که اشاره شد تنها با حذف xHelper نمیتوان دستگاه را پاکسازی کرد. برنامه com.diag.patches.vm۸u که در پارتیشن سیستمی نصب شده در اولین فرصتxHelper و سایر بدافزارها را بدون دخالت کاربر مجدداً نصب میکند. اما اگر دستگاه مبتنی بر Android حالت موسوم به Recovery راهاندازی شده باشد امکان باز کردن فایل libc.so از ثابتافزار اصلی و جایگزین کردن آن با ثابتافزار آلوده قبل از حذف تمامی بدافزارها از روی پارتیشن سیستمی فراهم میشود. کاری که به مراتب سادهتر و البته مطمئنتر از Reflash کردن گوشی است.
باید توجه داشت که در برخی موارد، ثابتافزار دستگاه مورد حمله توسط xHelper شامل بدافزاری از قبل نصب شده است که بهطور مستقل برنامههای مورد نظر خود را از جمله xHelper دریافت و نصب میکند. در این مورد،Reflash کردن بیفایده بوده و باید به دنبال ثابتافزار جایگزینی برای دستگاه بود. با این توضیح که در صورت استفاده از ثابتافزار متفاوت این احتمال وجود دارد که برخی از اجزای دستگاه بهدرستی کار نکنند.
تحت هر شرایطی، استفاده از یک گوشی هوشمند آلوده بهxHelper بسیار خطرناک است. بدافزار اقدام به نصب درِ پشتی با توانایی اجرای فرامین بهعنوان یک ابرکاربر (Superuser) است. همچنین دسترسی کامل به داده تمامی برنامهها را برای مهاجمان فراهم کرده و ریسک استفاده از بدافزارهای دیگر نظیر CookieThief را نیز بهوجود میآورد.