محققان گزارشی منتشر کردهاند که به بررسی نسخه جدیدی از بدافزار بانکی با نام Chameleon میپردازد. این بدافزار به عنوان یک تهدید ظاهر شده و از روشهای مختلفی برای انتشار در سیستمهای اندرویدی، استفاده میکند. برنامههای بانکی به عنوان اصلیترین هدف این بدافزار شناخته میشوند.
محققان اعلام کردند که با تجزیه و تحلیل این بدافزار، موفق به شناسایی یک نسخه بهروزشده از Zombinder نیز شدند. Zombinder یک dropper-as-a-service (DaaS) است که به مهاجمان امکان میدهد بدافزارهای خود را با یک برنامه مجاز الحاق کرده و منتشر کنند. این بدافزار قابلیت جالبی برای دستکاری دستگاه قربانی دارد و آن اجرای اقداماتی از طرف قربانی، از طریق ویژگی پروکسی است. این ویژگی، امکان انجام حملات پیشرفته مانند Account Takeover (ATO) و Device Takeover (DTO) را به خصوص بر روی برنامههای بانکی و ارزهای دیجیتال فراهم میکند. این عملکردها با بهرهبرداری از Accessibility Service قابل انجام است.
نوع قبلی تروجان بانکی Chameleon از روشهای مختلفی برای توزیع استفاده میکرد، از جمله استفاده از صفحات فیشینگ و ظاهر شدن به عنوان یک برنامه مجاز، و استفاده از CDNها (یا شبکه توزیع محتوای مجاز) برای توزیع فایل. مهارت این تروجان در جعل هویت برنامههای قابل اعتماد است که این امر، پتانسیل آن را برای انتشار و تأثیر گسترده افزایش میدهد و اهمیت تهدید را برای امنیت تلفن همراه نشان میدهد.
براساس تحقیقات صورت گرفته، این بدافزار در حال توسعه بوده و به همین دلیل یک نسخه جدید با اصلاحات و ویژگیهای جدید منتشر شده است. این نسخه جدید همچنان از قابلیت Device Takeover (DTO) از طریق Accessibility Service بهره میبرد. همانطور که ذکر شد، این نمونهها توسط Zombinder توزیع شده و به صورت برنامههای Google Chrome در اختیار کاربران قرار میگیرند.
نسخههای جدید دو ویژگی بسیار حیاتی دارند: اول، امکان دور زدن اعلانهای بیومتریک و دوم، امکان نمایش یک صفحه HTML برای فعال کردن Accessibility Service در دستگاههایی با سیستمعامل اندروید 13 که ویژگی Restricted Settings را در حال اجرا دارند.
فعال کردن Accessibility Service در اندروید 13 از طریق HTML:
Restricted Settings یک ویژگی امنیتی در اندروید 13 است که از تأیید مجوزهای خطرناک مانند Accessibility جلوگیری میکند. توسعهدهندگان بدافزار از سرویس Accessibility برای سرقت محتوای صفحه، اختصاص مجوزهای بیشتر و غیره بهره میبرند. این ویژگی پس از دریافت فرمان «android_13» از سرور Command and Control (C2) فعال میشود. بدافزار دستگاه را بررسی میکند و اگر اندروید نسخه 13 یا بالاتر باشد و ویژگی Restricted Settings فعال باشد، یک صفحه HTML را نمایش میدهد و از کاربر درخواست میکند تا سرویس Accessibility را فعال کند. این مرحله برای بدافزار Chameleon بسیار حیاتی است، زیرا این سرویس برای انجام حملات Device Takeover (DTO) ضروری میباشد.
کد زیر نحوه بررسی دستگاه برای Restricted Settings را نشان میدهد:
if (!class.devicebuild() && (class2.commandlist("android_13", Boolean.valueOf(true)) && Build.VERSION.SDK_INT >= 33 && !class2.commandlist("restrict_opened", Boolean.FALSE)) {
this.startActivity(new Intent(this, class0).putExtra("action", "restriction"));
}
اگر بدافزار تایید کند که دستگاه از نسخه اندروید 13 به بالا با قابلیت Restricted Settings استفاده میکند، یک صفحه HTML را بارگزاری کرده که به صورت مرحله به مرحله، نحوه فعال کردن سرویس Accessibility در اندروید 13 و بالاتر را توضیح میدهد. تصویر زیر تعامل بدافزار با یک دستگاه اندروید 13 را نمایش میدهد.
این قابلیت جدید نشان میدهد که مهاجم چگونه میتواند تدابیر امنیتی که برای محدود کردن اقدامات ناخواسته توسعه داده شدهاند، به سادگی دور بزند.
اختلال در عملیات بیومتریک:
نوع جدید Chameleon یک ویژگی را با هدف قطع عملیات بیومتریک دستگاه مورد نظر ارائه میکند. این قابلیت با دستور "interrupt_biometric" فعال میشود. با دریافت این دستور، بدافزار روش "InterruptBiometric" را اجرا میکند که از API KeyguardManager و AccessibilityEvent برای ارزیابی صفحه گوشی و صفحه کلید استفاده کند. این متد، وضعیت قفل صفحه کلید را برای مکانیسمهای امنیتی استفاده شده نظیر رمز عبور، پین (PIN) و الگو بررسی میکند. بدافزار از عمل AccessibilityEvent برای انتقال از احراز هویت بیومتریک به احراز هویت پین استفاده میکند. این اقدام موجب دور زدن عملیات بیومتریک شده و به تروجان اجازه میدهد قفل دستگاه را به دلخواه باز کند. این عمل برای مهاجم دو مزیت دارد:
• تسهیل در سرقت پین، رمزهای عبور و الگوهای قفل از طریق Keylogger.
• امکان باز کردن قفل دستگاه از طریق پینها و رمزهای عبور قبلی از طریق Accessibility.
کد زیر، نحوهی ارزیابی وضعیت KeyGuard توسط بدافزار را نشان میدهد:
public final void interruptBiometric(AccessibilityEvent accessibilityEvent0) {
if (accessibilityEvent0.getPackageName() != null) {
if (bCBFNOgmB2372b7065b5f58f8f9f.screenstatus != 1 && (KeyguardManager != null && (KeyguardManager.isKeyguardSecure()))) {
if (getInstance.findViewByContainsID(getInstance.getRootInActiveWindow(), "lockPatternView") != null) {
return;
}
if (getInstance.findViewByContainsID(getInstance.getRootInActiveWindow(), "pinEntry") != null) {
return;
}
if (getInstance.findViewByContainsID(getInstance.getRootInActiveWindow(), "passwordEntry") != null) {
return;
}
}
ویژگی مدیریت زمان و کنترل فعالیت:
این ویژگی جدید که به نسخه جدید بدافزار Chameleon افزوده شده است، مربوط به زمانبندی برنامهها است که از طریق AlarmManager API اجرا میشود. این قابلیت در نسخههای قبلی این بدافزار وجود نداشته است.
ویژگی منحصر به فرد این بدافزار در زمانبندی Taskها، رویکرد پویا و مدیریت کارآمد Accessibility و اجرای Activity در جهت رفتار تروجان است.
این ویژگی جدید، که از دستور جدید inejction_type پشتیبانی میکند، بسته به فعال یا غیرفعال بودن قابلیت Accessibility به طور خودکار از (accessibility)"a11y" به "usagestats" تغییر میکند. اگر این قابلیت فعال باشد، بدافزار از طریق "Injection" حملات overlay را اجرا میکند. Overlay حملاتی هستند که برنامههای موبایل را هدف قرار میدهند. در این نوع حملات، بدافزار صفحهای را برای یک برنامه مجاز باز میکند که برای کاربر قابل تشخیص نیست. زمانی که کاربر اعتبارنامه یا اطلاعات بانکی خود را وارد میکند، بدافزار میتواند به این اطلاعات دسترسی پیدا کند و آنها را به سرقت برد.
اگر سرویس Accessibility در دستگاه غیرفعال باشد، بدافزار "a11y" را به "usagestats" تغییر میدهد. در این حالت، اطلاعاتی از app usage data کاربر در دستگاههای دارای اندروید 13 و بالاتر جمعآوری میشود تا بهترین زمان برای انجام حملات injection را انتخاب کند. این دادهها شامل foreground app، یک متد جایگزین برای تعیین foreground app و تصمیمگیری برای شروع overlay یا injection هستند.
public final void run() {
((AlarmManager) class.this.getApplicationContext().getSystemService("alarm")).set(0, System.currentTimeMillis() + 60000 L, PendingIntent.getBroadcast(class.this.getApplicationContext(), 5333, new Intent(class.this.getApplicationContext(), class2.class), 0xC000000));
if (!class.accessibility_enabled(class2.class) || (class.list("inejction_type", "a11y").equals("usagestats"))) {
if (class.usage_stats()) {
String s = class.this.currentActivity();
if ((class.commandlist("injection", Boolean.TRUE)) && (class.config(s)) && !false) {
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override public final void run() {
ActivityThread.startActivity(new Intent(ActivityThread, class2.class).putExtra("app", this.val$lastPackage).addFlags(0x10000000).addFlags(0x8000));
}
محصولات تحت تأثیر
تروجان بانکی Chameleon در حال حاضر بیشترین تأثیر خود را بر روی محصولات بانکی و خدمات مالی دارد. این حملات با هدف قرار دادن برنامهها و اپلیکیشنهای بانکی، اطلاعات حساس کاربران از جمله نام کاربری، رمزعبورها، اطلاعات حساب بانکی، و سایر اطلاعات مالی را به سرقت میبرد.
توصیههای امنیتی
برای پیشگیری از آلوده شدن به بدافزار Chameleon، باید از دریافت فایلهای APK از منابع غیررسمی اجتناب شود، چرا که این، روش اصلی توزیع Zombinder است. همچنین اطمینان حاصل شود که Play Protect همیشه فعال باشد و به صورت دورهای اسکنهای رایانه اجرا شود تا اطمینان حاصل شود که در دستگاه از نرمافزارها و تبلیغات مخرب استفاده نمیشود.
منابع خبر:
[1] https://www.threatfabric.com/blogs/android-banking-trojan-chameleon-is-back-in-action
[2] https://thehackernews.com/2023/12/new-chameleon-android-banking-trojan.html
[2] https://www.bleepingcomputer.com/news/security/android-malware-chameleon-disables-fingerprint-unloc…