移动手机病毒的进化历程

news/2024/11/7 9:35:52/

今年,新冠疫情成了与人类对立的最大病毒体,我们的免疫系统与无数昼夜奔波的医护人员即是与之抗衡的安全卫士

那么,计算机和我们如今最常用的智能手机如何防御病毒,我想写的这个系列就带领大家深谙这一话题。本篇文章先带大家了解一下移动手机的一段短暂的病毒编年史,写的过程中也看到了很多血淋淋的历史。

移动病毒历程

2004 年以前,电脑病毒的魔爪在 PC 端持续扩张,还并没有渗透到当时并不普及的移动设备,然而,2004 年的一个傍晚,第一个手机病毒的出现打开了这个潘多拉魔盒,从此,移动病毒与移动安全之间展开了一场血肉横飞的搏斗。

1. Cabir(2004)

2004 年 6 月算是移动计算机安全的新纪元,Cabir 的出现开创了历史上手机病毒的先例。

该病毒由当时知名的病毒开发组织 29A  成员  Vallez  开发,并在发现的几天后被卡巴斯基实验室的  Roman Kuzmenko,分析出是专门运行在  ARM  处理器上的  Symbian OS  的蠕虫病毒(病毒式传播)。“Cabir”  这个名字也是由卡巴斯基实验室的员工以同事埃琳娜・卡比罗娃(Elena Kabirova)的名字命名的。

虽然是病毒,但 Cabir 当时基本上也没有造成什么实质的危害。手机感染 Cabir 后,只是会在手机显示屏上显示 “Caribe” 字串,并扫描附近 10 米内开启蓝牙连接的智能手机,找到目标后,Cabir 会尝试向目标发送 Caribe.SIS 文件,再次感染目标。

Cabir = Caribe

Cabir 最大的危害仅仅是会一直通过蓝牙连接扫描其他智能手机,会快速耗完电池电量。Cabir 并不能像常规病毒一样使手机宕机,也不会窃取消息,或完成其他恶意功能

但 Cabir 在当时依然证明了智能手机也会受到恶意软件攻击,这就为其他变种病毒的出现奠定了基础,其中包括一款使用户无法使用蓝牙连接的变种,以及一款通过彩信传播的变种,之后的两年移动端病毒也呈现出爆发式的增长。

2004~2006 年病毒数量的增长

2. Skulls(2005)


Cabir 出现不久之后,2004 年 11 月 Skuller.a 出现了。

与 Cabir 不同,Skuller.a 算是真正意义上的的木马病毒,它利用 Symbian 系统的 bug,可以在不提示用户的情况下用自己的文件覆盖系统文件。

利用该特性,Skuller 可以将应用程序图标替换为骷髅图(Skulls),并删除可用的应用程序文件。结果,一旦手机关机并再次开机,手机就会停止工作。这种类型的 “破坏木马” 也成为了后来病毒开发者中最受欢迎的一种形式。

这种木马程序也有一个特点,就是一定需要用户手动安装,因此攻击者一般会在一些恶意网站或者社交软件中欺骗对象安装该木马。

3.FakePlayer(2010)

2010 年,卡巴斯基的员工 Denis Maslennikov 接收到用户反馈,发现了第一个针对 Android 系统的恶意样本软件,并在 8 月公开,将其命名为 Trojan-SMS.AndroidOS.FakePlayer.a,这款木马可以获取短信发送权限形成恶意扣费。

该木马病毒会伪装成一个正常的媒体播放器,通过手机短信传播,一旦点击其中的链接网站 Trojan-SMS.AndroidOS.FakePlayer.a 就会提示手机用户安装一个 13KB 的 APK 应用文件,在安装同时要求用户允许其获得短信发送权限,一旦用户的手机安装该木马之后,将会向指定号码发送付费短信,从而对用户的话费账户造成损失

与之前的木马程序类似,FakePlayer 也必须由用户手动安装,用户也会收到该应用程序会发送 SMS 消息到高级号码的权限申请,因此当卡巴斯基在还未推出 Android 平台手机安全软件之前,表示解决方法仍在用户自身,在安装不明来源的应用程序时,请务必注意其要求的权限列表,通常情况下,获取短信发送、拨打电话等付费行为的权限将存在扣费风险,而访问联系人信息、邮件信息等隐私内容的应用,将存在个人隐私泄漏的风险

