Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all articles
Browse latest Browse all 12749

【技术分享】谷歌商店又现新型恶意软件Graboso通过推广app牟利

0
0
【技术分享】谷歌商店又现新型恶意软件Graboso通过推广app牟利

2017-11-16 18:06:16

阅读:386次
点赞(0)
收藏
来源: mcafee.com





【技术分享】谷歌商店又现新型恶意软件Graboso通过推广app牟利

作者:Janus情报局






【技术分享】谷歌商店又现新型恶意软件Graboso通过推广app牟利

译者:Janus情报局

预估稿费:260RMB

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿


简介

近期,McAfee移动研究团队在谷歌商店144个“木马化”的应用中发现了一种新型的Android恶意软件。McAfee团队将其命名为Grabos,因为该应用的代码中出现很多次该字符串,包括变量名和方法名。Grabos最初是在Android应用程序“Aristotle Music audio player 2017”中发现的,该应用程序声称自己是一款免费音频播放器:


【技术分享】谷歌商店又现新型恶意软件Graboso通过推广app牟利

图1谷歌商店里被植入木马的音乐应用

发现Aristotle Music恶意应用时,这款应用的用户评价很高,下载量也高达100~500万之间。然而应用最新的评论也有用户说,这款应用被检测为恶意软件。


【技术分享】谷歌商店又现新型恶意软件Graboso通过推广app牟利

图2 用户反应Aristotle Music被检测为恶意软件


谷歌商店里的Grabos应用

McAfee移动研究团队在今年九月份发现Grabos后,第一时间上报给谷歌商店,谷歌商店迅速删除了恶意应用程序。而经过进一步调查,McAfee团队又发现了其他143款应用(参见本文文末的完整列表),目前这些应用已从谷歌商店下架。而在McAfee上报给谷歌商店后,以下六款应用立即被移除:


【技术分享】谷歌商店又现新型恶意软件Graboso通过推广app牟利
图3 谷歌商店其他被植入木马的Grabos应用

在撰写本文时,34款应用仍然可以通过缓存访问它们的网页,因此也可以获取一些应用相关的信息,比如应用安装量,最后一次更新日期和用户评分。这些应用最后一次更新大多在今年8月份和10月份。它们在谷歌商店的平均评分为4.4,有大约420万~1720万的下载量。


【技术分享】谷歌商店又现新型恶意软件Graboso通过推广app牟利
图4 谷歌商店的恶意应用详情

相关应用链接:http://cloud.appscan.io/monitor.html?id=5a0c5dc002723815d6a3361b

Grabos能够避开谷歌商店的安全策略,可能是因为注入的恶意代码受到商业混淆程序的保护,在不运行应用程序的情况下进行静态分析就很困难。如果不知道应用程序的检查策略,即使对它进行动态分析,也很难阻止其检查策略的执行。但只要我们脱了壳,一切就可以继续进行了。


孰真孰假

我们发现,文件资源管理器和音乐播放器也被注入了Grabos,而这其中有一些是开源的。每当应用程序启动,它就会检查以下设置,再决定要启动“假(合法功能)”还是“真(注入打包代码)”应用。

·isOnline: 检查设备是否有网络连接。

·getIsBlacklisted: 检查Android调试桥(adb)和开发设置是否启动,或者设备是否在模拟器中。如果是后者,该设备会被列入黑名单,并启动“假”应用程序

·getIsForcedBlacklisted: 由控制服务器设置的flag。

代码还有一个测试模式,允许执行“真”应用,以防在模拟器中运行或启动adb和开发设置。这些检查都是在检测应用程序是否被执行动态分析,并在必要时隐藏代码。

如果应用未被分析或处于测试模式,“真”应用就会被启动。这个隐藏的音乐下载器会在YouTube上搜索特定的歌曲。一旦歌曲被选中,它就会以MP3或MP4的格式下载并被离线播放。


【技术分享】谷歌商店又现新型恶意软件Graboso通过推广app牟利

图5 真假应用流程图

看到这里,应用程序似乎只是一个隐藏在木马程序中的音乐下载器,它检查动态分析行为,以防止由于音乐版权被谷歌商店下架。然而,在这背后,还有更多惊人的事情默默发生。


与控制服务器通信

除了“假”应用和“真”应用功能外,Grabos也作为一个广播接收器(receiver)出现在AndroidManifest中。当连接发生变化或安装应用程序时,接收器执行。


