您的位置首页  桂林文化  娱乐

娱乐、生活类APP成安全风险重灾区APP安全何去何从

娱乐、生活类APP成安全风险重灾区APP安全何去何从

  随着移动端用户群体的快速扩张,移动APP数量也呈现爆发式增长,进而APP自身的“脆弱性”也日益彰显。据统计,每年至少新增150万种移动恶意软件,造成超过1600万起的APP安全实践,中间包含恶意扣费、用户个人隐私泄露、资金盗刷、流量资源消耗等安全问题。在大量的APP安全事件中,主要是用户姓名、地址、账号、密码、手机号等信息泄露严重,尤其是游戏娱乐和生活服务类的APP是安全实践爆发的重灾区,这对移动用户的个人信息及财产安全带来巨大威胁和挑战。在此背景下,本次内容将从APP应用安全的重要性、APP应用关注的安全、APP安全如何实践、APP安全的挑战四个方面进行分享,希望能为开发者带来一些新的启发。

  首先,从政策层面来说,APP应用必须符合安全合规的标准,它保证APP应用上到市场并保证APP正常运营;APP正常运营上线前,需要经过政府监管的管理部门(网信办、各地区的网安)的审查,只有通过合规检测的APP才能上线,未通过审查的会存在通报、下架风险;以下对APP安全合规检测高频的不合规事例:

  另外,从技术层面来说,APP应用如果没有做好安全防护,就算APP功能足够强大、APP用户数足够多,也无法长久正常运营。APP应用功能开发和安全防护是相辅相成的,如APP被反编译后,功能代码逻辑会被暴露、APP被二次打包后可能会存在插入恶意代码、营销广告的风险;APP被破解后,山寨版APP会出现业务逻辑漏洞。下面就针对这些情况做下简细的分析。

  APP实质是一个zip的压缩包,将APP反编译,其实就是一个解压缩包的过程。下图是APP反编译后的源代码。

  APP被反编译后,APP应用本身往往会被添加广告代码、被添加恶意代码,然后再进行重新编译打包、签名最终变成一个山寨盗版的APP。

  APP应用没做好安全防护,APP中存储或者读取的数据容易被盗取、关键功能逻辑容易被篡改、核心资源文件容易被盗取使用。下图就是某论坛的专业破解详情。

  作为开发人员,更多关注点可能在于APP的业务功能、APP的性能、代码逻辑、APP的代码是否存在内存泄漏、网络通信是否正常;那么作为开发者还应该关注哪方面的安全?在移动APP安全风险问题上,应该重点关注开发阶段和运营阶段这两个阶段的防护,针对移动APP进行安全防护,下面进行罗列了,在这两阶段着重的关注点:

  在APP合规管控越来越严格的背景下,要求APP在上架之前一定要先做好合规检测和加固处理,对APP加固可以提高APP的安全性、提高APP被逆向分析破解的门槛、同时通过加固保护可以提高过安全合规的检测。APP加固主要是对APP中的dex文件、ELF文件、资源文件等进行保护,以下对APP中的关键文件结构做简短梳理总结:

  主要需要对elf文件进行防护,主要从字符串信息、代码逻辑结构,数据存储这些维度进行防护,可以采用代码虚拟化保护技术。

  开发人员在开发调试APP过程中, 会进行做一些日志的输出,日志信息往往会记录着一些敏感信息如:用户名、密码、函数调用栈信息、Token、Cookies、网络请求IP或URL等等,在发布的APP过程中往往会漏掉或者忘记将日志输出的信息进行删除。Android的输出日志一般通过基于调用系统的log、printf等函数,然后利用android的sdk中的monitor工具就可以输出日志。这会给APP的安全带来一定的威胁,攻击者通过分析日志信息就可以作为攻击的突破点。

  APP运行过程中,APP会将一些加密数据进行解密并运算,这个过程中就要防止这些解密后的数据被分析和盗取;这个涉及APP运行的内存转存(内存dump)、APP运行过程中关键函数的HOOK。

  在APP通信过程中数据传输协议以及字段数据保护。网络通信数据就是要关注APP中采用TCP、UDP、HTTP、HTTPS等通信过程中的数据包安全.在Android中,利用设置代理方式对APP包通信包进行抓取、修改、伪装包等操作。

  对APP的安全及合规检测,一般可将调试工具、静态代码、动态数据三个维度相结合,通过这三个维度,那么APP就会达到相对的安全性(没有绝对的安全)。

  IDA、frida、xposed、Fiddler等市面上的这些动态调试APP工具,如无法正常调试APP,这就需要使用到反调试技术和反注入技术,在APP运行的时候通过针对这些工具的一些调试原理进行相对应的安全防御方案。

  APP的静态代码主要是通过利用第三方的调试工具对APP的代码进行做反编译、分析反编译后的汇编代码。APP涉及的汇编语言有:smali汇编、Thumb汇编、arm汇编。对于dex文件(java代码)可以通过利用android proguard工具进行对java代码的函数名称、变量名称进行初级的混淆处理。

  通过前面的方案利用工具将类名称、函数名称做了混淆,那么从代码层面上来说,我们可以从以下几个思路提高代码的安全性:

  动态数据主要防护APP运行时的关键敏感数据,它也是攻击者最想要获取到的数据,通过这些数据攻击者可以做任何想做的事情。动态数据主要需要做好的防护有如下三点:1. 内存运行数据防护

  据统计,超97%的Android应用遭受盗版侵袭,病毒木马肆虐、流氓软件和钓鱼应用随处可见,严重影响了开发者收益、客户端安全和体验。随着移动APP市场的逐渐成熟,威胁与发展共生:

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186
  • 标签:最新的娱乐app
  • 编辑:夏学礼
  • 相关文章
TAGS标签更多>>