Android手机获得ROOT权限后的安全隐患
网上超多的教程(甚至还有所谓的“一键ROOT”的方法),这些教程会让你惊奇的发现,获得ROOT好简单哦。理想状态下,每个用户做这个步骤之前都应该知道为什么要取得ROOT,更重要的是,如何在此之前保存他们手机中的信息。
但是,这不是一个理想的世界。我每天都看到新手一拿到手机就立刻刷ROOT,然后再问:取了ROOT有什么用?我们不能完全责怪用户,因为很多教程都没有强调刷ROOT可能导致的严重后果,会危及到你手上设备的安全性。
更矛盾的地方是,这些教程都假设读者已经有了一定技术水准,但往往这些教程却又归类到新手教程!我的观点是,很多用户根本不需要ROOT权限!
在开始讨论之前,先问你自己以下2个问题:
1.你有几次细读过菜市场里下载的软件或者游戏的使用协议?
2.你有几次看了软件使用协议中的权限要求(fullinternet,gpslocation,readcontacts等等)后会问“嗯,为什么这个游戏需要这些权限呢?”
你是不是还是照安装不误呢?事实就是,绝大多数的用户根本不会在意ANDROID程序所要求的这些权限,他们会照安装不误。
虽然菜市场已经通知了用户软件所需的权限,但这远远不够。因为用户还是不知道这些权限和安全又什么关系。一旦你批准了这些软件所要求的权限。
你就等于向这些软件敞开了你家的大门。譬如,程序可以随意的将你手机里联系人的信息发送到他们的服务器。
再举个例子,有些软件也许没有什么恶意,但设计的却极其的烂。因为开发者也是人,也会犯错。有时,程序员会选择一个他们认为安全的协议,但实际上却是很危险的。或者他们决定让所有用户使用SINGLESIGNON,但却将用户的SSO信息在DEBUGGINGCODE中在控制台输出出来。又或者有些恶意软件,可以让别人远程清空你的手机,或者将你手机里的信息传送回指定服务器后再清空你的手机(也许已经有这样的软件了)。
我以上所说的这些例子表明,即便是非ROOT权限的程序都有可能很危险(对新手来说),那么那些获得ROOT权限的程序呢?
好,现在回到我们所要讨论的主题上来。
当然,很多MOD的固件已经包括了超级用户程序,但这就够了嘛?和WINDOWS中账户控制消息或者其他操作系统中类似的程序一样,这个程序只是告诉用户当程序需要超级用户权限,但不会(不能?)告诉我们程序需要用这权限来干嘛!!有多少次,我们会选择“一直允许”(我也是),却不知道知道这个程序到底要干嘛。我们到底如何能知道呢?大多数人无法知道这些。只能靠别的用户来告诉我们。或者我们完全信任程序的开发者?但你敢100%信任一个完全没见过面的人?
在很多但不是所有情况下,这些程序都是开源的,所以我们可以读它们的代码来评估风险。但,这是一把双刃剑,别人也可以在代码中加入后门,冠以定制版的大名,堂而皇之进入你的手机。一百个程序中有一个这样的程序,也就够你受的了。但一个恶意的并或者ROOT权限的软件到底可以干什么呢?两个字:任意事情!
我和我的朋友讨论了一下,总结出以下几点:
@将GMAIL换成所谓的“定制版”
@将你的输入法更换成有按键记录功能的输入法
@将手机里的程序或者数据删除
@下载并试图安装修改过的固件
@下载特定的程序,可以夜间在后台拨打收费电话号码。
@侵入你的菜市场账户,并“替你”购买软件。
@更多。。。
幸运的是,这样的程序还没出现。但愿以后也不会有。很有可能你现在已经开始想了:“天哪,这些东西真吓人。。。”,那么,身为作者的我也会感到高兴。如果用户能知道乱用ROOT权限的潜在威胁,并时刻牢记这一点,这样可以更好的保护他们自己的设备和信息。在使用一个软件并信任开发者之前,做一下功课,网上搜索一下。安全起见,也不要在超级用户程序里选择“ALWAYSALLOW”,虽然这样也无法完全保障你设备的安全。其实,有些功能其实完全不应该需要ROOT权限的。譬如,很多用户取得ROOT权限只是为了添加一些自己的主题。如果ANDROID原生就能支持自己添加主题,那很多用户就不需要ROOT了。还有些用户ROOT是为了优化手机使之运行的更快。那为什么不把这些优化程序直接集成到官方固件中去呢?譬如说因为G1的储存空间相当有限,我们不得不使用APP2SD将程序安装到SD卡中去。为什么这个程序就不能集成到官方固件中去呢?让用户时刻牢记安全的重要性。