扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
本篇文章为大家展示了Android应用破解及防护是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
杂多ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
一、移动APP的安全风险
随着移动开发技术的不断发展,手机APP已经成为了人们生活中密不可分的一部分。但就目前的APP开发安全现状来说情况却不容乐观,盗版APP、恶意破解、APP劫持、数据泄漏、移动业务攻击等等......各种状况层出不穷。
因此,对于广大开发者和企业来说,移动APP的安全问题亟待解决。常见的安全风险包括有山寨危险、重打包风险、破解/数据泄露、以及登录安全风险。
山寨危险
山寨APP的问题由来已久,实际上,大部分APP都有过被仿冒的经历。据统计,热门应用平均有27个山寨APP,严重危害到了正版应用和用户的利益。如下图所示,通过简单的解包、逆向分析、代码拷贝、简单开发并打包就可以完成山寨应用上架,暴利产业链下还有更多的开发者趋之若鹜,仿冒形式也是多种多样。
在任意的应用商店中搜索“抢红包”,都会出现大批“克隆”的结果列表。
重打包风险
重打包风险主要是指二次打包,通过破解正版的APP进行二次打包上传至应用商城。这种仿冒形式成本低廉、操作简单,“打包党”们通过反编译工具向应用中插入广告代码与相关配置,再在第三方应用市场、论坛发布。常见的操作手段比如插入自己广告或者删除原来广告、通过恶意代码恶意扣费或插入木马、修改原来支付逻辑等等。
重打包不仅严重危害产品和用户的利益,还会对公司的口碑产生极度恶劣的影响。如下图所示,神庙逃亡即被打包党们进行了二次打包。
破解、数据泄露
金融、支付类App一直是数据泄露的重灾区,多达88%都存在内存敏感数据泄露问题。如下所示,即为常见的金融、支付类本地存储数据泄漏。
数据抓包,泄漏用户名和密码也是常见的状况之一。
登录安全风险
登录安全也是不容忽视的安全风险之一,包括界面劫持风险和键盘记录风险。
二、移动安全进阶
被二次打包,被恶意利用;被破解,敏感信息泄漏;游戏出现外挂,影响收入......诸如此类的恶意手段对于企业的利益来说破坏性极大,为了保护知识产权,也为了响应《网络安全法》
和监管部门的要求,提高防护等级、实现安全进阶显得尤为重要。
一般而言,移动安全的进阶包括四大步骤:安全监测、数据保护、代码保护和多端联动。
安全检测
安全检测是移动开发安全防护的第一步,通常需要检测客户端程序安全、敏感信息安全、密码软键盘安全性、安全策略设置、手势密码安全性、通信安全、业务功能测试、配置文件、拒绝服务、本地SQL注入等方面。
而在各威胁类型下,还有各种复杂的子类也需要加强检测。
在安全检测中,最主要的是帮助产品规避安全风险。据统计,2018年已知的部分移动开发漏洞包括ZipperDown安全漏洞、Janus签名漏洞、应用克隆漏洞、RCE漏洞、Google Android缓冲区溢出漏洞......开发应该关注这些漏洞并想办法规避这些风险。
数据保护
如下图所示,抓包是数据截取中经常会用到的手段。所以开发者需要对帐号、密码进行加密处理。不过这还远远不够,其中仍会存在通信风险,给入侵者以可趁之机。
如下所示,即演示了在帐号、密码都进行了加密处理的情况下仍能突破保护层窃取数据。
某APP登录过程中敏感信息已经加密,拦截A登录设备请求RO就能获取加密后的数据,在另外一台设备B上拦截登录请求R1,把RO数据填充到R1中,B设备即可显示登陆成功。
这种情况下,做好HTTPS双向认证就是很重要的一大步骤了,起码要做好单向认证,就是客户端校验服务端合法证书。首先在服务端验证时间戳、设备信息和IP;在客户端进行加密,包括敏感信息加密、时间戳、设备信息和序列号;然后将信息安全存储到本地存储之中。在服务端和客户端的传输中,要注意客户端要校验服务端证书,防止中间人进行劫持攻击。
输入保护也是数据保护的重要组成部分,开发者可以开发自定义的密码输入键盘。为防截屏、录屏,建议不要使用手机里自带的输入法输入密码,以防止键盘记录。
总的来看,数据保护可以说是安全保护中最为重要的一步,通信数据、存储数据等重要敏感数据都需要经过加密并加入校验信息。此外,还有一些安全建议:HTTPS并没有想象中那么安全,所以建议不要使用自定义加密算法;本机存储数据加密并且拷贝到其它手机不能使用;尽量一机一密、常用设备登录.....
代码保护
基础的代码保护方法包括以下五个方面:
1、编写Proguard代码混淆,SDK也要混淆编写;
2、代码Native化,将Java转C++、Dex转到so;
3、白盒加密,密钥加密,但不要简单的把密钥写在代码中;
4、去日志化,因为日志会暴露很多代码逻辑;
5、签名校验,防止重打包。
除去这些基础层面外,面对越来越复杂的入侵方式,一些进阶措施也是必备的,包括VMP、资源加密、动态反调试、防模拟器、防DUMP、防劫持、防注入......这就需要更全面的APP专业加固服务了。
多端联动
用户和APP是交互和反馈的关系,因此,多端联动能够带来更好的安全保护效果。
对于APP、后台、风控中心这三者来说,APP通过和用户交互获取数据,后台通过手机数据向风控中心提出安全请求,风控中心再通过设备指纹、黑名单、行为分析和业务模型向后台反馈结果,后台通过业务调整控制APP业务,并最终呈现给用户。
最后一步
当然这其中,人的安全问题也是比容忽视的。在安全防护中,人是最不可控的风险因素,因此要加强人员安全培训和安全管理。
上述内容就是Android应用破解及防护是怎样的,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流