安全观察密码和信用卡,第 3 部分

Jesper M. Johansson

目录

有关安全的矛盾消息
归根结底为复选框
倡议

在前几期的《TechNet 杂志》**中,我讨论了安全专业人员和 IT 行业如何令消费者感到困惑并干扰有效安全措施。在本系列文章的前两期中,我重点介绍了向消费者提供误导信息、重载登录工作流

以及唆使不良行为的解决方案这类的问题。到目前为止,我已向您介绍了许多示例,它们指出业界虽对消费者安全高度关注,但实际效果却极不尽人意。在本期和最后一期中,我将介绍为何消费者可以使用的一些最重要技术没有达到他们预期的效果。我的倡议便由所有这些问题展开。

重载更新技术

保持电子安全的主要原则(实际上就是不容置疑的要求)之一就是使您的所有软件始终保持最新状态。目前,几乎每个主要的软件提供商都提供某种形式的半自动机制,用以至少保持其某些软件的更新。但实际情况并非如此简单。

首先,您拥有的软件越多,必须更新的软件也就越多。同时,您购买其软件的供应商越多,就不得不接触到越多的更新机制。这便是造成混淆的因素。

例如,如果您正好在适当的位置保留了默认设置,Internet Explorer® 将更新其自身。但 Internet Explorer 实际上只是其他技术的一个容器。在 2008 年的 CanSecWest 会议上,当 Shane Macaulay 利用 Java 和 Adobe Flash 中存在的漏洞破解了 Mac 时便说明了此方面存在的潜在影响。(在作者编写此专栏时相关细节仍有些欠缺,因为该缺陷仍未公布。)但依我看来,这两项技术均不是内置组件,然而大多数计算机上都要安装它们,因为它们已广泛应用于 Internet。要保持这两款软件的更新都会有一些难度,因为它们均采用了自动更新机制,尽管这两种机制并非经常有效。

此外,大部分最终用户完全没有意识到这些技术的存在以及它们是需要更新的。大多数情况下,这些技术是在计算机上的 OEM 映像中提供的,对于消费者来说很难将它们与操作系统区分开来。就最终用户而言,当 Windows® Update 指示没有任何更新时,那就绝对没有更新。

第二个问题是更新机制通常都要比实际需要的机制更复杂。任何不具备完全自动模式的更新机制都不大可能得到广泛的使用,因为用户通常都没有意识到他们需要运行更新工具。而且,在大多数情况下,用户必须是管理员才能安装更新。甚至于用户必须是管理员才能获得可用更新的通知。

最后,供应商们利用软件更新技术来部署那些用户没有安装且完全不相关的软件(工具栏等)的现象越来越普遍。软件更新技术已从专用于部署软件更新过渡到一种分发附加软件的方式。

这方面有两个非常明显的例子,即 Microsoft® Windows Update 服务(如图 1 所示)和 Apple Software Update(如图 2 所示)。Apple 和 Microsoft 都选择了不仅利用各自的更新机制更新软件,还要部署那些用户最初并未安装的新软件。

fig01.gif

图 1 利用 Windows Update 部署 Silverlight(单击该图像可查看大图)

fig02.gif

图 2 利用 Apple Software Update 分发 Safari(单击该图像可查看大图)

在 Apple 案例中,即使您只安装了 QuickTime,也同时为您提供 iTunes 和 Safari。有趣的是,在默认情况下它们还全部被选中。

在 Windows Update 案例中,利用此更新服务部署的最新软件是 Silverlight™。Microsoft 在过去就使用过此项技术来分发新软件。值得称赞的是,至少 Microsoft 没有默认选中此框来安装新软件。

对于用户而言,此方法(通过更新机制分发新软件)会引发两个问题。首先,许多人后来在其计算机中留下的软件要比其开始使用时多。如您所知,无论做任何用途,所有软件都存在一些错误,而其中某些错误可能会导致潜在的安全漏洞。其中一些漏洞终将为某种形式的攻击所利用。结果是,许多用户将受到他们不需要甚至没有使用过的软件的攻击,而该软件是通过软件更新机制部署到其计算机上的。

