ESET研究人员在Google Play上发现了活跃一年的广告软件运营商。所涉及的应用程序已安装了800万次,背后的运营商使用了一些技巧来隐藏。
研究人员已经确定42个Google Play上的应用程序涉及了广告软件活动,并且这些应用自2018年7月以来,至今还在运行。其中21个在发现时依然可用。研究人员已将这些应用报告给Google安全团队,并迅速将其删除。但是,这些应用程序仍可在第三方应用程序商店中使用。ESET将这些广告软件统称为Android / AdDisplay.Ashas。
Ashas除了充当广告软件外,其他原本该有的功能也都具备。在研究人员分析的所有应用程序中,广告软件功能均相同。以下仅描述一个应用程序的功能,但适用于Android / AdDisplay.Ashas系列的所有应用程序。
启动后,这类应用程序开始与其C&C服务器连接(其IP地址在应用程序中为base64编码)。它发送用户设备的“主页”关键数据,比如设备类型、操作系统版本、语言、已安装的应用程序数量、可用存储空间、电池状态,以及设备是否具备root权限和启用开发者模式、是否安装了Facebook和FB Messenger。
该应用程序从C&C服务器接收配置数据,来帮助显示广告、隐身和下次显示。
至于如何隐藏和反复显示,攻击者使用了许多技巧。
恶意应用会确定能否通过Google Play安全机制测试。为此,应用程序从C&C服务器接收isGoogleIp标志,该标志显示用户设备的IP地址是否在Google服务器的已知IP地址范围内。如果从服务器返回的提示是在已知IP地址范围内,那么该应用将不会触发广告软件有效负载。
该应用可以设置广告展示之间的自定义延迟。比如将其配置数据设置为在设备解锁后延迟24分钟显示第一则广告。延迟意味着普遍的测试过程(不到10分钟)将不会检测到任何异常行为。另外,延迟时间越长,用户将讨厌的广告与特定应用相关联的风险就越低。
该应用程序基于服务器的响应,还可以隐藏其图标并创建快捷方式。如果用户试图卸载恶意应用程序,那么也只有快捷方式最终会被删除。然后,该应用程序会在用户不知情的情况下继续在后台运行。在Google Play传播的与广告软件相关的恶意程序中,这种隐身技术已变得越来越流行。
一旦恶意应用收到其配置数据,感染设备就会根据攻击者的选择来显示广告。每个广告都会全屏显示。如果用户想要通过单击“最近使用的应用程序”按钮来检查哪个应用程序负责显示广告,这时候另一个隐身技巧又出现了:该应用程序会显示一个Facebook或Google图标。该广告软件模仿了这两个应用,看起来合法并躲避怀疑,从而尽可能长时间地在感染设备上停留。
这类Ashas广告软件的代码隐藏在com.google.xxx软件包名称下。这就构成了合法Google服务的一部分,这个技巧有助于避免受到审查。因为某些检测机制和沙箱可能会将此类软件包名称列入白名单。
ESET研究人员使用开源信息,跟踪了广告软件的开发人员,还确定广告活动的运营商和C&C服务器的所有者。
首先,根据已注册的C&C域的相关信息,研究人员确定了注册人的姓名、国家和电子邮件地址等数据。提供给域名注册商的信息可能是虚假的,因此继续进行搜索。电子邮件地址和国家/地区信息指向了在越南大学上课的学生名单,这证实了域名注册人确实存在。
由于域名注册人所在大学没有很强的隐私保护系统,可以进一步了解到注册人的出生日期(也可能是注册人以出生年月作为其Gmail地址的一部分,有待进一步确认)。由此可以知道他是一名学生,并且他上过什么大学,还可以确认他提供给域名注册商的电话号码是真实的。此外,研究人员检索了他的大学ID,快速搜索可以显示他的一些考试成绩。但是,他的研究结果超出了研究人员的研究范围。
根据注册人的电子邮件地址,能够找到他的GitHub存储库。他的存储库证明他确实是一名Android开发人员,但在撰写此博文时,它不包含Ashas广告软件的公开可用代码。
但是,通过简单的Google搜索广告软件包名称弹出了一个“ TestDelete”项目,某段时间该项目在他的存储库是可用的
恶意程序开发者还在Apple的App Store中拥有应用程序。其中一些是从Google Play删除的iOS版本,但没有一个包含广告软件功能。
在进一步搜索恶意程序开发人员的活动时,研究人员还发现了他的YouTube频道,传播Ashas广告软件和他的其他项目。至于Ashas这类软件,相关的宣传视频之一“ Head Head World World Champion 2018 – Android,iOS”被观看了近300万次,另外两个获得了数十万次观看。
他的YouTube频道为研究人员提供了另一条有价值的信息——他本人在他的其他项目之一的视频教程中。通过该项目,研究人员提取了他的Facebook个人资料,列出了他在上述大学的学习情况。
通过链接到他的Facebook个人资料,研究人员发现了一个Facebook页面Minigameshouse和一个相关域minigameshouse [.]net。该域和广告软件C&C服务器开发人员的minigameshouse [.]us域十分相似。
进一步检查此Minigameshouse页面,表明此人确实是minigameshouse [.] us域的所有者:在此域中注册的电话号码与Facebook页面上显示的电话号码相同。
有趣的是,他在Minigameshouse的 Facebook页面上,推广了Ashas软件以外的一系列游戏,可在Google Play和App Store中下载。尽管其中一些不包含任何广告软件功能,但所有这些都已从Google Play中删除。
最重要的是,他的YouTube视频之一(有关为Facebook开发“小游戏”的教程)是完全被忽略的运营安全隐患。能够看到他最近访问的网站是包含Ashas广告软件的Google Play页面。他还使用他的电子邮件帐户登录了视频中的各种服务,毫无疑问,他确实是广告软件域的所有者。
借助该视频,我们甚至能够确定另外三个包含广告软件功能且可在Google Play上使用的应用。
ESET检测到Android设备上的Android / AdDisplay.Ashas(按国家/地区)
包含广告软件的应用程序通常会对用户隐藏,因此这些应用程序及其开发人员不可信任。当包含广告软件的应用程序安装在设备上时,可能会:
因为侵入性广告(包括骗局广告)惹恼用户
浪费设备的电池资源
产生更多的网络流量
收集用户的个人信息
自我隐藏以实现持久性
无需任何用户交互即可为其运营商创造收入
研究人员仅基于开源情报,就可以跟踪Ashas广告软件的开发人员并确定其身份,并发现其他受广告软件感染的相关应用程序。开发人员没有采取任何措施来保护自己的身份,乍看起来他没有什么其他的意图。确实,他发布的应用程序并非所有都包含讨厌的广告。
显而易见,开发人员通过在应用代码中实现广告软件功能来增加收入。广告软件中实现的各种隐身和恢复技术意味着他意识到了所添加功能的恶意性质,并试图将其隐藏。
在“恶意”开发人员中,常见的做法是将恶意功能混入流行的正常应用程序中,研究人员致力于跟踪此类应用程序,并将其报告给Google,采取措施制止这类恶意软件。研究人员发布了调查结果,帮助Android用户保护自己的设备。
Package name | Hash | Installs |
com.ngocph.masterfree | c1c958afa12a4fceb595539c6d208e6b103415d7 | 5,000,000+ |
com.mghstudio.ringtonemaker | 7a8640d4a766c3e4c4707f038c12f30ad7e21876 | 500,000+ |
com.hunghh.instadownloader | 8421f9f25dd30766f864490c26766d381b89dbee | 500,000+ |
com.chungit.tank1990 | 237f9bfe204e857abb51db15d6092d350ad3eb01 | 500,000+ |
com.video.downloadmasterfree | 43fea80444befe79b55e1f05d980261318472dff | 100,000+ |
com.massapp.instadownloader | 1382c2990bdce7d0aa081336214b78a06fceef62 | 100,000+ |
com.chungit.tankbattle | 1630b926c1732ca0bb2f1150ad491e19030bcbf2 | 100,000+ |
com.chungit.basketball | 188ca2d47e1fe777c6e9223e6f0f487cb5e98f2d | 100,000+ |
com.applecat.worldchampion2018 | 502a1d6ab73d0aaa4d7821d6568833028b6595ec | 100,000+ |
org.minigamehouse.photoalbum | a8e02fbd37d0787ee28d444272d72b894041003a | 100,000+ |
com.mngh.tuanvn.fbvideodownloader | 035624f9ac5f76cc38707f796457a34ec2a97946 | 100,000+ |
com.v2social.socialdownloader | 2b84fb67519487d676844e5744d8d3d1c935c4b7 | 100,000+ |
com.hikeforig.hashtag | 8ed42a6bcb14396563bb2475528d708c368da316 | 100,000+ |
com.chungit.heroesjump | c72e92e675afceca23bbe77008d921195114700c | 100,000+ |
com.mp4.video.downloader | 61E2C86199B2D94ABF2F7508300E3DB44AE1C6F1 | 100,000+ |
com.videotomp4.downloader | 1f54e35729a5409628511b9bf6503863e9353ec9 | 50,000+ |
boxs.puzzles.Puzzlebox | b084a07fdfd1db25354ad3afea6fa7af497fb7dc | 50,000+ |
com.intatwitfb.download.videodownloader | 8d5ef663c32c1dbcdd5cd7af14674a02fed30467 | 50,000+ |
com.doscreenrecorder.screenrecorder | e7da1b95e5ddfd2ac71587ad3f95b2bb5c0f365d | 50,000+ |
com.toptools.allvideodownloader | 32E476EA431C6F0995C75ACC5980BDBEF07C8F7F | 50,000+ |
com.top1.videodownloader | a24529933f57aa46ee5a9fd3c3f7234a1642fe17 | 10,000+ |
com.santastudio.headsoccer2 | 86d48c25d24842bac634c2bd75dbf721bcf4e2ea | 10,000+ |
com.ringtonemakerpro.ringtonemakerapp2019 | 5ce9f25dc32ac8b00b9abc3754202e96ef7d66d9 | 10,000+ |
com.hugofq.solucionariodebaldor | 3bb546880d93e9743ac99ad4295ccaf982920260 | 10,000+ |
com.anit.bouncingball | 6e93a24fb64d2f6db2095bb17afa12c34b2c8452 | 10,000+ |
com.dktools.liteforfb | 7bc079b1d01686d974888aa5398d6de54fd9d116 | 10,000+ |
net.radiogroup.tvnradio | ba29f0b4ad14b3d77956ae70d812eae6ac761bee | 10,000+ |
com.anit.bouncingball | 6E93A24FB64D2F6DB2095BB17AFA12C34B2C8452 | 10,000+ |
com.floating.tube.bymuicv | 6A57D380CDDCD4726ED2CF0E98156BA404112A53 | 10,000+ |
org.cocos2dx.SpiderSolitaireGames | adbb603195c1cc33f8317ba9f05ae9b74759e75b | 5,000+ |
games.puzzle.crosssum | 31088dc35a864158205e89403e1fb46ef6c2c3cd | 5,000+ |
dots.yellow.craft | 413ce03236d3604c6c15fc8d1ec3c9887633396c | 5,000+ |
com.tvngroup.ankina.reminderWater | 5205a5d78b58a178c389cd1a7b6651fe5eb7eb09 | 5,000+ |
com.hdevs.ringtonemaker2019 | ba5a4220d30579195a83ddc4c0897eec9df59cb7 | 5,000+ |
com.carlosapps.solucionariodebaldor | 741a95c34d3ad817582d27783551b5c85c4c605b | 5,000+ |
com.mngh1.flatmusic | 32353fae3082eaeedd6c56bb90836c89893dc42c | 5,000+ |
com.tvn.app.smartnote | ddf1f864325b76bc7c0a7cfa452562fe0fd41351 | 1,000+ |
com.thrtop.alldownloader | f46ef932a5f8e946a274961d5bdd789194bd2a7d | 1,000+ |
com.anthu91.soccercard | 0913a34436d1a7fcd9b6599fba64102352ef2a4a | 1,000+ |
com.hugofq.wismichudosmildiecisiete | 4715bd777d0e76ca954685eb32dc4d16e609824f | 1,000+ |
com.gamebasketball.basketballperfectshot | e97133aaf7d4bf90f93fefb405cb71a287790839 | 1,000+ |
com.nteam.solitairefree | 3095f0f99300c04f5ba877f87ab86636129769b1 | 100+ |
com.instafollowers.hiketop | 3a14407c3a8ef54f9cba8f61a271ab94013340f8 | 1+ |
http://35.198.197[.]119:8080
Tactic | ID | Name | Description |
Initial Access | T1475 | Deliver Malicious App via Authorized App Store | The malware impersonates legitimate services on Google Play |
Persistence | T1402 | App Auto-Start at Device Boot | An Android application can listen for the BOOT_COMPLETED broadcast, ensuring that the app’s functionality will be activated every time the device starts |
Impact | T1472 | Generate Fraudulent Advertising Revenue | Generates revenue by automatically displaying ads |
*参考来源:welivesecurity,Sandra1432编译,转载请注明来自FreeBuf.COM