1. 麦科互动首页
  2. 科技咖

详解:流氓软件就这样强奸了我们!IT业界 – 萍果派

一台手机,简直就是出活生生的后宫剧,有人趋时附势,有人忠心耿耿,更有人想自立门户,各种各样的App慢慢占领了用户的手机。

在Android系统中,为了赚取更多的利益和眼球,各类App绞尽脑汁,想出了各种各样的方法来获取权限。虽然说,遭遇强奸时,如果你不能反抗,那就好好享受吧。然而事实并不是这样,现在的流氓软件,强奸用户就算了,稍不留意,用户就遭到惨无人道的轮奸,被App全家桶强占了手机。

那么说了这么多,现在的流氓App们到底是通过什么手段强行进驻用户设备的呢?一位浸淫Android系统多年的安全专家表示:要想实现App的静默安装,无疑需要取得Root权限。目前几乎每一家App厂商都掌握至少一种临时Root的方法。而这也成为了行业中的潜规则。

那么,什么是专家提到的临时Root呢?这就要从Root的原理说起了。

(以下内容有点啰嗦,想看结论的可以直接跳过)

在Android系统中,存在一个名为Su的程序,用来控制谁可以干什么不可以干什么。默认的Su程序运行时,需要验证实际的用户权限,只有Root和Shell级别用户才有权通过默认的Su程序运行Root权限的命令,当其他用户运行的时候均会返回错误。

对手机进行Root操作,实际上就相当于将默认的Su程序替换为第三方Su程序。这样,普通用户就可以利用Su程序,将自己的操作权限提升。实际上这种做法风险很大,一旦恶意软件在用户不知情的情况下利用Su程序对自己进行了提权操作,带来的将是灾难性的后果。所以,一般情况下手机Root之后都会有一个类似于“SuperSU”这样的程序来让用户决定谁可以获得最高权限。

其实就算设备Root之后,也不能真正让你的应用程序获得Root权限。这样的Root有些像Linux下的Sudo命令,在系统的Bin目录下放置一个具有Suid权限且属主是Root的Su程序,通过这个Su程序执行的命令就具有了Android Root权限。

了解了Root的原理之后,我们再来分析一下流氓软件是如何临时获取Root权限的。

上文中我们提到了替换系统默认的Su程序,在普通的用户权限下,想要替换Su文件并不是那么容易的一件事情。这需要用到2个工具和2个命令。

工具方面首先要用到鼎鼎大名的Busybox,把Busybox拷贝到普通用户有权限访问的目录下,然后对其赋予4755权限,就可以用来干很多事情了。

但Busybox不能直接提升权限,整个过程中起到核心作用的是Ratc这个程序,在很多一键Root包中都有他的身影,具体作用是Rooting在ADB中的Shell,利用了ADB源码部分内容实现了真正的提升权限。

一切准备就绪之后,流氓软件只需要使用Socket跟Java程序通讯,将需要Root权限才能运行的代码放置在预先编写的C++程序中,然后在Java程序中创建新的Su进程,设置C++程序作为参数1。启动后,流氓软件就可以通过Socket调用C++函数来执行它想要偷偷摸摸干的事情了。做完一切之后,只要将进程销毁,一切都会回到初始的样子。

就目前来说,还没有很好的办法来阻止流氓软件静默安装。虽然每一版Android系统都会发布安全补丁,但是补的没有漏的快,总有各种各样的漏洞被挖掘出来。由于安卓系统的碎片化,很多设备搭载的都是较低版本的Android系统,这也是导致全家桶泛滥的一个重要原因。

从理论上来讲,如果一个流氓App拿到了Root级别的权限后,它可以偷偷利用摄像头与麦克风,记录用户的所有行为然后上传至指定的服务器。想想看,作为一个普通用户,我们就像是剥光了衣服站在人前,被一个又一个龌龊的厂商轮流审视,这样的情景到底为什么会出现,非常值得每一个人去深思一下。

详解:流氓软件就这样强奸了我们!

本站文章转载自第三方或本站原创生产,如需转载,请联系版权方授权,如有内容如侵犯了你的权益,请联系我们进行删除!

如若转载,请注明出处:https://zixun.mnicky.com/keji/4777.html

联系我们

在线咨询:点击这里给我发消息

邮件:mnicky@foxmail.com

工作时间:周一至周五,9:30-18:30,节假日休息