上周,移动安全公司Bluebox Security研究人员宣布他们发现了一个Android严重漏洞,这个漏洞允许攻击者修改应用程序的代码但不会改变其加密签名。据说,这个漏洞自Android 1.6(Donut)以来就一直存在,隐藏长达4年之久,当今市场上99%的Android产品都面临这一问题。
每个Android程序是一个apk文件,从文件格式上来说,apk其实是一个zip压缩包。这个压缩包里包含了android程序的所有内容,包括配置文件,编译后的程序代码(classes.dex),程序依赖的资源文件,以及加密签名。Android 系统会根据这个签名来验证apk文件是否合法,以防止正常软件被非法篡改。同一个应用(指包名相同)如果签名不同则不能覆盖安装。所以,可想而知,如果一旦签名被绕过,android应用就会真假难辨。