移动安全漏洞分析报告(转)

随着移动互联网的发展和智能手机的普及,基于android系统的各种app出现爆发式增加,但在增加的同时,一个不容忽视的问题愈来愈重要:安全。android


漏洞扫描方式主要分为静态和动态,静态扫描的漏洞类型主要包含SQL注入风险、webview系列、文件模式配置错误、https不校验证书、database配置错误等。动态扫描的漏洞类型主要包含拒绝服务攻击、文件目录遍历漏洞、file跨域访问等。web


本报告选取11类android app中同等数量的热门app,其活跃用户量可覆盖83%的移动端网民,根据对这些app的漏洞检测,获得如下结论:sql


参与检测的android app中,近97%的app都存在漏洞问题,且平均漏洞量高达40个。跨域


安全类app漏洞问题最多,其漏洞总量499个,占全部类别app漏洞总量的21%。安全


新闻、旅游类app相对最不安全,其各自漏洞总量约240个,且其中高危漏洞量占比30%。app


游戏类app相对最安全,漏洞总量约57个,且其中高危漏洞占比约2%。函数


从测试结果来看,android app的安全问题不容乐观,漏洞的存在尤为是高危漏洞,会对app开发者甚至用户带来较大影响。测试

 

第一章  Android APP漏洞现状编码


为了解android app的整体现状,报告中将app概括为11个类别:健康、娱乐、安全、教育、新闻、旅游、游戏、社交、购物、金融、阅读。选取11类app中等量热门app,并对漏洞扫描产品进行静态和动态检测,扫描结果以下:spa


从漏洞类别来看,android app漏洞中排在首位的是sql注入类漏洞,占比38.2%,其次是webview漏洞,占比35.4%。


从漏洞风险级别来看,android app中高危漏洞占20.7%,低危漏洞占79.3%,其中高危漏洞主要集中在webview系列和https证书未校验上。

             
SQL注入类漏洞占比38.2%,主要是代码中未过滤用户输入,攻击者可经过提交恶意sql查询语句达到其做恶目的。Sql注入虽大部分属于中低危漏洞,但仍可形成敏感数据、系统最高权限被窃取等问题。


Webview的一些高危漏洞,主要由代码中使用addJavascriptInterface等危险函数、使用不校验证书等因素致使。这些漏洞可远程执行代码,对用户远程安装恶意软件。
Https相关的高危漏洞,主要由https使用ALLOW_ALL_HOSTNAME_VERIFIER等参数校验证书,没有对主机等信息进行校验致使,这些漏洞会引起攻击者轻易劫持https会话、嗅探用户密码和其余敏感信息等问题。


高危漏洞潜藏着巨大的安全问题,但从测试结果来看,不少android app都存在高危漏洞问题,其安全性使人担心。

 

第二章  Android APP漏洞问题分析


本章将对app的漏洞扫描结果进一步分析,首先将分析漏洞的静态和动态检测结果,其次将总结概括漏洞产生的缘由。


2.1  各种别app漏洞状况分析


1.  漏洞的静态扫描结果分析


对11个类别同等数量的热门app进行静态扫描,各种app的安全状况不尽相同:


参与测试的app中近97%的app都有安全漏洞,且平均漏洞量达40个。


安全类app漏洞问题最多。


在检测到的全部漏洞中,安全类app的漏洞总量多达499个(约占总漏洞量21%),其中高风险漏洞占比约2%,总体而言,即使是安全类app,亦存在较多的安全问题。


新闻、旅游类app相对最不安全


新闻、旅游类app漏洞总量均超230个(约占总漏洞量的10%),且其中高风险漏洞量占比高达30%,在全部app中相对最不安全。


  
游戏类app相对最安全


游戏类app不管是漏洞总量,或是其中的高风险漏洞占比均较少,在全部app中相对最安全。

            

2.  漏洞的动态扫描结果分析


对11个类别同等数量的热门app进行动态扫描,扫描结果几乎都是拒绝服务攻击类漏洞,未发现文件目录遍历、file跨域访问等漏洞。


从如下数据图能够看出,各种别app或多或少都存在拒绝服务攻击漏洞,尤为以金融类(37个)、娱乐类(35个),购物类(32个),安全类(28个)为重,而游戏类的拒绝服务攻击漏洞总量相对最少(3个)。


拒绝服务漏洞实际上是组件暴露问题,组件一旦被暴露,特定的恶意数据就可写入组件,从而致使该app崩溃,形成拒绝服务,进而影响app开发者和用户的利益。

             

3.  总结


以上分析数听说明android类app的安全问题并不容乐观,须要进一步探究形成漏洞的缘由以及解决方案,以尽可能避免漏洞的产生及弥补安全问题带来的影响。


2.2  App漏洞缘由分析


Android app的漏洞类型不少,如SQL注入、webview系列漏洞、文件模式配置错误、HTTPS不校验证书、拒绝服务攻击等,形成漏洞的缘由能够归结为如下两类:


1.  App开发者自身的问题


a)  编码不规范


不少公司对编码规范没有要求,或app开发者没有按照编码规范来进行编码,容易致使敏感信息泄露,好比日志打印问题、在发行版本中没有关闭日志打印功能等。


b)  安全意识不够


不少android函数的参数需慎用,如经常使用函数openFileOutput,若是设置mode参数为Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE,就容易泄露android app的数据。另外,接口处理须要更加严谨,例如暴露了一个接口,容许运行用户输入的信息,若对信息未作任何处理,就容易引发拒绝服务攻击等安全问题。


2.  Android上0day的发现


Android上0day的发现,可致使android app之前安全的功能变得不安全,在android系统没有补丁的状况下,需及时在android app上打补丁,但鉴于不少android app开发者对漏洞信息不敏感等缘由,并未作到及时修补,从而致使漏洞的存在。


总之,Android app的安全问题,很大程度上多是开发者犯下的低级错误。较为有效的解决办是可以在代码编写过程当中使用SDL编码流程,同时使用漏洞扫描产品对app进行检测,不断修补自身app的安全问题。安全无小事,全部app开发者都应重视。

 

第三章 总结


本次检测采用了11个类别app中同等数量的热门app,共扫描出近2500个漏洞,平均每一个android app有40个安全漏洞,且约97%的测试app或多或少都存在安全漏洞。这些数据反映出android app漏洞问题的严峻性,在app市场上,不少android app都存在潜在的安全风险,一旦被利用,会给用户和开发者带来很大影响。


从漏洞检测结果来看,android app的漏洞问题不容乐观,这些问题是否能够规避?是否有自动化的漏洞扫描产品供app开发者使用?是否能够下降开发者和用户的利益受损程度? 答案是确定的,除了增强app开发者的安全意识,在app发布以前利用安全产品进行漏洞扫描检测能够及早发现隐含的安全问题,保护开发者利益,保护用户利益。

 

报告来源:阿里巴巴移动安全团队

相关文章
相关标签/搜索