对于今天来说,该应用程序开发起来非常非常简单,完全基于 Google 提供的 Hello World 示例开发,但虽然简单,与 Cabir 一样也给一些初学 Android 开发者拓展了新的视野,也为整个 Android 安全领域奠定了基础。

4.HummingBad(2016)

六年后的 2016 年,中国本土病毒程序 HummingBad 出现了,这也是近年来最具有代表性的移动端病毒之一。

HummingBad 是由微赢互动(Yingmob) 公司,可以通过自动点击侵入性广告谋取欺诈性的广告收入,当时已经感染了多达  8500  万台设备。在国内发现的五个月后,跨国安全软件与服务公司 Check Point 发布了一份报告 (https://blog.checkpoint.com/wp-content/uploads/2016/07/HummingBad-Research-report_FINAL-62916.pdf),公开了当年 HummingBad 的具体数据和部分代码。

Check Point 指出,他们留意 Yingmob 团伙已有五个月的时间,其人员组成繁杂完善,且获利惊人。其首选工具是一款叫做 HummingBad 的恶意软件,甚至与一家广告分析公司有染。

HummingBad 是 Check Point 在 2016 年 2 月份发现的一款恶意软件,它会在 Android 设备上建立一个永久性的 rootkit,借助虚假广告和安装额外的欺诈性应用来获利。

Yingmob 选择了与一家合法的国内广告分析企业合作,分享其资源和技术。该团伙具备高度组织性,拥有负责开发 HummingBad 而已组件的单独 4 组 / 25 名职员。

Yingmob 利用 HummingBad 每月获得 30 万美元的欺诈性广告收入,这一稳定现金流还包括了一个集中的组织结构,证明了网络犯罪能够轻松实现经济上的自给自足。

HummingBad 除了会自动展示广告模拟点击外,还会利用系统的多个漏洞尝试获取 Android 设备的 Root 权限,在被入侵的手机中安装各种流氓软件,在当时功能手段也极其复杂。

HummingBad 功能上本身包含了两个主要组成部分,其中一个组件负责对 Android 设备进行 Root 操作,Rootkit 会考虑利用多种不同的漏洞。Root 成功后,攻击者就能完全获取设备的访问权限。如果 Root 失败,第二套组件就会生成一个欺骗性的系统升级通知,欺骗用户让 HummingBad 获取系统级权限(Root 还是关键呀!)。无论 Root 是否成功,HummingBad 都会尽可能下载大量欺诈应用。

图源 Check Point 报告,模拟点击代码

整套 HummingBad 也包含好几个恶意组件。首要的组件名为 SSP,其作用是显示非法广告、安装欺诈应用。该组件会在系统内置注册一个广播接收器(Android 四大组件中的 BroadcastReceiver),监听以下事件:

  • USER PRESENT,解锁设备时触发

  • BOOT COMPLETED,设备启动后触发

  • SCREEN ON,设备唤起时触发

触发过后,SSP 开启名为 Se 的服务,初始化恶意逻辑,并且开启广告网络。SSP 还会开启计时器,每 10 秒钟计划一次 LockTask,如果满足相应条件(比如互联网连接、从服务器获取到设置,时间延迟等),LockTask 就会重启 Se 服务,并且启动 MainActivity 进程,激活恶意 payload。部分代码如下:

public void onReceive(Context context, Intent intent) {Editor editor = UtilsClass.getInstance().getSharedPreferences(context).edit();if (Utilstools.ACTIONIAD.equals(intent.getAction())|| Utilstools.ACTIONZDT.equals(intent.getAction()) ||"android.intent.action.USER_PRESENT".equals(intent.getAction()) ||"android.intent.action.BOOT_COMPLETED".equals(intent.getAction()) ||"android.intent.action.SCREEN_ON".equals(intent.getAction())) {if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {MobclickAgent.onEvent(context, "SSP_ReCreate");}if (!Utilstools.getInstance().isServiceRunning(context)) {context.startService(new Intent(context, Se.class));}}//...
}

MainActivity 进程开始之后,恶意程序会显示广告 banner,广告上面会有个关闭按钮。此时,程序再次拦截 KeyDownEvent 事件,阻止事件分发:

  • KEYCODE HOME(3)

  • 按键返回(4)

  • 键盘菜单(82)

public boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == 4 || keyCode == 82 || keyCode == 3) {return false;}return super.onKeyDown(keyCode, event);
}

