在推荐今天这篇论文之前,我们忍不住想起了公众号历史上好像是唯一一次被人举报的文章【G.O.S.S.I.P 学术论文推荐 2021-09-28,别找了,被删了】,似乎只要推荐内容里面出现了类似金晨小姐姐发牌的图像,就总有分不清楚的群众会觉得这是在传播黑产?不管怎么样,我们今天还是要继续来推荐NDSS 2025上研究移动生态系统中利用广告来传播恶意软件的研究论文Careful About What App Promotion Ads Recommend! Detecting and Explaining Malware Promotion via App Promotion Graph
背景
移动应用上的广告非常普遍,然而这些广告的内容缺乏监管。这篇文章研究了如下问题:攻击者利用移动应用中的广告来传播恶意软件。
如上图所示,当
用户正常使用一个翻译软件时,触碰某些按钮(比如“读音”按钮)会跳转到淘宝弹出应用推广广告app promotion ads (以下统称广告)
广告重定向用户到应用商店下载杀毒软件
而该软件是一个套壳杀软,欺骗用户“手机上存在3000万个病毒“,诱使用户去”扫描“(然而任意操作或点击屏幕任意位置都会弹出全屏广告),而实际上通过要求各种高危权限来后台收集大量隐私数据。
这样的恶意软件传播方式很容易触及到用户,主要有两个原因:
首先,这些广告通常“隐藏”在无害的应用程序中,通过广告内容 (比如浮夸的标语)吸引用户。
其次,恶意软件推广广告通常与正常广告无法区分,导致用户在不知情的情况下从可信来源(比如 google play)下载恶意软件。
方法
为了解决这个问题,这篇文章提出了AdGPE,结合程序分析和图学习来检测由广告推广的恶意软件。AdGPE由以下两部分组成:
动态程序分析:自动化收集广告,并构建一张 用推广图app promotion graph
图学习:根据 app promotion graph ,训练模型来检测并解释通过广告传播的恶意软件,并且进一步补全app promotion graph
第一部分:构建应用推广图
在第一部分,为了大规模收集广告进行研究,本文作者首先在 AndroZoo 和 RICO 两个数据集上进行了一个empirical study
通过运行数据集中的应用查看广告,人工反编译移动广告代码,浏览广告库的文档,作者将广告分为3类:inherent ads, pop-up ads, custom-made ads
根据这三类的特征,作者提出了Ad-Oriented UI Exploration 技术:该技术能自动化地探索手机应用,并点击探索过程中遇到的广告。
该技术由以下三个design insights
首先,为了高效地实现广告覆盖,该技术采用随机探索与深度优先的穷举搜索策略相结合。这种方法可以快速覆盖广泛的应用界面,确保发现大多数广告内容。
其次,为了准确识别不同类型的广告,技术利用了一个共同的设计特点:即一个引导用户前往应用市场的(call-to-action)控件。通过定位这类控件,可以有效识别出广告并进行分类。
最后,为了捕获频繁更新的广告内容,该技术会定期重新启动应用并刷新其广告,从而在一定时间内捕获所有可用的广告内容。这三个设计见解共同确保了广告探索的全面性和准确性。
在收集了大量广告后,我们有如下观察:
通过交叉推广的广告,可以自然地将收集到的广告与对应的应用结构化成一个图形——即应用推广图(App Promotion Graph)。在这个图中,每个节点代表一个应用,而边则表示从展示广告的应用到被广告推广的应用之间的关系。
如上图所示,应用推广图直观地展示了各个应用之间通过广告连接的网络。主图及其子图(a)和(b)清晰地显示了这种通过广告推广来形成的互联关系。这种结构化的表示方法不仅有助于理解各应用之间的推广动态,还为进一步分析和研究提供了基础。
第二部分:恶意软件检测和解释
文章第二部分也通过子图 © 和 (d) 进行展示
如子图(c),作者利用推广关系 (promotion relations) 来结合传统的恶意软件检测(即学习app自身的特征,如代码特征,应用商店信息等,统称为app attributes)进行恶意软件检测。
如子图 (d),作者通过knowledge graph-based multi-hop reasoning 技术来解释 为什么一个app 要推广另一个app, 他们两个app 访问了同一个URL, Manifest中存在共同的ad library。
详细的技术图见于下
实验
在实验部分,本文作者总共收集了18,627个广告。统计数据显示,用户通过广告下载应用时,遇到恶意软件的概率为2.64%。本文提出的方法在检测广告推广的恶意软件上,取得了95.31%的F1-score。
广告是一门艺术也是一个产业,恶意开发者有各种各样的手段来推广恶意软件,本文有多个有趣的发现
信任链: 无害应用–>灰色软件–>恶意软件。恶意软件通常不会直接通过无害应用进行推广,而是通过无害应用吸引流量并推广灰色软件,再通过灰色软件推广恶意软件。
广告库: 流行的广告库如Google AdMob、Unity Ads和Applovin,被恶意开发者利用来传播各种类型的恶意软件,包括adware、rogue security software、trojan和fleeceware。
定制广告: 除了利用广告库外,我们发现一些恶意开发者专门制作定制广告 custom-made ads 来传播恶意软件。这些广告绕过了常规的审查流程,并且比利用ad library风险更大。
人海战术: 开发者通过 一键应用生成的网站,快速制作大量的充满广告的adware,内容简单但面向特定人群(游戏攻略,卡通壁纸)投放应用市场,进行牟利。
领头羊战术: 开发者通过社交软件(如Facebook)、买广告等方式来集中推广某一个app(领头羊),该app内部通过定制广告来推广开发者等其他app。
定制广告
动漫壁纸
地下经济
这些发现都放在了原文的 Case Study里,有兴趣的读者可以查阅
本文此外还进行了多个实验:
Temporal Analysis: AdGPE 可以比virustotal 提前六个月检测到恶意软件
Underground economy: 将Ad-Oriented UI Exploration 用在一些undreground apps上, 发现很多黄、赌、诈骗的app都通过一张app promotion graph联系起来,预示了潜在的利益网络
由于文章篇幅限制,很多数据作者都没有继续深入挖掘。
这篇文章技术上的一个亮点是展示了动态程序分析和图学习的天然结合。
动态程序分析获取的结构化数据可以为图学习提供丰富的上下文信。这种结合方式不仅提升了对广告推广恶意软件的检测能力5.17 F1-score,还使我们能够深入解析其推广机制 , 即基于广告库的推广和基于定制化广告的推广。
同时,图学习通过预测缺失的广告推广,进一步辅助UI探索,使得整个系统能够更全面地收集的广告
论文pdf:https://github.com/AppPromotionAdsResearch/AdGPE/blob/main/assets/NDSS2025.pdf
repo:https://github.com/AppPromotionAdsResearch/AdGPE
文章对于数据的分析部分,作者放在这里:https://github.com/AppPromotionAdsResearch/AdGPE/blob/main/Evaluation/Evaluation.ipynb
有兴趣继续挖掘该数据集或者拓展方法的,欢迎联系作者。