卡巴斯基声称「苹果在安全方面落后微软十年」,是真的么?

2012 年 4 月 25 日旧闻:

CNet | Kaspersky: Mac security is '10 years behind Microsoft'

对争议内容做下解释:

感谢@CC的回复,以AppContainer特权等级运行的应用才是较为现代的解决方案,开发、上架、安装一条龙,全程没有UAC弹窗,也没有常规的隐私和安全问题;

Win32和.Net应用安装到ProgramFiles都需要管理员权限,原因是在Windows的权限机制中对系统目录中运行和读取不需要管理员权限,但写入是需要的。等他们安装完成,也是以用户模式运行的,并非安装的时候点一次UAC确认,以后就会永久提权;

普通用户在UAC弹窗里借用管理员账户安装的话,由于管理员账户也没有访问其他用户目录的权限,所以应该是借管理员账户的权限使用Trusted Installer来进行安装。

这条答案很多内容与问题无关,论点也比较琐碎,答主也是刚刚接触Windows安全机制相关的知识。如果读完之后感觉头昏脑胀纯属正常,请收好蓄势待扔的板砖,答主都跑题习惯了╮( ̄▽ ̄")╭

希望下面的各种“题外话”能让大家养成良好的使用习惯,把系统安全掌握在自己而不是各路管家的手中。考试季过去之后,答主会将Windows安全机制和使用习惯整理成文,来取代这篇凌乱的回答。欢迎大家关注二葱写字的地方 - 知乎专栏(刚刚开通,目前还空空如也,好羞耻),答主会在这儿跟大家分享更多干货:)

==============回答开始==============

安全问题需要客观分析,不是用通俗的语言打个比方就能分出孰优孰劣的。让我来陈述一件事实吧:

在2010年的Pwn2Own大赛上,白帽黑客Charlie Miller通过OS X Snow Leopard系统中Safari的一个漏洞成功侵入系统,在普通账户的登陆环境上取得了整个系统的控制权。Pwn2Own MacBook attack: Charlie Miller hacks Safari again!嗯没错,当时新闻的标题是这家伙黑掉Safari了。

事后通过分析Charlie Miller的入侵过程,发现是因为OS X系统缺乏一项名为Address Space Layout Randomization地址空间布局随机化的特性,这项技术可以使完成特定功能的系统代码,在每次系统启动的过程中都存储在随机的、不同的位置,缺乏了这个特性,系统的关键数据、可执行的堆栈就可以在每次入侵的过程中被精确定位。而这一特性,在同时期的Windows Vista中早已得到了完备的支持。在Snow Leopard的接替者Lion发布的时候,苹果引入了ASLR技术,并首次引入沙盒机制来保证系统的安全性。

这是一个操作系统发展过程中很小的一件事,但如果你想认真地讨论安全问题,就应该着眼于客观分析系统所提供的整个安全机制。而不应该从病毒数量、窗户大门这些比喻上主观论断。

之所以要举出这个例子,就是要说明:

OS X也好,Windows也好,都不可避免的存在安全性漏洞,而只要漏洞存在,就能对系统造成一定破坏;

大家都在吃一堑长一智的向前走,操作系统每一天都比昨天更安全

=====题外话开始=====

所以用Windows的请不要关闭自动更新,用Mac的请尽量使用App Store里的应用(为什么是“尽量”后边会提到)。尤其需要注意的是,占据主导性市场份额的操作系统,流氓应用也会越多,所以如果你用Android,请使用权限管理功能禁掉百度、网易等应用读取系统敏感日志、读取正在运行的程序这样的流氓权限……跑题了……尤其需要注意的是,Windows用户请慎点UAC的确定按钮,像QQ、百度云这种在安装的时候需要提权的软件一定要慎重,Windows Vista以后的系统为普通应用提供了专门的安装位置,在地址栏里敲一下C:\Users\你的用户名\AppData就能看到像印象笔记、Telegram这样的应用都装在这里,并且安装他们的时候不需要触发UAC。不论是Windows还是OS X,一旦你给了未知来源的应用以管理员权限,从那一刻开始你的整个系统就没有安全性可言了。不知有多少人知道QQ的部分组件其实是运行在内核模式下的(更正一下,QQ作为一个可执行文件的确是运行在用户模式下的,但加载的QQFrmMgr.sys作为驱动程序,在SSDT HOOK里是以内核模式运行的。)?

在SSDT上可以对系统函数下钩子,这是我在虚拟机里装了QQ但还没装管家之前的景象,平时你们新建文件、打开程序、创建进程什么的QQ全都知道好嘛……真的真的真的没人在乎打开安装程序的时候弹出的UAC窗口吗?

插一句,如果QQ、百度云一定要用,那安装时、在点UAC的确定按钮之前,请确认一下安装程序的数字签名是不是腾讯、百度,如果不是,那一定被人做过手脚,果断拒绝安装。只安装具备有效签名的程序在一定程度上是可以保障系统安全的。嗯,只是插一句而已,给大家提个醒。

