写点什么

安全测试之 XCodeGhost 随想 -2015

作者:刘冉
  • 2021 年 11 月 13 日
  • 本文字数:1535 字

    阅读完需:约 5 分钟

昨天一条 XCodeGhost 的消息在微信朋友圈和 IT 圈炸开了锅,并且引发了许多人的愤怒和担忧,愤怒的是中国这么多知名 IT 公司不负责的开发行为,担忧的是自己的用户名密码等隐私信息的再一次泄露将给自己带来又一次的伤害。

简单说 XCodeGhost 是有人在 XCode 里面植入了一段代码,导致用户使用通过这个 XCode 编译的 iOS 应用软件时会自动执行这段额外植入的代码,并将用户的隐私信息发往黑客的服务器,详细信息参见乌云知识库。截至今天已经有超过 20 款 iOS 应用确认拥有 XCodeGhost。

当我看到这个新闻的时候,第一个想法就是”历史总是如此的相似”。让我们回到上个世纪 70,80 年代,Unix 之父 Ken Thompson(1943~)在贝尔实验室里面开发了 Unix 系统,并且贝尔实验室的计算机也安装了这个 Unix 系统供员工使用。有一天大家发现 Ken 总是可以以最高权限进入他们的帐号。可想而知,在牛人聚集的贝尔实验室是不允许这样的事情发生的,所以许多员工跳出来仔细分析 Unix 代码,并且确实也找到了后门,然后修复这些后门后重新编译整个 Unix 并重新安装。所有人都以为可以放心的使用新的 Unix 的时候却发现 Ken 还是可以自由的获取他们的账户权限,并且再也无能为力了。直到多年以后,Ken 才解开了大家心中的疑惑,原来 Ken 在编译 Unix 所使用的 C 语言编译器里面加入了一个后门,而当时跳出来分析和修复 Unix 的员工并没有去分析过 C 语言编译器,导致 Ken 一再得手。回想昨天的新闻,竟是如此的相似。

相对于 Ken 在 C 语言编译器植入后门,XCodeGhost 在 XCode 里面植入后门只能算小儿科(因为当时贝尔实验室使用的 C 语言编译器是 Ken 开发的,相当于官方发布了具有后门的编译器),毕竟官方的 XCode 并没有包含 XCodeGhost。那么为什么还是有如此多的知名 IT 公司的 iOS 应用都有的此后门啦?其中有一个传言就是由于从中国去 Apple 官服下载 XCode 非常慢,所以需要去各个社区或者通过迅雷下载,所以才导致下载到了包含 XCodeGhost 的 XCode。我觉得迅雷纯属躺枪,开发者使用了不安全的工作方法,还要找个借口发泄到迅雷身上,这本身就是一种不负责的态度。

对于 XCodeGhost 的爆发,我有一些疑惑:

  • 这些公司的软件发布流程是怎么样的?是通过 CI(持续集成)统一构建发布,还是随便找一个开发人员,从其开发机上构建发布?

  • 如果是使用 CI 统一发布,难道 CI 配置也是随便配置,没有任何规范流程?

我认为良好的 CI 环境是预防 XCodeGhost 这样的漏洞最好方法,因此我们应该做到:

  • 软件的发布版本一定要通过 CI 构建获得,并且 CI 环境中构建所使用到的软件一定要从官方渠道获得。

  • 代码版本库里面最好只有源代码,如果需要包含依赖库,这个依赖库也只能通过 CI 构建,而不是在某个开发的机器上构建获得。

其次:

  • 公司应该规定开发使用的软件都应该从官方渠道获取,并要求对于下载的软件进行 MD5 或者 SHA-1 哈希值验证。

  • 如果开发人员过多,不方便管理,可以要求 IT 统一从官方驱动获取软件,然后由 IT 统一管理和安装所有软件。

扩展随想,编译器/IDE 以后我们注意了,第三方包/框架我们就可以放心了吗?这些第三方包就不会有类似 XCodeGhost 的后门?针对这个我有一些想法:

  • 尽量使用在线包管理系统下载第三方包,现在基本上大部分的语言都有其第三方包在线管理方案,java 有 maven,ruby 有 gems,nodejs 有 npm,iOS 有 Alcatraz 和 CocoaPods 等等。并且在使用前尽量通过这些在线包管理系统多了解一下你将使用的包,比如下载量,使用者评论,未修复的 bugs 等。

  • 在 CVE,NVD,乌云等这类安全漏洞网站上查询你是用的第三方包是否存在漏洞。如果你觉得手动麻烦,还可以使用OWASP Dependency Check来自动扫描你将使用的第三方库,从而及早发现其漏洞,详细使用方法参见在CI中实现持续Web安全扫描

总的来说,一个应用软件的安全可以从五个角度考虑:操作系统,病毒,源代码(包括软件架构和设计),编译器/IDE,第三方软件包,见下图: 


原文

发布于: 刚刚阅读数: 2
用户头像

刘冉

关注

还未添加个人签名 2019.08.21 加入

还未添加个人简介

评论

发布
暂无评论
安全测试之XCodeGhost随想-2015