长亭百川云 - 文章详情

智能手机相比电脑,谁更安全?

Flanker论安全

37

2024-07-13

先祝大家🐔年快乐!祝男生🐔年大吉吧,女生fengxiong化🐔

按:前几天在高铁的时候在知乎上有人邀请回答的,就写了一下,后来入选了知乎日报和编辑推荐,欢迎大家讨论这个话题。以下正文。

首先,反对某回答中对基带芯片的说法。(这里是因为我写的时候有个答案讲运营商控制了基带所以手机很不安全blabla,就反驳了一下)。

基带跑的RTOS不是TrustZone的Secure world那样对Normal world(也就是所谓的APP运行的环境)可以有完全的控制力,相反它和Normal world基本是隔离开的,只会影响Normal world中和telephony相关的内容。2015年Mobile Pwn2Own中,研究者展示了对Samsung S6中的高通基带RTOS的攻破(Samsung S6 calls open to man-in-the-middle base station snooping),完全控制了这台手机的通讯功能,但是并没有成功从基带中获取Normal world的权限。 对这项研究感兴趣的读者可以参考他们发表在RECON 2016 Montreal上的主题演讲:Breaking Band - Nico Golde, Daniel Komaromy

也反对某回答中“一个安全而无用的系统远不如一个不安全而有用的系统有价值”的说法。如果你是所谓的high value target,面临的threat从钓鱼攻击到物理攻击你的电子设备各种各样,你还会认为安全没有价值?脱离了Threat Model谈安全本身就是一个耍流氓的做法。如果目标本身没有价值,那么TA的安全,那自然是没有价值的。反之,亦成立。

然后,对于这个问题本身,我想它并没有一个一定肯定或者否定的答案。
客户端安全攻防是一个螺旋式发展的阶段。早些年,栈溢出堆溢出满天飞,到处都是RWX,随便内核里都可以ret2usr,后来有了stack cookie,有了DEP,有了ASLR,有了SMAP/SMEP。攻击者又发明了ROP,info leak, JOP,ret2dir,而防御者又提出了CFG,CFI,pointer authentication来缓解甚至阻止攻击者的步伐。在公众看不到的背后,发生着无声但又激烈的对决。

从防御手段上比较

