自2008年Apple在iPhone OS 2.0.1中推出App Store以来,关于App Store过于封闭的声讨就从未停歇。不同于可以自由安装第三方软件的macOS,iPhone用户想运行非App Store应用的方式极为有限:要么自己签名部署、要么使用专门的企业工具进行App分发。

对于这种近乎「垄断」的App分发策略,不同用户有不同的看法,有的人认为这是Apple限制用户选择的手段,也有人认为这是维护iOS生态秩序的代价——不开放App Store意味着每一款App都必须经过Apple的审查,这也是某些热爱搜集用户数据的流氓互联网巨头在iOS上表现异常「温顺」原因。

图片来源:Apple

但如果Apple「严格」地审核下有漏网之鱼呢?比如上个月就有网友在V2EX上分享家人被App Store中的恶意应用盗号,导致财产损失的案例。



图片来源:V2EX

根据原帖分享,当事人在App Store上下载了名为「菜谱大全」的App,并会选择使用Apple ID登录。随后App发起了一个伪装成Apple验证的弹窗,要求当事人输入Apple ID密码。第二天凌晨,当事人发现iPhone被抹掉资料,并在重新配置手机的过程中收到了银行的支付通知短信,这才发现Apple ID被不法分子盗用、盗刷。

Apple生态「固若金汤」?


经过后续分析,该App钓鱼攻击链路被大致探明:

除了常见的手机号、微信登录外,这款「菜谱大全」还提供了「Apple ID登录」的选项,这一功能在iOS 13中首次出现,允许用户在Face ID或Touch ID验证后直接通过Apple ID创建新用户,不再需要另外输入邮箱、设置密码、接收验证码。使用这一功能是,Apple会询问用户用哪个邮箱进行注册:

用户可以用Apple ID绑定的正式邮箱地址,或由Apple生成的一次性转发地址进行登录。前者会向App开发者提交Apple ID的真实邮箱地址,后者则提交随机生成的虚拟地址,并通过Apple的服务器进行邮件转发,从而向App开发者隐藏真实邮箱,从而保护用户数据。



图片来源:Apple

这里当事人选择了使用Apple ID登录,因此不法分子获得了用户的真实邮箱。

随后,不法分子向用户发起了一个名为「AppLeID」的弹窗,诱导用户输入Apple ID密码。理论上这种直接要求用户输入密码的行为应该唤醒用户的警觉,但由于Apple「谜一样」的安全策略,在下载App时要求输入Apple ID密码的现象非常常见,甚至有些时候连更新App都需要输入Apple ID密码,所以当事人并未察觉到异常,直接一明文将密码发给了不法分子。

此时用户已经将账户邮箱和密码一起发给了不法分子,挡在不法分子面前的就只剩下Apple的二步验证,也就是大家平时常见的一次性验证码验证了。但在这里,不法分子使用了一个小手段:为了不频繁打断用户操作,二步验证一般只在第一次使用陌生设备时用到。

而当事人的手机自然不属于陌生设备,当用户在App中使用Apple登录后,App就可以在后台访问iCloud,并利用刚刚骗来的Apple ID密码将不法分子的手机号添加到当事人Apple ID的安全手机号当中。完成后,即使不法分子需要使用输入二步验证的验证码,也可以直接用自己的手机号请求验证,无须攻破iOS的沙盒读取用户短信。



图片来源:雷科技

到这里,不法分子已经获取了用户账户邮箱、密码和二步验证的验证码了,之后只需要在iCloud中将自己的小号添加为家庭组并开通家庭组支付,就可以开始盗刷当事人所绑定的微信免密支付了。盗刷完成后,不法分子只需要通过iCloud抹掉当事人的手机,就可以消除当事人手机中的所有短信记录,悄无声息地完成盗刷了。

幸运的是,用户在第一时间就发现了手机被远程抹掉,银行的扣款短信并未远程删除,这才为当事人留下了反应的时间。如果短信被成功抹掉,当事人很可能根本不知道自己的Apple ID被远程盗刷。

权利越大、责任越大?

可能有人会觉得此次事件中当事人在陌生弹窗中输入Apple ID密码的行为很「笨」,甚至会笑话当事人连「AppLeID」这么明显的钓鱼弹窗都深信不疑,但实际上被钓鱼窗口欺骗只不过是整个盗刷过程中最微不足道的错误。

