Android Native病毒——2018年度研究报告

 

0x00 导语

“手机在手,天长地久。机不在手,魂都没有。”已成为大多数人的真实写照。随之而来的安全性也备受关注——试想当你的手机莫名其妙变慢变卡、一觉醒来欠下巨额话费,或是正在打团突然弹出广告,甚至遇上勒索病毒手机干脆没法用,是不是很气呀?

此时,很多用户意识到中毒,于是气愤地长按APP图标并将其卸载掉,正当他们以为永除后患可以高枕无忧的时候,熟悉的广告、APP图标又出现在眼前……还有些用户就比较“聪明”啦,他们选择“恢复出厂设置”,这种方法可以清除部分手机病毒,但如果他们遇到的是今天要介绍的Android Native病毒,恢复出厂设置不仅没杀死病毒还会丢失数据。

我们今天要谈的就是这类没有桌面图标的“隐形”、破坏性强、潜藏在系统底层、难以摆脱的Android Native病毒。Android Native病毒(ELF文件格式病毒),与APK病毒相比,更接近系统底层,隐蔽性和破坏性更强。此类病毒主要通过APK病毒植入系统,感染后通常独立于APK运行,普通用户无法通过常规手段清除,也有部分Native病毒通过刷机过程传播。

这类病毒2018年的“表现”如何?哪个安卓版本最容易受到Android Native病毒的攻击?“受灾”手机在地域上出现怎样有趣的分布?认识几个“重量级”病毒家族之后,我们再聊聊2019年Android Native病毒可能有哪些新的威胁。

0x01 Android Native病毒2018全景图

持续活跃的Android Native病毒

2018年全年,360核心安全技术中心累计监测到用户感染Android Native病毒1279.2万,平均每天新增感染用户3.5万。由图可见,Android Native病毒感染量整体呈上升趋势,8月份的感染量甚至突破了200万大关,随后的9-11月仍保持百万数量级水平,表明Android Native病毒处于持续活跃状态。

2018年Android Native病毒感染地域分布

从地域分布来看,感染Android Native病毒最多的省份为广东省,感染量占全国感染量的8.29%;其次为山东(7.95%)、河南(7.38%)、河北(7.21%)、江苏(6.34%),排名前十的省份感染量占了全国感染量的60%。

下图为2018年Android Native病毒感染量最多的十大城市。重庆用户感染Android Native病毒最多,占全国城市的2.66%;其次是成都(1.37%)、天津(1.22%)、保定(1.19%)、石家庄(1.13%)。此外,位居Top10的城市还有北京、广州、郑州、西安、苏州。

Android 5.1成为受灾最严重的安卓版本

2018年,受Android Native病毒影响的系统版本主要集中在Android5.1和Android4.4。

由于Android 5.1 及其以下版本平均漏洞数量较多,因此受病毒影响最严重,360核心安全技术中心的专家强烈建议用户及时更新系统版本或安装补丁。

Android Native病毒主要危害

360核心安全技术中心在2018全年监测到的Android Native病毒的分类统计如下图。可以看出,2018年Android平台新增Native病毒主要是恶意推广,占比高达33.5%;其次是恶意扣费,占比23%,二者已经占据了Android Native病毒的半壁江山。

臭名昭著的Android Native病毒家族

从病毒家族来看,寄生灵系列病毒持续活跃,“寄生灵二代”、“寄生灵一代”病毒包揽了前两名,感染数量高达333.9万、246.1万,二者在TOP10 Android Native病毒家族的占比甚至超过了50%。

特别需要注意的是,此次上榜的还有两个64位Android Native病毒家族:Runas病毒、Dm病毒。

警惕高危传播途径

据统计,2018年Android Native病毒主要来自于色情应用、二次打包应用。

色情应用多年来稳居病毒传播途径第一位,一直是传播Android Native病毒的理想载体,但大多数受害者抱着侥幸心理,亲身试验“看片一时爽,手机火葬场”的熟悉剧情。另外,将病毒隐藏在二次打包热门的应用中,也是Android Native病毒的主要传播途径之一,熟悉的图标和应用名称容易使人放松警惕。因此,360核心安全技术中心的专家提醒广大网友,要想手机不中毒,必须养成良好的上网习惯,拒绝安装“来路不明”的手机软件,到官方网站或正规应用商店下载应用。

0x02 TOP级Android Native病毒家族年鉴

“破坏性最强”的Android Native病毒

响尾蝶

