G.O.S.S.I.P 阅读推荐 2024-03-15 如何在App Store里面下载xx类APP

又到一年“3.15”,不知道今年在网络安全领域有哪些需要保护的消费者权益呢?且让我们来看一篇关于iOS App Store的安全研究论文No Source Code? No Problem! Demystifying and Detecting Mask Apps in iOS,发表在2024年的ICPC会议上

要知道自从苹果被迫在欧洲地区开放它的应用商店,允许侧载(side-loading)和第三方应用商店之后,除了设置很多很多的障碍提供很多“为了你好”的措施之外(例如要求第三方应用商店的银行存款至少要100万欧元,还要求APP在下载量超过100万次之后开始按照安装量收费——费率为每次0.5欧元)。网络上的讨论中,iOS用户也经常是高贵地指出“如果开放侧载,那和Android有什么区别”。

正是因为App Store和iOS生态这种洁白无暇的特性,我们很难在iOS设备上下载并安装xx类APP,导致很多需求得不到满足。怎么办?本文作者发现,在App Store里面有一类APP(下图是一个典型的实例),表面看起来人畜无害,实际用起来心潮澎湃。作者将这类APP称为Mask App,并且带大家开启了一趟奇妙的寻找Mask App之旅,还等什么,让我们赶紧发车出发。

在介绍本文的研究工作之前,我们要简单介绍下iOS生态以及针对iOS APP的自动化分析的相关背景,熟悉的读者可以直接跳过。首先,iOS系统中的所有应用都必须通过App Store下载,而且首先是需要用户使用自己的Apple ID上对需要下载安装的APP进行“购买”(即使是免费应用也有这一步,只不过是零元购)操作,然后才进入后续环节;iOS的APP下载回来是一个扩展名为.ipa的zip压缩包,和Android的APK格式的最主要区别在于这里面的所有二进制可执行文件都是加密的,只有在iOS设备上安装好之后,才会依赖特定的加密芯片配合解密(在ARM CPU的mac上有人在研究相关的软件解密方法)。所以如果没有办法越狱,普通用户是没法访问到iOS APP中的代码的。对于安全研究人员,有一个方法是参与到苹果的安全研究计划中去,申请访问权限,但是我们神州大地上的安全研究人员受到了不公正的待遇并没有办法加入进去。那么,对iOS APP进行大规模分析就格外困难(特别是相比起Android APP),于是本文作者只能另辟蹊径,从其他方面搜集信息,来寻找Mask App的存在。

首先,作者从一个很神奇的网站开始入手。这个网站打开以后是这样的(下图):

https://lin.mrlin.vip/

在这里,你可以找到很多gambling and pornography-related的iOS应用。作者就根据这个线索,首先搜集到97个APP,然后顺藤摸瓜,通过这些APP中提供的可访问的网站,继续扩大搜索范围,在10个月的时间里面一共找到了180个Mask App(很不幸,论文投稿的时候只有3个还在App Store中,不过别急,继续看)。作者把这些搜集到的数据全部在论文实验数据的repo里面共享了:

https://github.com/Junzy71/Dataset_of_Mask_Apps

上面这些APP的名字是不是很有欺骗性?不过它们堪称APP界的蜉蝣——往往是“朝生暮死”。下图展示了这些APP的存活时长:有三分之一的APP在一个月内就下架了。但是,这其实可以认为是此类APP的生存策略,它们大部分使用了基于HTML5的开发模式,或者选择纯粹的Web App技术路线,或者作为Hybrid App,反正就是开发起来很快,下架了以后马上换个面孔再来。

本文的一大特色是作者会去很多网站上“蹲守”,比如iOSRE这个曾经最纯粹的iOS逆向技术论坛。作者会在这上面关注一些涉及到Mask App开发技术的帖子,然后跟踪可能的Mask App;作者还在freelancer.com这个人力外包平台上关注有没有Mask App的开发工作,甚至跑去淘宝和猪八戒网(zbj.com)找了5个APP开发服务提供的卖家,上去打听这种Mask App的开发技术,卖家还很热心的介绍了一些基本的技巧(例如通过HTML5 link来调用隐藏的函数),突然感觉我们的作者简直是个社牛侦探啊!

前面讲了很多社会工程学相关的调查,我们还是要回到前面的问题——如何在App Store这个上百万应用的“茫茫大海”中去寻找灰黑产APP呢?由于无法直接访问到每个APP的代码,作者选择了从APP的页面(在App Store上每个APP有一个对应的页面,例如微信读书的页面 https://apps.apple.com/cn/app/微信读书/id952059546 上面有各类相关信息,包括开发者信息、用户评论等等)上爬取metadata,然后进行分析。因为访问到的信息都是关于APP的描述,作者设计了一套过滤流程,来筛选可能是灰黑产的APP。这套流程首先开展了APP的页面信息分析,重点关注了三类线索:

  1. 评论区中开发者自己留下的广告信息:往往会隐晦地介绍相关的功能;

  2. 评论区中用户对灰黑产功能的讨论信息:用户使用了该APP后也可能忍不住在这里讨论(比如“好人一生平安”或者“垃圾软件,充了会员也看不到xxx”);

  3. App Store的“推荐列表(recommendation)”:不知道苹果的审查机制能够看到什么代码信息,但是它往往会帮助Mask App归类到真实的功能类别(例如上架的时候写的是一个读书APP但其实被推荐到了“视频播放”类);

作者开发了一个名为Mask-Catcher的工具,里面包含了四个筛选器(filter)。第一个筛选器(Filter 0)挑选评论区中包含特定的xx话题讨论的APP;第二个筛选器(Filter 1)去寻找那些上架类别和评论区描述有矛盾的APP;第三个筛选器(Filter 2)借助App Store的“你可能也喜欢(You Might Also Like)”这个推荐功能去分析某个APP的类别相关性(也就是苹果认为这个APP和哪些其他APP有关,如果都是和游戏类APP有关,就认为这个APP不管描述怎么写,它就是个游戏),挑选出上架类别和实际类别不一致的APP。这三类筛选器共同集成在下图中的suspicious app discovery模块中。如果该模块通过分析APP的页面信息认定了某个APP可能是Mask App,Mask-Catcher才会去借助一台越狱的iPhone下载并解密该APP对应的IPA文件,然后拿来和已知的Mask App的代码进行相似性比对(Filter 3,借助IDA的Bindiff),最后判定这个被分析的对象究竟是不是Mask App

作者分析了70678个APP的信息页面,首先筛出来3545个可疑对象(使用Filter 0和Filter 2),然后经过一系列的过滤,最后找到了31个新的Mask App(在此前手工搜集的180个APP之外),作者发现这些新的Mask App都是2023年8月1号以后上架的。

介绍完今天这篇论文,最后插一个题外话,我们在2021年9月28日也介绍过一篇调研灰黑产相关APP的论文,非常神奇的是这篇论文推荐(下图是当时的文章草稿)在发表了很久之后,不知道被谁以什么理由给举报了,然后就被微信系统给删除了。。。看来不光是不能参与xxx,就算是讨论如何对抗xxx也会被禁止啊,所以今天的内容抓紧看也抓紧保存啦!!

如果大家还想要了解2021-09-28这篇论文推荐公号文章的内容,可以联系我们,我们会送上本地的存档链接(这算不算又是一个传播罪)。


论文:https://www.ittc.ku.edu/~bluo/pubs/zhao24icpc.pdf
数据集:https://github.com/Junzy71/Dataset_of_Mask_Apps


免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。查看原文

为您推荐