android installer hijacking---安卓安装劫持

介绍:
日前国外安全公司Palo Alto公布了其去年1月发现的一个谷歌Android系统中存在的一处安全漏洞,该漏洞被称为“Android Installer HiJacking”,影响了当前45.9%的安卓系统用户,该漏洞允许攻击者在用户不知情的情况下将用户将要安装的apk修改或替换为恶意应用的apk安装包,此漏洞暂时只影响哪些使用第三方应用市场的用户,通过此漏洞。恶意应用可以获得用户系统的完整权限,可造成用户名,密码以及敏感信息的泄露,目前 Palo Alto公司已经携手Google通知其主要的客户公司(如三星,Amazon等)漏洞详情,以便尽早修复该漏洞。
漏洞描述:
为了理解这个漏洞是如何工作的,首先我们要先了解android是如何安装apps的。Android支持从谷歌play商店以及从本地文件系统中安装应用程序的能力。从谷歌play上面下载的apk被放到一个受文件系统保护的地方。第三方应用商店和移动广告库通常下载APK文件到未受保护的本地存储并直接安装apk文件。这两中方法都需要使用名为PackageInstaller的系统应用程序来完成安装。
在受影响的平台,我们发现PackageInstaller有一个“Time of check" 到”Time of Use“的漏洞。通俗的说,这仅仅意味着在安装期间用户不知情的情况下APK文件能够被修改或者替换。安装劫持影响哪些a被下载到未受保护的本地存储apk文件,仅仅是因为从Play下载的app被存放在文件系统保护的地方,不能够被其他安装过的应用程序访问。

让我们看看这是怎么发生的。
在Android中,有很多方式去触发app的安装过程,例如,当用户点击一个下载过的apk文件,或者当用户从一个第三方的应用市场下载一个app,或者当用户点击一个移动广告库推送的广告。无论哪种方式都能触发一个apk的安装过程,它们遵循相同的步骤:
首先,通过解析apk文件和检索该应用的关键信息(例如:app名字,app的图标,应用程序请求的安全权限),系统服务PackageInstaller启动安装进程。这在屏幕上呈现一个PackageInstallerActivity视图,正如下图1展示的:

图1:用户查看将要被安装的应用程序的详细信息(Time to check)
这就是“Time to check”,因为它验证用户是否真的想要安装app,并且告诉用户他们将会授予什么样的权限给应用程序,所有的android应用程序都会执行这一步,用户点击下一步将会查看权限的完整列表,随后点击“安装”按钮继续完成安装过程。
在此过程中存在一个漏洞,因为当用户查看此消息时,攻击者可以在后台修改或者替换掉要安装的包。核实在AOSP上的android的源代码,表明受影响版本的PackageInstaller没有在“Time of use”阶段验证apk文件。因此,在“Time of use”(即,点击“安装”按钮后),PackageInstall实际上可以安装不同的应用程序具有完全不同的权限。

Exploitation
这种漏洞可以通过多种方式被利用:
方法A:外部修改APK
攻击者可以利用良性的前瞻性应用程序在未来安装恶意软件。这种方法有一下几个阶段:
1、受害者安装“APPX”,该应用程序看起来合法。这个应用程序不需要任何危险的权限,它可以来自任何正常的应用程序商店。
2、后来,受害者安装了一个完全合法的应用程序商店(例如亚马逊APP Store应用程序),它允许用户从本地文件系统中安装apk文件。每当用户试图从该应用程序商店安装应用,一个PackageInstallerActivity视图将被启动。
3、用户看到app是来自于合法的第三方应用程序商店并且试图安装它。我们称这个下载的应用为“APPY”。
4、步骤1中的应用,“APPX”检测到PackageInstallerActivity视图启动,并且检查到“APPY”的APK文件是被放在一个未受保护的文件系统上。如果应用程序正在从一个公共的文件系统安装(例如,在/sdcard),当用户正在查看权限信息的屏幕,“APPX”能够覆盖掉“APPY”。
5、点击“安装”后,PackageInstaller将会安装受损害的“APPY”.任意代码现在已经被安装到设备上,拥有任何攻击者所需要的权限。
方法A的一个棘手的问题是APPX如何检测到PackageInstallerActivity视图已经启动。这里有两种方法:
1、APPX可以监控logcat来检测应用程序安装并获得apk文件位置的信息,以替换该文件。这是简单的在android<=4.1.对于android>=4.1,只有root过的设备才可以访问logcat
2、APPX可以监控目标程序存放可以安装APK文件的目录位置。例如,亚马逊的APPStore应用程序版本7.5将下载好的APK文件存储在SD卡上,没有任何的保护机制。当用户从应用商店下载apk文件后,一个新的apk文件将会显示在该目录。APPX不需要知道哪一个是下载的文件。当文件显示的时候,意味着安装图(图1)已经弹出屏幕供用户审查。因此,在这个时候APPX能够将这个apk文件替换成自己的恶意apk文件。

方法B:自行修改APK
可以利用盖楼东莞掩盖应用程序真正需要的权限。
1、受害者安装APPX,该应用程序看着是合法的。当用户使用APPX时,它推广了一个APPY(例如一个流行的游戏应用程序),以供用户安装。如果用户安装应用程序,该PackageInstallerActivity视图将会启动。
2、如上讨论,应用程序Y的基本信息将显示在PackageInstallerActivity视图中。应用程序Y没有要求任何不寻常的。事实上,应用程序Y没有要求任何的权限
3、当用户查看PackageInstallerActivity视图,APPX会将重写APPY的apk文件为恶意的。
4、当用户点击安装后,修改后的APPY将会被安装,忽略了请求的权限。
5、实际安装的应用程序或者和APPY不相关。


翻译自:http://researchcenter.paloaltonetworks.com/2015/03/android-installer-hijacking-vulnerability-could-expose-android-users-to-malware/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装 MySQL Community Edition 版本 5.7.31.0,可以按照以下步骤进行操作: 1. 下载安装程序:访问 MySQL 官方网站 https://dev.mysql.com/downloads/installer/ ,在 "MySQL Community Edition" 下载区找到 "MySQL Installer for Windows" 部分,点击 "Download" 下载安装程序(mysql-installer-community-5.7.31.0.msi)。 2. 运行安装程序:双击下载的安装程序(mysql-installer-community-5.7.31.0.msi)运行。 3. 选择安装类型:在安装程序启动后,会出现 "Choosing a Setup Type" 的界面。选择 "Custom" 自定义安装,以便手动选择要安装的组件。 4. 选择要安装的组件:在 "Select Products and Features" 界面,选择 "MySQL Server" 组件,并确保版本号为 5.7.31。你也可以选择其他你需要的组件(如 Workbench、Connector/ODBC 等)。 5. 选择安装位置:在 "Installation" 界面,选择要安装 MySQL 的位置。默认情况下,MySQL 会安装在 "C:\Program Files\MySQL\MySQL Server 5.7" 目录下。 6. 配置 MySQL 服务器:在 "Server Configuration" 界面,设置 MySQL 服务器的配置。可以选择 "Standalone MySQL Server / Classic MySQL Replication",并设置 root 用户密码。 7. 完成安装:点击 "Execute" 开始安装安装完成后,点击 "Next" 进入下一步。 8. 验证安装:在 "Product Configuration" 界面,可以选择 "MySQL Workbench" 或其他组件进行配置。完成后,点击 "Next" 进入下一步。 9. 完成安装:在 "Installation" 界面,点击 "Finish" 完成安装安装完成后,你可以通过启动菜单中的 MySQL 文件夹找到 MySQL Server 和其他组件。记得设置好 root 用户密码,以保证数据库的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值