此时,由于用户无法回到 Home 页,或者是进行返回操作,只能被迫处理广告。但如果试图手动关闭广告,也会拦截相应的 click 事件,将该事件分发到屏幕中间(即 ” 关闭广告 “ 按钮无效),实际上也是点击一次广告操作。在点击广告之后,SSP 组件就会向服务器发出请求,给 APK 返回一个链接,SSP 随后再从服务器下载该 APK 文件。

图源 Check Point 报告,“关闭” 按钮相关代码

APK 文件下载完成后,恶意应用会检查设备是否已经 Root。如果已经 Root,则默默地安装下载的 APK 文件;如果没有 Root 的话,SSP 会弹出用户对话框,仍旧企图进行安装操作。

下载的 APK 文件安装完成后,SSP 再启动该程序,并且广播 INSTALL_BEFERRER,通过从服务器获取到的信息来伪造 Google Play 的安装,并从广告网络中获取广告收益。

据报告,微赢互动预计每天光从广告点击,就能获取超过 3000 美元的收益,而诈骗应用的安装则能获取 7500 美元 / 天。换算下来一个月就是 30 万美元,一年则为 360 万美元。

而这种诱导、警告用户(如软件需要更新、手机中毒需要查杀、点击一键清理手机之类的等等)的手段也成了后来很多移动端流氓软件惯用套路。

虽然 Android 系统本身会提醒用户某些应用可能具备有害权限,攻击者利用一些虚假故事依然可以诱导用户上当。

因此很多人说,在开放开源的 Android 生态系统中,用户就是最大的漏洞

只要你是程序员,在这里都能找到你想要的东西!


http://www.ppmy.cn/news/644195.html

相关文章

谈谈最近很火的android手机病毒

““XXX(机主姓名)看这个,ht://********XXshenqi.apk”最近一种手机病毒爆发,机主收到这样的短信,开头是以发送者手机通讯录存储的名字为开头,然后再让对方点开一个网页链接。 其实熟悉android的朋友一看就明白这个病毒原理其实很…

计算机感染木马或病毒后,计算机中木马病毒的症状

大家好,我是Time Fortune.com的明智客户服务。我将为您解答以上问题。 计算机中的木马病毒的症状是: 1、文件或文件夹无故消失 如果发山词霸和QQ管理器,这三种主流的国内安全保护软件都具有自防御防御模块,病毒或木马的第一个攻击…

Android手机病毒分析及研究

最近卡巴斯基报出Backdoor.AndroidOS.Obad.a病毒( http://www.securelist.com/en/blog/8106/The_most_sophisticated_Android_Trojan),该病毒利用Android系统未知安全漏洞。 以下是360病毒分析报告: 最近有媒体爆料,最…

常见计算机病毒有哪些症状,电脑中病毒的症状有哪些

电脑中毒的主要症状有:运行卡顿缓慢、打开程序无响应、启动项中有来历不明项目、杀毒软件不能正常运行、浏览器主页被篡改并广告增多、电脑蓝屏或黑屏等等。在中毒后会因为病毒的攻击性而出现轻微或严重症状,但可以感觉到明显的现象是电脑运行时不太正常…

全面认识手机病毒

手机病毒正在慢慢地接近并渗透进我们的生活,然而,你对它又了解多少呢?你知道什么是手机病毒嘛?你知道手机病毒的危害有多大嘛?你知道如何去防范和清除手机病毒嘛?如果你对笔者的问题一问三不知的话&#xf…

手机病毒原理

1、手机病毒的实现原理 手机病毒其实也和计算机病毒一样,它可以通过电脑执行从而向手机乱发短信息。严格的讲手机病毒应该是一种电脑病毒,这种病毒只能在计算机网络上进行传播而不能通过手机进行传播,因此所谓的手机病毒其实是电脑病毒程序启…

手机病毒

手机病毒其实也和计算机病毒一样,它可以通过电脑执行从而向手机乱发短信息。严格的讲手机病毒应该是一种电脑病毒,这种病毒只能在计算机网络上进行传播而不能通过手机进行传播,因此所谓的手机病毒其实是电脑病毒程序启动了电信公司的一项服务…

手机病毒分析

手机“病毒”分析一、前言手机病毒一直被吵得沸沸扬扬,去年就有一些媒体向我约稿,要我写一些关于手机病毒方面得文章,但是我至今没见过真正的手机病毒,怕误人子弟,所以一直不敢下笔。这段时间,经常看到媒体…