移动安全
包签名 – (非原始签名说明包被修改过,可能被植入木马)
CVE-2017-13156(Janus签名)
调试证书使用 –(1.无法在应用市场上架,2.影响迭代更新)
为Debug或Android说明使用的调试证书
应用加壳
SO文件加壳
启动隐藏服务风险
全局异常检测
启用VPN服务检测
系统权限使用
Android.permission.INSTALL_PACKAGES #允许程序安装应用
Android.permission.WRITE_SECURE_SETTINGS #读写系统敏感设置
Android.permission.MOUNT_FORMAT_FILESYSTEMS #格式化文件系统
Android.permission.MOUNT_UNMOUNT_FILESYSTEMS #在sd卡内创建和删除文件权限
Android.permission.RESTART_PACKAGES #结束系统任务
ProtectionLevel权限
sharedUserid检测
master key漏洞
allowBackup
debuggable
模拟器权限 – 用户位置任意篡改
测试模式发布
组件 – Activity
类型:DDOS | 信息泄露
组件 – Service
类型:DDOS | 信息泄露
组件 – Receiver
类型:DDOS | 信息泄露
组件 – provider
类型:信息泄露 | 目录遍历 | SQL注入(uri搜索 – addURI)|任意文件读写
debug/test敏感组件信息泄露
组件功能未实现引发DDOS
Intent-based
PendingIntent误用Intent
Intent敏感数据泄露风险
Fragment注入
风险:导致本地拒绝服务漏洞,fragment 注入攻击可导致应用的敏感信息泄露、远程代码执行
动态注册广播风险
风险:越权|信息泄露|DDOS
WebView远程执行
WebView XSS
WebView明文存储密码
WebView组件忽略SSL证书验证错误
风险:劫持 | 用户敏感信息泄露
WebView系统隐藏接口未移除
CVE-2012-663
CVE-2014-1939
WebView组件克隆应用
风险:远控
数据库任意读写
SharedPreference全局读写
风险:用户敏感信息泄露
内部文件全局读写
HTTPS未校验主机名
风险:劫持
HTTPS 未校验服务器证书
风险:劫持
getDir数据全局可读写
随机数不安全使用风险
发送广播信息泄漏风险
剪贴板信息泄露风险
SD卡数据泄漏风险
资源文件泄露风险
URL敏感信息检测
外部加载dex
外部加载so
日志数据泄漏风险
弱加密检测
RSA加密算法不安全使用风险
Java代码混淆检测
证书明文存储风险
SO未使用编译器堆栈保护风险
恶意可执行程序感染漏洞
应用运行其它可执行程序风险
应用Root设备运行风险
截屏攻击风险
本地端口开放越权
FFmpeg任意文件读取
风险:可以访问手机中任意文件,导致用户信息泄露
代码保护不足
未混淆
未加固
代码中编写测试账户信息
密钥硬编码
对密钥离散存储于资源文件中,并动态加载使用
服务端证书检测 – 测试客户端程序是否严格检查服务器端证书信息,避免用户访问钓鱼网站后,泄露密码等敏感信息。SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER为忽略证书验证
对SSL证书进行强校验,包括证书是否合法、主机域名是否合法和证书的有效期。修改Allow_all_hostname_verfier
Janus安卓签名漏洞
将App升级到最新的Signature scheme V2签名机制;
开发者及时校验App文件的开始字节,以确保App未被篡改。
WebView漏洞
Android 4.2之前版本对addJavascriptInterface的输入参数进行过滤;
Android 4.2及之后版本,使用声明@JavascriptInterface来代替addjavascriptInterface
控制相关权限或者尽可能不要使用js2java的bridge
随机数加密破解漏洞
Intent协议解析越权漏洞
KeyStore漏洞
SQL注入漏洞
参数化
预编译
过滤
公共组件漏洞
组件Content Provider配置错误,导致数据泄漏
组件Activity配置错误,导致登录页面被绕过
组件Service配置错误,导致非法权限提升
组件Broadcast Receiver配置错误,导致拒绝服务、非法越权
应用配置错误
关闭allowbackup备份
关闭Debuggable属性,防止应用信息篡改泄露风险
数据安全
SQLLite读取权限安全性
创建应用内部存储文件时,调用了openOrCreateDatabase,并将访问权限设置为MODE_WORLD_READABLE或者MODE_WORLD_WRITEABLE
私有文件泄露风险
创建应用内部存储文件时,调用了openFileOutput,并将访问权限设置为MODE_WORLD_READABLE或者MODE_WORLD_WRITEABLE,若设备被root也可进行读写。
设置为MODE_PRIVATE模式
SharedPrefs任意读写漏洞
创建应用SharedPreference时,调用了getSharedPreferences,并将访问权限设置为MODE_WORLD_READABLE或者MODE_WORLD_WRITEABLE
日志泄露风险
cookie等用户隐私被窃取
不要将不必要组件导出;如需导出,禁止使用File协议;如需使用File协议,禁止js执行:setJavaScriptEnabled(False)
对file域下符号链接限制不当,可导致cookie等用户隐私被窃取