首页> 知识> 常识> 正文

安卓应用有哪些常见的安全漏洞

2018.12.29 12:28 2954

如果手机应用开发的时候出现疏漏就会造成Android 应用的安全漏洞,那么,安卓应用有哪些常见的安全漏洞呢?小编给大家综合了以下几个方面。

1. 应用反编译

漏洞:APK 包非常容易被反编译成可读文件,稍加修改就能重新打包成新的 APK。

利用:软件破解,内购破解,软件逻辑修改,插入恶意代码,替换广告商 ID。

建议:使用 ProGuard 等工具混淆代码,重要逻辑用 NDK 实现。

例子:反编译重打包 FlappyBird,把广告商 ID 换了,游戏改加插一段恶意代码等等。

2. 数据的存储与传输

漏洞:外部存储(SD 卡)上的文件没有权限管理,所有应用都可读可写。开发者把敏感信息明文存在 SD 卡上,或者动态加载的 payload 放在 SD 卡上。

利用:窃取敏感信息,篡改配置文件,修改 payload 逻辑并重打包。

建议:不要把敏感信息放在外部存储上面;在动态加载外部资源的时候验证文件完整性。

漏洞:使用全局可读写(MODE_WORLD_READABLE,MODE_WORLD_WRITEABLE)的内部存储方式,或明文存储敏感信息(用户账号密码等)。

利用:全局读写敏感信息,或 root 后读取明文信息。

建议:不适用全局可读写的内部存储方式,不明文存储用户账号密码。

3. 密码泄露

漏洞:密码明文存储,传输。

利用:root 后可读写内部存储。SD 卡全局可读写。公共 WiFi 抓包获取账号密码。

建议:实用成熟的加密方案。不要把密码明文存储在 SD 卡上。

4. 组件暴露 (Activity, Service, Broadcast Receiver, Content Provider)

漏洞:组件在被调用时未做验证。在调用其他组件时未做验证。

利用:调用暴露的组件,达到某种效果,获取某些信息,构造某些数据。(比如:调用暴露的组件发短信、微博等)。监听暴露组件,读取数据。

建议:验证输入信息、验证组件调用等。android:exported 设置为 false。使用 android:protectionLevel="signature" 验证调用来源。

5. WebView

漏洞:恶意 App 可以注入 JavaScript 代码进入 WebView 中的网页,网页未作验证。

恶意网页可以执行 JavaScript 反过来调用 App 中注册过的方法,或者使用资源。

利用:恶意程序嵌入 Web App,然后窃取用户信息。

恶意网页远程调用 App 代码。更有甚者,通过 Java Reflection 调用 Runtime 执行任意代码。

建议:不使用 WebView 中的 setJavaScriptEnabled(true),或者使用时对输入进行验证。

6. 其他漏洞

ROOT 后的手机可以修改 App 的内购,或者安装外挂 App 等。

Logcat 泄露用户敏感信息。

恶意的广告包。

利用 next Intent。

其实,Android 应用的漏洞大部分都是因为开发人员没有对输入信息做验证造成的,另外因为 Intent 这种特殊的机制,需要过滤外部的各种恶意行为。再加上 Android 应用市场混乱,开发人员水平参差不齐。所以现在 Android 应用的漏洞,恶意软件,钓鱼等还在不断增多。再加上 root 对于 App 沙箱的破坏,Android 升级的限制。国内的 Android 环境一片混乱,惨不忍睹。所以,佰佰安全网提醒大家如果想要保证你的应用没有安全漏洞,就要记住:永远不要相信外面的世界。

更多通讯安全小知识,比如手机下载网络资源需注意哪些危险隐患,欢迎继续阅读佰佰安全网

( 责任编辑: 邹兰 )

分享到

相关阅读

安卓apk应用如何进行安全加固

2018.12.25

4248

如何防止安卓apk被篡改破解

2018.12.20

3213

手机下载小说时会中病毒吗

2018.12.12

5688

怎样检测安卓apk的安全漏洞

2018.12.11

2603

如何检测安卓apk的安全性

2018.12.08

3471

加载更多

为您推荐

如何安全使用充电宝?

2018年03月07日 09:53

4577

wifi开着时需不需要关闭移动网络数据?

2018年01月09日 14:31

7402

手机软件普遍存在的安全隐患有哪些?

2017年05月03日 21:20

6276

手机下载网络资源需注意哪些危险隐患?

2017年05月03日 03:32

4709

手机传输数据时怎样避免病毒隐患?

2017年05月01日 19:42

4520