前言

安全方面的话题总是聊不完的。这不,国外一家有名的专门攻击别人的安全公司 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. AlphaGo GITHUB

    AlphaGo GITHUB https://github.com/Rochester-NRT/AlphaGo

  2. .NET中XML 注释 SandCastle 帮助文件.hhp 使用HTML Help Workshop生成CHM文件

    一.摘要 在本系列的第一篇文章介绍了.NET中XML注释的用途, 本篇文章将讲解如何使用XML注释生成与MSDN一样的帮助文件.主要介绍NDoc的继承者:SandCastle. .SandCastle ...

  3. 【Web API系列教程】1.2 — Web API 2中的Action Results

    前言 本节的主题是ASP.NET Web API怎样将控制器动作的返回值转换成HTTP的响应消息. Web API控制器动作能够返回下列的不论什么值: 1. void 2. HttpResponseM ...

  4. angular 视频教程

    在网上找了一些,视频教程.存在备用 angular 视频教程 百度云盘地址 小时前 1小时前 30 6 angular 4.0视频教程 链接:https://pan.baidu.com/s/1qXIt ...

  5. 【Python】读取cvs文件报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb1 in position 6: invalid start byte

    现在有文件data.csv 文件编码格式为:ANSI data.csv 1|1|1|北京市 2|1|2|天津市 3|1|3|上海市 4|1|4|重庆市 5|1|5|石家庄市 6|2|5|唐山市 7|3 ...

  6. Android 进程间通信——AIDL

    代码地址如下:http://www.demodashi.com/demo/12321.html 原文地址:http://blog.csdn.net/vnanyesheshou/article/deta ...

  7. 简单记录一次ORA-00600: internal error code, arguments: [2662]

    接上一个,REDO报错搞定后OPEN数据库时又报错ORA-00600: internal error code, arguments: [2662]. 原因是_ALLOW_RESETLOGS_CORR ...

  8. sakila演示数据库安装

    下载地址:https://dev.mysql.com/doc/index-other.html 安装帮助文档:https://dev.mysql.com/doc/sakila/en/sakila-in ...

  9. 【Sprint3冲刺之前】软件开发计划书

    TD校园助手软件开发计划书 1.引言 1.1 编写目的 为了保证项目团队按时保质地完成项目目标,便于项目团队成员更好地了解项目情况,使项目工作开展的各个过程合理有序,同时便于老师和其他同学了解我们的项 ...

  10. CSS - 修改input - placeholder 和 readonly 的样式

    placeholder ::-webkit-input-placeholder { /* WebKit browsers */ color: #999999; } :-moz-placeholder ...