2014年7月16日,由SyScan主办,360公司承办的SyScan360国际前瞻信息安全会议隆重召开。今天,作为本次大会的最后一天,将有更加精彩的内容呈现给与会者。据悉,今天将有6个议题逐一呈现给大家,此外也将宣布特斯拉破解的最终结果以及电子门卡的破解活动。
随着智能手机的普及,安卓操作系统已经被人们熟知,随着对操作系统的熟悉,很多人也都清楚,在安卓系统中的漏洞也是数不胜数。来自上海交通大学计算机系在读博士生pLL,在本次大会的演讲中便重点对安卓APP中的的攻击窗口进行了逐一解析。
很多技术人员都清楚,Broadcast作为一种异步通信的手段,被一些功能复杂的app广泛使用。虽然学术界早在2012年就提到了此方法的安全性,但其描述非常含糊,导致业界对broadcast的安全性重视程度不够。一些安全检测工具甚至忽略针对broadcast的安全性检查。
pLL在演讲中提到:我们对安卓平台下的broadcast进行描述,对攻击方法、检测方法进行刻画,并通过静态检测和动态确认的手段,来展示与此相关的安全问题广泛存在于目前的app中。而我们也可以通过静态的aDFAer引擎和动态的Thor系统,分别在MIUI rom, SAMSUNG rom, 设置在谷歌的服务框架中,找到这类漏洞。
此外通过pLL的一组测试集和测试结果显示:一个软件它的功能越复杂,就越容易出问题,因为一个软件功能比较复杂,就牵扯到一些通信上的问题。在这种情况下,国外的APP相对于国内的APP实际上更安全一点。通过测试,pLL也观察到国内的这些比较大型的软件厂商,喜欢开发一个all in one的程序,所有的东西都加在里面,功能一复杂就会容易出现问题。我们测试下来,如百度、阿里、腾讯等他们的主流APP都存在问题,都可以被第三方应用程序控制。
pLL表示:在这些主流厂商的一些主流APP里面,我们也发现有一些APP虽然目前没有很明确的攻击方法出现,但是它也是做了一些增强,有一些APP使用安全的广播和注册方法,但是我们说因为它的代码量比较大,而且每一个开发者对安全问题的理解是不一样的,即使在非常安全的APP里面,我也多少能找到一些可以攻击的点。
因此在面临这个问题的时候,排查过程是非常困难的,因为我们看到所有的方法看起来都一样。而且即使我们能区分出来这些方法,我们还要根据具体的业务流程看这个方法使用安全不安全。比如对于我们处理系统广博的Receiver来说,它只能使用不安全的广播注册方法。如果我们需要限制系统广播的一些权限,那我们就收不到某些权限了。
此外另外通过测试pLL也提到在三星、小米的手机等等,里面子代的ROM里面发现了跟动态注册广播相关的问题,在Google的服务框架中我们也发现了一些问题。
针对以上问题,最后他给编码者提供了以下建议:
首先,不建议把处理系统广播和处理自定义的广播在一起,即便不能构造系统的广播,也可以通过一个自定义的广播进入一个Receiver,来触发Receiver里面的一些行为。
第二,另外对于自定义的一些Action,建议使用相对安全的广播注册方法,也就是来自于 local broadcast里面的。
第三,另外如果一定要把这个广播暴露出去,建议做一些访问接口的权限。