升级包数据篡改 - getExternalStorageDirectory方法 一、API 1. 继承关系 【1】java.lang.Object 【2】android.os.Environment 2. Environment.getExternalStorageDirectory() 返回:类型(File),外部存储的路径 3. 参考链接 https://developer.android.com/reference/android/os/Environment.html#getExternalStorageDirectory() 二、触发条件 1. apk文件类型 【1】对应的特征:application/vnd.android.package-archive 【2】参考链接: http://blog.csdn.net/heikefangxian23/article/details/38582261 2. apk包存放在外部存储 【1】对应的特征: /sdcard Landroid/os/Environment;->getExternalStorageDirectory( 三、漏洞原理 【1】软件自动更新时下载的升级包文件放到了外存中,该文件可能会被篡改,导致遭受攻击 【2】参考链接 http://zkread.com/article/955751.html http://www.peep-squirrel.com/itcontent-2717447.html 四、修复建议 【1】不要把升级包文件放到外存,另外升级包下载完成后要对升级包进行校验,以防文件被篡改 【2】升级包文件可以放在内部缓存目录getCacheDir下