据统计,每年至少新增 150 至少超过1万个移动恶意软件 1600 一万件移动恶意软件攻击事件。
而 Android 由于其开放的生态环境,安全问题相当严重。在应用市场上,有很多 Android App 都有潜在的安全风险,一旦使用,就会对用户和开发者产生很大的影响。
同时,随着《网络安全法》和《个人信息保护法》等相关法律法规的出台和实施,移动应用开发者还需要与政府部门合作,共同创造安全的移动应用环境,促进网络安全的标准化、安全和健康发展。
为帮助移动开发者有效应对安全要求,mPaaS 许多模块都采用了安全策略:
-
安全加固移动应用
-
隐私合规检测
-
RPC 的加签加密
-
离线包的签名验证
-
移动同步的tcp ssl机制
-
加密配置热修复
-
……
本文将介绍上述常见情况 mPaaS 几个安全设计模块,便于后续更好的使用。
随着政策法规和监管标准的不断细化和深化,监管查处力度不断加大,App 政策风险也在逐渐增加。
,根据国家有关法律法规和行业规范,移动 App 合规分析隐私安全、个人数据收集和使用。
帮助企业和个人信息收集、权限使用场景、隐私政策等维度 App 开发人员识别安全风险,提供相应的专家整改建议,帮助客户避免监管处罚,通过货架审核。
结合阿里内部移动应用安全加固能力的升级,我们现在 mPaaS 中对外输出移动应用安全加固能力。
针对市场上移动应用普遍存在的破解、篡改、盗版、钓鱼欺诈、内存调试、数据窃取等安全风险,mPaaS 移动安全加固为 App 提供稳定、简单、有效的安全保护,改进 App 保证整体安全水平 App 不被破解和攻击。
在应对 Android 常见的攻击手段,如 在反编译、二次包装、动态调试等方面,我们也注重性能和兼容性。
-
加固能力经历了淘宝、菜鸟等数亿业务的实践,安全有保障;
-
我们支持兼容性。 4.2 到 Android Q 的 版本;
-
能够支持 arm、x86、x64 在复杂的环境下,系统架构运行稳定,奔溃率低;
-
此外,通过混淆类的保护,增加攻击者的逆向 App 难度,让攻击无法开始。
作为 mPaaS 最重要的组件之一,RPC 提供客户端和服务端的安全通信渠道,主要包括额外的签名和加密。额外的签名解决方案是防止客户被伪造,加密解决方案是防止要求数据泄露。
整体流程:
-
在 mPaaS 当后台初始化应用时,它将是每一个 App 创造一个唯一的appSecret;
-
客户端通过appid、WorkspaceID、appSecret等待信息,生成无线保镖图片。通过加密无线保镖模块,确保存储在客户端 appSecret 的安全性;
-
当客户端要求时,从无线保镖那里获得 appSecret,同时添加 OperationType、time、requestData 等因子做 MD5 计算,添加 header 发到 MGS 网关;
-
MGS 收到后,按照同样的方法再计算一次 MD5.如果一致,则通过验证。
优点:通过无线保镖机制,确保客户端内置 appSecret 的安全性。
整体流程:
-
通过 openssl 生成非对称密钥,客户端保存公钥,服务端报错私钥;
-
每次请求客户端 RPC 通过第一步生成的非对称密钥加密生成新的对称密钥 SecKey;
-
客户端使用对称密钥加密原始数据,以获得加密数据 SecData;
-
移动网关通过保存的私钥对准 SecKey 解密获得对称密钥;
-
对称密钥通过上一步获得,对加密数据SecData解密,获取原始数据。
优势:RPC 采用混合加密模式,采用非对称加密和对称加密的组合。如果只使用对称密钥,虽然性能更好,但不能保证足够的安全。如果单独使用不对称加密,虽然保证了安全,但会导致性能差,不合适RPC这种大量通信场景。
所以RPC这种混合加密模式结合了两者的优点。
为了防止数据被抓取软件抓取,客户端设置了防止抓取软件,并通过设置网络数据库来解决被抓取软件的风险。代码如下:
离线包
离线包作为一种使用多种离线模块的业务,提供了签名验证机制,以确保本地离线包模块不被篡改。
整体流程:
-
提前通过 openssl 在客户端内生成公钥和私钥,私钥存储在服务端;
-
在包装离线包时,服务端对当前离线包文件进行了处理 MD5 计算,然后通过非对称密钥加密计算值,生成加密后的签名数据,并与离线包发送到客户端;
-
每次客户端打开离线包时,通过客户端内的公钥获取发布的公钥 MD5 和本地的离线包文件做 MD5 对比,如果一致,验证通过,如果不一致,删除离线包,直接访问 fallback 资源。
优势:
-
因为每次打开离线包都要验证,确保离线包的来源正确,不被篡改;
-
校验失败后直接降级到fallback地址,减少对客户使用的影响
MDS 实时发布
MDS 实时发布服务提供了 apk 发布功能,同时确保下载 apk 文件不被篡改,基于 MD5 完整性验证。
在上传 apk 它将基于当前 apk 生成 MD5 本地安装时,本地下载文件 MD5 会议和服务端发布 MD5 如果匹配成功,将继续安装。
服务端发布 MD5 如下图所示:字段:
MSS 移动同步
移动同步服务 Sync 是基于 TCP 为保证安全,Sync 可以配置为 TCP SSL 通信模式。
当指定 Sync 的端口号为 433 端口结束后,客户端将开始基于 TCP SSL 实现长连接后,需要通过长连接到服务端 F5 或其他类似的负载装置完成 SSL 卸载,最后到 MSS 实现长连接。
如下图所示:
随着移动应用的快速发展,用户越来越关注移动应用涉及的隐私和安全问题。
移动应用程序涵盖了大量的用户个人数据。一旦发生泄漏,可能会对个人和社会产生重大影响,也会对移动应用行业的长期发展产生毁灭性的打击。
移动应用开发者在开发过程中也要注意规范性和安全性,敬畏安全问题,防范合规风险。