acm-header
登录

ACM通信

实践

除非我们打破网络,否则网络不会安全


除非我们打破它,否则网络不会安全

图片来源:Alicia Kubista / Andrij Borys Associates

回到顶部

互联网的设计初衷是传递信息,但很少有人能预见到所涉及的大量信息,以及这些信息的个人性质。同样,很少有人能预见到互联网设计中的潜在缺陷,更具体地说,网络浏览器会暴露这些个人信息,危及个人和公司的数据。

如果人们知道他们无意间让自己的个人信息泄露给了他们访问的每个网站,甚至是他们从未访问过的网站,他们就会受到干扰。如果用户只需点击一下鼠标,就会显示出更多个人身份信息,包括全名和地址、家乡、学校、婚姻状况、朋友名单、照片、他们登录过的其他网站,在某些情况下,还会显示浏览器的自动完成数据和他们访问过的其他网站的历史记录。

多年来,我们一直有可能获得所有这些信息。今天最流行的浏览器,包括Chrome、Firefox、Internet Explorer和Safari,都没有为用户提供足够的保护。这种数据丢失的风险似乎与浏览器厂商在过去几年里为其产品添加的新安全特性和改进(如沙箱、静音和自动更新、增强软件安全性、反网络钓鱼和反恶意软件警告)的营销宣传背道而驰,这些都是默认启用的。虽然所有这些都是值得欢迎的进步,但事实上,这些功能的设计只是为了防止一种非常特殊的浏览器攻击,这些攻击通常被归类为自动下载

飞车下载试图摆脱浏览器墙的限制,用恶意软件感染下面的计算机操作系统。毫无疑问,驱动下载是一个严重的问题——当遇到受感染的网站时,数以百万计的个人电脑已经通过这种方式受到威胁,但它们肯定不是只有浏览器用户面临威胁,特别是在一个有组织的网络犯罪和超针对性的在线广告的时代。

获取个人信息的攻击背后的技术是完全不同的,和恶意软件一样危险,可能更危险,因为解决方案远比安装杀毒软件复杂得多。这些攻击技术甚至有更深奥的标签,如XSS(跨站脚本)、CSRF(跨站请求伪造)和点击劫持。这些类型的攻击(大多数)满足于停留在浏览器墙内,它们不像它们的驱动器下载的兄弟那样利用内存破坏漏洞,但它们仍然能够完成它们的肮脏工作而不留下痕迹。

这些攻击主要是用HTML、CSS(层叠样式表)和JavaScript编写的,所以它们不能被传统意义上的杀毒软件识别为恶意软件。他们利用了互联网设计工作的缺陷。其结果是,这些攻击技术不受阻止自动下载的保护措施的影响。尽管它们构成了危险,但在Web安全行业的内部圈子之外,它们很少受到关注。为了更清楚地了解这些鲜为人知的攻击,了解一个常见的Web技术用例是很重要的。

HTML允许Web开发人员从Web上的任何位置在Web页面上包含远程托管的图像文件。例如,位于http://coolwebsite/可能包含如下代码:

< img src = " http://someotherwebsite/image.png " >

这将指示正在访问的浏览器自动向http://someotherwebsite/发送Web请求,并在返回时在屏幕上显示图像。开发者可以添加一些JavaScript来检测图像文件是否加载成功或包含错误:

< img src = " http://someotherwebsite/image。pgn成功" onload = " () " onerror = "错误()>

如果正确加载了图像文件,则执行“成功的”JavaScript函数。如果发生错误,则执行error函数。这段代码完全是典型的、无害的,但是同样的功能也可以用于侵入性的、恶意的目的。

现在,假设http://coolwebsite/从http://someotherwebsite/加载了一个图像文件,但是只有当用户的浏览器当前登录到http://someo-therwebsite/时才能访问该图像文件。像以前一样:

如果用户已经登录,那么映像文件将成功加载,这将导致执行loggedIn.如果用户没有登录,那么notLoggedIn是执行。其结果是能够轻松且不可见地测试访问者是否登录到Web开发人员没有关系的特定网站。这种利用了CSRF的登录检测技术可以应用于在线银行、社交网络、Web邮件以及基本上对攻击者有用的任何其他东西。http://coolwebsite/背后的攻击者只需要找到响应与登录相关的布尔状态的url。

接下来,考虑到恶意网站所有者可能想要更进一步,“去匿名化”Web访问者,也就是说,了解访问者的真实姓名。根据前面的示例,假设攻击者可以确定访问者是否登录了Twitter、Facebook、谷歌+等。每天都有数以亿计的人持续地登录这些在线服务。这些网站,以及许多类似的网站,都是为了方便而设计的。