系统文件破坏程度:★★★

用户数据破坏程度:★★★★

“响尾蝶”病毒自2015年起便藏匿于用户手机底层,持续活跃时间长达四年之久,其伪装为各种类型的APP,利用多个NDay漏洞获取系统最高权限,并在全球范围进行广泛传播,其踪迹遍及六大洲。

“响尾蝶”病毒特点之一为其对系统、用户数据的破坏性。病毒开发者为获得最大收益,不择手段清理掉一些系统应用和用户数据,为“响尾蝶”的恶意推广扫除障碍。

X破坏者

系统文件破坏程度:★★★★

用户数据破坏程度:★★★★

“破坏性最强”的Android Native病毒家族少不了“X破坏者”——听名字就晓得是个惹不起的家伙。“X破坏者”病毒会发送扣费短信订制包月业务,并且疯狂下载安装应用,造成用户资费消耗。

此外,“X破坏者”最大的特点就是其疯狂的破坏行为:遍历系统目录/system/bin和/system/xbin,删除各种Root工具底层模块,还禁用安全软件,导致手机应用异常崩溃;甚至在获取到Root权限后卸载各种安全软件,以至于其他Root工具很难再得到权限,彻底清除病毒变得十分麻烦。几乎所有主流手机安全软件都会受到影响。

“影响面最广”的ROOT类Android Native病毒

Root提权已逐渐成为Android Native病毒的标配,病毒如果拿不到权限,再厉害的攻击技术也只能望洋兴叹,然而很多手机都是未开放root权限的,因此很多病毒选择通过利用漏洞获取手机root权限或是借助第三方工具完成root。下面我们就来揭晓下2018年度 “影响面最广”的两种ROOT类Android Native病毒。

FakeADB

影响版本数量:★★★★

ROOT成功率:★★★★

你以为只有宫斗剧才那般扣人心弦,但病毒的世界同样五彩斑斓,这不,FakeADB的病毒作者,就给大家上演了一出狸猫换太子的好戏。该作者通过借鉴XXRoot利用脏牛漏洞进行提权的root方案,将回调包名替换为“自身恶意APK包名”,摇身一变,获得了root权限。由于受脏牛(DirtyCow)漏洞影响的Android系统版本较多,加之正常的ELF文件和含有恶意文件的ELF只有这一处区别,特征不够明显,传统安全软件很难实现对该病毒的查杀,因而受感染用户数较多。

下图便是该病毒的执行流程。

Rootnik病毒

影响版本数量:★★★★

ROOT成功率:★★★

上面那位可谓演技卓群,然而,咱网红病毒也不是吃干饭的。曾经因“我决不将病毒感染给中国用户”而一夜走红的Rootnik病毒又有新动作了,近期,360核心安全研究人员发现,有不少国内Android用户也感染了该病毒,好吧,其实我是个演员。该类病毒多依靠色情类应用进行传播,相关应用都有着诱人的图标和名字,用户一旦下载安装,病毒APK就会向系统中释放大量恶意文件,进行广告等恶意推广;同时,该类应用多以色情封面诱惑用户支付费用进行视频观看,但大多没有实际内容。等用户发现被骗为时已晚,病毒早已深入系统底层。

值得注意的是,该病毒同时使用了android-rooting-tools开源root工具,以及ROOT大师等第三方root工具的提权方案进行提权,其主要使用的4个系统漏洞如下:

         漏洞编号 漏洞描述 受影响版本 危害程度
CVE-2013-6282 libput_user_exploit Android4.3及以下

★★★

CVE-2014-3153 TowelRoot Android4.4及以下

★★★★★

CVE-2015-1805 I/O矢量阵列溢出漏洞 Android4.4及以下

★★★★

CVE-2015-3636 pingpong root Android5.1及以下

★★★★★

“抢占先机”的64位Android Native病毒

你以为这就完了?那还真是低估病毒作者了。为了躲避杀毒软件以及抢占市场先机,病毒作者们也是使出了浑身解数,64位Android Native病毒也在此时“华丽登场”了。下面就给大家介绍下2018年影响最大的两类64位Android Native病毒。

Dm家族

Dm家族为蜥蜴之尾病毒的64位变种。蜥蜴之尾包含launcher和核心作恶的ELF可执行模块两个部分。

本次受感染的为64位系统版本。木马首先感染系统进程启动时依赖的正常库文件,在库文件的导入表里添加launcher的路径,使守护进程随操作系统启动,并执行launcher的恶意代码。

