互联网时代到来时,人们曾经感慨,一切都在被数字化。而今天,一切都在移动化。在大街小巷民众低头忙着划动屏幕成为一景。国外权威机构的数据显示,中国智能手机已经占据了手机总销量的96%,传统功能手机基本上已经淡出了历史舞台。据美国市场研究公司eMarketer最近的一个报告称,权威市调机构Gartner的数据显示,在中国,智能手机在手机中销量的占比位96%,而美国也是96%。换言之,在移动互联网的硬件层面,中国和美国已经在一个水平上。
智能手机的普及随之推动了手机app的快速发展,当前手机app可涉及小到沟通聊天、外卖预定、车票预定、旅游预定、购物、新闻浏览等,大到银行投资理财、医院挂号、支付交易等,一个人的一天活动基本可依赖手机完成。正因为对app的大量普及,很多软件开发商都看到了这块市场带来的利益,随着利益的驱动,各种各样的app层出不穷,app的市场也是鱼龙混杂。由于速成化的app安全性无法得到充分保障,近些年来,个人信息泄露事件在通过app发生的频率很高。
通过大数据分析,对当前手机手机上常用app做了统计数表如下:
从图表统计不难看出,几乎每个手机上都安装有聊天、视频娱乐、购物等相关app,那这些app是怎样在手机上工作的呢?又会不知不觉获取手机的哪些信息呢?
伴随着技术的发展,手机的功能还远远不只这些,大数据时代已经到来,智能家居物联网时代也随之而来,此处以安卓app即apk来进行分析,下载任意apk,修改其后缀为tar,即可查看部分apk的相关文件
AndroidManifest.xml为Android应用的入口文件,它主要描述了安装包中暴露的组件、各个类的实现、软件的相关读取权限等。下面是您可以在此处获取的AndroidManifest.xml文件的详细内容:
通过对AndroidManifest.xml文件的具体分析,可得知当前app获取到的手机权限如下:
其中主要的权限包括允许读取手机状态、允许拨打电话、允许读取联系人、允许修改系统全局设置、允许创建蓝牙连接、允许定位、允许开机自动启动等等相关权限。如果用户在使用该应用程序时选择了默认安装模式,可能会导致其个人信息泄露。
熟悉Android开发的都了解,Android应用有四大组件,即Activity,Service服务,ContentProvider内容提供者,BroadcastReceiver广播接收器。
先来说下activity组件,activity组件之间通信是通过Intent进行通信,为用户操作展示可视化界面,一个Android应用必须通过activity组件来运行和启动。Application之间虽然相互独立,但是可以通过app中的activity组件进行互相通信、调用、访问等,该app的activity组件如下:
通过该apk进行分析可发现,其入口activity组件是com.meiyou.pregnancy.ui.welcome.WelcomeActivity,app在启动时调用 了其他的activity组件,当activity组件可以进行导出时,可被第三方app任意调用,造成敏感信息泄露还可能受到认证绕过、恶意代码注入、页面劫持等风险。
BroadcastReceive使应用对外部事件进行过滤只是对需要的事件进行接收并做出响应,并且其没有用户界面,但是却可以启动一个activity或service来响应收到的信息,使得不同组件或不同应用之间进行通信,首次启动app时,系统会自动实例NotificationProxyBroadcastReceiver,并注册到系统中。注册动态广播时需要进行注销操作,否则可能会造成内存泄露;重复进行注册或注销也是不被允许的。
Service服务即后台服务,当使用service服务时,需要在AndroidManifest.xml中声明,本次测试的apk在AndroidManifest.xml中声明如下,
service是独立于activity组件的,在后台执行一些操作,如当需要从服务器定期获取数据时,此时就需要用到service。
除了四大组件中存在安全漏洞,在调用web接口时同样会出现各种web漏洞,如sql注入漏洞、xss漏洞、越权、未授权等相关漏洞,截图为某个app的http请求数据包,通过测试发现其post数据包中含有越权访问的漏洞,可通过某个参数越权查看他人的账户信息。
总之app的漏洞可能出现地方有很多,值得我们关注的地方还有很多,如数据传输过程中是否加密,数据在本地存储中又是否加密、intent启动activity组件是否安全等等。
这么多app,作为普通用户使用者还是没法对app做到安全检测的,那么应该如何去防止个人信息因为app遭到泄露呢?
l 首先建议在正规的渠道去下载app,防止下载到的app被修改编译过,不是原版应用;
l 如果没特殊要求不建议将手机进行root处理;
在安装应用程序时,请注意其所需的开放权限,并关闭不必要的权限,例如位置信息、读取手机联系人等
l 可在手机上安装合适的杀毒软件,定期进行查杀并清理没用的软件、程序包等;
l 定期升级相关app,修复老版本存在的bug。
以上是如何浅谈APP存在的安全问题的详细内容。更多信息请关注PHP中文网其他相关文章!