漏洞表现
直入主题,附件有一个名为PermissionLeakage的Demo, 在PC上安装前的界面如下:
从图可以看到,这个DEMO没有定义任何权限(实际也没有定义任何权限,大家可以尝试反编译看一下他的AndroidManifest.xml)。下面是DEMO的界面内容,如下:
DEMO可以在零权限的情况下,完成各种手机唯一码的读取,特别是
“手机号码”等重要信息,甚至
可以监控来去电,大家可以安装DEMO测试一下。
在软件详情里,观看软件的权限信息,发现问题所在了,如下:
系统默认把权限授予给应用程序了,其中包含
READ_PHONE_STATE和WRITE_EXTERNAL_STORAGE。
漏洞分析
经多次测试和分析,发现该问题在1.6+的固件上都会出现,只要在AndroidManifest上的targetSDkVersion <= 3 即可。
这个漏洞,在源码上也得到了印证,如下:
看来是出现兼容性考虑。但不管怎样说,这个还是会给用户带来安全隐患。
造成的影响
1. 如正前面第一个截图,在PC端安装软件时,都是通过分析AndroidManifest.xml显示权限信息的,因此有可能会让用户误以为是安全的(特别是某些看图应用,您懂的!);
2. 对于一些基于应用权限信息的分析逻辑,有可能会漏掉某些应用。