Runas家族

Dm病毒已是很隐蔽了,Runas 64位病毒就更低调了,让我们来看看它都有哪些必杀技:

  1. 为/system系统目录下的隐藏文件,用户难以察觉
  2. 同时支持32位,64位Android系统
  3. 运行时修改sepolicy,绕过SEAndroid安全机制
  4. 替换系统debuggerd文件,设置守护进程
  5. 删除/system/app下的系统应用(包括安全软件),为其释放恶意文件腾空间
  6. 注入到系统Phone进程,进行其黑产行为

啧啧啧,简直是闷声发大财啊。

下图便是该病毒的执行流程。

 

0x03 Android Native病毒趋势

突破更高版本

病毒获得手机Root权限以后,基本就可以为所欲为,而最直接粗暴有效的攻击就是替换手机原生的系统文件,从而实现自启动、自我保护功能。如“长老木马”病毒会替换Android系统的守护进程debuggerd、“地狱火”病毒替换vold、“蜥蜴之尾”感染系统文件/system/lib/liblog.so。

此类攻击系统对象的前提是要对/system分区进行修改。/system分区是存放谷歌或厂商提供的Android组件的地方,该目录及其中存储的文件都属于root用户,且基于稳定性和安全性考虑,该文件系统以只读方式存在。但只要进程获得了root权限,就可以通过读写方式重新挂载 /system分区,随意对/system进行修改。

为了保护系统不被恶意修改,验证启动机制(verified boot)会尽力确保所有已执行代码均来自可信来源(通常是设备的原始设备制造商 [OEM]),以防止受到攻击或损坏。它可建立一条从受硬件保护的信任根到引导加载程序,再到启动分区和其他已验证分区(包括 system、vendor 和可选的 OEM 分区)的完整信任链。从 Android 7.0 开始,系统会严格强制执行验证启动,从而使遭到入侵的设备无法启动。Android 8.0 及更高版本包含 Android 验证启动 (AVB2.0),系统会阻止用户启动到更早版本的系统——某些攻击者可能采用回滚系统的方式来攻击,毕竟老版本的系统会包含一些已经公开的漏洞。有些厂商,例如HTC会用闪存分区写保护的方式来保证/system分区只读,即便重新挂载 /system分区,对它做的修改也不会生效。

尽管Android新版本具备了上述安全保护措施,但Android系统漏洞,以及预装了病毒APK的第三方ROM等问题依然存在,高版本Android系统仍然存在着被root的风险。

兼容64位

HTC的Nexus 9装载了第一块64位ARM处理器后,高通紧跟着发布了骁龙810处理器,谷歌也宣布Nexus 5X和6P是64位设备。64位处理器的优势包括大于4GB的内存地址空间寻址能力、更低的耗电量。截至2017年底,40%的Android设备都支持64位版本。一般来说,如果App用的是原生库,那么64位代码通常能显著提升性能,因为该架构支持更多的寄存器数量和更新的指令集。

预期未来Android设备可能只提供64位代码支持。2017底,Google要求所有Android应用程序及更新包从2019年8月开始在无32位支持的设备上也能运行,使用32位库的App需要同时兼容64位库——发布时打包在APK内。

目前360已支持64位Android Native病毒查杀,为广大64位手机用户安全上网保驾护航。

基于Android的物联网操作系统

2015年,谷歌提出了Project IoT,物联网计划,并发布了Brillo操作系统。Brillo是一个物联网底层操作系统。其基于Android,得到了Android的全部支持,比如蓝牙、Wifi等技术,任何设备制造商都可以直接使用。

2016 年 12 月,谷歌升级了Brillo——推出物联网操作系统 Android Things。Android Things 除了支持NDK开发,还支持基于Android和谷歌API进行应用开发,即能用Java开发应用。经过近一年的积累与准备,在2018年5月,谷歌正式发布Android Things 1.0,并提供3年的免费更新服务。开发者可使用相同 Android 标准的开发工具在 Android Things 上开发,并快速完成从原型到产品的整个过程。其应用几乎涵盖了物联网的所有领域,包括智能家居、车联网、智慧城市、工业4.0等。

Android Things 1.0 无疑是个美好的开始,但IoT安全一直是个重要的话题,据2018年数据显示,大量Linux IoT设备受到僵尸网络Mirai和Gafgyt及其变种攻击,因此在Android Things受到热烈欢迎的同时,其安全性也需要受到持续关注。

(完)