没错,「AppLeID」确实属于「艺高人胆大」的诈骗标题,但如果不法分子打的是「AppIe ID」「App1e ID」甚至是用西里尔字母拼写出来的「Аррlе ID」呢?大家又能分得出「Аррlе ID」和「Apple ID」之间的区别吗?

在我看来,除了用钓鱼手段盗取用户资料的不法分子外,Apple也需要对此负责。不同于开放的Android应用生态,iOS作为Apple生态中的最重要的组成部分,有着极为严格的App分发限制。甚至在Apple的平台安全保护页面就写道:

与其他移动平台不同,iOS 和 iPadOS 不允许用户安装来自网站的潜在恶意未签名 App 或者运行不受信任的 App。运行时,所有可执行内存页会在载入时进行代码签名检查,以帮助确保 App 自安装或上次更新之后未被修改过。

换句话说,iOS用户之所以愿意只从App Store中下载软件,是因为iOS用户以App安全作为代价,让渡了一部分选择的权利。而作为应用审核的一部份,Apple也理应发现这种打着「AppLe」名号的钓鱼行为,别忘了Apple对App热更新可是有严格管控的。如果Apple的审核无法有效过滤恶意钓鱼应用,那还不如直接开放应用侧载,让用户自己为自己的信息安全负责。

侧载真的会变得更糟?

早在2022年,我们就讨论过Apple是否会开放侧载功能,彼时的意见主要分为两派,一派认为Apple会在外部的压力下,开放侧载支持,另一派则认为Apple会顶住压力,继续维持自己的封闭生态。

支持侧载的一方认为,在最高20%的全球营收罚款和欧洲市场的威慑下,Apple肯定会妥协的。而封闭方则认为,Apple AppleCEO库克公开表示过Apple不会支持侧载,侧载会对Apple生态的安全造成严重影响。

彭博社记者Mark Gurman声称自己得到了内部消息,Apple将会在iOS 17中首次允许iPhone用户下载App Store以外的应用程序并安装。

当然,目前并不清楚是允许用户任意下载,还是需要通过Apple认证的第三方渠道下载,但是从实际的结果来看,Apple开放侧载功能应该已经是板上钉钉的事情,至少在欧洲市场Apple肯定会开放该功能。

在这条新闻下面,不少网友都疑惑Apple为何会屈服,难道Apple真的愿意将经营多年的封闭式生态亲手毁掉?同时还有不少网友直言:「支持侧载的iOS和安卓有什么区别,以后看看谁还买Apple」。



图片来源:Apple

在我看来,Apple的多数用户其实都可以归类为「传统用户」的行列,他们不会折腾系统的各种配置、不会费尽心思对比手机的各项参数,他们对于手机的唯一要求就是「流畅」与「好用」。

对于多数用户而言,App Store依然是他们最好的选择,不需要担心App被植入恶意代码,不需要担心App被捆绑一些不知名软件。即使在一向以开放著称的安卓手机中,也有不少用户选择只从应用商店下载App,只有在应用商店实在找不到时,才会转而前往App的官网下载。

从用户角度来说,iOS支持侧载功能,也是将选择权交还给用户的一种体现,让用户做选择而不是代替用户做选择,Apple或许逐渐转向另一条道路。在我看来,这条道路的未来并不固定,对于Apple生态的发展是好是坏,一切都要看Apple将会如何处理侧载与App Store之间的关系。

当然,对于Apple来说,侧载功能必定会影响他们的营收,毕竟看不惯Apple的30%应用税且拥有一批忠实粉丝的App并不少。



图片来源:Apple

站在Apple角度,自然也不是没有任何反制措施,退出App Store体系选择侧载,意味着App将彻底失去在App Store被推广的权利,而App Store在可预见的未来都依然会是iPhone用户最大的下载平台,承载着iOS生态的大多数流量,失去了App Store的推广,大多数App都可能面临下载量下降、用户数下降等问题。

但对作为用户的我们来说,这些问题其实都无关紧要,无论严格限制还是开放侧载入,谁能保证用户的信息安全,用户自然会用脚投票。