【技术分享】谷歌商店又现新型恶意软件Graboso通过推广app牟利
图6 AndroidManifest中的Grabos接收器

如果接收端由于连接性变化而被执行,则当设备脱机时,执行结束,或者自上次连接后不到5秒的时间结束。如果超过5秒,方法“updateRemoteSettingsSynchronousTask”执行。该方法收集和加密(Base64+高级加密标准)以下来自受感染设备的数据:

·设备信息:

·android_version(Android版本)

·build_model(手机型号)

·install_referrer(安装来源)

·network_country(网络国家代码)

·sim_country(SIM卡国家代码)

·carrier_name(设备名称)

·language_code(语言代码)

·country_code(国家代码)

·time_timezone(时间时区)

·设备定位:Grab使用免费的IP地理定位API服务获取IP地址信息,比如城市、国家、ISP、组织、区域和邮政编码。

·设备配置:

·is_emulator

·is_rooted

·is_adb_enabled

·is_dev_settings_enabled

·allow_mock_location

·allow_non_market (unknown sources enabled/disabled)

·is_vpn_connected

·dp checks (除了商业混淆程序提供的root,调试,模拟器检查)

·已安装Grabos应用信息:版本号、包名及安装时间

·安装特定应用:如果受感染的设备中安装了预先定义的列表中的应用,Grabos会将此信息上报。(稍后详细解释)

所有信息都经过加密并传输给控制服务器。远程服务器接收到信息后作出响应,返回包含下载音乐参数(URLs、API keys、user agents,client_id等等)的加密数据,用来展示广告(nativead_id, interstitial_id, banner_id等等)、显示特定的通知,比如要求用户在谷歌商店对该应用评分:


【技术分享】谷歌商店又现新型恶意软件Graboso通过推广app牟利
图7 控制服务器提供的“rate this app”参数

在应用第一次打开时会弹出评分窗口,如果点击“5星好评”按钮,应用程序会打开谷歌商店,用户可以在谷歌商店对应用进行评分。


【技术分享】谷歌商店又现新型恶意软件Graboso通过推广app牟利
图8 评分弹窗

用同样的方法,远程服务器也可以提供参数,让用户与朋友共享应用,承诺享受更快的下载速度:


【技术分享】谷歌商店又现新型恶意软件Graboso通过推广app牟利

图9 控制服务器提供的“share the app”参数

控制服务器还发送参数“is_forced_blacklist”,如果值为“true”,则手动将该设备列入黑名单,以防止隐藏应用程序的执行。

神秘功能

除了报告被感染的设备的位置和配置信息之外,Grabos还利用方法isPackageInstalled和应用包名,检查设备中是否安装了特定的社交及谷歌官方应用。根据当前安装的应用程序,相应的值设置为true或false,该信息被加密,并传输远程控制服务器:


【技术分享】谷歌商店又现新型恶意软件Graboso通过推广app牟利
图10 向控制服务器报告设备中的社交及谷歌应用列表

McAfee将这一发现报告给了谷歌。然而我们并不知道报告这些应用程序的目的。然而,我们相信这些信息对恶意软件作者是有用的,因为Grabos已经实现了几种机制,诱使用户安装远程服务器提供的应用程序。让我们来看一下这些函数。


自定义推送通知和其他应用程序

在从远程服务器获得初始设置之后,将执行AsyncTask shownotificationifif,以检查控制服务器是否提供了参数n_title、n_description和n_package。如果已经提供了参数,Grabos会检查应用程序是否可以从谷歌商店获取(如果“pack”是一个名称而不是一个URL),或者从远程服务器获取(如果“pack”以HTTP开头)。

如果应用程序未被安装并且可获取,Grabos会从远程服务器收集其他参数(比如,图标和大图标),以创建自定义通知,诱导用户安装应用程序。


【技术分享】谷歌商店又现新型恶意软件Graboso通过推广app牟利
图11 控制服务器提供用于创建自定义通知的参数

Grabos也会检查远程服务器是否提供了以下参数:

·interstitial_letang_options:提供延迟和重复活动显示的值。 (initial_delay and min_interval)

·interstitial_letang:包括以下远程指令:

·admob: 执行方法 “showAdmobInterstitial”

·nothing

·grabos_direct

如果该指令是grabos_direct,Grabos会获取参数grabos_direct_interstitial的title、package和max_times_shown值,以打开谷歌商店该应用页面或触发下载应用。