另一个问题是用户可能会错误地理解软件更新机制的价值。如果用户们发现软件更新机制被用来部署新软件(而不是新的更新内容),他们可能会将更新机制视为一个麻烦,进而停止使用它们。设想一下,用户在受到来自其从未使用过而是通过软件更新机制接收到的某个程序的漏洞的攻击之后,他会有怎样的感受呢?

与用户对应保证其安全的技术失去信任相比,有几件事情可能会对技术体系的健康和安全造成更大的伤害。用户一旦失去了这种信任,他们将开始排斥这些技术,并最终放弃使用。如果对保护至关重要的技术(如更新技术)失去恩宠,则整个技术体系将处于危险的境地。保护这种体系是 Microsoft 甚至向明知道其运行盗版软件的计算机分发安全更新的原因所在。

相比之下,我十分欣赏整洁的特制 Mozilla Firefox 更新界面(如图 3 所示)。我当然希望 Mozilla 继续坚持杜绝通过其软件更新工具分发附加软件。

fig03.gif

图 3 Firefox 的软件更新界面是业内最整洁的界面之一(单击该图像可查看大图)

有关安全的矛盾消息

如果整个行业针对消费者制定一致的消息将是件多么美妙的事情啊。虽然行业内的竞争是必不可少的,但消费者确实需要了解安全对其意味着什么。遗憾的是,如果整个行业继续发送彼此冲突的消息,消费者便无法做到这一点。坦白地讲,各家公司自己发布的消息能不相互矛盾就算不错了。

虽然这种通用消息在行业中恐怕永远不会出现,但至少要在消息传送过程中应保持一致性和实事求是。消费者对安全技术的继续信赖至关重要,这使整个行业任重而道远。

同样地,我们还需要询问是什么提供了目前的实际价值。 例如,我并不认为防病毒软件像行业内现在宣传的那样有效,甚至必不可少。就拿我七岁大的儿子使用的计算机和我家厨房的计算机来讲。两台计算机都安装了防病毒软件,但在安装后的三年里,没有一台在出现问题时报过警。现在,我并不是说我们应放弃防病毒软件,因为此时它仍是是技术体系的核心组件。显然,如果我们突然删除所有防病毒软件,那么攻击者很快就会利用这一点,而我们将会遇到更多的病毒感染案例。

其中的关键是整个行业需要考虑一下用户在其安全产品中真正需要的功能是什么,这些功能的有效性如何以及公司如何向消费者传达这些需求和价值。但目前的实际情况是用户收到了太多相互冲突、夸张且常常不真实的安全消息。

归根结底为复选框

举例来说,安全软件行业都是围绕套件做文章的。 今天,安全软件几乎是完全作为一组看起来毫不相关的功能进行分发的。几乎没有任何信息涉及到其中哪些功能是用户实际需要的。

这似乎导致了一场选取更多复选框的竞赛。虽然检查表为比较产品提供了一种很好的方式,但同时它们可能会引来不必要,甚至不值得要或没有意义的功能。图 4 至 7 显示了四个不同的安全软件供应商所提供的四种不同的复选标记列表。可以有把握地认为带有 17 个复选标记的产品比只有 10 个复选标记的产品的质量更胜一筹吗?

这些图确实非常有趣。在图 4 中,产品收到一个复选标记就成为了一个新版本。而在图 5 中,产品获得一个复选标记,是因为(根据公司的声明)它可以“阻止恶意网站的攻击”。图 6 中的产品受到更多青睐,因为它提供了“儿童上网保护”。显然,没有人会想要一款无法保护儿童的产品。但是,赢家将诸如注册表整理和硬盘碎片整理之类的功能包含在安全套件中也真有创意。前者即使有的话也是非常罕见的,而后者已经被置入 OS 中。事实上,Windows OS 的解决方案中已经包含图 7 中所示的 17 个复选标记中的 15 个。

fig04.gif

图 4 只有 10 个复选标记的顶级产品(单击该图像可查看大图)

fig05.gif

图 5 带有 11 个复选标记的产品必定更好(单击该图像可查看大图)

fig06.gif

图 6 稍等一下,这款产品有 12 个复选标记(单击该图像可查看大图)

fig07.gif

