苹果手机源码编译-探秘XcodeGhost:苹果栽在源头病毒手中

本文来自:太平洋互联网

一向以安全封闭着称的苹果iOS系统,这次终于因为XcodeGhost事件而在国内遭遇了大跌。 要知道,在此之前,苹果AppStore中只发现了5个恶意应用程序,但这次的规模可能是往年发现的数十倍。 Apple 做错了什么导致了这场 XcodeGhost 风暴?

如果我们想了解事情的本质,我们首先必须了解一种叫做源代码病毒的东西。

病毒来源 Ken Thompson Hack

在 1984 年的图灵奖颁奖典礼上,Unix 之父 Ken Thompson 发表了一篇名为《对信任的反思》(Reflections On Trusting Trust)的演讲,现在你仍然可以在《前 20 年》中找到它本书为ACM图灵奖讲座集。

Ken Thompson Hack源代码病毒图

Ken Thompson 描述了一个场景,其中黑客向编译器添加了两段代码:

苹果手机源码编译-探秘XcodeGhost:苹果栽在源头病毒手中

第一段代码:让编译器编译出来的程序天然就带有侧门,黑客就可以利用这个侧门来做坏事。

第二段代码:如果编译器遇到看起来像另一个编译器的源代码,它会添加第一段代码和第二段代码本身。

这样苹果手机源码编译,世界上所有这个编译器编译出来的程序都会有自己的侧门。 如果你已经知道编译器生成的程序有侧门,并且由于某种原因你只能使用这个编译器,你可能想使用这个编译器自己反编译,然后删除使生成的程序有侧门的代码,以便可以检索“干净”的编译器。

但第二段代码只是为了这个操作。 当您执行最后一个操作时,“干净”的编译器将被第一个代码块重新污染。 如果你仍然只把这个编译器当作一个工具,那么你永远无法打开这个死锁。

源代码病毒猖獗的后果

如果这样一个携带源代码病毒的编译器成为绝大多数人使用的工具,那么这些病毒是否可以悄无声息地入侵所有使用该工具编译的操作系统和应用软件。

这些软件可以是QQ、微信等通讯工具,财付通、支付宝等金融工具,也可以是Google Windows、Apple OS X等操作系统。如果你想用杀毒软件、调试程序或新编译的程序来阻止它等等,你怎么知道这个程序不是源代码病毒的编译器写的呢?

当这种源代码病毒发展到最后,整个数字世界将不可抗拒地被彻底“污染”。 如果你想寻找一片净土? 也许你必须用最原始的机器代码重新构建一个编译器来构建一个新的数字世界。

肯·汤普森想告诉我们什么?

肯·汤普森

这篇《对毋庸置疑的信任的反思》这篇文章,其实表达了Ken Thompson当时对软件行业的担忧。

我们是否过于信任并非完全由我们编写的代码?

我们是否应该对编译器等“代码生成器”有一些疑问?

如何确保我的编译器是“正常”而不是“添加源病毒”?

这些问题在 32 年后已经有了解决方案,例如验证数字签名或哈希值。 但Ken Thompson的怀疑态度仍然值得每个程序员学习。

关于 XcodeGhost

XcodeGhost类似于Ken Thompson所说的源代码病毒。 当然,它不具备 Ken Thompson Hack 的第二个代码特征,无法感染编译器。

XcodeGhost中添加了特定版本的Xcode编译器

不过,XcodeGhost 的作者仍然可以使用这个修改后的 XCode 在所有已编译的 iOS 应用程序中插入侧门。 (Ken Thompson Hack 的第一段代码)

因为Xcode几乎是生成iOS应用程序的唯一工具,而苹果官方下载源由于众所周知的诱因而速度极慢,再加上习惯使用百度搜索下载国外住墙程序员开发的各种应用工具,这些一起导致病毒在过去六个月内广泛传播。

XcodeGhost 能做什么?

已经确认的XcodeGhost侧门有以下两个功能:

1、被感染的应用程序打开后,会不断将收集到的系统信息发送到特定服务器,包括:时间、应用程序名称和版本、本地语言、操作系统版本、设备类型、国家代码等。

2. 受感染的App会弹出一个对话窗口,其内容由受感染iPhone上的服务器控制。

XcodeGhost的作者利用第一个函数获得的信息来准确识别不同的iPhone用户,然后利用第二个函数实现进一步的攻击:可能伪装成应用内购买页面,骗取你的iCloud密码; 也可能伪装成付款,如果失败,请到A支付宝付款取钱等字样。

当然,这种攻击也很容易被识破。 例如,当XcodeGhost伪装应用内购买弹出窗口时,你会发现它要求你输入Apple ID。 但用过苹果的同学都知道,Apple ID是iOS系统内的一个高优先级的信息。 应用内购买弹窗一般默认填写Apple ID账号(AppStore除外),只需输入密码即可。 所以一旦发现应用程序弹窗需要自动输入Apple ID账号,基本可以确定是XcodeGhost的钓鱼行为。

苹果这次有多负责任?

大多数人可能会抱怨苹果:无论你的护城河有多坚固,无论你最初的申请审查有多严格,无论你的硬件如何“自给自足”,最终你仍然会被击败。

是的,这次XcodeGhost事件可以称得上是苹果历史上最大的安全事件。 但苹果这次确实“运气不好”,因为遇到了源代码病毒。

苹果不可能对每个应用程序进行逆向工程

苹果手机源码编译-探秘XcodeGhost:苹果栽在源头病毒手中

首先,对于苹果的AppStore来说,这种病毒很难衡量。 为什么? 苹果应用商店的初步审核只能确定该应用调用了哪些系统API,而那些允许调用的API都经过了大量的检查,基本上不可能跳出系统沙箱获取非法信息。

但除此之外,即使你给了他们源代码,苹果也没有办法在有限的人力物力下静态分析一个应用程序是否可以弹出窗口。 (如果可能的话,意味着苹果每次上架一个程序时,都会对其整个代码进行逆向分析,这根本就是不可能的)

那么有人会问,这种攻击很难避免吗? 确实苹果手机源码编译,这种程度的安全只能依靠开发者的素质,但实际上系统本身的沙箱隔离也非常关键。

例如,iOS开发者将Apple ID设计为非常高的优先级,而病毒创建者很难获得这些信息,因此他的钓鱼弹窗与真正的内购弹窗有所区别。 这是系统沙箱。 盒子的作用。

诚然,苹果这一次遇到了问题,甚至是问题。 但究其XcodeGhost传播的症结,国内封闭的网络环境确实是主要诱因。 (当然,开发者“不清理、不校准”的习惯也是有问题的)

我们现在应该做什么?

说到这里,你其实已经发现,这场“大危机”并没有我们想象的那么严重。

首先,XcodeGhost大面积获取的信息为一般信息,不包含您的个人私密信息。 其次,网络钓鱼攻击,包括各种弹窗,其实更容易区分。 您只需查看哪一个需要您输入 Apple ID 即可。

最后,笔者还建议,如果您近期遇到过在第三方应用程序中输入Apple ID的问题,请立即更改。 如果你现在不记得了,请立即更改,这样更安全。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 源码编译 苹果手机源码编译-探秘XcodeGhost:苹果栽在源头病毒手中 https://www.wkzy.net/game/161354.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务