代码改变世界

这两天说到的苹果软件中毒是个什么情况?

2015-09-18 23:50 by Barret Lee, ... 阅读, ... 评论, 收藏, 编辑

今天逛微博,看到了有人发现 apple 手机中的部分软件存在盗取账户信息的问题,网上搜罗了下信息,把大概的原因和处理方案说下。本文的阐述会比较浅显易懂。

大家对这些盗取账户信息的行为称之为手机中毒,简单的说就是使用的软件中被非软件方通过某些手段植入了程序本不该有的代码,这些代码可以获取用户的信息,甚至会伪造对话,比如下载某个音乐的时候提示要输入 app store 密码方能下载。之所以会中毒源自信任。

我们都知道,开发一个软件,需要工具,写代码的工具、编译代码的工具等等。而开发苹果手机上的软件需要苹果提供的编译和执行代码的工具,它叫做 xcode。 xcode 文件比较大,由于苹果在中国(好像)没有服务器,程序员下载 xcode 的速度就会很慢,而这个文件跟普通电影似的,可以被放到各种网盘中。所以就有人把下载好的 xcode 放到了网盘或者其他国内下载速度很快的服务器上。

问题就出在这里,这个非官方下载的 xcode 可能就被人调包了,可能是在下载之前就已经调包,也可能是在下载之时调包的。工程师使用这种被调包的 xcode 编写程序,最后编译阶段会被植入恶意程序。

打个比方,网易云音乐的开发工程师从非官网渠道下载了一个 xcode,他们开发好 iphone 的网易云音乐播放器之后,上传到 app store,那么实际上,我们下载的网易云音乐就是包含病毒的,它能够窃取你在使用网易云音乐时的操作信息,当然,可以蹦出一个提示框,让你输入 app store 密码,甚至可以做出一些更加危险,比如获取你的信用卡资金等操作。

据了解,黑客把收集到的信息都上传到了一个网址为 init.icloud-analysis.com 的服务器上,目前这个网址已经被封了,但是不能判定黑客是否还保留了其他的渠道。

从上面的分析,我们可以知道,即便是 app store 上的软件也是不安全的,更不论有些童鞋是直接从非官方渠道下载的软件。所以:

  • 软件工程师在开发的时候一定要从官网下载 xcode,或者使用校验工具检查下 sha1 码是否准确,有问题的 xcode6.4.dmg 的 sha1 是 a836d8fa0fce198e061b7b38b826178b44c053a8,没有问题的是 672e3dcb7727fc6db071e5a8528b70aa03900bb0
  • 用户应该关注下安全信息,把存在问题的软件即时删除,或者下载官方确定的靠谱版本软件
  • 修改 app store 密码和信用卡密码

最好的防御是苹果公司能够提供抵挡这个程序运行的方案,比如快速提供一个新版的苹果系统让用户即时升级。