近日百度安全实验室在手机银行正版信息提取时,发现有一个数字证书签名(签名信息如图1)被很多银行的手机客户端所使用。与此同时还发现了几款个人开发者类应用也使用了此证书签名。而这种数字签名被滥用的行为存在极大的安全隐患。
图1. 签名信息
经挖掘和分析,研究人员发现目前共有23款不同银行手机银行客户端使用该签名:
以上不同银行的手机客户端应用都是外包给某第三方公司开发的。
在应用市场内,目前共发现6款个人开发的应用同时使用该数字证书签名:
这六款手机客户端为同一个人开发者,推断该个人开发者应该为“某第三方公司”员工,该员工“不小心”用公司的数字证书签名了个人开发的小应用并发布到不同应用市场。
目前暂未发现利用该证书从事恶意行为。但还是存在以下巨大的安全风险:
1、不同银行的Android手机客户端应用都使用了同一个证书签名.
Android系统中,证书的作用是建立一个应用程序与其开发者实际上就是应用程序的所有者之间的信任关系,是Android安全机制中的重要组成部分。虽然这些银行客户端都是由一家公司负责开发的,但是实际上这些应用应该是属于各个银行的,所以不应该使用相同的签名。
2、银行的Android手机客户端使用了第三方外包公司的证书签名。
银行类应用作为一种跟人的财产密切相关的应用更应该注意应用的安全性。而证书签名作为一个Android应用与应用安全密切相关的部分,各家银行应该制作其独有的签名证书,并且严格管理此证书。即使客户端由其他公司开发,但是给应用签名最终发布时,各家银行也应该使用自己的独有证书来签名。而目前的状况却是多家银行的应用居然使用了同一个外包公司的证书,而且这个证书从目前分析来看是这家公司的公用证书,并没有什么独立性和保密性可言。
3、第三方外包公司证书管理缺失,如此重要的证书,居然被个人随便拿来签发个人应用。
基于Android系统中使用相同签名的应用可以利用的一些规则和权限,一旦如此重要的签名证书被个人开发者拿来制造恶意程序,就会给使用这些正版客户端应用的用户带来极大的危害,尤其是这些应用中有很大一部分是银行类应用。而目前的状况是有20款银行手机客户端使用了同一款证书,一旦此证书被盗用,恶意开发者就会危害至少20款银行手机客户端的用户资金安全,其危害范围非常巨大。
目前该漏洞已提交乌云漏洞平台:
http://www.wooyun.org/bugs/wooyun-2014-067027
近20家银行手机银行签名被非法滥用风险分析,布布扣,bubuko.com