سوءاستفاده بدافزار اندرویدی RatHat از ADB و سندباکس اندروید
بدافزار اندرویدی RatHat پس از استقرار، با ترکیب سوءاستفاده از قابلیتهای دسترسپذیری (Accessibility) و برقراری اتصال خودکار به ADB لوکال (Android Debug Bridge)، تلاش میکند از سندباکس (Sandbox) استاندارد اپلیکیشنهای اندروید خارج شود. این فرآیند به بدافزار اجازه میدهد دیمونهای بومی مستقل (Independent Native Daemons) را ایجاد و اجرا کند. این دیمونها با سطح دسترسی شل (Shell) فعالیت میکنند.
این بدافزار از طریق وبسایتهای فیشینگ جعلی به قربانیان میرسد؛ وبسایتهایی که با استفاده از تبلیغات مخرب، کمپینهای اسمیشینگ و انجمنهای شخص ثالث کاربران را هدف قرار میدهند. این وبسایتها کاربران را فریب میدهند تا فایلهای APK آلوده را روی دستگاه خود نصب کنند. این فایلهای APK در نقش دراپر عمل کرده و با اجرای پیلود اصلی بدافزار، مراحل بعدی آلودگی را آغاز میکنند. همچنین این فایلها به چندین لایه سازوکار ضدتحلیل (Anti-Analysis) و ضد دیباگ (Anti-Debug) مجهز شدهاند تا شناسایی و تحلیل بدافزار برای پژوهشگران امنیتی دشوارتر شود.
تکنیکهای ضدتحلیل برای دشوار کردن شناسایی بدافزار
بدافزار اندرویدی RatHat برای مقابله با تحلیلهای امنیتی از چهار تکنیک اصلی ضدتحلیل استفاده میکند که با هدف مختل کردن ابزارهای تحلیل و دشوارتر کردن مهندسی معکوس طراحی شدهاند:
- دستکاری کانتینر: برخی فایلها در پکیج APK بهعنوان دایرکتوری تعریف میشوند یا بیت رمزنگاری عمومی ZIP (ZIP General-Purpose Encryption Bit) برای آنها فعال میشود. در نتیجه، کتابخانه libziparchive اندروید این فایلها را تشخیص نمیدهد، اما ابزارهایی مانند unzip و apktool همچنان قادر به پردازش آنها هستند.
- بمب مانیفست (Manifest Bomb): مهاجمان هدرهای غیرمستند با مقدار 0x9999 را در فایل xml قرار میدهند. محیط اجرای بومی اندروید (Android Native Runtime) این هدرها را نادیده میگیرد، اما وجود آنها میتواند باعث کرش یا پایان مهلت اجرا (Timeout) در پایپلاینهای تحلیل خودکار شود.
- آلودهسازی بایتکد DEX: در این روش، دستورهای جعلی با مقدار نامعتبر برای ویژگی element_width در فایل DEX قرار میگیرند. این کار باعث اختلال در فرآیند تجزیه بایتکد (Disassembly) و جلوگیری از تبدیل صحیح آن به دستورهای قابلتحلیل میشود.
- رمزنگاری دوگانه رشتهها (Dual String Encryption): بدافزار اندرویدی RatHat از سازوکار رمزنگاری StringCrypto: Base64 برای رمزنگاری رشتههای موجود در کد خود استفاده میکند. این روش، تحلیل و بررسی محتوای بدافزار را برای پژوهشگران امنیتی دشوارتر میکند.
معماری بدافزار اندرویدی RatHat
این بدافزار از سه کامپوننت اصلی تشکیل شده است:
- اپلیکیشن مخرب اندرویدی (Malicious Android Application): این اپلیکیشن برای دریافت مجوزهای حساس سیستم و آغاز مرحله بعدی حمله عمل میکند. اپلیکیشن ابتدا مجوز سرویسهای دسترسپذیری را دریافت کرده و سپس با سوءاستفاده از این قابلیت، گزینههای توسعهدهنده (Developer Options) را فعال میکند، دیباگینگ وایرلس (Wireless Debugging) را راهاندازی کرده و در نهایت کد 6 رقمی اتصال ADB را به دست میآورد.
- Go Agent: این عامل یکی از کامپوننتهای اصلی معماری بدافزار است که در مراحل بعدی برای اجرای عملیات موردنیاز روی دستگاه به کار گرفته میشود.
- کلاینت پروکسی معکوس FRP (Reverse-Proxy): این کامپوننت برای ایجاد ارتباط معکوس میان دستگاه آلوده و زیرساخت مهاجم استفاده میشود.
سوءاستفاده از رابط کاربری و حفظ دسترسی مهاجم
بدافزار اندرویدی RatHat میتواند روی برخی اپلیکیشنها لایه پوششی (Overlay) قرار دهد و از این طریق اطلاعات ورود و احراز هویت کاربران را سرقت کند. همچنین این بدافزار با استفاده از API مدیا پروجکشن (MediaProjection) امکان ضبط صفحهنمایش دستگاه را دارد و میتواند پیامکهای دریافتی را نیز رهگیری کند.
این بدافزار حتی میتواند فرآیند نصب اپلیکیشنها را نیز مختل کند. برای این منظور، یک لایه پوششی جعلی (Fake Overlay) با ظاهر گوگل پلی استور (Google Play Store) روی صفحه نمایش میدهد و با نمایش پیام خطا، کاربر را متقاعد میکند که نصب اپلیکیشن با موفقیت انجام نشده است.
یکی از قابلیتهای مهم RatHat، حفظ دسترسی به شل (Shell Access) حتی پس از حذف بدافزار از دستگاه است. سرویس لوکال بدافزار میتواند بررسی کند که RatHat روی دستگاه نصب است یا خیر و در صورت حذف، فرآیند نصب مجدد آن را انجام دهد.
همچنین پژوهشگران Zimperium اعلام کردهاند که بدافزار، ساختار رابط کاربری دستگاه بر اساس سرویس دسترسپذیری را به فرمت XML تبدیل میکند و این اطلاعات را با یکی از محبوبترین دستیارهای هوش مصنوعی مولد در جهان به اشتراک میگذارد.
این هوش مصنوعی برای انجام برخی اقدامات غیرمخرب در رابط کاربری دستگاه به کار گرفته میشود. از جمله این اقدامات میتوان به تعیین مختصات مرکز یک هدف مشخص روی صفحه و ارائه آن در فرمت JSON برای اجرای کلیکهای مصنوعی (Synthetic Clicks)، شناسایی متن هدف از دادههای XML و اجرای دستورهای خودکار برای کنترل رابط کاربری اشاره کرد؛ برای مثال، دستور SCROLL_DOWN که صفحه را به سمت پایین اسکرول میکند.
ایجاد تونل معکوس و کنترل دستگاه با ADB
Go Agent که توسط فایل APK اجرا میشود، خود را بهعنوان یک کتابخانه بومی با نام liblocal-service.so معرفی میکند، اما در عمل از دسترسی به شل که از طریق دیمون لوکال ADB به دست آورده است، برای اجرای دستورات استفاده میکند. این قابلیت به بدافزار اندرویدی RatHat اجازه میدهد دسترسی خود را روی دستگاه حفظ کند و محدودیتهای مدیریت مصرف انرژی (Power Management) را دور بزند.
کلاینت FRP برای ایجاد یک تونل معکوس امن (Reverse Tunnel) میان دستگاه آلوده و سرور فرماندهی و کنترل (C2) استفاده میشود.
به گفته پژوهشگران، Go Agent پیکربندی تونل FRP را از سرور C2 دریافت کرده و در ادامه، کلاینت FRP یک تونل معکوس فعال و پایدار به سمت اپراتور ایجاد میکند. این ارتباط به مهاجمان امکان دسترسی به دیمون ADB را میدهد و در عمل، مسیری مستقیم برای ورود به دستگاه فراهم میکند؛ مسیری که اپراتور از طریق آن میتواند مستقل از قابلیتهای داخلی بدافزار، دستورات موردنظر خود را اجرا کند.
دستورات ارسالشده از سوی سرور C2 قابلیتهای مختلفی را در اختیار مهاجمان قرار میدهند، از جمله:
- جمعآوری پیامکها
- سرقت اطلاعات احراز هویت و فایلها
- سرقت PIN، الگو یا رمز عبور صفحه قفل گوشی
- تهیه اسکرینشات از صفحهنمایش
- ثبت کلیدهای فشردهشده (Keystrokes)، از جمله URLهای واردشده در نوار آدرس مرورگر
- استخراج فهرست اپلیکیشنهای نصبشده روی دستگاه
ثبت کلیدهای فشردهشده میتواند شامل URLهایی نیز باشد که کاربر در نوار آدرس مرورگر وارد میکند. این بدافزار علاوه بر این قابلیت، به یک کیلاگر در سطح سختافزار مجهز است که توسط Go Agent اجرا میشود و میتواند محل لمس انگشت کاربر روی صفحهنمایش را ثبت کند.
به گفته Zimperium، معماری چندلایه بدافزار، استفاده از دیمونهایی که خارج از چرخه عمر معمول فعالیت میکنند و بهکارگیری فرآیندهای تصمیمگیری بلادرنگ مبتنی بر هوش مصنوعی مولد نشان میدهد که روشهای سنتی امنیت موبایل، که بر شناسایی مبتنی بر امضا تکیه دارند، دیگر برای شناسایی و مقابله با چنین تهدیدهای پیچیدهای کافی نیستند.