攻击者可以利用的下一件事是那些熟悉的第三方Web小部件,如Twitter的“关注”,Facebook的“喜欢”和谷歌的“+1”按钮。

虽然这些按钮看似无害且足够安全,但从技术上讲,没有什么能阻止网站将这些按钮放在HTML容器中,例如div标签,使这些按钮透明,并将它们悬停在Web访问者的鼠标指针下方。这样做的目的是,当访客点击他们看到的东西,他们反而自动跟随,喜欢,或+1任何其他坏人想让他们。这是一个典型的点击劫持攻击案例,每天都在发生。

这就是为什么互联网上的这个缺陷很重要:因为攻击者控制着那些按钮背后的对象,在用户点击之后,攻击者可以准确地告诉“谁”在这些在线服务上关注、喜欢或+1(例如,Twitter:“用户X关注了你。”Facebook:“用户X喜欢Page y。”).为了使Web访问者去匿名化,攻击者所需要做的就是查看最近点击的用户的公开资料。这就是攻击者的乐趣开始的时候,而毫无戒心的互联网用户的麻烦开始了。

另一个长期存在的问题“浏览器内部网黑客”值得关注。这种严重的风险在2006年首次被讨论,直到今天在很大程度上仍然没有得到解决。浏览器内部网黑客允许网站所有者通过使用浏览器作为启动点来访问访问者的私有网络,这些访问者可能位于网络防火墙后面。这种攻击技术非常简单,对企业和家庭用户同样有效,暴露了一个全新的数据领域。

攻击流程如下:Web用户访问了一个恶意网站,如http://coolwebsite/。该站点指示访问者的浏览器向访问者可以访问但攻击者无法访问的IP地址或主机名(如192.168.x)发出Web请求。x或RFC-1918定义的任何不可路由IP。这种请求可以通过使用IMG标记强制执行,就像在前面的示例中那样,也可以通过使用iframe,脚本,链接标签:

< iframe的src = " http://192.168.1.1/ " onload = "检测()" > < / iframe >。

根据IP地址给出的可检测的响应,攻击者可以使用Web访问者的浏览器来扫描内部私有网络以侦听IP Web服务器。这种扫描可以定位打印机、IP电话、宽带路由器、防火墙、配置仪表板等。

浏览器内部网黑客背后的技术类似于登录检测示例中的布尔状态检测。此外,根据用户是否登录到IP/Hostname,这种类型的攻击可以迫使访问者的浏览器通过可以快速枚举的知名IP(192.168.1.1、10.10.0.1等)对宽带路由器的基于web的接口进行配置更改。这种类型的利用的后果可能是毁灭性的,因为它可能导致所有流量首先通过攻击者的网络路由。

除了登录检测、去匿名化和浏览器内部网攻击,在当今的现代浏览器中还有许多其他可能的攻击技术。例如,粗略地说,IP地址地理位置告诉Web访问者来自哪个城市/城镇。user-agent报头显示访问者使用的浏览器发行版和版本。各种JavaScript DOM(文档对象模型)对象使得列出哪些扩展和插件可以被破解或识别变得很简单。DOM对象还显示屏幕尺寸,从而提供人口统计上下文以及用户是否使用虚拟化。

对于网站所有者来说,浏览器的安全性可以有很多影响,但重点是:网络浏览器并不“安全”;网络浏览器并不“安全”;互联网有影响用户(个人或公司)安全的根本缺陷。

这里有一句妙语:唯一能充分解决这类问题的方法就是“破坏网络”(也就是说,对很大一部分网站的可用性产生负面影响)。这些问题仍然存在,因为Web开发人员(在很大程度上是Web用户)要求某些功能仍然可用,而正是这些功能使这些攻击成为可能。

今天的主要浏览器厂商,以市场份额为导向,非常乐意遵守。他们的选择很简单:要么不那么安全,更多地被用户接受,要么安全,隐晦。这是那些不完全了解、不理解或不为他们强加给每个使用Web的人的风险负责的人所做的Web安全权衡选择。

回到顶部

不可能实现的解决方案

为了修复登录检测,浏览器可能决定不将Web访问者的cookie数据连同Web请求一起发送到域外目的地(与URL栏中的主机名不同的那些)。cookie对于跟踪登录状态至关重要。域外目的地仍然可以获得请求,但不知道它属于谁。这对阻止攻击是一件好事。

