iOS app安全技术总结

iOS app安全技术总结

        很多开发者认为,iOS系统的封闭性使APP更加安全。事实上,根据国外某安全服务商的最新调查显示:iOS前100名的付费应用中有87%均遭黑客破解。内购破解、源代码破解、本地数据窃取等,为iOS应用带来了诸多风险。常见的比如有恶意植入广告插件、扣费代码、替换支付链接,导致用户向私人账户付费、收集用户隐私、盗取用户收集通讯录、窃取金融APP账号密码,盗取资金等手段。这些都是很常见的灰色收入方式。针对如此严峻的形势,如何保证APP应用本身的安全防护就显得尤为重要。目前金融类应用主要面临的安全风险是:交易安全风险、敏感信息泄露、信誉安全风险等。

      交易安全:黑客通过破解客户端逻辑、伪造客户端请求、篡改用户交易流程,窃取用户资金。

       敏感信息泄露:通过反调试、注入。界面劫持、钓鱼木马等手段,窃取用户隐私信息。

       信誉安全:黑客对正版应用进行二次打包,插入广告、病毒等恶意代码后重新发布,窃取用户数据、威胁账户资产等,不仅影响用户权益,也导致正版应用的信誉受损。

       针对这些风险,app端需要从以下方面着手防护:

       1、风险发现:漏洞深入排查,监测仿冒软件

       利用漏洞扫描技术,对要上传的apk包进行扫描,包括漏洞和恶意代码的扫描。漏洞扫描是结合静态污点分析技术和动态模糊测试技术,让开发者快速定位发现app中的安全漏洞和风险,及时防止用户信息泄露和资金损失。恶意代码扫描则是采用杀毒引擎,采用多种机器学习算法识别恶意应用,自动提取特征码,能准确的定位到恶意的代码。利用仿冒监测技术,通过应用图标与代码相似算法识别和监测各种渠道、论坛等网络范围内的仿冒软件,防止用户因下载仿冒应用而导致资金损失。

     2、安全增强:安全组件、应用加固、实时监控

        利用(阿里聚安全)安全组件SDK,接入自己应用的代码中,从代码层面贯穿编译的整个过程,通过多层次的安全机制打造安全沙箱环境来防止应用被黑客和木马所攻击。实现用户数据的安全存储,保证用户的隐私数据不被泄露。同时能对开发者密钥进行安全管理与加密算法实现,保证密钥的安全性,实现安全的加解密操作。而且还具有人机识别功能,能识别机器软件的恶意注册或其他行为。

        应用加固是针对app的安装包进行直接加固,对app进行静态防护和动态防护。静态防护主要是利用符号混淆(将类名、方法名、变量名替换为无意义符号,如下图1:左为混淆前,右为混淆后)和字符串加密功能(如下图2顶部为加密前,底部为加密后)抹掉敏感的符号和明文信息,防止通过关键字符串定位业务代码,防止IDA Pro工具反编译后分析业务代码。以及代码混淆(如下图3:左为混淆前的流程图,右为混淆后的流程图)功能,进方法体中的代码做逻辑混淆,代码变形,代码膨胀处理,增加应用逻辑的分析成本,使得攻击者无法使用手动或自动化工具快速获取应用逻辑。并且能防恶意篡改,防内存窃取,防动态跟踪和注入等风险。

                       

图1(左:混淆前, 右:混淆后)

 

         图2(上:加密前,下:加密后 )

 

图3(左:混淆前流程图,右:混淆后流程图)

 

        使用实时监控技术展示应用全生命周期漏洞、恶意注入和篡改代码及仿冒应用情况,及时发现新增漏洞和恶意代码,及时感知攻击行为,避免后续的二次打包的风险。

    3、流程规范

       按照安全开发流程规范,通过在软件开发生命周期的每个阶段执行必要的安全控制活动或任务,避免设计缺陷、逻辑缺陷和代码缺陷,保证软件在开发生命周期内的安全性得到最大的提升,真正从应用产生的源头来避免安全风险。

你可能感兴趣的:(移动开发_IOS)