【技术分享】谷歌商店又现新型恶意软件Graboso通过推广app牟利
图12 URL下载应用或打开谷歌商店应用界面

通知和interstitial_letang方法都是为了欺骗用户下载或安装应用程序,当连接发生改变时,触发执行。不过,当音乐下载器执行时,Grabos还实现了另一个应用程序传输方法。这个方法,ShowGrabosIfNeeded,与interstitial_letang类似,它检查需要的参数是否存在,应用程序是否可用,以及是否可以在未经用户授权的情况下打开应用程序:


【技术分享】谷歌商店又现新型恶意软件Graboso通过推广app牟利
图13 Grabos检查已安装应用是否可以被打开

一旦Grabos确认设备在线,应用可从谷歌商店或远程服务器获取,并且应用包未曾安装,恶意软件会从远程服务器获取以下参数,用于创建一个警告弹窗,并诱导用户下载另外一个应用:


【技术分享】谷歌商店又现新型恶意软件Graboso通过推广app牟利

图14 Grabos用于创建警告弹窗的参数


雷达下飞行:巧妙躲避分析

除了采用多种方式检测应用是否被进行动态检测(模拟器、adb、开发设置)和注入代码加密,Grabos每24小时会更新远程设置(除非处于测试模式下)。这个限制可以通过修改设备的日期和时间进行绕过,我们就可以进行进一步的应用分析。然而,最新版本的Grabos包含了检查设备是否自动获取日期、时间和时区,这对于接下来的分析也带来了不小的挑战。


【技术分享】谷歌商店又现新型恶意软件Graboso通过推广app牟利
图15 Grabos检查设备是否自动获取日期、时间和时区

这个设置的状态通过字段time_is_auto和time_timezone_is_auto上报给远程控制服务器。虽然这个检查没有在Grabos代码中使用,但是信息可以用来确定应用是否处于动态检测,并绝对是否传输额外的payload。

控制服务器所使用的URL也表明,Grabos一直试图将其网络流量伪装成合法的。乍一看,URL似乎属于熟悉的广告软件公司,名字是相同的。然而,Grabos所使用的并不是官方的“.com”域名,而是“.link”、“.click”这种,而这些域名并没有被该广告软件公司注册。

最后,Grabos定义了额外的机制,目前尚未实现,该机制用于将特定设备加入黑名单或白名单。例如,该设备可能会在未来版本被列入黑名单或白名单,这取决于受感染设备的国家代码或配置语言:


【技术分享】谷歌商店又现新型恶意软件Graboso通过推广app牟利
图16 基于语言和国家代码的黑、白名单功能

Grabos还定义(但尚未实现)了基于IP地址将设备列入黑名单的方法


【技术分享】谷歌商店又现新型恶意软件Graboso通过推广app牟利
图17 基于IP地址信息的黑名单功能

结论

在我们分析这一威胁时,控制服务器总是为自定义通知提供空参数,以欺骗用户安装应用程序。考虑到显示广告的功能和大量的下载,我们认为Grabos的主要目的是通过推广应用程序的安装牟利。

Grabos在谷歌商店越来越流行,因为它允许用户免费下载音乐,尽管它不断要求用户对应用进行评分。然而,用户并不知道该应用背后的隐藏功能。

鉴于Grabos还上报了在受感染设备上出现的特定社交和谷歌官方应用,我们猜测不法分子利用这些信息,使用在代码中定义的各种通知方法诱导用户下载安装其他应用。尽管在我们分析的过程中,远程服务器并未传输所需的参数触发自定义通知,但是这些设备已经被成功标记,沦为其他Android应用的下载器。

McAfee移动安全将这一威胁标记为Android/Garbos。为了保护您免遭此类威胁,请在您的移动设备上使用安全软件,检查该应用的用户评论,避免使用功能与实际不符的可疑应用。


Grabos包名列表

picklieapps.player

musicaplayer.stonetemples

mp3musicplayer.playmusicmp3

densebutter.musicplayer

airplaneapps.soundmeter

dinosaursr.musicplayer

tenuousllc.humneate

astropie.musicplayer

chargeshoes.videoplayer

callsaver.doubtful

unfestenedsail.freeapp

extendmilk.freeplayer

excellentlossapps.playermusic

AliciaTech.free

mp3player.musicplayer.freelocalmusicplayer

freemusicplayer.freemusicplayer.free

afromusicplayer.fremediaplayer

info_astro.glider_player

illfatednotice.humdrum

headybowl.musicplayer

musicgratisplayerfree.free

