Trojan.Android.Piom.Behpardakht

شرح کلی

نوع: تروجان (Trojan)
درجه تخریب: کم/متوسط/بالا
میزان شیوع: کم/متوسط/بالا

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

• Padvish) Trojan.Android.Piom.Behpardakht)
• Kaspersky) HEUR:Trojan.AndroidOS.Piom.aiuj)
• ESET-NOD32) A Variant Of Android/Spy.SmsSpy.TN)
• Avira) ANDROID/Spy.SmsSpy.pazun)

تروجان (Trojan) چیست؟

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

خانواده بدافزاری Piom چیست؟

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

توضیحات فنی

علائم آلودگی

• دسترسی به پیامک‌های کاربر

شرح عملکرد

نام این برنامه “به پرداخت ملت” است ولی برنامه بانکی نبوده و صرفا از UI برنامه موبایل بانک ملت به منظور رسیدن به اهداف خود و فریب کاربران استفاده کرده است. روال کلی این بدافزار به ابن صورت است که در صفحه اول خود شماره کاربر را درخواست کرده (اگر بدون وارد کردن شماره موبایل یا ورود شماره‌ای اشتباه دکمه “ادامه” زده شود، خطای “شماره موبایل معتبر نیست” نمایش داده می‌شود و وارد مرحله بعدی نخواهد شد) و آن را برای سرور C&C خود ارسال می‌کند.

روال کاری این بدافزار به احتمال خیلی زیاد به این صورت است که پیامکی به کاربر ارسال خواهد شد (متنی مانند: از شما شکایت شده برای پیگیری شکایت به لینک زیر مراجعه کنید …) که حاوی لینک “hxxp[:]//188[.]40[.]233[.]91/eblaghd” است (تصویر این لینک در بالا آورده شده است) و در آن به کاربر می‌گوید به عنوان کارمزد سایت باید مبلغ ۲۰,۰۰۰ ریال واریز کند. همچنین، برای رفتن به صفحه واریز باید کد ملی و شماره موبایل خود را وارد کند که بعد از ورود این موارد به درگاه جعلی ارجاع داده می‌شود.

بعد از فشردن دکمه “ادامه” از کاربر درخواست کسب مجوز دسترسی به پیامک‌ها را دارد و تا زمانی که کاربر این مجوز را به برنامه‌ ندهد، امکان ادامه برنامه وجود نخواهد داشت. پس از دریافت مجوزهای “android.permission.RECEIVE_SMS” و “android.permission.READ_SMS” وارد درگاه جعلی می‌شود.

در صورتی که کاربر اطلاعات خود را وارد کند، این اطلاعات را به همراه رمز یک بار مصرفی که از سمت بانک برای کاربر پیامک می‌شود، به سرور C&C خود  ارسال می‌کند. در صورتی که کاربر منصرف شده و بخواهد از برنامه خارج شود نیز اقدام بعدی بدافزار این است که دکمه Back را غیر فعال کرده و یک Toast (پیغامی به مدت چند ثانیه به کاربر نشان می‌دهد و بعد از آن محو می‌شود) روی آن تنظیم می‌کند. پیغام ” کاربر گرامی در صورتی که از انجام تراکنش صرف نظر نموده‌اید لطفا گزینه انصراف (کنار دکمه پرداخت) را لمس کنید. ” را به کاربر نمایش می‌دهد تا کاربر را تا جایی که می‌تواند در برنامه نگه دارد و کاربر نتواند در حالت عادی از برنامه خارج شود.

اکتیویتی اصلی برنامه ir.siqe.holo.MainActivity:

در اکتیویتی اصلی برنامه پس از انجام عملیات UI، در روال شرطی شماره تلفن وارد شده توسط کاربر را بررسی کرده و در صورتی که قالب شماره ورودی با قالب از پیش تعیین شده متفاوت باشد، کاربر با خطای “شماره موبایل معتبر نیست” رو به رو می‌شود. در صورتی که شماره به درستی وارد شده باشد، بدافزار اقدام به دریافت مجوز “android.permission.RECEIVE_SMS” به صورت RunTime از کاربر می‌کند و در صورتی که موفق به دریافت این مجوز شود، شماره تلفن وارد شده توسط کاربر را ذخیره کرده و با مقادیر زیر به کلاس ir.siqe.holo.connect منتقل می‌کند:

کلاس ir.siqe.holo.connect:

این بدافزار به منظور برقراری ارتباط با سرور C&C خود (httpClient) از کتابخانه‌ای به نام Fast Android Networking استفاده می‌کند. اما تکنیک جالبی که به کار گرفته این است که از متد POST به منظور ارسال اطلاعات شخصی کاربر به سرورش استفاده نکرده و تنها از متد GET استفاده کرده است! به این صورت که اطلاعاتی را که قصد ارسالشان به سرور خود دارد، درون لینک ارتباطی خود با سرورش جایگذاری می‌کند. ایجاد درخواست GET به این صورت است که مقادیر زیر را کنار یکدیگر گذاشته و با سرورش ارتباط می‌گیرد:

بعد از انجام عملیات بالا نیز به اکتیویتی MainActivity2 منتقل می‌شود.

اکتیویتی ir.siqe.holo.MainActivity2:

متد oncreat:
با هدف بازکردن یک صفحه وب در webView از طریق LoadUrl به این متد منتقل می‌شود و با انجام تنظیمات مربوط به WebView صفحه مورد نظر را باز می‌کند. همچنین، با تنظیم یک Toast روی دکمه Back امکان خروج از برنامه‌ را از کاربر سلب کرده و کاربر مجبور می‌شود به طور کلی برنامه را ببندد.

پذیرنده ir.siqe.holo.MyReceiver:
این پذیرنده با توجه به اکشن تعریف شده برای آن یعنی “android.provider.Telephony.SMS_RECEIVE”، به محض دریافت پیامک فراخوانی می‌شود و با استفاده از متد ()getExtract محتوای پیامک را دریافت، در یک متغیر ذخیره و سپس طی شرطی محتوای این متغیر را بررسی می‌کند. اگر null نباشد، محتوای آن را با استفاده از کلاس SmsMessage و متد ()getMessageBody واکشی کرده و در متغیر دیگری جمع‌آوری و به منظور ارسال آن به سمت سرور C&C خود آن را به عنوان یکی از پارامترهای ورودی به کلاس ir.siqe.holo.connect (در بالا روال کار این کلاس گفته شده است) می‌فرستد.

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

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