电脑技术学习

漏洞四处,苹果电脑也不再安全?

dn001

  随着一堆最新安全补丁的发布和一个所谓无线驱动漏洞的发现,Mac OS X不再是不可征服的。我们的专家深入探寻Apple世界中的真实威胁,并描画出你为保护自己可以采取的简单步骤。

  首先是Apple五月的大量安全更新,Mac OS X和QuickTime中超过40个漏洞被打上了补丁。然后该公司在8月又发布了26个新的漏洞补丁。几乎与此同时,在今年的Black Hat会议上,安全研究者利用一个无线驱动程序中的漏洞攻入了一台MacBook。

  到底发生了什么?Mac OS X光环不再?在我们亲爱的"安全操作系统"前进的路上遇到了一系列Windows水平的安全问题?

  不要紧张,这些并不会发生。对于菜鸟,那些安全研究者攻入的MacBook是被修改过的:易受攻击的驱动程序是为第三方无线访问设备而非MacBook内置的AirPort卡编写的。

  尽管你永远也不该厌倦或者故意忽视安全问题的存在,事实上OS X像其过去一样的安全。你所看到的只是随着一个操作系统的流行其安全的自然进化。

  Windows安全 Vs. Mac安全

  简单地说,Mac OS X怎么也可以算作是一个非常安全的操作系统。但是,其安全并非是无限的。尽管一些Mac用户喜欢传播"Mac OS X绝对安全"的神话,事实上与任何其他设计良好的操作系统一样,Mac OS X对于攻击是可以高度抵抗的,但却非不可攻破。

  这并非是说最坏的情况下它和Windows一样糟糕。在过去Windows NT4、Microsoft Office和Internet Explorer的历史上,尽管从用户的角度看并不算严重,微软的一些决策导致了你现在所看到的Windows的一些严重问题。其中最糟糕的就是Windows的administrator(管理员)帐户,以及过多的软件包对该帐户的依赖。Windows管理员帐户本质上与Unix下无所不能的root帐户是相同的——没有administrator不能访问的文件,也没有administrator不能执行的操作——并且这是从NT到XP每一个版本的默认帐户。所以一旦你以root身份登入,你就成为了"根源":没有什么你不能做的,并且你在操作前甚至不会得到任何警告。

  这一做法的不安全性被Windows一个很坏的习惯加剧:直到最近,它甚至对于Administrator帐户不要求密码。自动作为root登录,不需要密码。无论怎么说也不足以描述这一"坏主意"的危害。由此,一旦有恶意软件进入你的系统,它就是作为root运行的。任何操作系统也难以终止一个以此种权限运行的软件进程。

  Apple从未这样做过。一个"administrator"身份的用户甚至离root还差很远,他只是操作系"admin"组的一部分。这意味着,如果有必要,该用户可以通过身份验证以root身份执行进程,但在正常的情况下却并不是root。事实上,在Mac OS X上,登录为root是被禁用的,启用这一特征需要执行一系列激活步骤。

  值得注意的是,微软在其即将发行的Windows Vista操作系统中借用了Apple的方法:在明年该OS发布后,用户将不能默认以administrator/root登录。

  那为什么有所有这些补丁呢?

  最近你看到的Mac安全警告和补丁并不是Apple正在将其操作系统搞砸的标志,相反,这意味着越来越多的人开始认真关注OS X的安全并主动寻找其中的漏洞以使Apple可以修复。具有讽刺意味的是,早在2005年这便被赛门铁克一份充满斥责的安全综述中所预测。在这份《互联网安全威胁报告》中,赛门铁克预测,随着Mac OS X的流行,越来越多善意与恶意的的人将在该系统中寻找安全弱点,因此将有大量安全漏洞被发现。这就是你现在所看到的。

  本质上这并不是件坏事。也许这有些令人不安,但是它是减少安全漏洞最好的方法。如果只有Apple雇员在Mac OS X中搜寻漏洞,该系统将远不如现在安全。漏洞并不是攻击利用,它们只是潜在的攻击途径,这正是你务必保持系统最新的原因。

  事实是,目前为止所有Mac OS X的恶意软件都是比较低效的,对任何采取了一些常识性步骤的人都构不成很大的危险。Mac世界的真正威胁是满足以及用户方做出的愚蠢行为。

  保护你自己

  尽管Mac OS X还很安全,你可以做一些简单的事情来保持你的安全。

  1.除非你需要共享文件,不要开启共享偏好面板。简单地说,除非你需要与其他人共享文件,不要开启文件共享。这是一个非常简单的步骤:什么也不用做。Mac OS X的默认设置是所有共享服务都被禁用。不要改变它们的属性。如果你从不开启文件传输通路,一个攻击者便很难将文件传到你的电脑上。

  如果你不确定是否需要允许共享,我这里有一个可起到帮助作用的指导:如果我不得不问"我应该做这个吗?"答案是"不。"如果我需要做什么,我将会非常确信。我发现这一指导甚至我自己也一直在用,而我已经在技术领域工作20余年。

  在下面的两个图中,你可以看到默认的安全共享设置。如果你打开过任何共享服务并且不确定是否应该使他们继续开启,这是在它们全被关闭后你应该看到的。(共享对话框是你在系统偏好中共享偏好面板内第一个看到的。)

  默认(关闭)的个人文件共享设置。

  默认(关闭)的互联网共享设置。

  2. 不要下载奇怪的软件。这并不是说"永远不要下载没有全部源代码的任何东西",而是要确信你的软件来源。例如几年前很多人由于把一个清除他们home目录的恶意脚本当作是Microsoft Office 2004演示版的免费互联网下载而被欺骗。当然,这种脚本存在的唯一地方便是像Limewire这样可疑的下载站点。

  一般情况下,访问信誉好的站点进行软件下载。我最喜欢的是VersionTracker。无论是对Mac OS X软件还是Windows和Palm软件,这都是一个很好的站点,并且它每天都在不断更新。与前述的LimeWire这样的大多数P2P网络不同,VersionTracker不允许匿名软件发布,并且对于软件至少有一个基本的审查过程。没有人可以保证绝对安全,但是VersionTracker目前为我们做了很好的工作。

  运行程序是你最需要注意小心谨慎的地方,因为一旦执行了代码,你就无法再控制该代码在做什么。如果是administrator用户,那么该段代码就在以你的身份运行。如果你在一个安全对话框中以root进行验证,那么该code就在以root权限执行。世界上没有什么东西可以终止以root权限运行的Trojan木马。

  3.在输入密码前仔细思考。尽管很多程序要求你输入一个管理员密码,尤其是在安装过程中,但是你不应该因为被询问就这么做。如果没有别的事件,检查一下这是否是个合法的询问对话框。下面是两个我通过AppleScript创建以进行演示的合法验证请求。

  在同意前检查是否请求的对话框是真的。

  有很多东西可以帮助你判断这是合法的请求对话框。首先,上面有被询问程序图标覆盖的锁的图标。其次,有文本告知你该程序(本例中是Script Debugger)正在要你输入密码。随后你的完整用户名已被填入"Name"中。如果我们展开"Details"三角,我们将看到更多的可以帮你将其确认为合法请求对话框的信息。

  确定应用程序名匹配…

  这里我们看到的是该程序正在请求的特定权限(system.privilege.admin),这将赋予该操作和请求该特权的程序root权限。如果程序名与对话框顶端的名称或图标不匹配,在验证前要重新考虑。然而,还有一个你可以检查的事,这就是正在请求特权的应用程序的位置。如果你点击蓝色应用程序名,你可以得到一系列该程序的路径列表,如下:

  …并且文件路径看起来是正确的

  Script Debugger 4显示的路径与其应在的路径完全一致:在/Applications/Programming/AppleScript/Script Debugger 4/folder(记住,在Unix命名中,"/"是引导驱动器的根目录,文件夹由可选的尾端"/"表示)。如果该对话框中显示的路径与你认为该应用程序应该在的路径不同,那么你可能又一次不该在此处输入密码。对话框检查并不是十全十美的,建立一个合法的对话框很容易(我用一行AppleScript就可以做到),但是你所能做的即使是最微不足道的检查也比盲目信任好。

  4.随时安装新的安全补丁。也许你不希望在安全补丁发布的那一刹那就安装,但是我安装这些补丁不会等到他们发布后超过一周的时间。安全补丁是保护你自己的最简单的方法。我还会保持最新的OS版本。尽管升级操作系统不是你很愿意做的事情并且可能需要你付费才能得到新版本,事实是当发布臭虫修复和补丁时,最新的OS版本与早些的版本相比永远受到更多的关注。安全是升级的最正当的理由,一些安全漏洞所需要的改变只有新版OS才能达到其规模。

  如果你照着这四条技巧去做并在你每日Mac应用中使用一些常识,你遇到问题的几率就会小很多,并且几乎不会发生。

  所以,Mac OS X并没有什么安全噩梦。所有新闻头条的含义仅仅是更多的人正在从安全的角度更加认真地关注Mac OS X和Apple——这终是一件好事。

  (完)

标签: