已经有好几个朋友来询问详细情况。我将自己知道并且可以公开的内容做一个总结。 1. 漏洞的基本情况 北卡罗莱纳州立大学蒋旭宪教授领导的团队日前发文称Android系统所有版本中存在安全漏洞[1],任何应用软件不需要任何权限(包括不需要读写短信的权限),都可以在系统中伪造任意号码发来的任何内容的短信或彩信,从而可能引发进一步的钓鱼攻击。Google已经确认了这一漏洞的存在。 产生漏洞的主要原因是,系统预装的短信程序中,下列服务被暴露(设置为了android:export="true"): com.android.mms.transaction.SmsReceiverService 任何第三方软件可以通过名为android.provider.Telephony.SMS_RECEIVED的action,加上自己构造的短信或彩信来调用它,触发系统的短信接收流程。 2. 漏洞的demo和PoC 蒋教授的团队在Youtube公布了一份漏洞演示视频[3]。 一份可用的PoC代码已经被公布在github上[4]。 3. 漏洞的修补 3.1 修改系统 理论上,对此类不当暴露、且需要被其他应用调用的组件,可以通过自定义signature级别的权限,并在组件申明中添加相应的权限要求,即可保证安全。考虑到这次是系统预装软件的组件发生暴露,也可以使用signatureOrSystem级别的权限。 Google目前尚未发布官方的修复代码和升级补丁。 3.2 检查intent调用 目前的第三方解决方案主要以金山手机毒霸为代表,其在新闻中称可以检测和拦截对这个漏洞的利用,并对恶意构造的短信进行有效拦截[5]。他们没有公布技术实现的细节,个人猜测是检查了对这一组件发起的所有intent的来源。 (本文只介绍情况,不是软文) 3.3 移除组件 如果将出现漏洞的预装软件mms.apk卸载,亦可去除这一漏洞。可以使用第三方的独立短信收发软件来替代它。但我并不建议普通用户这么做,一是不能确保对系统稳定性不造成影响,二是第三方短信软件是否也存在类似的漏洞还需要检查。 参考文献: [1] http://www.csc.ncsu.edu/faculty/jiang/smishing.html [2] http://www.csdn.net/article/2012-11-06/2811576-Android-bug [3] http://www.youtube.com/watch?v=gLujaf0Y4-A [4] https://github.com/thomascannon/android-sms-spoof [5] http://m.duba.com/news-content/news121106.htm
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课