上图的微信安装包是腾讯签名的,如果见到其他公司签名的微信安装包,甚至是不带签名的,估计就是盗号程序了。

下面这张图是从百度上“高速下载”的Chrome安装包,点开必弹UAC,确认必会装上百度全家桶(其实原版Chrome安装包也会弹UAC,不给权限的话,就会自动装到AppData去了,可是其实AppData才是它们的正确归宿啊 其实是不对的,大部分程序仍然需要UAC弹窗并安装到Program Files下,感谢 @烈之斩指出

另外再插一句,在Windows 8.1以后的操作系统上,病毒程序要想绕过UAC,除了采用添加以最高权限运行的计划任务之外,基本只剩下DLL注入(利用了运行微软签名的应用可以直接提权)和替换UninstallLauncher两种办法了。而这两种办法在实施之前也是需要先获取一次管理员权限的。所以在每次点击UAC的确定之前,一定要知道自己在做什么。像我这种不想让杀毒软件来保证安全的,靠把UAC的Level拉到最严格、在组策略里把点击确定改成输入凭据,就能抵挡大部分的威胁了。虽然这样做打开任务管理器我都得输个PIN码,但我觉得与其让每个过手我电脑的人都能打开任务管理器然后任意结束进程玩,还不如我每次改动关键设置的时候都输入密码来的安心呢。

其实,UAC真的不是为了转嫁中毒责任、脑残的发明,想当年在没有UAC的XP时代,只要你登陆的是管理员账户,那么你运行的每一个程序都可以获得管理员权限,戳一下就会死。在XP SP2之前连DEP(数据执行保护)都没有,也就是说内存数据有被当作代码来执行的风险,而DEP正是在冲击波扫荡全球之后,微软被迫提出“可信计算”时被引入的。现在的Windows能提供基于软件的DEP,Intel的CPU也都能进行硬件DEP了。这就是进步,哪怕是亡羊补牢式的进步。

=====题外话结束=====

那些说“Mac每次提权都需要输密码,而Windows只需要点个确定”的人,你知道Windows通过组策略就可以做到把点确定换成输入凭据吗?

那些说“Mac系统只要用App Store的东西就安全,安全源于正确的使用习惯”的人,只要你深入的用上一年Mac,就会知道总有些时候不可避免的使用非App Store的程序,而这类程序是不受沙盒保护的,并且,App Store版的Movist连加载字幕都需要弹窗让用户选择,而不能自动搜索电影目录完成加载,安全性难道需要这样才能保证吗?

还有一些“苹果控制在“声源”和“传播途径”,微软控制在“人耳””,你想说明什么啊= =

还是那句话,如果你想认真地讨论安全问题,就应该着眼于分析系统所提供的整个安全机制。而不应该从病毒数量、窗户大门这些东西上主观论断。

如今的操作系统早已不是给硬件提供一个抽象层、让开发者更方便的写程序那么简单,在云计算、移动化的时代,大家都在力图把操作系统打造成提供服务的平台,不管是OS X还是Windows,要想构建完整的生态系统(从开发环境、API的提供到应用分发的渠道和一些必要的安全性验证等),不仅需要构建一个安全可信任的使用流程(比如从应用商店安装应用,安装具备可信任签名的应用等),而且需要保证系统整个机制的严密性、安全性(像Snow Leopard那样黑客可以直接从Safari攻破系统那当然不行,Windows 7上病毒程序可以轻松绕过UAC当然也不行)。

苹果的安全机制落后十年吗?我觉得并不是,十年前的XP并没有沙盒机制来保护系统安全、也没有App Store这样统一的应用分发渠道。但是十年前的XP远比现在的OS X面临更多的病毒和入侵威胁,随着OS X日渐流行,苹果也迟早要面对这个问题。据我所知,苹果并没有像微软那样,提供一个激励白帽黑客发现并提交Windows漏洞的途径,这就导致Mac上尚未发现的漏洞可能还有很多。但OS X和Windows每个Build都比上一个要好、要完善,媒体啊,请不要用“落后十年”这样的话来妖言惑众、危言耸听。

表达能力退化、另外答主也是这方面的小小初学者,如有不当之处请轻拍。借这条答案说了好多东西,就是想传播下关于权限、安全问题的知识,让更多人不再受流氓应用的监视。

==========

评论区有人提到第一次知道UAC的点击确定按钮改成输入PIN码,这里贴个链接,是具体的操作方法:如何使用组策略更改用户帐户控制的行为?

由于UAC的安全桌面下没法截图,就贴一些网络图片了(图片来源:关于组策略的UAC详细设置图解_bilibili水吧

△修改前

△修改后

=============

把这些词条都读完,估计对这类问题又有全新的认识了吧(论查字典才是靠谱的学习方法⊙﹏⊙)。这条答案暂时就更到这了,专栏见:)

来源:http://www.zhihu.com/question/20237554/answer/52572637