前言

安全方面的话题总是聊不完的。这不,国外一家有名的专门攻击别人的安全公司 Hacking Team 自己被 Hack 了,结果有 400 多 G 的攻击资料泄漏出来,包括一些 0-day 的漏洞。这里 有别人写的这次攻击的分析。

我大概看了一下这次的泄漏出来的 资料分析,发现里面还有一些涉及 iOS 的安全。比如:

  1. 一个用于记录密码的 iOS 键盘。
  2. 一个 iOS 网络底层的代理。
  3. 一个 MAC OS 木马。

这些攻击都挺难防的,拿 MAC OS 的木马来说,基本上 Mac 用户都是不装杀毒软件的。虽然大部分应用都是从 Mac App Store 上下载,但是也有不少应用是用自己的渠道来发布的,所以用户稍不注意可能就会中招。

《iOS 应用安全攻防实战》

《iOS 应用安全攻防实战》 这本书的中文版将要出版了,邀请我写一篇推荐序。是一本相当不错的 iOS 安全方面的著作,所以在此推荐给大家。

《iOS 应用安全攻防实战》的两位译者实力也很强,都是安全方面的专家。其中:

  • 译者肖梓航是 Palo Alto Networks 高级研究员,主要方向是移动平台反病毒和软件安全,也是著名的安全社区「看雪论坛」的版主。
  • 译者李俱顺 @s1mbily 曾就职于支付宝大安全,现在是杭州云柚科技联合创始人。

iOS8 应用安全新挑战,也非常适合广大 iOS 开发者用来普及安全知识。

《iOS应用逆向工程》

推荐序

以下为 《iOS 应用安全攻防实战》 推荐序《为你的iOS程序穿上安全的外衣》正文:

从有计算机程序开始,安全问题就一直存在,而互联网的流行使得安全问题被进一步放大,所以现在各大互联网公司对于安全都非常重视。我曾经所在的网易公司就有专门的安全部门。安全部门的同事会扮演黑客的角色,对网易旗下的产品进行各种试探性的攻击,从而发现公司产品在安全方面的问题。

在移动互联网快速发展的今天,iOS 应用由于直接运行在用户的手机上,相比运行在服务器的后台服务,更有可能被黑客攻击。恶意的一些攻击手段包括劫持网络通讯、窃取本地数据以及篡改程序行为。很多人把安全问题完全交给 iOS 系统自带的沙盒(Sandbox),但是仅仅靠沙盒也是不够的。因为如果不做其它的防护,一旦沙盒被攻破,那么程序的安全性就完全无法保障了。

而在中国,这样的问题尤为突出,因为中国对软件的版权保护不力,使得盗版软件流行。而 iOS 应用如果需要安装盗版软件,越狱系统是最为方便的方式(另一种方式是用企业签名)。越狱催生出一些 iOS 盗版应用市场,从而出现一些盗版的游戏、软件以及木马病毒的传播。

做为 iOS 应用的开发者,我们当然不希望自己的游戏被修改成无限道具和金币,自己的应用被修改成无需付费就使用应用内付费功能,更不希望黑客在自己的应用中植入木马,窃取受害用户的帐号密码等敏感信息。而这一切,都是沙盒无法保护的。我们需要做更多的安全方面的工作,才能抬高应用被破解和修改的成本,使得自己的应用更加安全。

但是,「猫和老鼠」的游戏每天都在上演,在我们不断增加防御手段的同时,黑客的攻击手段也在不断升级。所以,安全问题会是一个永不过时的话题,没有绝对意义上的安全。我们能做的,就是不断学习和研究,使得当前自己应用的安全水平已经能够防止大多数别有用心的黑客攻击。

那国内 iOS 安全的现状是什么样呢?就我所知,几乎 99% 的 iOS 应用都没有做破解方面的防护。但是,如果你简单做一些代码混淆、反动态库注入、反调试方面的工作,就可以将应用被破解的难度大大提高。另外,如果你使用 IDA 进行 iOS 代码反汇编的话,你几乎可以看到你想看的所有应用的源码。

那我个人为什么对安全这么感兴趣呢?其实说来话长,我高中时就开始学习编程,当时的梦想是当一名黑客。于是安全方面的学习就一直伴随着我的职业生涯。而我在学习 iOS 移动开发的时候,带着习惯,我也就开始学习 iOS 开发安全方面的知识。

还记得我学习 iOS 开发安全的时候,曾经看过本书的英文版。本书的内容同时包括了攻击和防御相关的内容,非常适合 iOS 开发工程师学习,并且将其中的实践带到自己的应用中,以保护自己的应用不被攻击。我并不期望本书能够解决所有的安全问题,但是我相信,看过本书的朋友,能够将自己的 iOS 应用在安全方面的得分,从不及格提升到 80 分。

最后,感谢本书的作者、译者,以及电子工业出版社在 iOS 安全方面所做的贡献。

