-
-
[原创]由内存清理窥视Android系统安全现状
-
发表于:
2013-5-9 20:20
9829
-
当前多种安全软件几乎都实现了这样一种功能:内存清理。这对于用户是十分有用的。甚至@腾讯手机管家 已经将这个功能置于home界面,用一个小火箭来演示清理内存,手机加速的过程,生动形象。可见内存清理对于用户来说使用率很高。
安卓安全小分队 在研究这一功能时,有自己的话要说!
一、目前安全软件的实现方式
通过一些技术手段,我们发现,大部分软件都是通过调用forceStopPackage(String pacakgeName)函数将某一进程结束掉。这是系统提供的一条API,但是,这一函数的调用有许多限制。想想如果随便一个应用都可以调用他结束其他程序的进程,那Android系统岂不是要大乱。
1. 系统要进行权限的检查,不是随便的APP都能使用的。
这就是为什么安全软件要获取root权限,因为有了root权限就可以通过这样的检查。有人可能要说这条检查是检查FORCE_STOP_PACKAGE权限,而不是root权限。实则,这条permission没有在SDK中暴露出来,即便注册了这个permission,普通APP也不会被授予这个权限。申请了root权限的APP就具有了最高的权限,在这里不会被过滤掉,畅通无阻。
2. SDK中没有暴露这个函数,不能正常调用。
对于hide的API,各大安全软件都有自己的解决办法。@腾讯手机管家 通过直接注入system_server进程,修改onTransact()方法来调用forceStopPackage。@360手机卫士则是通过反射来调用。
二、我们的想法
Android系统本身应该是属于安全型的系统,普通的软件(包括安全软件)本应该无法获取很高的权限,系统通过这种方式避免了普通软件对于系统的篡改。可是,由于种种因素,用户主动或被动的root了自己的手机,放开了Android系统对软件的监管,使Android系统变得不安全。就像打开了潘多拉盒子,在得到便利的同时,系统也更加容易受到攻击。
以@腾讯手机管家为例,他在获得root权限以后注入到system_server进程,可以说他基本可以对系统做任何他想做的事情,整个手机被绑架了。当然,@腾讯手机管家是不会做这样损害用户的事情,可是,手机被root了以后,其他的APP同样有机会像@腾讯手机管家一样获取root权限,同样可以注入系统。当手机被恶意APP绑架了,后果不堪设想。而追溯到事情的起因,还是因为手机被root了,没有被root的手机是不会被注入的。
@安卓安全小分队致力于从系统方面完善手机安全的技术研究,力求找到一种不需root的安全Android手机系统方案,让用户用的更放心。对于内存清理功能,我们可以针对某个已经被验证过的优秀软件开放一定权限来执行结束进程的操作,通过特殊的签名来分辨官方出品的正规软件。这也是一种权限最小最优化的考量,避免了为了一点点功能就给某个软件开放了最高级别的权限,让用户在享受便利的同时,保证了自己的安全。
所以我们还是重申我们的主张,手机安全还是要从系统入手,只要系统本身能够提供安全软件的功能,或者有针对性地将系统接口给安全软件使用,那么,安卓系统在安全上的“水土不服”就能够解决了。
@安卓安全小分队
http://weibo.com/androidsecurity
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)