然而,如果不将cookie送出域名,就会破坏任何使用多个主机名来传递认证内容的网站的功能。这种方法将打破诸如Twitter的“关注”、Facebook的“喜欢”和谷歌的“+1”按钮等一键式网络小部件。用户将被要求执行第二个步骤。它还将打破通过谷歌Analytics、Coremetrics等进行的访问者跟踪。从许多人的角度来看,这显然是不可能的。

要修复点击劫持,Web浏览器可以禁止iframes完全,或者至少禁止透明iframes.理想情况下,浏览器用户应该能够“看到”他们真正点击的内容。建议这样改变的iframes然而,这是一场失败的战斗;数以百万计的网站依赖于他们,包括透明iframes,用于基本功能。典型的例子是Facebook、Gmail和雅虎!邮件。当使用ifframe时,你通常不会看到它们,但它们确实无处不在。这种程度的破坏是绝对不能容忍的。

对于浏览器内联网黑客,Web浏览器可以禁止包含来自非RFC-1918网站的RFC-1918资源。这实际上在浏览器的公共和私有网络之间创建了一个断点。浏览器供应商说这不可行的一个原因是,一些组织确实合法地将内部网内容包含在公共网站上。因此,因为一些组织(您从未听说过,也从未访问过他们的网站)有一个奇怪的用例,您的浏览器将您所在的私有网络以及其他数亿人的私有网络完全打开。


浏览器安全和在线隐私方面的显著改善受制于与互联网设计相关的向后兼容性要求。


虽然这听起来令人震惊,但试着从浏览器供应商的角度来看不修复这个问题的决定。如果他们打破了这些不知名组织的不常见的使用情况,这些组织中的人被迫切换到一个竞争的“不安全”浏览器,以允许他们继续正常的业务。当所有其他用户的安全性都提高的时候,浏览器厂商失去了一些市场份额。

回到顶部

安全鸿沟

浏览器厂商不愿冒险抢占市场份额,这导致了当前的安全鸿沟。浏览器安全和在线隐私方面的显著改善受制于与互联网设计相关的向后兼容性要求。网络浏览器厂商之间展开了堑壕式的竞争,他们通过争夺一小部分新用户(那些不给他们一分钱的日常用户)来获得地盘,同时试图留住他们已经拥有的每一个用户。

重要的是要记住,主流浏览器本质上是广告平台。浏览者的眼球越多,投放的广告就越多。广告和广告点击量是整个聚会的费用来源。任何阻碍这一切的事情都不是优先考虑的。

公平地说,经过多年的讨论,最近取得了一个重要的胜利,即对CSS历史嗅探应用了一个修复。这是一个网站通过在网页上创建超链接,并使用JavaScript或CSS检查显示在屏幕上的链接的颜色,从而发现用户访问过的其他网站的历史记录的能力。蓝色的链接表示来访者没有到过那里;紫色表示用户访问过该网站。这是一个严重的隐私漏洞,它简单、有效,每秒可以快速执行10,000个url。任何网站都能很快知道你在哪里银行、购物、看什么新闻、经常光顾的成人网站等等。

CSS历史嗅探的问题最终变得如此严重,以至于在它第一次出现大约10年后,所有主要的浏览器供应商最终都破坏了攻击所需的功能。许多依赖于底层功能的Web开发人员对此表示不满,但显然,从浏览器供应商的角度来看,这是可以接受的破坏程度。

当破坏是不可接受的,但问题仍然是糟糕的,新的选择进入浏览器安全特性提出。它们的采用率普遍较低。主要的例子有内容安全策略、x帧选项、来源、严格传输安全、SSL(安全套接字层)、Secure和HttpOnly cookie标志等。网站所有者可以实施这些解决方案,只有当或如果他们想,从而管理自己的破坏。这些特性都不能让Web用户保护自己,而每个浏览器都应该让用户保护自己。现在,网络安全处于停滞状态,等待坏人造成足够的破坏,然后给那些有能力采取行动的人足够的动力。

回到顶部

超越现状

通往更安全的Web的道路有几个选择。我们可以建立一个全新的万维网,或者其中的一个区域。然而,一个能够应对当前一系列问题的Web平台将永远困扰它的前身。现在,让我们假设我们在技术上知道如何制作一个安全的平台,这是一个很大的平台如果

下一步将是说服数百万,甚至可能是数亿的重要网站的开发人员转移到版本2上,或者在版本2的基础上构建。当然,“更安全”平台的承诺本身不足以激励企业。此外,他们还必须得到更有吸引力的东西。即使有一些更有吸引力的东西,这条道路也只是将我们的向后兼容性问题交换为遗留问题,而遗留问题可能需要数年,也许是10年或更长时间才能解决。

