现在Mac有必要装杀毒软件吗?

我的一贯观点是反对一切个人级别的查杀病毒软件。首先做个类比,如果我们希望在一个系统里,一个 app crash 不要影响其它的 app 和系统本身,要怎么做?是不是再写个 app 来监视所有 app 的内存访问行为?稍有计算机常识的人就知道这样行不通,要保证一个级别的稳定性,必须通过 higer-order的机制。

所以在计算机系统里,保证 app crash 的危害局部化的机制是硬件 MMU 加上 OS kernel 的地址空间管理。所以,我认为杀毒软件从本质上讲就是一个烂主意。在 MS-DOS 时代还情有可原,到了 Windows NT 和 Mac OS X 这种有 built-in security model 的系统上还在使用,就是愚蠢了。

而且,防病毒软件在 built-in security model 之外添乱的事情也发生过这个 race condition 造成的 attack ,如果是利用操作系统本身的安全机制加以保护,是不会发生的。所以对个人用户来说,良好的 OS hardening 才是保护自己的最佳策略:首先,不能使用 admin 帐号;停掉不用的服务;尽量使用有沙箱机制的新应用(比如 App Store 的新规定要求所有 open file dialog 都要在单独的沙箱里运行)。

系统隔离,hardening,沙箱,才是系统安全的趋势。杀毒软件是单任务操作系统时代的遗物。最后,我要说一句,本文上面的观点都是针对所有拥有 security model 的操作系统的。但是,从 OS hardening 的 best practice 角度来说,UNIX 系统的可利用资源要远远超过 Windows 。