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