Android常见漏洞及安全要点
应用安全是一个需要引起大家重视的问题,其不但涉及应用的代码安全,也涉及隐私信息和数据安全等,是一个非常复杂的问题。
安全问题无处不在,虽然没有绝对的安全,也无法避免安全问题,但是通过一些手段和策略可以让应用安全级别得到很大的提升,避免漏洞和安全问题的产生与引入。
本文章来说一下Android常见漏洞。
1.Android Manifest配置相关的风险漏洞
Android Manifest配置相关的风险漏洞主要是由组件暴露等一些风险漏洞所导致的,可以避免。
程序可被任意调试的风险:这个风险漏洞会使App可以被调试,这样里面的很多数据和逻辑将变得十分不安全。该风险产生的原因是应用的APK配置文件AndroidManifest.xml中android:debuggable="true",调试开关被打开,导致风险的引入。
可以将Application里的这个属性设置为false或者在buidl.gradle里配置debuggable:false即可避免。
程序数据任意备份的风险:这个风险漏洞会导致App应用数据可被备份导出,这样别人就可以查看、解密应用里存储的所有数据信息了。该风险产生的原因是应用APK配置文件AndroidManifest.xml中android:allowBackup="true",数据备份开关被打开。解决办法是把AndroidManifest.xml配置文件备份开关关掉,即设置android:allowBackup="false"。如果应用不是必须开启备份,那么一定要关闭这个开关。
Activity组件暴露:Activity组件的属性exported被设置为true或未设置exported值,但IntentFilter不为空时,Activity被认为是导出的,黑客可通过设置相应的Intent唤起这个Activity。如果组件不需要与其他App共享数据或交互,应在AndroidManifest.xml配置文件中将该组件设置为exported ="false"。如果组件需要与其他App共享数据或交互,请对组件进行权限控制和参数校验。
Intent Scheme URL攻击:攻击者通过访问浏览器构造Intent语法唤起App的相应组件,轻则引起拒绝服务,重则可能演变为对App进行越权调用甚至升级为提权漏洞。该风险产生的原因是在AndroidManifast.xml设置Scheme协议之后,可以通过浏览器打开对应的Activity。解决办法是对App外部调用过程和传输数据进行安全检查或检验,配置category filter,添加android.intent.category.BROWSABLE方式规避风险。
2.WebView组件及与服务器通信相关的风险漏洞
Webview存在本地Java接口:这使得当targetSdkVersion小于17时,攻击者可以利用addJavascriptInterface这个接口添加的函数远程执行任意代码。该风险产生的原因是Android的Webview组件有一个非常特殊的接口函数addJavascriptInterface,该风险能实现本地Java与JS之间的交互。建议开发者不要使用addJavascriptInterface,而使用注解@Javascript和第三方协议的替代方案。
WebView忽略SSL证书错误:忽略SSL证书错误可能会引起中间人攻击。该风险产生的原因是WebView调用onReceivedSslError()方法时,直接执行了handler.proceed()来忽略该证书错误。建议不要重写onReceivedSslError()方法,或者对于SSL证书错误问题按照业务场景判断,避免造成数据明文传输情况。
Webview启用访问文件数:在Android中,webview.setAllowFileAccess(true)为默认设置,当setAllowFileAccess(true)时,在File域下可执行任意的JavaScript代码,假如绕过同源策略能够对私有目录文件进行访问,将会导致用户隐私泄漏。该风险产生的原因是Webview中使用了setAllowFileAccess(true), App可通过Webview访问私有目录下的文件数据。建议使用WebView.getSettings().setAllowFileAccess (false)来禁止访问私有文件数据。
3.数据安全风险漏洞
数据存储风险:当调用了getExternalStorageDirectory,存储内容到SD卡上后可以被任意程序访问,存在安全隐患。建议将敏感信息存储到程序私有目录下,并对敏感数据加密。非敏感信息可以存储在SD卡上或者加密后存储在SD卡上。
全局File可读写漏洞openFileOutput:攻击者恶意读取文件内容,获取敏感信息。该风险产生的原因是openFileOutput(String name, int mode)方法创建内部文件时,将文件设置了全局的可读权限MODE_WORLD_READABLE。避免办法是请开发者确认该文件是否存在敏感数据,如存在相关数据,请去掉文件全局可读属性。
配置文件可读写泄露风险:配置文件可以被其他应用读取导致信息泄漏。该风险产生的原因是使用getSharedPreferences打开文件时第二个参数设置为了MODE_WORLD_READABLE。避免办法就是如果必须设置为全局可读模式供其他程序使用,请保证存储的数据是非隐私数据或者是加密后存储,否则设置为MODE_PRIVATE模式。
AES弱加密:先了解一下ECB,它是将文件分块后对文件块做同一加密,破解加密只需要针对一个文件块进行解密,降低了破解难度和文件的安全性。产生AES弱加密的原因是在AES加密时,使用了AES/ECB/NoPadding或AES/ECB/PKCS5padding的模式。避免办法就是禁止使用AES加密的ECB模式,显式指定加密算法为CBC或CFB模式,可带上PKCS5Padding填充。AES密钥长度最少是128位,推荐使用256位。
随机数不安全使用:其实生成的随机数具有确定性,并非物理随机,存在被破解的可能性。一般都是通过调用SecureRandom类中的setSeed方法产生随机数。建议使用/dev/urandom或/dev/random来初始化伪随机数生成器。
AES/DES硬编码密钥:通过反编译获取密钥可以轻易解密App通信数据。该风险产生的原因是使用AES或DES等加解密时,密钥采用硬编码写在程序中。建议密钥加密存储或变形后进行加解密运算,不要硬编码到代码中。
4 校验或限定不严导致的风险漏洞
Fragment注入:攻击者可绕过限制,访问未授权的界面。该风险产生的原因是导出的PreferenceActivity子类没有正确处理Intent的extra值。建议当targetSdk大于等于19时,强制实现isValidFragment方法;当targetSdk小于19时,在Preference-Activity的子类中都要加入isValidFragment。在这两种情况下,在isValidFragment方法中进行fragment名的合法性校验。
隐式意图调用:Intent隐式调用发送的意图可被第三方劫持,导致内部隐私数据泄露。该风险产生的原因是封装Intent时采用隐式设置,只设定action,未限定具体的接收对象,导致Intent可被其他应用获取并读取其中的数据。建议将隐式调用改为显式调用。
版权声明:
作者: FreeClashNode
链接: https://www.freeclashnode.com/news/article-440.htm
来源: www.freeclashnode.com
文章版权归作者所有,未经允许请勿转载。
热门文章
- 10月1日免费节点分享|18M/S,Clash节点/V2ray节点/Singbox节点/SSR节点|免费上网梯子每天更新
- 10月2日免费节点分享|22.8M/S,Singbox节点/Shadowrocket节点/Clash节点/V2ray节点|免费上网梯子每天更新
- 10月3日免费节点分享|20.1M/S,SSR节点/Singbox节点/V2ray节点/Clash节点|免费上网梯子每天更新
- 9月30日免费节点分享|19.1M/S,Clash节点/V2ray节点/SSR节点/Singbox节点|免费上网梯子每天更新
- 10月6日免费节点分享|19.2M/S,V2ray节点/Singbox节点/Shadowrocket节点/Clash节点|免费上网梯子每天更新
- 10月8日免费节点分享|22.5M/S,V2ray节点/Singbox节点/Clash节点/Shadowrocket节点|免费上网梯子每天更新
- 10月11日免费节点分享|18.6M/S,V2ray节点/Clash节点/SSR节点/Singbox节点|免费上网梯子每天更新
- 10月14日免费节点分享|22.5M/S,Clash节点/V2ray节点/Singbox节点/SSR节点|免费上网梯子每天更新
- 10月5日免费节点分享|19.9M/S,Singbox节点/Clash节点/V2ray节点/SSR节点|免费上网梯子每天更新
- 10月13日免费节点分享|22.1M/S,V2ray节点/Clash节点/Singbox节点/Shadowrocket节点|免费上网梯子每天更新
最新文章
- 数字世界的破壁之旅:科学上网全指南与实用工具深度解析
- 10月26日免费节点分享|21.5M/S,V2ray节点/SSR节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 跨越知识边界:浙大学子的全球学术网络探索指南
- 10月25日免费节点分享|18.1M/S,SSR节点/V2ray节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 10月24日免费节点分享|20.5M/S,V2ray节点/Clash节点/Singbox节点/Shadowrocket节点|免费上网梯子每天更新
- 刘大猫科学上网全攻略:解锁全球网络的终极指南
- 10月23日免费节点分享|22.2M/S,Shadowrocket节点/Clash节点/Singbox节点/V2ray节点|免费上网梯子每天更新
- 全面解析Quantumult安卓版:功能、安装与配置教程
- 双重防护,畅享无界:AdGuard联手V2RayNG,打造极致安全的上网体验
- 10月22日免费节点分享|18.8M/S,V2ray节点/SSR节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 掌握Clash白名单设置:精准控制代理流量的艺术
- 10月21日免费节点分享|22M/S,Clash节点/Singbox节点/V2ray节点/SSR节点|免费上网梯子每天更新
- 突破网络边界:技术科学上网的终极安全指南
- 10月20日免费节点分享|22.9M/S,SSR节点/V2ray节点/Clash节点/Singbox节点|免费上网梯子每天更新
- Shadowrocket 选购指南:从入门到精通,找到你的专属代理神器
- 10月19日免费节点分享|19.3M/S,Singbox节点/V2ray节点/Clash节点/Shadowrocket节点|免费上网梯子每天更新
- 深入解读:V2Ray为何比SSR更安全?一场网络隐私的全方位较量
- 10月18日免费节点分享|20.6M/S,V2ray节点/Clash节点/SSR节点/Singbox节点|免费上网梯子每天更新
- 深度指南:Shadowrocket从入门到精通——iOS用户的网络自由密钥
- 10月17日免费节点分享|18M/S,Clash节点/SSR节点/V2ray节点/Singbox节点|免费上网梯子每天更新
- 深入解析科学上网套:全方位使用指南与常见问题解答
- 10月16日免费节点分享|22M/S,Shadowrocket节点/V2ray节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 10月15日免费节点分享|21.2M/S,Clash节点/SSR节点/V2ray节点/Singbox节点|免费上网梯子每天更新
- 全局掌控:安卓设备上 Clash 全局模式完整设置指南与深度解析
- 解锁全球游戏体验:育碧平台科学上网全攻略与深度解析
- 10月14日免费节点分享|22.5M/S,Clash节点/V2ray节点/Singbox节点/SSR节点|免费上网梯子每天更新
- 华为Mate 10科学上网全攻略:突破限制,畅游全球网络
- 10月13日免费节点分享|22.1M/S,V2ray节点/Clash节点/Singbox节点/Shadowrocket节点|免费上网梯子每天更新
- 10月12日免费节点分享|22.7M/S,Shadowrocket节点/V2ray节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 量子ULT全方位指南:从下载配置到高阶玩法一网打尽
- 10月11日免费节点分享|18.6M/S,V2ray节点/Clash节点/SSR节点/Singbox节点|免费上网梯子每天更新
- 极路由V2ray插件完全指南:打造家庭网络的安全屏障
- 10月10日免费节点分享|18.3M/S,V2ray节点/Singbox节点/Clash节点/SSR节点|免费上网梯子每天更新
- 极速狂飙与正义追击:《警车 Clash》深度解析与高阶攻略
- 10月9日免费节点分享|22.3M/S,Singbox节点/Clash节点/Shadowrocket节点/V2ray节点|免费上网梯子每天更新
- 用hosts文件科学上网:一份从入门到实战的详细指南
- 10月8日免费节点分享|22.5M/S,V2ray节点/Singbox节点/Clash节点/Shadowrocket节点|免费上网梯子每天更新
- iOS设备上SSR科学上网全教程:从入门到精通
- 10月7日免费节点分享|23M/S,Singbox节点/Clash节点/Shadowrocket节点/V2ray节点|免费上网梯子每天更新
- 深度剖析V2Ray订阅机制:从零搭建高效、安全的科学上网环境
- 10月6日免费节点分享|19.2M/S,V2ray节点/Singbox节点/Shadowrocket节点/Clash节点|免费上网梯子每天更新
- 全面解析蚕蛹生态冲突及其多元价值
- 10月5日免费节点分享|19.9M/S,Singbox节点/Clash节点/V2ray节点/SSR节点|免费上网梯子每天更新
- 从零开始:手把手教你刷梅林固件实现安全科学上网
- 10月4日免费节点分享|20M/S,SSR节点/V2ray节点/Clash节点/Singbox节点|免费上网梯子每天更新
- 跨越边界,自由探索:一加科学上网全面指南与深度解析
- 10月3日免费节点分享|20.1M/S,SSR节点/Singbox节点/V2ray节点/Clash节点|免费上网梯子每天更新
- 10月2日免费节点分享|22.8M/S,Singbox节点/Shadowrocket节点/Clash节点/V2ray节点|免费上网梯子每天更新
- 斐讯K2路由器刷机全攻略:解锁科学上网新境界
- 解锁网络自由:B站d手机科学上网全攻略
归档
- 2026-10 51
- 2026-09 58
- 2026-08 63
- 2026-07 61
- 2026-06 55
- 2026-05 56
- 2026-04 51
- 2026-03 60
- 2026-02 52
- 2026-01 56
- 2025-12 59
- 2025-11 55
- 2025-10 56
- 2025-09 55
- 2025-08 49
- 2025-07 31
- 2025-06 30
- 2025-05 31
- 2025-04 30
- 2025-03 388
- 2025-02 360
- 2025-01 403
- 2024-12 403
- 2024-11 390
- 2024-10 403
- 2024-09 388
- 2024-08 402
- 2024-07 427
- 2024-06 442
- 2024-05 181
- 2024-04 33
- 2024-03 31
- 2024-02 29
- 2024-01 51
- 2023-12 52
- 2023-11 32
- 2023-10 32
- 2023-09 3