在移动应用领域,还有另一种模式已经获得了成功。你在那里看到的基本上是许多小型Web浏览器连接到主网站的移动版本。移动平台(如苹果的iOS和谷歌的Android)提供的安全优势是,应用程序在内存和会话状态中彼此隔离。

例如,如果你启动美国银行的移动应用程序,登录,办理银行业务,然后随后启动Facebook的移动应用程序并登录,这两个应用程序都不能访问另一个应用程序的会话,就像在一个普通的桌面Web浏览器中一样。移动应用程序在登录检测、去匿名化和内网黑客方面几乎没有问题。如果移动平台可以摆脱这种级别的应用程序和登录状态隔离,桌面世界当然也可以。

通过在桌面采用类似的应用程序模型,使用自定义配置的Web浏览器(我们称它们为DesktopApps),我们可以解决Internet固有的安全缺陷。例如,这些桌面应用程序可以被适当地打上品牌,并设计成自动启动到美国银行或Facebook的网站上,而不再延伸。像它们的移动应用程序兄弟一样,这些DesktopApps不会显示URL栏或其他任何东西,使它们看起来像它们表面上的Web浏览器,当然它们会彼此隔离。在这些桌面应用程序中,诸如XSS、CSRF和点击劫持等攻击将基本消失,因为不允许跨域连接是必要的先决条件。

DesktopApps还将为Chrome、Firefox、Internet Explorer和Safari提供重要的安全优势。登录检测、去匿名化等攻击将受到严重阻碍。假设Web访问者X在访问美国银行(Bank of America)、Facebook或其他网站时只使用了一个特殊的DesktopApp,并且从来不使用默认的Web浏览器进行任何这些活动。当X使用Chrome、Firefox或Internet Explorer时,如果遇到一个试图执行登录检测和去匿名化的网站,那么X从来没有登录过该浏览器中的任何重要内容,所以攻击会失败。

内网黑客怎么办?如前所述,答案是破坏功能。Web浏览器不应该允许非RFC-1918网站包含RFC-1918内容——至少在没有ssl样式的安全异常的情况下是这样。一个或所有现有的浏览器供应商都需要相信这一点。如果这家神秘的公司有一个奇怪的用例想要继续,它应该创建一个特殊的企业DesktopApp来允许它。这样做的结果将是更加安全,我们所有人都将如此。

本文概述了修复Web安全的广泛途径,但关于如何推出DesktopApp并让市场采用这类实践,还有很多问题没有解决。除了安全方面的好处,桌面应用还需要其他特性来吸引Web访问者;否则浏览器厂商就没有创新的动力。还需要游说网站所有者和开发者。所有这些都使得修复互联网成为一项艰巨的任务。为了通过安检,到达我们的最终目的地——一个我们的信息仍然安全的世界——我们必须想出创造性的解决方案,做出艰难的选择。

ACM队列的q戳相关文章
queue.acm.org

浏览器的安全
查尔斯·里斯,亚当·巴斯和卡洛斯·皮萨诺
http://queue.acm.org/detail.cfm?id=1556050

浏览器的安全
托马斯·瓦德洛和弗拉德·戈利克
http://queue.acm.org/detail.cfm?id=1516164

网络犯罪2.0:当乌云变暗
Niels Provos, Moheeb Abu Rajab和Panayiotis Mavrommatis
http://queue.acm.org/detail.cfm?id=1517412

回到顶部

作者

耶格罗斯曼他是WhiteHat Security的创始人兼首席技术官,负责Web安全研发和行业拓展。他是Web应用程序安全联盟(WASC)的联合创始人,此前曾被任命为其中之一信息世界的it’前25位首席技术官。他在两家初创公司Risk I/O和SD Elements的顾问委员会任职。在创立WhiteHat之前,他是雅虎的一名信息安全官员。


©2013 0001 - 0782/13/01 ACM

如果您不是为了盈利或商业利益而制作或分发本作品的部分或全部,并在第一页注明本通知和完整引用,则允许您免费制作本作品的部分或全部数字或纸质副本,供个人或课堂使用。本作品的组成部分必须由ACM以外的其他人享有版权。信用文摘是允许的。以其他方式复制、重新发布、在服务器上发布或重新分发到列表,需要事先获得特定的许可和/或费用。请求发布的权限permissions@acm.org或传真(212)869-0481。

数字图书馆是由计算机协会出版的。版权所有©2013 ACM有限公司


没有发现记录

登录为完全访问
»忘记密码? *创建ACM Web帐户
文章内容:
Baidu
map