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 app安全技术总结相关推荐

  1. Xcode couldn‘t find any iOS App Development provisioning profiles matching ‘com.example.***‘

    在更新完iOS14.3后,Xcode真机调试时报错,无法进行真机测试: 报以下错误: No profiles for 'com.example.software.Login' were found: ...

  2. ios app 砸壳

    这里介绍使用dumpdecrypted砸壳.原理是用DYLD_INSERT_LIBRARIES这个环境变量加载脱壳的动态链接库dumpdecrypted.dylib 1.ssh连接上越狱的机器,输入密 ...

  3. iOS App 连接外设的几种方式

    原创作者: Max_Marry 文章地址: http://www.jianshu.com/p/852bf92c5c92 随着近年来车联网和物联网的兴起,智能家居和智能硬件的逐步火热,越来越多的 App ...

  4. iOS App上架流程(2016详细版),真心很详细。

    一.前言: 作为一名iOSer,把开发出来的App上传到App Store是必要的.下面就来详细讲解一下具体流程步骤. 二.准备: 一个已付费的开发者账号(账号类型分为个人(Individual).公 ...

  5. iOS App上架流程

    一.前言: 作为一名iOSer,把开发出来的App上传到App Store是必要的.下面就来详细讲解一下具体流程步骤. 二.准备: 一个已付费的开发者账号(账号类型分为个人(Individual).公 ...

  6. iOS APP提交上架最新流程

    iOS APP提交上架最新流程 反复提交的过程中对上架流程熟悉了好多,写篇帖子送给同为菜鸟的你,如果里面有很菜的东西,大牛请自动忽略,毕竟这也是还为菜鸟的我的备忘录呢! 首先得描述一下各个证书的定位, ...

  7. Xcode7.1环境下上架iOS App到AppStore 流程 (2)

    前言部分 part二部分主要讲解 iOS App IDs 的创建.概要文件的配置.以及概要文件安装的过程. 一.iOS App IDs 的创建 1)进入如图1所示界面点击右上角箭头所指的加号 进入iO ...

  8. iOS App上架流程(2016详细版)

    iOS App上架流程(2016详细版) 原文地址:http://www.jianshu.com/p/b1b77d804254 感谢大神整理的这么详细 一.前言: 作为一名iOSer,把开发出来的Ap ...

  9. ipad php mysql_如何用PHP/MySQL为 iOS App 写一个简单的web服务器(译) PART1

    原文:http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app 作为一个i ...

最新文章

  1. C++this指针的用法
  2. 工作303:接口返回的上传地址默认是可以调用的
  3. JAVA知识基础(七):封装
  4. 《论道HTML5》内容技术分享活动
  5. USACO-Section2.2 Party Lamps
  6. 电商平台实战经验:电商中的Hadoop生态系统应用
  7. 谈天津地铁之为民服务
  8. MySQL 随机获得一条数据的方法
  9. 一个H264流,保存成多个文件需要注意的两个问题
  10. springboot框架图解
  11. 快门速度,光圈,感光度
  12. hadoop运行程序时报错java.net.ConnectException: java.net.ConnectException: 拒绝连接;
  13. MSDC 4.3 接口规范(24)
  14. 【飞桨PaddleSpeech语音技术课程】— 一句话语音合成全流程实践
  15. c#中屏蔽窗体关闭的消息
  16. 实用网站集锦(2021-11-20)
  17. 力扣(300,674)补9.11
  18. 医院PACS系统之简介
  19. vue2和vue3中点击复制粘贴
  20. MongoDB的学习-安装与springboot的整合

热门文章

  1. php js漂浮,基于javascript实现全屏漂浮广告_javascript技巧
  2. springcloud-服务熔断
  3. 新来的00后实习生太牛了,已经被取代了.....
  4. STM32——EMWIN基础显示(一)
  5. 我爱你中国,我爱你中华民族
  6. jsp中遇到${}${brand.id}${brand.brandName}的数据不显示的处理办法
  7. 菜鸟从硬盘安装LINUX (双启动)
  8. 【马红“名师+”研修共同体】总结提升 同心筑梦
  9. 2016NHOI小乙 第一题 蛋糕
  10. laravel跨库查询