naturityllc.mp3player

anothertube.music.player

startdancingapps.callrecorder

social.video.saver.pro

gratis.video.downloader.hd

sportingapps.copyleft_music.player

auto_call_recorder.freeapp

freenewsreader.rssfeed

music.video.player

curatorinc.ringtone.search

mp3musicplayer.local_files_player

copyleft.stream.musica.player

mp3.music.player

nobodybeats.musicplayer

file.manager.pronessbest

ark.music.mp3.player

air.browser.free

aneeoboapps.playlistmanager

local_music_player.free_mp3_player

greenlinellc.voicechanger

free.playlist.creator.tube

toporganizer.fileorganizer

thumb.webbrowse

aspirator.ringtones.player

freevideoplayer.musicplayer

vimfast.videodl

whimsical.piano.free

truckneat.freeapp

crowdedarmy.volume.controller

arnold_legal.mp3.musica

descent.shutterfly

thankyou.arrowplayer

pocahantasapps.musicplayer

astroplayer.freee

couchpotato.musica.play_stream

abstractly.musica.player

matsumoto.mp3player

musicequalizer.freeequalizer

lifesbad.fileexplorer

videolunch.free

copyleft.cc.mp3.music

ark.music.mp3.player

musik.mp3.music

streamerplayer.stream_videos

voicerecorder.recordvoice

snip.browser

checkrein.musicapp

mp3musicplayer.freemusicplayer.playmusic

jadedprogram.mp3player

preoral.freeborn

voice.changer.freeappsapp

streamplay.stream.player

localmp3music.freeplayer

drummachine.machinedrums

coloringbook.freetrynow

videodownloader.social_video_download

ElephantApps.FileManager

scaricare.app.musica

quicksearch.tube.player

rooseveltisland.mp3player

mindprogram.musicf

freeborn.sdkintegration

koseapps.tubemusica

baixar.videos.gratis

adeptly.forgoneapp

musicas.gratis.player

miniaturef.swanky

insta.mp3.music.streamer

anchor.musicplayer

repeate.mp3musicplayer

FeisalLLC.MusicPlayer

shelfshare.freeapp

simple.streamer.player

streamplayer.freearnold

freeturkish.video.downloader

cowherd.freeapp

localmp3musicplayer.local_player

scaricare.apps.musica

silymove.freeapp

pinkphone.funfreetube

tissuepaper.freemusic

chopsuey.musicplayer

branchnotice.musicplayer

fradcip.MasterApp

music.player.mp3.ares

social.video.downloader.for_fb

frobenius.time.tube

spelldoom.comeup

bailymusic.player

sportifco.musicplayer

topsaver.video.downloader

coupleweeks.modcium

unbecomingllc.videodownloader

video.for_fb.downloader.saver

macdrop.apptool

callsaver.recorderfreeapp

arnie_legal.mp3.musica

kikiapps.freeplayer

pintaapps.expensetracker

marble.musicequalizer

artproject.searcher

UnitTest.FreeApp

exudedplayer.freemusicplayer

blackballed.player

mp3player.decisiveapps

rusticd.musicplayer

byunhyeong.jungfree

voicelessapps.mp3musicplayer

localmp3player.freeplayer

kinokunya.free

socialvideo.downloader_vim

viastore.video.saver_for_fb

disarmbit.reache

crackerbalancellc.mp3converter

vaskollc.jpfree

freemusicplayer.musicplayfreetoolpalyer

combustionapps.musique

arnold.mp3.musica

purpleheadphones.audioplayer

unscalableapps.free

freefile.organizerfree

free.mp3.stream_cc_music

mp3uncle.musiccamera


IOCs

上文中34个应用:http://cloud.appscan.io/monitor.html?id=5a0c5dc002723815d6a3361b

144个应用:http://cloud.appscan.io/monitor.html?id=5a0c2235027238354a53cd94

Grabos家族匹配规则:http://cloud.appscan.io/monitor.html?id=5a0c729402723815d6a33621



【技术分享】谷歌商店又现新型恶意软件Graboso通过推广app牟利
【技术分享】谷歌商店又现新型恶意软件Graboso通过推广app牟利
本文由 安全客 翻译,转载请注明“转自安全客”,并附上链接。
原文链接:https://securingtomorrow.mcafee.com/mcafee-labs/android-malware-grabos-exposed-millions-to-pay-per-install-scam-on-google-play/

Viewing all articles
Browse latest Browse all 12749