摘要
这篇文章主要进行了一项关于恶意APP盈利方式的研究。这批恶意应用看似是一些约会类型应用,但实际上这些约会应用唯一的目的是就让消费者购买VIP服务来和其他用户交流,而这些“其他用户”很有可能是一些仿冒女性的虚假用户。这些恶意的约会类软件可以被称作虚假交友软件。这篇论文系统地研究了这些虚假交友软件,其中我们通过软件内的现有账户信息对软件的行为特征进行了分析。通过分析我们发现这些恶意聊天软件内的账户大多数并不是真人,而是通过预设信息设定好的聊天机器人。同时我们也分析研究了这种软件的商业运作模型,发现有诸多参与方均与整套产业链有瓜葛,包括:恶意软件开发者、发布应用程序以获取利润的出版商以及负责向终端用户分发应用程序的分销网络。这篇文章首次系统地研究了欺诈性约会软件,研究结果表明目前急需一种保护普通消费者的解决方案。
1 介绍
近些年来,移动端恶意软件正在迅速成为全球性的严重威胁,巨大的非法收益刺激恶意攻击者们开发了许多恶意软件。过往研究表明,恶意攻击者可以通过在纯净应用程序中插入广告或通过向premiumrate号码发送短信来获取利润。但随着最新Android版本中新防御系统的部署,以上这些方法的效益逐渐降低。同时,我们发现了恶意攻击者新的盈利方式:消费者被诱导安装一种特殊类型的约会应用,消费者只有支付一些费用才能与软件中的用户聊天,而那些软件中的“其他用户”通常都是聊天机器人,这种特殊类型的约会应用实际上就是约会欺诈应用。
这些虚假约会应用通常会通过广告进行分发,这些广告会展示诱人的图片或者虚假的说明来诱惑用户安装。一旦用户安装上了这些软件,软件就会需要用户进行注册。通过对应用进行分析,我们发现这些应用的注册方式都十分简便,不用提供个人信息(诸如邮箱或手机号)就能简单注册这些应用,这与以往的窃取用户隐私的传统作恶方式大有不同。
在用户注册登录后,许多(女性)用户会在几分钟内发起包括图片或者诱人话语的会话请求。比如,在我们研究中的一个APP里,在登录软件五分钟内(如下图),就收到了7个会话请求,这些发来会话请求的人头像都是漂亮的小姐姐,这些小姐姐头像的用户里有两个在同一时间(8:29)里发出了同样的信息“你老家哪的?”
鉴于这种异常的用户行为,我们怀疑这个应用程序里的账户不是真人,而是聊天机器人。为了证实这个猜测,我们向一个用户(昵称:美丽的镜子)发送了与原会话无关的其他内容,有意思的是只有这一条信息可以免费发,后面的不能再免费了(如下图)。
如果想继续交流,就得购买包月写信服务,这个包月服务大概五十多块钱(如图3)。我们购买了包月服务以后,原来交流过的用户就不再吭声了,我们也没有收到更多其他用户发起的会话了。
有约会欺诈现象的软件绝非个例,这种软件的运作有着一整套地下产业链。如果一个约会软件有以下几个特征,那它就可以被认作为约会欺诈软件:
一、异常的用户行为:新用户注册后,几分钟内就可以收到数条会话信息;
二、异常的信息内容:收到的信息大多数上下文无关且不知所云;
三、增值费用:新用户只能免费发一条或几条信息,之后就需购买其他增值服务才能继续聊天。而且一旦购买增值服务后,受害者就不会再收到其他会话信息了。
在这篇文章中,我们系统的研究了这种应用程序:包括用户画像和行为模式、业务模型和产业链相关方,以及这些应用程序对受害者的影响和分布情况。我们的研究围绕着这几个问题:虚假约会软件中的其他用户是真人还是聊天机器人?虚假约会软件的产业链是怎么样的?有哪些人员参与了产业链?虚假约会软件是怎么分发的?为了进行这项研究,我们从9个安卓应用市场和Google play中下载了250万个应用程序,并且检测到了967个不同的约会诈骗程序,并且根据代码相似性,我们将其分为了22个家族,通过分析,我们发现了如下现象:
一、这些虚假约会软件中的“其他用户”大多数都是机器人,他们的用户资料和头像都是假的。例如,同一应用程序中的多个不同帐户使用同一个用户配置文件,甚至不同的应用程序中也使用了同样的用户资料。
二、产业链涉及多方,包括应用程序生产商、应用程序发行商和分销网络。例如,不同软件包名的虚假约会软件都用了同一个开发者签名,并由具有相同法定代表人的不同公司发布。
三、这些应用程序通常通过应用程序市场和广告分发。同时还使用了欺诈性排名技术,例如使用虚假的用户评论和评级来操纵应用程序的排名(即推广应用程序的一种手段)。
四、我们根据几份报告对我们检测到的虚假约会类软件的总体收入进行了估计。根据估计,市场总规模约为2亿至20亿美元。
研究相关应用程序和实验结果见:https://github.com/fakedatingapp/fakedatingapp
2 约会欺诈应用定性
2.1 约会欺诈应用识别
下表为原始数据集情况,其中包含超过250万个应用程序,这些应用程序来自包括官方的googleplay商店在内的十个应用市场。这些应用程序是在2017年四月到八月之间下载的,同时我们还爬取了这些应用的包括应用程序名称、发行商公司名称、应用程序版本、评分、下载次数等。
我们提出了一种半自动的方法来识别约会欺诈应用,如下图所示。我们首先将数据库中进行关键字匹配(例如应用描述和程序名)来筛选出候选应用数据集。然后,我们对选定的候选应用程序进行静态代码分析来检查它们是否嵌入了应用程序购买服务。
然后根据资源相似度和代码相似度对它们进行聚类。对于每个被聚类的集群中的应用程序,我们还可以人工检测它们是否具有可疑的特征,例如异常的用户行为。此外,我们还分析了用户的评论内容,进一步证实了在现实世界中存在这些应用的受害者。
由于这些约会欺诈应用通常会使用诱人的文本来吸引受害者,所以我们首先手动总结了这些应用的描述或应用名称中经常出现的11个常用词(秘密约会、本地单身、find girl、寻爱、约会邀请、相亲、孤独、打招呼、速配、就近约会、聊天)。然后使用一个快速的关键字匹配方法来识别出了潜在的约会应用程序。最终,我们在能够在250万个应用程序识别出至少包含两个关键词的应用程序有61133个。
约会欺诈应用最重要的特征之一是它们诱导用户购买其增值服务。对于候选数据集,我们会进行静态代码分析以检测它们是否包含嵌入式应用内购买服务,如果包含,则会将它们标识为进一步的候选集合。
一般来说,应用实现应用内购买功能有两种方式。最流行的方法是嵌入应用内购买SDK,另一种是自己实现支付功能(例如向premium number发送短信)。在本文中,我们将分别讨论。
识别应用SDK需要注意代码混淆和SDK版本问题。由于从Google Play收取应用和下载费用的开发人员必须使用Google Plays支付系统(Google Play计费API),因此我们可以通过检查相应的权限“com.android.vending.Billing”和相关API(如billingClient.launchBillingFlow)识别,而在一些没有googleplay服务的国家或地区(如中国),应用开发者倾向于使用第三方的应用内购买服务。例如,阿里支付和微信支付是中国最流行的两种第三方支付服务。在本文中,我们利用LibRadar这个工具来识别应用程序中使用的第三方库。我们评估了18种在中国和世界范围内广泛使用的第三方支付SDK,如下表所示。此处我们不依赖简单的文本匹配,而是通过代码比较来识别第三方支付SDK。LibRadar使用基于集群的方法标记了这些第三方SDK的代码特性,我们使用LibRadar来识别这些SDK,由于其具有模糊性,因此也可以用来识别不同的SDK版本。
由于有些应用可以自己实现支付功能(如向premium number发送短信),因此我们在反编译后的APK布局配置文件(如strings.xml)中确定了5个相关关键字(purchase & VIP, privi-lege, subscription service, unlimited chat, recharge account.)作为补充。在61133个数据备选中共筛选出23546个应用包含支付功能。
对于嵌入支付功能的约会应用程序,我们根据来源相似性和代码相似度对其进行聚类。考虑到一个应用程序(包名)对应多个APK,所以爬取了四个月中的不同版本并根据包名删除掉了重复的APK。
我们首先利用FSqua-DRA2来测量每个应用程序对的资源相似性,然后使用应用程序克隆检测工具WuKong来测量代码相似性。对于资源相似度得分高于90%和代码相似度得分高于85%的应用程序,我们将它们分组到同一个集群中。集群中数量从1到496不等。最后,我们选取数量大于等于2的集群作为进一步的实验集。此批共选出5547个应用程序(存在1824个唯一包名),这批应用程序共分为了226个集群。
对于每个集群中的应用程序,我们抽取了三个应用程序(总共596个应用程序)进行查验。我们将其安装在智能手机上,并且注册了真实账户,检查其是否具有异常或不正常的用户行为,尽管我们的注册信息是空的或完全没有吸引力的,依旧会有很多“其他”用户向我们发起会话。通过人工检查,我们最终将226个集群中的22个标记为约会欺诈应用。
此次共统计出3697个欺诈约会应用程序,这批apk有967个包名。这批应用程序占约会应用程序总集的6%,这比我们预期的要高得多。对于每个家族,我们将下载次数最多的包名中的关键字作为家族名。例如, Youyuan家族包含了最多的包名和APK包,大约三分之一的APK和超过一半的包都属于这个家族。不同市场的欺诈约会应用分布如下表所示。其中百度市场拥有最多的欺诈性约会应用,有超过三分之二的欺诈交友应用程序来自这个市场。官方的googleplay市场包含的FD应用数量最少,只有7个应用被标记。
2.2 用户配置文件分析
从虚假约会应用程序本身很难获取到账号配置文件,因此我们通过网络流量跟踪的方式来获取用户配置文件,我们在每个家族中随机选三个应用程序并在真机上运行,然后通过Tcpdump来记录这些网络流量,下表列出了每个家族中配置文件请求的服务器地址,文件下载地址和头像下载地址。有意思的是,每个家族分析出来的三个程序共用同一个服务器地址,虽然它们有不同的包名或者开发人员签名,仍表明他们属于同一个家族,由同一群人掌控。
通过进一步研究表明,网络请求信息通常包含地里位置数据等信息、信息平台、请求的用户信息的数量等等,信息包含一个用户列表里,其中每个用户都由一个唯一标识符表示,同在列表里的还有头像文件的URL和一些其他的个人信息(昵称年龄等等)
通过进一步研究网络请求和响应消息,我们观察到一些应用程序,(例如youyuan家族里的com.hzsj.qmr1和come.wanjiang.tcyasq), 在请求信息中嵌入指纹或包名来区分应用程序,并且另外一些应用程序 (例如同城速配家族中的com.yuanfenapp.tcyyjiaoyou和ltd.onedream.snsapp.moaiyueai)则完全共享了请求及回应信息。
我们通过构造不同的请求信息以获取响应页面,并通过URL回传情况来识获取到我们想要的信息。但是这些软件也对应存在一些反爬对抗,如“Youyuan”, “99Paoyuan”和 “Jucomic”。
由于被测试的应用程序只显示与我们在同一个城市的用户,所以的爬虫程序配备了GPS模拟器,将我们的位置设置为中国的50个主要城市和美国的10个主要城市。并且利用了一个自动化的UI测试工具DroidBot来生成UI下拉事件并发送到被测程序,用以模拟真实的用户行为。以下是22个软件的服务器地址情况:
我们认为虚假约会程序中的假帐户大多会使用偷来的或者网上的照片。为了识别这些假帐户,我们把同一个应用中拥有相同头像照片但其他信息不同(如昵称、家乡、年龄等)的帐户视为假帐户。同时我们也设法排除了默认的账户。
为了应对头像图像的剪辑和分辨率调整等简单图像处理情况,我们首先使用python图像处理库PIL对图像进行限制和缩放,然后再使用DupDetector来识别头像中的重复图像阈值为95%。如在youairen家族的中的com.jqyuehui.main的包名下,我们抓取了419352个帐户配置文件。
如下图所示,我们可以观察到伪造帐户可能存在于同一个应用程序或家族中,但有的也跨了不同的家族。通过较为保守策略的检测,每个APP中假帐户配置文件的百分比并不高,只有三个应用程序超过10%,大多数的应用程序只有不到1%的假账户资料。
2.3 交互方式分析
若想从交互方式角度识别虚假账户,则可认为如果账户是真人,谈话信息应该与主题相关。在每个家族中我们都随机选择一个应用程序并安装在真机设备上,并且注册两个账户(一个是男性用户,一个是女性用户),随机登录并开始对话。此外,我们还购买了付费服务并比较了购买服务前后的结果。如下表所示:
(1)这些软件的注册过程相当简单,大多数应用程序不需要任何个人信息 ,22个应用中只有四个应用程序需要电话号码或者电子邮件账号
(2)一些应用程序的对话充满了模板套路, 22个应用中有3个应用程序使用基于模板的对话,这些模板可以在应用程序的资源文件中找到
(3)男性注册用户和女性注册用户在使用方面存在巨大差别。对于男性用户来说,他们一上线就会有多女性账户在短时间内联系到他们。而对于注册信息为女性的用户来说来说,几乎没有收到任何信息。这表明这些应用主要针对男性用户。
(4)超过70%的应用程序需要购买高级服务,否则用户无法回复信息。对于剩下的6个应用程序,用户最多只能发三条信息。
(5)对话过程中的交谈信息多与话题完全无关。在购买增值服务之前,我们只能在6个应用程序中发送消息,而这些应用程序中只有4个帐户回复了我们,而且回复信息完全驴头不对马嘴。
(6)购买了增值服务后,应用程序就不再回应任何信息。我们花了176美元为这22个应用程序购买了增值服务。一旦我们购买服务,所有的应用程序都停止回复我们的消息。这些应用程序的唯一任务就是吸引用户购买所谓的增值服务,而实际上这种服务没有任何用处。
2.4 总结
通过分析我们认为,这些应用中除了受害人以外其他人都不是真人。首先,同一家族中不同应用程序中的帐户配置文件大多是相同的,这些帐户配置文件可以自动生成。其次,应用程序会话中的消息与主题无关,并且在购买增值服务后就再不会收到任何消息。所以这些模式可以说明这些“其他用户”是由计算机程序生成的,而不是真实的人。
3 商业模式分析
如果两个不同应用的签名相同,我们就假设这两个应用是由同一个开发者开发的。随即我们从应用市场收集已发布APP对应的公司名称。并且我们还根据相应政府机构的公开记录,收集到了公司法定代表人的姓名,这些应用程序发布者可以从受害者处获益。下表展示了相关方的一些数据,第一列为家族名,第二列为家族中的包名数量,第三列家族中开发者签名数量,而最后两列显示不同公司名称和公司法律代表的数量。由于同一人可以担任多家公司的法定代表人,因此法定代表人的数量小于或等于公司的数量。
一、开发人员签名的数量通常比包名的数量要多。这表明,不同应用程序的开发者可能是同一个人。我们还发现,即使某些应用程序的开发人员签名不同,这些应用程序的META-INF目录中的RSA文件的名称也是相同的。
二、同一家族的应用程序由多家公司发布。这可以解释为生产商可能会将他们的应用程序出售给不同的公司进行发布。例如在如下代码片段中开发人员硬编码了包名称和用于接收受害者付款的付款帐户之间的关系,这样应用程序生产商就可以向不同的公司销售同一个应用程序的不同包名。
三、由于一个法定代表人可以拥有多个公司,所以这些应用程序就可以通过不同的公司多次发布。如果一家公司的应用程序因为用户投诉而而从应用市场下架,那么其他公司下的应用程序仍然可以存续。
下图简述了运作的商业模式情况。具体来说,应用程序生产者开发应用程序并将其出售给出版商。出版商通常注册多家公司,并使用这些公司来分发他们的应用程序,例如通过应用商店等。为了推广这些应用,他们也会使用排名欺诈使用技术来提高这些应用的推荐排名。此外,发布者还可以向广告网络付费,以分发他们的应用程序。当受害者被骗安装这些应用程序并购买增值服务时,出版商将获得收益。在某些情况下,制作者和出版商可能来自同一家公司,但在产业链中扮演两个角色。
4 结论
本文对欺骗性约会应用进行了系统的研究,包括其特点、商业模式、分销网络进行了分析。由于当前的反病毒引擎大多无法检测到相关应用程序,我们认为应该提出一个解决方案来检测和阻止这些应用的分发以保护用户权益不受损害。