图 7 这款有 17 个复选标记的产品一定是最佳解决方案,不是吗?(单击该图像可查看大图)

其中有一些令人烦扰的头疼的流行趋势。这些产品不仅复制已经包含在操作系统中的功能(却忘了在营销文献中提及这一事实),还会发表完全错误的声明。例如,世界上没有任何安全软件能够真正地阻止来自任何位置的攻击,它们只能帮助防御攻击。任何产品也不能让您避开攻击者的视线。

问题在于软件安全的业务很大程度上是为保护用户不受其他供应商的产品带来的漏洞的伤害而构建的。但这些供应商不断致力于增强对其自己消费者的保护,结果使得安全软件行业发现其业务模式受到了威胁。虽然安全软件行业必定会发挥巨大作用,因为各种新的风险正在浮出水面,但供应商需要帮助消费者管理风险,而不只是抵御那些已不再是真正威胁的威胁。

倡议

如果我希望读者通过这个由三部分内容组成的系列文章领悟一点的话,那就是我们作为一个行业需要对我们的用户和消费者说实话。我们需要解释这些风险以及用户应如何解决它们。最后,我们需要开始装备人们以使他们能保护自己。

我对于所有这些“解决方案”最大的顾虑是,从长远来看,它们最终很可能会降低安全性。如果用户甚至 IT 经理真的相信这些产品将解决实际的安全风险(尤其是他们宣称有能力解决的所有风险),我们可能会失去传授人员如何真正保护自己的机会。

以密码身份验证系统为例。如果用户认为我在本系列的第一部分中讨论过的基于密码的身份验证系统的脆弱加载项能保护他们,那么他们可能会变得更加松懈,转而使用更薄弱的密码。我在本系列文章中重点介绍的最糟示例中,这项技术实际上是强制用户使用比以前更差的安全性(如果新技术还没有实现)。这意味着,当恶意用户发现如何攻克这些系统时(通常这并不很难),那么我们的处境比现在还要糟糕。这可能会导致严重的信任问题,致使用户放弃有真正价值的解决方案。

我们需要立即采取行动来保护支撑我们业务的技术体系。当然,必须要鼓励创新,但我们还必须要非常小心地避免为了创新而妨碍真正的风险分析。否则,我们所谓的安全壁垒将是十分脆弱的。

我讨论过的其他示例也是如此。以毫无意义的安全假象为例。它对用户绝对没有任何好处,它给用户带来一种安全错觉,使在线服务提供商可以逃避优化,而实际上对用户造成了间接的伤害。其间,只需花上几千美元(或许极个别情况是上万美元)的净成本便可向用户提供适当的信息。要求供应商花那么一点钱来保护其消费者及其业务真的很过分吗?

这有许多含义。首先,我们必须转变用户不能作出决定的认识,而且我们绝不能这样做。用户并非无法学会做出决定。毕竟,这些用户已经做出了许多决定,例如,决定购买计算机或者决定使用您的站点或者决定购买您的产品或服务之一。就像人们需要学习安全驾驶一样,他们也必须学习安全地使用计算机。目前,攻击者是以用户个人为目标,且不能依赖于技术进行决策。相反,安全技术必须是决策支持系统,在适当的时候提供适当的信息,使用户可以做出英明的决策。

世界上某些最糟糕的用户界面都来源于安全解决方案,因为应用程序要么被设计成对用户隐藏所有类型的决策,要么被设计成将所有可用数据(以非友好方式)转储给用户。两种方法都不起作用。前者将用户置于风险之中,因为不能根据该项技术做出正确的选择。如果技术被视为阻碍了用户的业务目标,那么在该项技术很快会被淘汰。而后一种方法也失败了,是因为人们不想受到 IP 地址、进程 ID 以及其他对于他们来说毫无意义的数据的打扰。他们只想知道计算机正在利用其密码和信用卡做什么。毕竟,这才是安全的真正含义。

Jesper M. Johansson 是研究安全软件的软件架构师,还是《TechNet 杂志》的特约编辑。他拥有管理信息系统博士学位,具有 20 多年安全方面的经验,并且是企业安全性领域的 MVP。他的最新著作是《Windows Server 2008 安全资源工具包》