知物由学 | 见招拆招,Android应用破解及防护秘籍 (2)

知物由学 | 见招拆招,Android应用破解及防护秘籍


登录安全风险

登录安全也是不容忽视的安全风险之一,包括界面劫持风险和键盘记录风险。

知物由学 | 见招拆招,Android应用破解及防护秘籍


二、移动安全进阶

被二次打包,被恶意利用;被破解,敏感信息泄漏;游戏出现外挂,影响收入......诸如此类的恶意手段对于企业的利益来说破坏性极大,为了保护知识产权,也为了响应《网络安全法》
和监管部门的要求,提高防护等级、实现安全进阶显得尤为重要。一般而言,移动安全的进阶包括四大步骤:安全监测、数据保护、代码保护和多端联动。

知物由学 | 见招拆招,Android应用破解及防护秘籍


安全检测

安全检测是移动开发安全防护的第一步,通常需要检测客户端程序安全、敏感信息安全、密码软键盘安全性、安全策略设置、手势密码安全性、通信安全、业务功能测试、配置文件、拒绝服务、本地SQL注入等方面。而在各威胁类型下,还有各种复杂的子类也需要加强检测。

知物由学 | 见招拆招,Android应用破解及防护秘籍

在安全检测中,最主要的是帮助产品规避安全风险。据统计,2018年已知的部分移动开发漏洞包括ZipperDown安全漏洞、Janus签名漏洞、应用克隆漏洞、RCE漏洞、Google Android缓冲区溢出漏洞......开发应该关注这些漏洞并想办法规避这些风险。

数据保护

如下图所示,抓包是数据截取中经常会用到的手段。所以开发者需要对帐号、密码进行加密处理。不过这还远远不够,其中仍会存在通信风险,给入侵者以可趁之机。

知物由学 | 见招拆招,Android应用破解及防护秘籍


如下所示,即演示了在帐号、密码都进行了加密处理的情况下仍能突破保护层窃取数据。某APP登录过程中敏感信息已经加密,拦截A登录设备请求RO就能获取加密后的数据,在另外一台设备B上拦截登录请求R1,把RO数据填充到R1中,B设备即可显示登陆成功。

知物由学 | 见招拆招,Android应用破解及防护秘籍


这种情况下,做好HTTPS双向认证就是很重要的一大步骤了,起码要做好单向认证,就是客户端校验服务端合法证书。首先在服务端验证时间戳、设备信息和IP;在客户端进行加密,包括敏感信息加密、时间戳、设备信息和序列号;然后将信息安全存储到本地存储之中。在服务端和客户端的传输中,要注意客户端要校验服务端证书,防止中间人进行劫持攻击。

输入保护也是数据保护的重要组成部分,开发者可以开发自定义的密码输入键盘。为防截屏、录屏,建议不要使用手机里自带的输入法输入密码,以防止键盘记录。

总的来看,数据保护可以说是安全保护中最为重要的一步,通信数据、存储数据等重要敏感数据都需要经过加密并加入校验信息。此外,还有一些安全建议:HTTPS并没有想象中那么安全,所以建议不要使用自定义加密算法;本机存储数据加密并且拷贝到其它手机不能使用;尽量一机一密、常用设备登录.....

代码保护

基础的代码保护方法包括以下五个方面:

编写Proguard代码混淆,SDK也要混淆编写;

代码Native化,将Java转C++、Dex转到so;

白盒加密,密钥加密,但不要简单的把密钥写在代码中;

去日志化,因为日志会暴露很多代码逻辑;

签名校验,防止重打包。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwypyg.html