安卓安全需要注意的地方

安卓安全需要注意的地方

最近公司产品通过第三方安全机构评估之后暴露了不少安全问题,对此感觉该做个笔记总结总结,毕竟是花了钱获得的知识。

终端Root利用漏洞

问题:

终端在ROOT条件下如果被恶意应用获取ROOT权限后则可以随意访问任意应用储存的任何数据,造成数据泄露、数据非法篡改等风险。

一个应用程序的进程就是一个安全的沙盒,每一个Android应用程序都会在安装时就分配一个独有的Linux用户ID,这就为它建立了一个沙盒,使其不能与其他应用程序进行接触。这个用户ID会在安装时分配给它,并在该设备上一直保持同一个数值。

所有的Android应用程序必须用证书进行签名认证,而这个证书的私钥是由开发者保有的。该证书可以用以识别应用程序的作者。签名影响安全性的最重要的方式是通过决定谁可以进入基于签名的permisssions。

解决:

参考:http://blog.csdn.net/lintax/article/details/70988565

最后决定采用检测su命令的方法。

AllowBackUp安全漏洞

问题:

扫描二维码关注公众号,回复: 1647920 查看本文章

当 allowBackup 标志为 true 时,用户即可通过 adb backup 和 adb restore 来进行对应用数据的备份和恢复,这可能会带来一定的安全风险。 adb backup 容许任何一个能够打开 USB 调试开关的人从Android 手机中复制应用数据到外设,一旦应用数据被备份之后,所有应用数据都可被用户读取;adb restore 容许用户指定一个恢复的数据来源(即备份的应用数据)来恢复应用程序数据的创建。因此,当一个应用数据被备份之后,用户即可在其他 Android 手机或模拟器上安装同一个应用,以及通过恢复该备份的应用数据到该设备上,在该设备上打开该应用即可恢复到被备份的应用程序的状态。

解决:

在Mainefest文件将allowBackUp设置为false。

Activity、Service最小权限:

android:exported 是Android中的四大组件Activity,Service,Provider,Receiver 四大组件中都会有的一个属性。

exported 的默认值根据Activity中是否有intentfilter 来定。没有任何的filter意味着这个Activity只有在详细的描述了他的class name后才能被唤醒 .这意味着这个Activity只能在应用内部使用,因为其它application并不知道这个class的存在。所以在这种情况下,它的默认值是false。从另一方面讲,如果Activity里面至少有一个filter的话,意味着这个Activity可以被其它应用从外部唤起,这个时候它的默认值是true。

Service也类似。

WebView安全漏洞

该漏洞源于程序没有正确限制使用WebView.addJavascriptInterface方法,远程攻击者可通过使用JavaReflection API利用该漏洞执行任意Java对象的方法,简单的说就是通过addJavascriptInterface给WebView加入一个JavaScript桥接接口,JavaScript通过调用这个接口可以直接操作本地的JAVA接口。通过JavaScript,可以访问当前设备的SD卡上面的任何东西,甚至是联系人信息,短信等

谷歌提供了解决方案:

猜你喜欢

转载自blog.csdn.net/u011486491/article/details/80670162