而这些攻防技术上的发展,PC和手机都在受益。例如在手机上,Android 4.1/IOS 4.3引入了用户态 Full ASLR,在PC上则由Windows Vista引入,并存在于后续所有Windows上。Windows XP SP2引入了DEP,而对等的NX则在Android 2.3/iOS 5中引入。
当然双方也互有先后手。例如iOS/Windows是最早引入内核kASLR的系统,而Android则落后很多, 即使到现在,主流Android手机才刚刚开始普及KASLR这种防御措施。
(Ref: https://www.blackhat.com/docs/us-16/materials/us-16-Jang-Breaking-Kernel-Address-Space-Layout-Randomization-KASLR-With-Intel-TSX-wp.pdf)
如果非要讲哪一家更领先的话,我倒是推荐最新版 Developer Preview的Windows 10。因为据一些消息源,微软在里面加了很多丧心病狂的mitigation(CFI真的铺开了!),相对于另外两家动作要大很多。这一盘,算微软PC代表队逆转得分。

从攻击面上比较

上面谈的是从内存破坏漏洞来讲,各平台的安全措施。从可能攻击面来讲,各平台也各有千秋:
随着Google对SELinux的不断加强,大刀阔斧的组件重构和上游对内核漏洞挖掘的投入,Android的攻击面正在变得越来越小。开源代码的Bug bounty program也吸引了最多的研究者帮助Google修补漏洞。这方面,Google领先。当然我说的是Nexus/Pixel,国产手机代码例如MTK驱动里各种各样的漏洞能一下子把Google的努力打回石器时代。

而iOS/macOS上浏览器沙箱可以直接访问显卡相关驱动则是苹果永远的痛,Safari Technology Preview正在试图改变这个状况。
(Apple在推的另外一个对Safari的关键加固措施: JIT W-X. Ref: https://www.blackhat.com/docs/us-16/materials/us-16-Krstic.pdf)

至于Windows, win32k这个巨大的历史包袱跑在内核里,漏洞也是相当的多,由于Windows的向下兼容性要求,这个问题,可能要等微软下一次重写NT内核解决了。。
这一局,Nexus/Pixel Android暂时领先。

客户端防御一般取决于安全团队的推动力,以及该公司客户端所面临的现实威胁。例如苹果一直认为他们被iOS越狱所困扰,但iOS用户态本身已经被严格限制,那么他们就比较关注内核安全。Android去年被stagefright狂炒了一番,今年就在mediaserver拆分上下了很大功夫,当然他们在内核方面也做了很多甚至可以谈的上激进的改进。

从生态环境上比较

上面提了这么多,但是对于普通用户/非二进制安全行业从业者,其实都是大炮打蚊子。现在已经不是10年前PC网上随便挂马的时代,各种各样的防御,各种各样的杀毒软件已经消灭了大部分这样的事情(但是如果你坚持用Flash,坚持用XP,当我没讲)。如果你不是high-value-target,例如前段时间被以色列黑客公司拿一整套远程越狱Trident打的阿拉伯记者,那么很多情况下,你可能不需要操心上面这些问题。

但下面这些问题,则是普通人需要切身关注的。生态安全问题。很多人一辈子估计都不会被一套exploit攻击,那么他们需要考虑的问题其实是,这个平台malware是不是很多?是不是很容易就会被感染?如果被感染了,malware是不是很容易就能对系统造成破坏,对我造成经济损失?

Windows受历史原因所限和国内国情,早已声名狼藉。早些年所有进程UID一样,能互相访问,这简直在手机上不可想象(现在已经有所改观)。移动平台的后起之秀吸收了先驱者的教训:在用户态,iOS实现了强用户态沙箱,进程间(TrustBSD + Code signing enforcing),并由Apple Store审核做了严格的规范,基本上高枕无忧。Android早些年依赖于基于Linux UID/GID隔离的一个弱沙箱和基于binder的权限机制,后来引入了SELinux并成为了主力,但用户态进程权限还是比iOS大很多,而Google Play的审核也比Apple Store松很多。并且早些年用户态权限开放过大,短信拦截钓鱼马吃饱喝足,权限随便申请,互相唤醒满天飞,Google也难辞其咎。
(Google的理想国,可惜在国内。。。Ref: https://docs.google.com/presentation/d/1i2UkeqkQq6pvaRK1Je7RzlJMWqUpJCFucRIEJHcjLM8/mobilepresent?slide=id.g898eac660\_2\_0)
这其实就脱离了纯安全技术对抗的领域,而走向了老生常谈的malware/greyware的话题。很明显,未越狱的iOS在这方面优势巨大,Nexus/Pixel Android和国内部分优秀厂商做的还不错,而Windows在国内各种全家桶虎视眈眈的市场下,就很危险了。。
这一局,Windows惨败。

从物理/数据安全上比较

如果你真的真的很有价值,需要经常考虑被查水表的可能性,那么数据安全/物理安全也是你需要考虑的。这方面iOS作为最早支持上TrustZone/Supervisor级别和硬件级别加密的系统,也是领先一步。Android在M/N之后推出的Full disk encryption/file-base encryption也满足了大家的需求。
而Windows则有一定问题,目前来讲这方面还是各个笔记本厂商自己通过TPM去实现,但是给猪队友就容易出事,你能相信Thinkpad就直接把密钥放在一个所有用户都可以访问到的地方?但这还真的是。。(漏洞已经报告修复,但谁知道其他地方。。)

总结

还是那句话,脱离Threat Model,谈安全都是耍流氓。

如果你是高价值高智商人群,随时都有可能被人拿一套0day劈头盖脸砸上去。警惕性很高,从不乱装应用,那建议你用终极威力加固版的Nexus/Pixel Android (例如Copperhead OS)+只用Chrome,什么PXN, KASLR, CFI,JIT W-X,统统开起来。干脆直接编译个带ASAN的跑最好。
如果你是普通人,那么不越狱的iPhone+及时更新的Windows/macOS和windows上一套必要的杀毒软件足矣(Windows Defender也还凑合)。因为你的对手,是那些发送钓鱼欺诈短信邮件、在各种地方挂程序诱导你下载执行的黑灰产,和拿Nday去挂马的脚本小子苦力工。

还是那句话,最新版的系统,最新版的软件,保留警惕性,远离全家桶,开启Full disk-encryption,才能保平安。

Refs:

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2