شرح کلی
نوع: تبلیغافزار (Adware)
اسامی بدافزار:
Adware.Android.Fictus.A
درجه تخریب: متوسط
میزان شیوع: متوسط
تبلیغافزار (Adware) چیست؟
تبلیغافزارها بدافزارهای تبلیغاتی هستند که موجب نمایش تبلیغات یا ظاهر شدن بنرهای متعددی در سیستم شده و شما را تشویق به خرید محصولات یا استفاده از سرویسهای خود میکنند. برنامهنویسان این نوع از بدافزارها، از طریق اضافه کردن کدهای مربوط به سرویسهای ارسال اعلان به برنامههای خود برای نمایش تبلیغات و کسب درآمد بیشتر استفاده میکنند. آنها با قرار دادن برنامههای خود در بازارهای اندرویدی، سعی در ترغیب افراد بیشتری برای استفاده از اپلیکیشنهای خود دارند.
خانواده بدافزاری Fictus چیست؟
Fictus به عنوان یک نوع نرمافزار تبلیغاتی مزاحم طبقهبندی میشود. تبلیغافزارها بستههای نرمافزاری هستند که به طور خودکار تبلیغات را هنگام اجرای برنامه نمایش میدهند. ابزارهای تبلیغاتی مزاحم اغلب مخرب نیستند، اما ناخواسته هستند و کاربر اغلب از نصب آن بر روی گوشی خود اطلاع ندارد.
توضیحات فنی
این برنامه با نام “DU Battery Saver Pro丨Power Doctor v3.9.9” در بازارهای اندرویدی مختلف وجود دارد. سازنده ادعا میکند که اگر باتری گوشی اندرویدی کاربر زمان کمی شارژ نگهداری میکند و در بسیاری از مواقع سریع خاموش میشود، نرم افزار DU Battery Saver Pro丨Power Doctor v3.9.9.9 قادر است مصرف باتری تلفن همراه را به صورت چشمگیری کاهش دهد. اما در حقیقت این نمونه آلوده بوده و از خانواده بدافزاری تبلیغافزارهاست که اطلاعاتی از گوشی کاربر جمعآوری کرده و متناسب با آنها، تبلیغاتی را به کاربر نمایش میدهد.
این بدافزار برای تبلیغات در گوشی کاربر از SDKهای تبلیغاتی بسیار زیادی استفاده کرده است که از جمله آنها “adeco.adsdk.ads” میباشد(Adeco شبکه تبلیغات برای موبایل است). نصب برنامه، با نصب sdkهای تبلیغاتی برای نمایش آگهیها، تبلیغات بینابینی و غیره شروع میشود. سپس برنامه “DU Battery Saver” واقعی را نصب میکند، فعالیت برنامه اولیه خود را پنهان میکند و فعالیت برنامه دوم را بالا میآورد. مشکل این است که نمیتوانید از تمامی خدمات برنامه واقعی “DU Battery Saver” استفاده کنید، مگر اینکه روی تبلیغات ارسال شده به گوشی کلیک کرده باشید و از شما بخواهد برنامههای مورد نظر را نصب کنید.
بعد از اجرای برنامه، در فعالیت اصلی برنامه، ابتدا اتصال به اینترنت چک میشود و در ادامه از طریق لاگ موجود در shared preference بررسی میشود که آیا برنامه برای بار اول در حال بارگزاری است یا نه. در صورتی که بار اول باشد، به دنبال فایل apk دوم، در فولدر assets/applications برنامه میگردد و سایز آن را بررسی میکند. این فایل در واقع نسخه دیگری از همین برنامه است که با packagename متفاوت (com.dianxinos.dxbs) با packagename برنامه اصلی (hd.com.dianxinos.dxbs) میباشد. در ادامه، یک intent از کلاس InstallTypeActivity که extend شده از کلاس BannerActivity است را فراخوانی میکند. این کلاس تنها برای تنظیمات مربوط به نمایش تبلیغات توسط SDKهای اضافه شده در برنامه است.
InstallTypeActivity
برنامه بلافاصله بعد از اجرای فعالیت اصلی، به آدرس “hxxp[:]//s[.]net2share[.]com/servers[.]json” درخواست میفرستد و در پاسخ، آدرس دو وبسایت برای اتصال ارسال میشود؛ ads02[.]adecosystems[.]com و ads03[.]adecosystems[.]com (که متعلق به شرکت تبلیغاتی Adeco هستند). اینکه چه اطلاعاتی به عنوان package ارسالی به هر یک از این آدرسها ارسال شود از فایل موجود در shared preference برنامه به نام “com.adeco.adsdk.mediation.AdsProviderImplModern.CACHE.xml” خوانده میشود. اطلاعات شامل یک سری اطلاعات مهم از گوشی کاربر است که به سمت این وبسایتهای تبلیغاتی ارسال میشود.
روالی که معمولا در این packageهای تبلیغاتی برای نمایش تبلیغات مرتبط با علاقهمندیهای کاربر طی میشود به این صورت است که اطلاعات گوشی کاربر جمعآوری و به سرور تبلیغاتی ارسال میشود تا متناسب با آنها تبلیغات دریافت شود؛ مانند deviceId ،IMEI، موقعیت جغرافیایی گوشی کاربر، گرفتن مشخصات اتصال به شبکه گوشی کاربر، زبان گوشی و …
همچنین، درخواستهای خود برای نمایش تبلیغات را به سرورهای خود ارسال میکنند برای اینکه تبلیغات به صورت نمایش بنر باشد یا ویدیو و …
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="json_http://ads02.adecosystems.com/ad/1.0/ad.json?request_type=mma&placement=f_game&mcc=310&device_type=phone&package=hd.com.dianxinos.dxbs&aff=net2share&app_version=1&mac=&device_model=sdk&event=r&sdkname=com.adeco.adsdk&sdkversion=0.57.4&carrier=Android&mnc=260&odin=873b95e50a4e7c38be0a99e842c619a4beb1deee&campaign=%2525%2525CAMPAIGN%2525%2525&lat=NaN&device_manufacturer=unknown&created_date=2015-03-24&platform=android&os=19&app=cw2&lon=NaN&ad_width=320&imei=000000000000000&ad_height=50&connectionType=WWAN&device_id=c57e7f52ffc195bc&pub=1780&market=default&ad_type=custom">{"global_opt":{"ai_enabled":false,"ac_secure":false,"ac_enabled":false,"disable_threshold":95}}</string>
<long name="expire_http://ads02.adecosystems.com/ad/1.0/ad.json?request_type=mma&placement=f_game&mcc=310&device_type=phone&package=hd.com.dianxinos.dxbs&aff=net2share&app_version=1&mac=&device_model=sdk&event=r&sdkname=com.adeco.adsdk&sdkversion=0.57.4&carrier=Android&mnc=260&odin=873b95e50a4e7c38be0a99e842c619a4beb1deee&campaign=%2525%2525CAMPAIGN%2525%2525&lat=NaN&device_manufacturer=unknown&created_date=2015-03-24&platform=android&os=19&app=cw2&lon=NaN&ad_width=320&imei=000000000000000&ad_height=50&connectionType=WWAN&device_id=c57e7f52ffc195bc&pub=1780&market=default&ad_type=custom" value="1597831943459" />
</map>
FinishActivity
هدف از فراخوانی این فعالیت، این است که فایل package.apk که در مسیر assets/applications است را نصب کند. یعنی بلافاصله بعد از نصب برنامه اولیه، برنامه ثانویه جایگزین و راهاندازی میشود. همچنین، پیغامی در صفحه نمایش داده میشود، مبنی بر این که برنامه مربوط به نسخه 3.9.9 از این برنامه است و در ادامه فعالیت برنامه اولیه به صورت مخفی در میآید.
InterstitialApplication
همان طور که از فایل Manifest.xml برنامه مشخص است، بدافزارنویس SDKهای تبلیغاتی گوناگونی را به برنامه خود اضافه کرده است. این SDKها شامل AdColony SDK ،adeco AdSDK ،MoPub و MobFox هستند.
در واقع SDKهای تبلیغاتی برای برنامههای موبایل، یک بستر تبلیغاتی میباشد که میتوان برای تولید درآمد در برنامههای خود از آنها استفاده کرد. ادغام SDK به صاحبان برنامه کمک میکند تا بدون اینکه هیچ هزینهای را از کاربران بابت استفاده از برنامه بگیرند، از برنامه خود کسب درآمد کنند. SDK اساساً ارتباط بین برنامهنویس و شبکه تبلیغات را فعال میکند. تبلیغات نمایش داده شده میتواند از هر نوعی تعریف شده باشد و به شکل بنر، بینابینی (interstitial)، ویدیویی یا تبلیغات بومی نمایش داده شود.
در این برنامه از تبلیغات بینابینی (interstitial) استفاده شده است که خود شامل موارد متفاوتی میشود:
۱. تبلیغات بنری بینابینی (Interstitial Banner Ad)
در تبلیغات بنری بینابینی، مطابق مدل پیادهسازی توسعه دهندگان، در زمان مشخص یک بنر تمام صفحه به کاربر نمایش داده میشود و کاربر در صورت عدم علاقه به تماشا میتواند پس از گذشت چند ثانیه، از تماشای بنر انصراف دهد.
۲. تبلیغات ویدیویی بینابینی (Interstitial Video Ad)
ویدئوهای تبلیغاتی بینابینی با ظاهری مشابه محتوای اصیل رسانه شما و در لحظاتی که کاربران برنامه بیشترین میزان توجه را دارند، به آنها نمایش داده میشود.
<activity android:name="org.nexage.sourcekit.vast.activity.VASTActivity" android:screenOrientation="0" >
</activity>
<meta-data android:name="com.google.android.gms.version" android:value="@7F090000" >
</meta-data>
<service android:name="com.adeco.adsdk.app.DebugService" >
</service>
<activity android:name="com.adeco.adsdk.app.InAppBrowserActivity" > </activity>
<meta-data android:name="com.adeco.analytics.FLURRY_KEY" android:value="SRRJNWBBVMHGYZ2C2MQG" >
</meta-data>
<activity android:name="com.adeco.adsdk.app.InterstitialActivity" > </activity>
<activity android:theme="@android:01030009" android:name="com.adeco.adsdk.steps.AppsActivity" android:screenOrientation="1" >
</activity>
<activity android:theme="@android:01030009" android:name="com.adeco.adsdk.steps.SponsorsActivity" android:screenOrientation="1" > </activity>
<activity android:theme="@android:01030009" android:name="com.adeco.adsdk.adpath.InstallActivity" android:screenOrientation="1" > </activity>
<activity android:theme="@android:01030009" android:name="com.adeco.adsdk.steps.InstallTypeActivity" android:screenOrientation="1" >
</activity>
<activity android:theme="@android:01030009" android:name="com.adeco.adsdk.app.OverlayActivity" >
</activity>
<receiver android:name="com.adeco.adsdk.receivers.AdsReceiver" >
<intent-filter >
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" > </action>
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" >
</action>
</intent-filter>
</receiver>
//MoPub <activity android:theme="@android:01030010" android:name="com.millennialmedia.android.MMActivity" android:configChanges="0x000000b0" >
</activity>
<activity android:name="com.millennialmedia.android.VideoPlayer" android:configChanges="0x000000b0" >
</activity>
<activity android:theme="@android:01030011" android:name="com.vdopia.android.preroll.VDOPrerollActivity" android:screenOrientation="0" android:configChanges="0x000000a0" >
</activity>
<activity android:theme="@android:01030011" android:name="com.jirbo.adcolony.AdColonyOverlay" android:configChanges="0x000000a0" >
</activity>
<activity android:theme="@android:0103000A" android:name="com.jirbo.adcolony.AdColonyFullscreen" android:configChanges="0x000000a0" >
</activity>
<activity android:theme="@android:0103000A" android:name="com.jirbo.adcolony.AdColonyBrowser" android:configChanges="0x000000a0" >
</activity>
<activity android:name="com.adsdk.sdk.banner.InAppWebView" android:configChanges="0x00000fb0" > </activity>
<activity android:name="com.adsdk.sdk.mraid.MraidActivity" android:configChanges="0x00000fb0" >
</activity>
<activity android:name="com.adsdk.sdk.video.RichMediaActivity" android:configChanges="0x00000fb0" android:hardwareAccelerated="false" >
</activity>
درمورد فایل نصب شده به نام package.apk که در مسیر assets برنامه قرار داشت:
به طور کلی این فایل در حقیقت همان فایل اصلی برنامه بوده که کاربر این برنامه را به منظور آن نصب کرده است. هدف این برنامه این است که اگر باتری گوشی اندرویدی شما زمان کمی شارژ نگهداری میکند و در بسیاری از مواقع سریع خاموش میشود، نرم افزار DU Battery Saver Pro丨Power Doctor v3.9.9.9 مصرف باتری تلفن همراه شما را به صورت چشمگیری کاهش دهد. همچنین، میتواند در بسیاری از بخشها عملکرد گوشی شما را بهینه کند و با نشان دادن لیست برنامههای موجود در گوشی و اینکه کدام یک بیشتر از منابع گوشی استفاده میکند، کاربر را در راستای مدیریت بهینه برنامههای گوشی کمک کند. نکتهای که در بررسی این فایل وجود دارد این است که از packageهای تبلیغاتی (tapjoy و facebook) در برنامه خود استفاده کرده است و بنابراین همانند سایر برنامههای خانواده تبلیغافزارها، با جمعآوری اطلاعات گوشی کاربر و ارسال آنها به سرورهای خود، به راحتی میتوانند در گوشی کاربر تبلیغات وابسته نمایش دهند و با سودجویی، برنامههای دیگر را به کاربر پیشنهاد داده تا نصب کند.
روش مقابله و پاکسازی سیستم
برای اطمینان خاطر از عدم آلودگی دستگاه، فایل پایگاه داده آنتیویروس پادویش را نصب و بهروز نگه دارید و اسکن آنتی ویروس را انجام دهید.
روشهای پیشگیری از آلوده شدن گوشی:
۱. از دانلود و نصب برنامه از منابع و مارکتهای موبایلی نامعتبر خودداری کنید.
۲. هنگام نصب برنامههای موبایلی، به مجوزهای درخواستی دقت کنید.
۳. از فایلها و اطلاعات ذخیره شده در گوشی، پشتیبانگیری مداوم انجام دهید.
۴. از نسخههای غیر رسمی برنامهها استفاده نکنید. برنامههایی مانند تلگرام و اینستاگرام نسخههای غیر رسمی زیادی دارند و بیشتر آنها از طریق کانالهای تلگرامی انتشار مییابند.