前言
安全方面的话题总是聊不完的。这不,国外一家有名的专门攻击别人的安全公司 Hacking Team 自己被 Hack 了,结果有 400 多 G 的攻击资料泄漏出来,包括一些 0-day 的漏洞。这里 有别人写的这次攻击的分析。
我大概看了一下这次的泄漏出来的 资料分析,发现里面还有一些涉及 iOS 的安全。比如:
- 一个用于记录密码的 iOS 键盘。
- 一个 iOS 网络底层的代理。
- 一个 MAC OS 木马。
这些攻击都挺难防的,拿 MAC OS 的木马来说,基本上 Mac 用户都是不装杀毒软件的。虽然大部分应用都是从 Mac App Store 上下载,但是也有不少应用是用自己的渠道来发布的,所以用户稍不注意可能就会中招。
《iOS 应用安全攻防实战》
在几个月前,电子工业出版社的老师找到我说,《iOS 应用安全攻防实战》 这本书的中文版将要出版了,邀请我写一篇推荐序。我正好以前看过它的英文版,是一本相当不错的 iOS 安全方面的著作,所以在此推荐给大家。
《iOS 应用安全攻防实战》的两位译者实力也很强,都是安全方面的专家。其中:
- 译者肖梓航是 Palo Alto Networks 高级研究员,主要方向是移动平台反病毒和软件安全,也是著名的安全社区「看雪论坛」的版主。
- 译者李俱顺 @s1mbily 曾就职于支付宝大安全,现在是杭州云柚科技联合创始人。
在写本文的时候,我还顺便检索到了译者李俱顺一次分享:iOS8 应用安全新挑战,也非常适合广大 iOS 开发者用来普及安全知识。
《iOS应用逆向工程》
即然都提到安全了,也顺便再给大家宣传一下,我的朋友吴航写的《iOS应用逆向工程 第2版》也在2个月前顺利出版了。本书第一版卖得很好,不过安全方面的内容业界更新得很快,所以他们将第1版中过时的内容进行了更新,同时增加了更多篇幅。
《iOS应用逆向工程 第2版》偏重攻击方面多一些,不过知道攻击方法后,防范方法也就相对容易想到了,所以同样推荐给大家。
送书
我从出版社要了 10 本 《iOS 应用安全攻防实战》,打算送给我的「iOS 开发」微信公众号的读者。具体的送书方式是:我会请一些 iOS 安全方面的朋友来分享一些内容,同时提一些问题,回答得好的朋友,即可获得赠书。
扫描以下图片即可关注该公众帐号。
推荐序
以下为 《iOS 应用安全攻防实战》 推荐序《为你的iOS程序穿上安全的外衣》正文:
从有计算机程序开始,安全问题就一直存在,而互联网的流行使得安全问题被进一步放大,所以现在各大互联网公司对于安全都非常重视。我曾经所在的网易公司就有专门的安全部门。安全部门的同事会扮演黑客的角色,对网易旗下的产品进行各种试探性的攻击,从而发现公司产品在安全方面的问题。
在移动互联网快速发展的今天,iOS 应用由于直接运行在用户的手机上,相比运行在服务器的后台服务,更有可能被黑客攻击。恶意的一些攻击手段包括劫持网络通讯、窃取本地数据以及篡改程序行为。很多人把安全问题完全交给 iOS 系统自带的沙盒(Sandbox),但是仅仅靠沙盒也是不够的。因为如果不做其它的防护,一旦沙盒被攻破,那么程序的安全性就完全无法保障了。
而在中国,这样的问题尤为突出,因为中国对软件的版权保护不力,使得盗版软件流行。而 iOS 应用如果需要安装盗版软件,越狱系统是最为方便的方式(另一种方式是用企业签名)。越狱催生出一些 iOS 盗版应用市场,从而出现一些盗版的游戏、软件以及木马病毒的传播。
做为 iOS 应用的开发者,我们当然不希望自己的游戏被修改成无限道具和金币,自己的应用被修改成无需付费就使用应用内付费功能,更不希望黑客在自己的应用中植入木马,窃取受害用户的帐号密码等敏感信息。而这一切,都是沙盒无法保护的。我们需要做更多的安全方面的工作,才能抬高应用被破解和修改的成本,使得自己的应用更加安全。
但是,「猫和老鼠」的游戏每天都在上演,在我们不断增加防御手段的同时,黑客的攻击手段也在不断升级。所以,安全问题会是一个永不过时的话题,没有绝对意义上的安全。我们能做的,就是不断学习和研究,使得当前自己应用的安全水平已经能够防止大多数别有用心的黑客攻击。
那国内 iOS 安全的现状是什么样呢?就我所知,几乎 99% 的 iOS 应用都没有做破解方面的防护。但是,如果你简单做一些代码混淆、反动态库注入、反调试方面的工作,就可以将应用被破解的难度大大提高。另外,如果你使用 IDA 进行 iOS 代码反汇编的话,你几乎可以看到你想看的所有应用的源码。
我还记得 2015 年的春节前夕,微信在其应用中做了一个抢红包的功能,但是这个功能还在测试中,所以被设置成永不开启。但是,我认识的一个做安全的朋友却用本书中介绍的 Cycript 工具,将这个功能打开了,结果造成了相关功能被提前泄漏到了网上。而一些破坏性更强的逆向攻击行为我都不敢将其公开,因为几乎所有应用都在这些攻击方式下不能幸免。
那我个人为什么对安全这么感兴趣呢?其实说来话长,我高中时就开始学习编程,当时的梦想是当一名黑客。于是安全方面的学习就一直伴随着我的职业生涯。而我在学习 iOS 移动开发的时候,带着习惯,我也就开始学习 iOS 开发安全方面的知识。
还记得我学习 iOS 开发安全的时候,曾经看过本书的英文版。本书的内容同时包括了攻击和防御相关的内容,非常适合 iOS 开发工程师学习,并且将其中的实践带到自己的应用中,以保护自己的应用不被攻击。我并不期望本书能够解决所有的安全问题,但是我相信,看过本书的朋友,能够将自己的 iOS 应用在安全方面的得分,从不及格提升到 80 分。
最后,感谢本书的作者、译者,以及电子工业出版社在 iOS 安全方面所做的贡献。