陈宏伟 360高级手机样本分析师恶意程序开发者,这个定义来源于360移动平台中的恶意开发者数据。从图1可以看出,2013年,恶意程序的开发者数量,个人开发者的数量(2442个)明显要比“企业级”开发者(1496个)多。2014年,个人开发者的量(1579个)有所下降,“企业级”开发者的数量(1292个)下降反而不是那么明显。2015年,个人恶意开发者的数量出现锐减,仅为1114个,反而企业开发者的人数更多一些。
我们得出一个结论,基于移动开放平台的恶意个人开发者的数量,是在减少,而“企业级”开发者,它的数量相对稳定,而且还有一个增长的趋势。那么,为什么开发者会演变成为恶意开发者?
恶意开发者有几类:第一,使用恶意广告;第二,发布山寨应用,发布低俗色情应用,强制下载第三方应用,无提示扣费。当然这也是其赚钱的方式。第三,窥探用户隐私;第四,提交虚假的身份信息。为什么虚假信息也是恶意开发者的一项?因为在360移动平台提交应用或者上传App,需要做一个开发者信息校验的,而某一些人为了躲避校验就要上传虚假信息,当然他一旦上传虚假信息就被拉黑了。但由此统计出来企业级恶意开发者的数量越来越多。
流行的恶意程序类别
那么,这些恶意开发者到底做了什么?
(1)流量僵尸木马
2015年7月,我们发现有90余款游戏被植入了一段恶意代码,这段代码会在用户不知情的情况下联网下载一个模块,这个模块的目的是为给某收费引擎和导航刷流量,于是便会下载另外一个列表,里面含有搜索关键字。其在后台模拟一个完整用户点击的情况下去做一个搜索,而且每次解锁之后都会做一次搜索,从而给用户造成极大的流量损失。该行为是受云端所控制的,如同一个僵尸一样,所以我们命名为流量僵尸。
流量僵尸木马第一个模块就是下载恶意模块,其自身不能自动实现,需要动态地从云端获取代码。我们截获了它下载代码的截图,随后拿到了模块,发现其最重要的目标是给搜索引擎带点击量,搜索内容比较丰富,还有分类,包括娱乐、时政、新闻等。其关键词非常精确,之所以这么做的原因就是在模拟一个真实的用户,从而不会被搜索引擎的机制所发现。最后一步是模拟用户做一个搜索的操作。针对流量僵尸这一批样本,我们做了一个完整分析,发现有26%的应用是这样做的。
(2)暗扣木马
2015年8月,某品牌的用户扩展更新,发现了截图的情况,手机上凭空多了一个应用,关了以后还会打开,删了以后还会出现。有些用户的手机还显示了ROOT。那么到底发生了什么呢?
这个木马经过详细的分析以后,发现大概是这样一个执行流程。首先它伪装成某一款正常的软件进入到用户的手机中,自带ROOT模块,进入用户手机就会把这个模块释放出来,在静默的情况下ROOT用户的手机,如果用户ROOT不了,它还会从云端继续ROOT用户的手机。如果ROOT不成功,它就不工作了,如果ROOT成功,它就会ROOT其他模块。手机感染该木马之后还会篡改系统文件,这就是为什么有用户手机出现中了毒删不掉的问题。它有强大的自我保护。
随后我们进行了彻底的大排查。我们在一个伪装成游戏的软件,daily racing的变种,在其运行的衍生物中发现了名为ngsteamprf.xml的配置文件。这是fastmotay的文件,也是我们之前所说的最主要的核心病毒程序。在另一个变种的方式中,也发现了。当然不仅是我们发现了,又过几个月,国外FireEye在其博客中也发布了该恶意程序,指出这个恶意程序的作者来自一家中国公司。
fastmopay、ngsteam、xinyinhe,它们同隶属于深圳一家公司。通过注册信息,我们知道这家公司是深圳的,实际公司的总部在北京,在北京、上海设有站点,它的核心研发在北京。这家公司员工人数100人左右,技术研发10人左右。这10个人都不是一般人,他们大多数来自互联网跳槽的公司,都是技术高手。这家公司最鼎盛的时候,技术人员有50人左右。其他的人员都是以销售和运营为主。那么,其业务是什么?线上广告推广、应用计费;线下渠道,应用、预装和刷机。他们做的到底是什么?暗扣和流氓广告。流氓广告可能很多人都遇到过,使用安卓系统的手机上都会弹出几个广告,一碰就下载,一碰就扣钱。暗扣与流氓广告的区别是钱从哪里来。流氓广告赚的是广告主的钱,暗扣赚的就是用户的手机话费。
暗扣的产业链如图2所示。首先出现的是电信运营商。接下来是软件公司,代理商,渠道商,以及内容提供商。电信运营商作为一个服务,它是一个服务提供者。软件公司,是用正规的应用申请计费代码。我们所说的计费代码都是短信的计费代码,发信息都是付费的,比如发教育类的信息是多少钱,需要付费,就需要向运营商申请一套计费代码。如果软件公司的信息额度用不完,剩下的信息条数就可以卖给代理商,而这个计费代码是嵌在应用程序里面,那么,代理商需要找人把计费代码抠出来,卖给渠道商。知道的人越多越不好,它就会把这个代码封装成SDK,既方便它花钱,也方便它赚钱。渠道商把SDK又卖出去,给了内容提供商,到这里钱就出来了。最终应用会获利,通过扣费。这个钱一步一步往下返。按照行业内部规则,谁有话语权谁就拿得多,大家都很高兴,都拿到了钱。
那么应用怎么才能扣费实现兑现呢?首先用户是使用者。应用是怎么来的?应用无非三种渠道:第一种从应用市场直接安装;第二种从CP购买一些低成本的应用;第三种是收购拥有稳定用户量的团队。当然,收购这样的公司不是看好其App做得多么好,它真正在乎的只是你的应用上有多少的用户量。在拿到这个应用后就会插入恶意代码和计费代码,于是这个应用就通过各种渠道下载并安装到用户手机上。当然,他们会避开正规的应用商店和网络联盟,他们有自己的地下渠道。以某公司为例,每周活跃的应用在35款,所有的激活量在50万,因为他们压根儿不考虑这个能不能被用户留存,只要一点就达到目的,用户爱卸就卸。
安装之后需要人工触发,用户很高兴,下载了一个新应用,点击了一下。开始玩游戏,玩到高兴的时候,有大红包、奖励,要不要领取一下。有一个领取全部,下面的小字用户没有看见,点击领取全部奖励,收费人民币10元。点击之后,于是来了一条消息。而且可能短信也会被拦截,就这样,神不知鬼不觉的,用户的钱就去了其他人的口袋,如图3所示。恶意程序产生的原由
为什么会出现流量僵尸这么一个产物?其实刚开始是一个公司的新业务,帮搜索引擎导流量,通过导流量赚钱。开发者只有一个人,他用三天的时间完成了核心代码,然后再有一个人负责上线,不到一周,这个应用上线了,各个渠道转发。但他们忘了一件事情,当时那家搜索引擎买的量是十万,一不小心,它一天导了五百万的流量,没过两天搜索引擎的销售过来说你这个流量是不是假的,我说十万,你导了五百万。没过几天这个应用就下线了。但这种木马却流传开来,截止到2015年,流量僵尸一共毁掉了48万部手机。
那么“幽灵疑云”是怎么回事儿?幽灵疑云并不是针对国内的,是海外的一个旗舰产品,功能很全,主要针对海外。它导致某品牌手机在两天之内爆发了十万的感染量。那个ROOT模块是该公司收购了一个ROOT团队,该品牌手机有自己的应用商店,于是,在一个错误的时间,从一个错误的地点发到了错误的应用,很不巧的是它又在一个正确的时间把这个错误的应用更新上去了。
这就是为什么此前许多用户提到手机更新后中毒,而该品牌手机厂商又发现压根没法杀,因为它有ROOT权限。有了ROOT权限,就可以将杀毒软件的ROOT权限杀掉了。
恶意开发者之间的较量
先说说个人和小规模团队。企业开发者,与之相对的就是个人和小规模的团队,它的特点就是技术门槛低,没有什么难度,功能比较单一,要么拿你的隐私,要么扣你的钱,要么删你的数据,简单粗暴。
个人和小规模团队,它的渠道比较单一,一般通过社交软件、论坛、贴吧等,发个帖,发个二维码,基本上是点到点的传播。它能影响的人也就是社交群里、论坛里的某些人,不是所有人都会去关注。
我们再看看企业开发团队,它有什么样的优势。
首先,企业有人,有钱,有关系,有渠道,要什么有什么。在技术上,当然要有技术门路,没技术那跟小作坊没什么区别。一般功能都比较复杂,代码都会用大量的混淆、反射、加密,有些甚至有自己的私有盒来对抗。当然它们的代码也不是简单的,基本上采取加载的模式。传播方式,它的渠道很多,比如做SDK(Software Development Kit,软件开发工具包),某公司做SDK往下发,让大家去下载。刚才说到刷机,用户的手机从厂家出来以后还没到用户手里,已经被刷了一点东西,甚至存在地下的一些渠道。它具有很强大的传播能力。设想一下,它能控制整个华北地区的某品牌手机的销售,所有的手机都由它经手,这种传播能力无疑是强大的。
应对之道
应对主要是这几个渠道,开发者、手机用户、手机厂商、应用市场、政府机关和运营商。
开发者首先要谨慎选择SDK,以免成为某些互联网厂商的帮凶。客户要从正规的市场下载应用。正规的广告都知道是什么规则。
安装手机软件,时刻保持手机在安全的情况。增强隐私保护无论硬件还是软件都应该加强。在移动市场,加强开发者的审查,最关键要从正规的渠道获取应用。
政府应建立健全相关的法律法规,加大打击力度,提高作恶的成本。成本很重要,因为现在大部分恶意程序都是钻空子。
运营商加强对提供商的服务,加强计费渠道的审查。
如果做到这些,我们的手机可能会更安全。
(本文整理自360高级手机样本分析师陈宏伟在ISC2016“移动安全发展论坛”上的演讲)
手机暗扣
暗扣软件指未经用户主观意愿同意就发生扣费的软件。一般具有如下特征:1.安装后或启动软件后无任何资费提示即开始扣费;2.部分客户端安装后不会立即扣费,而是延时或不定时扣费,让用户很难察觉;3.资费提示模糊不清,误导用户点击收费按钮;4.资费提示弹出时,软件左右菜单设计中无返回/ 退出按钮,误导性地强制用户点击收费按钮。