让我们再谈谈 iOS 安全的更多相关文章

  1. 谈谈iOS开发如何写个人中心这类页面--静态tableView页面的编写

    本文来自 网易云社区 . 一.本文讲的是什么问题? 在开发 iOS 应用时,基本都会遇到个人中心.设置.详情信息等页面,这里截取了某应用的详情编辑页面和个人中心页面,如下: 我们以页面结构的角度考虑这 ...

  2. 从deque到std::stack,std::queue,再到iOS 中NSArray(CFArray)

    从deque到std::stack,std::queue,再到iOS 中NSArray(CFArray) deque deque双端队列,分段连续空间数据结构,由中控的map(与其说map,不如说是数 ...

  3. 谈谈iOS Animation

    零.前言 这里没有太多的代码细节,只是探索iOS动画的基本概念,以及其抽象模型,数学基础等.我们学习一个知识的时候一般有两个部分,抽象部分和形象部分,抽象好比语言的语法,是规则,形象好比具体的句子,可 ...

  4. 谈谈iOS中的锁

    1 前言 近日工作不是太忙,刚好有时间了解一些其他东西,本来打算今天上午去体检,但是看看天气还是明天再去吧,也有很大一个原因:就是周六没有预约上!闲话少说,这里简单对锁来个简单介绍分享. 2 目录 第 ...

  5. HTML 5最终确定,八年后,我们再谈谈如何改变世界

    从原:http://www.36kr.com/p/216655.html 我们第一次谈论HTML5要改变世界大概是由于乔布斯,他坚持在iOS上不兼容Flash,在Adobe统治多媒体开发的那个年代.这 ...

  6. 从uibutton的点击谈谈ios的响应事件

    最近在做一个项目,接连遇到两个关于点击事件的问题. 1.点击button不能响应事件的. 2.子view的frame超出了父view的容器大小,也不能响应点击事件. 效果图如右: 1.第一张图中的弹出 ...

  7. 谈谈iOS获取调用链

    本文由云+社区发表 iOS开发过程中难免会遇到卡顿等性能问题或者死锁之类的问题,此时如果有调用堆栈将对解决问题很有帮助.那么在应用中如何来实时获取函数的调用堆栈呢?本文参考了网上的一些博文,讲述了使用 ...

  8. 谈谈 iOS 中图片的解压缩

    原文 对于大多数 iOS 应用来说,图片往往是最占用手机内存的资源之一,同时也是不可或缺的组成部分.将一张图片从磁盘中加载出来,并最终显示到屏幕上,中间其实经过了一系列复杂的处理过程,其中就包括了对图 ...

  9. 【转】谈谈 iOS 中图片的解压缩

    转自:http://blog.leichunfeng.com/blog/2017/02/20/talking-about-the-decompression-of-the-image-in-ios/ ...

随机推荐

  1. Java线程状态中BLOCKED和WAITING有什么差别?

    刚才在看CSDN的问答时.发现这个问题. 原问题的作者是在观察jstack的输出时提出的疑问.那么BLOCKED和WAITING有什么差别呢? 答复在JDK源代码中能够找到,例如以下是java.lan ...

  2. Vbs脚本经典教材

    转载:http://www.cnblogs.com/BeyondTechnology/archive/2011/01/10/1932440.html Vbs脚本经典教材(最全的资料还是MSDN) —为 ...

  3. Mysql 性能监控及调优

    死锁概念: 两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象 1.监控死锁(innotop): (1) 启用 innodb_status_file 在/etc/my.cnf添加如 ...

  4. AAuto无法关闭CMD窗口怎么办

    如下图所示,当执行了io.print函数之后,打开的CMD窗口无法使用关闭按钮关闭,其实只要点击左上角的控制台,把钩去掉,该窗口即可关闭.

  5. 改用MyAnalyzer的KMeans聚类算法

    <strong><span style="font-size:18px;">/*** * @author YangXin * @info 改用MyAnaly ...

  6. 升级Jekyll 3.0

    每一次的升级都得又一次折腾一次,jekyll也不例外 从jekyll 2.5.2 升级为jekyll 3.0.1 错误一: jekyll 3.0.1 | Error: Permission denie ...

  7. LeetCode Subsets I& II——递归

    I Given a set of distinct integers, S, return all possible subsets. Note: Elements in a subset must ...

  8. same-tree——比较两个二叉树是否相同

    Given two binary trees, write a function to check if they are equal or not. Two binary trees are con ...

  9. layui-简单辅助元素 - 页面元素

    本篇主要集中罗列页面中的一些简单辅助元素,如:引用块.字段集区块.横线等等,这些元素都无需依赖任何模块 <!DOCTYPE html> <html> <head> ...

  10. robotframework使用之RIDE的底部的日志没显示怎么办?

    问题:RIDE的底部的日志没显示怎么办? 解决办法:在Python27的安装路径下D:\Python27\Lib\site-packages\robotide\contrib\testrunner下的 ...