بدافزار اندرویدی xHelper که نوعی درِ پشتی امنیتی بود، به بدافزار توقفناپذیر شهرت داشت؛ اما محققان بالاخره ساختار مقاومت آن را کشف کردند.
یکی از محققان امنیتی فوریهی سال جاری مقالهای دربارهی بدافزار درِ پشتی در اندروید منتشر کرد که جزئیات مهمهی از آن را دراختیار رسانهها میگذاشت. طبق تحقیقات اولیه، این بدافزار «جانسخت» حتی از بازیابی کارخانهای گوشی هم جان سالم بهدر میبرد و در سیستمعامل باقی میماند؛ درنتیجه، ازبینبردن بدافزار مذکور به روشهایی غیرمرسوم نیاز داشت.
تحلیل اولیه روی بدافزار جانسخت اندرویدی نشان داد مشکل مقاومت آن دربرابر بازیابی کارخانهای، وجود پوشهای بود که نصبکنندهی تروجان در داخل آن قرار داشت. پس از بازیابی کارخانهای دستگاه اندرویدی، فایل نصب و پوشه از بین نمیرفتند. بهمحض راهاندازی مجدد دستگاه، فایل نصبکنندهی تروجان مجددا درِ پشتی امنیتی را نصب میکرد. محققی که جزئیات ابتدایی بدافزار را منتشر کرد، اطلاعی از چگونگی اجرای این نوع مقاومت نداشت. حال محقق امنیتی دیگری پس از چند ماه بررسی، جزئیات مقاومت بدافزار را منتشر کرده است. پیش از توضیح یافتههای جدید، ابتدا ببینیم بدافزار xHelper چه کارهایی انجام میدهد.
نرمافزار مخرب اندرویدی که شامل تروجان درِ پشتی میشود، با ظاهر سرویسی برای بهبود کارایی دستگاه و پاککردن فایلهای بیاستفاده منتشر میشود. سرویس آنتیویروس Malwarebytes نصب این اپلیکیشن را روی ۳۳ هزار دستگاه اندرویدی تأیید میکند که اکثر آنها نیز در ایالات متحده قرار دارد. سرویس آنتیویروس دیگر که به غول روسی دنیای امنیت، یعنی کسپرسکی، تعلق دارد، تعداد دستگاههای آلوده را ۵۰ هزار دستگاه بیان میکند. درنهایت، شواهدی وجود ندارد که xHelper ازطریق گوگلپلی توزیع شده باشد.
بدافزار xHelper پس از نصب، درِ پشتی در دستگاه آلوده اجرا میکند. سپس، درِ پشتی اپلیکیشنهایی را از سرور تحتکنترل هکرها روی دستگاه نصب میکند. بهعلاوه، درِ پشتی توانایی اجرای دستورهایی با دسترسی کاربر سطح بالا (Superuser) را نیز دارد. دسترسی اینچنینی، قابلیتهای نامحدودی در سطح سیستمی دراختیار بدافزار قرار میدهد. بهعلاوه، درِ پشتی به اطلاعات حساس کاربر نیز دسترسی پیدا میکند که از میان آنها میتوان به کوکیهای مرورگر اشاره کرد که برای ورود خودکار به حسابهای کاربری در وبسایتها استفاده میشوند. پس از نصب درِ پشتی، اپلیکیشن مخرب و ظاهرساز آن از صفحهی اصلی گوشی و منو برنامهها حذف میشود و تنها در تنظیمات سیستم میتوان آن را دید.
پست اطلاعرسانی فوریه را نیتان کالیر، محقق شرکت Malwarebytes، نوشته بود. او تحقیقات خود را پس از گزارش کاربر قربانی انجام داد که بدافزار xHelper پس از دوبار پاکشدن بهوسیلهی آنتیویروس، بازهم در دستگاه اندرویدی او اجرا میشد و حتی پس از بازیابی کارخانهای دستگاه، بازهم بدافزار شروع به کار میکرد.
کالیر در نتایج تحقیق خود متوجه شد نصب و اجرای مجدد بدافزار بهدلیل وجود فایل نصبی بوده است که در پوشهای مخفی در دستگاه قرار دارد. پوشهی مذکور با روشهای مرسوم پاکشدنی نبود و نحوهی ورود و کپیشدن پوشه در دستگاه آلوده نیز مشخص نمیشد. کالیر ابتدا تصور کرد پوشه بهصورت پیشفرض و از ابتدا در گوشی وجود داشته است؛ البته این فرضیهی او بازهم چرایی ناتوانی آنتیویروس در پاککردن آن را مشخص نمیکرد. بهعلاوه، او نمیدانست چرا پس از پاکشدن احتمالی فایل مخرب یا بازیابی کارخانهای دستگاه، بازهم بدافزار نصب میشود.
ایگور گالوین، محقق آزمایشگاه امنیتی کسپرسکی، هفتهی گذشته مقالهای منتشر کرد که به بسیاری از پرسشها دربارهی بدافزار جانسخت پاسخ داد. او میگوید آلودگی مجدد دستگاهها بهدلیل دانلود و نصب مجدد فایلها بهوسیلهی تروجان مشهوری بهنام Triada بوده است. این تروجان پس از نصب بدافزار xHelper روی دستگاه قربانی اجرا میشود. Triada ابتدا دستگاه را روت و سپس با بهرهگیری از دسترسیهای سیستمی سطح بالا، تعدادی فایل مخرب در پارتیشن سیستمی نصب میکند. این روند با تغییر حالت پارتیشن سیستمی به نوشتن انجام میشود. Triada برای مقاومترکردن فایلهای مخرب، «صفت تغییرناپذیر» در مشخصات آنها اضافه میکند که مانع از پاکشدنشان حتی بهدست کاربر با دسترسی سطح بالا میشود. البته میتوان این صفت را با دستور chattr پاک کرد.
فایلی بهنام install-recovery.sh فایلهای موجود در پوشهی /system/xbin را فراخوانی میکند. این اقدام به بدافزار امکان میدهدبا هر بار بارگذاری مجدد دستگاه اجرا شود؛ درنتیجه بهگفتهی گالوین، با آلودگی «جانسخت» روبهرو میشویم که کنترل فوقالعادهای روی سیستم قربانی دارد.
گالوین در مصاحبهای با توضیح عملکرد بدافزار میگوید:
آلودهشدن به xHelper آنچنان دشوار نیست. دستگاههایی که با حملهی این بدافزار مواجه میشوند، احتمالا به حفاظهای امنیتی سیستمی مجهز نیستند و دربرابر نصب این نوع بدافزارها آسیبپذیر هستند. بهعلاوه پس از نصب بدافزار، پاککردن آن برای کاربر بسیار دشوار میشود؛ درنتیجه، تعداد کاربران آلوده به xHelper احتمالا با سرعت زیادی افزایش پیدا میکند و بدافزار تا مدتی طولانی در دستگاههای قربانی باقی میماند.
محقق امنیتی کسپرسکی ابتدا احتمال داد شاید با تنظیم مجدد پارتیشن سیستمی به حالت نوشتن، بتوان بدافزار را پاک کرد. البته او کمی بعد نظریهی خود را پس گرفت. گالوین دربارهی این نظریه میگوید:
توسعهدهندگان Triada این راهکار را نیز مسدود کردهاند. آنها روش محافظتی دیگری برای فایل خود اجرا کردهاند که با تغییر کتابخانهی سیستمی /system/lib/libc.so ممکن شده است. این کتابخانه شامل کدهای مرسومی میشود که تقریبا تمامی فایلهای اجرایی موجود در دستگاه از آنها استفاده میکنند. Triada کدهای اختصاصی خود را برای عملکرد mount در حافظهی سیستمی جایگزین کدهای پیشفرض میکند؛ درنتیجه، کاربر نمیتواند مجددا پارتیشن سیستمی را به حالت نوشتن تغییر دهد.
خوشبختانه روش آلودهسازی مجدد که در مقالهی اخیر کشف شد، تنها روی دستگاههای اندرویدی مجهز به نسخههای قدیمی سیستمعامل اجرا میشود که آسیبپذیریهای سطح روت دارند. بههرحال، گالوین هنوز احتمال میدهد در برخی موارد، شاید xHelper ازطریق فایلهای مخرب نصبشده بهصورت پیشفرض در گوشی هوشمند یا تبلت، حضور خود را حفظ میکند.
کاربران قربانی میتوانند با استفاده از حالت Recovery گوشی هوشمند (درصورت وجود)، فایل مخرب libc.so را با فایل اصلی و پیشفرض موجود در فرمور اصلی تعویض کنند. آنها سپس میتوانند فایلهای بدافزار را از پارتیشن سیستمی پاک یا برای اطمینان نهایی دستگاه را فلش کنند.
تحقیقات گالوین جزئیات بسیاری از روش هوشمندانهی آلودهسازی دستگاه را شرح میدهد که شاید در حملههای مشابهی در آینده استفاده شود. درواقع، اگر آسیبپذیریهای سطح روت جدید در نسخههای جدید اندروید پیدا شوند، شاید شاهد پیادهسازی حملههای امنیتی مشابه در نسخههای جدید هم باشیم.
پاسخ ها