安全浏览服务简史:谷歌如何成就更安全的互联网环境?

2018-07-31 00:43:36 / 打印

从最初的电话盗用与蠕虫病毒,到后来的垃圾邮件与各种弹窗,Web环境的安全问题一直困扰着无数用户。在互联网兴起的数十年当中,数字网络已经彼此分离与隔离,这意味着普通用户能够回避大多数最糟糕的安全问题。然而,到二十一世纪初,这些防御壁垒开始快速崩塌,数字犯罪则以完整生态系统的姿态继续蓬勃发展。

即将于今年9月迎来20岁生日的谷歌公司在这一过渡期间不断成长。随着其搜索平台上衍生出大量互连产品——包括广告发布与电子邮件托管,谷歌公司意识到其用户与网络上的每位参与者都面临着持续升级的在线诈骗与滥用威胁。因此,谷歌公司在2005年组织了一个专项小组,负责构建一个用于标记潜在社交工程攻击活动的项目——换言之,网页将能够在发现可能的诱导性活动时向用户发出警告。

一年之后,该小组扩大了工作范围,努力对各类可能发布恶意软件的链接与网站进行标记。谷歌公司还将这些反滥用工具整合到自家产品当中,同时积极将其提供给外部开发人员。到2007年,该服务已经拥有了自己的正式名称:安全浏览(Safe Browsing)。在悄无声息当中,这一切开始从根本上改变互联网的安全性。

即使大家并未察觉到,安全浏览仍在随时为我们提供保护。当用户在各类热门浏览器中加载页面或者从Google Play商店中选择应用时,安全浏览会在后台运作以检查恶意行为并通知您可能存在的任何潜在问题。然而,立足网络规模建立如此庞大的审查系统并不容易。安全浏览一直致力于应对核心安全挑战——即如何在标记并阻止不良内容的同时,避免遗漏恶意活动或者将合法活动错误标记为应屏蔽内容。虽然这个问题目前尚未得到彻底解决,但安全浏览已经成为网络世界的坚强后盾。其支持着谷歌所有主要平台(包括Chrome、Android、AdSense以及Gmail)的用户安全保障工作,并运行在全球超过30亿台设备当中。

通过与安全浏览项目组内的九位谷歌工程师进行对话,我们了解到产品的整个构建流程,及其如何在网络之上成为无处不在的重要保护力量。

安全浏览项目创建成员之一、谷歌公司杰出工程师Niels Provos:

我最初是在2003年加入到谷歌公司的拒绝服务防御工作中来,而后与2005年加入的另一位谷歌工程师Fritz Schneider成为安全团队中的最早成员。他当时提到,“嘿,Niels,现在网络钓鱼可真的是个大麻烦,我们应该做点什么。”他开始带领一两名工程师以业余研究的方式投身其中,而我们发现首先需要弄清楚的是网络钓鱼页面究竟是什么,我们又该如何以有意义的方式向用户通报这一点。沿着这样的思路,我们有了最早的网络钓鱼团队。

我们观察到的一大重要趋势在于,恶意人士发现入侵其它Web服务器往往无法带来什么真正的回报。他们只能得到带宽资源,却很难找到有趣的数据。因此,他们转向其成功入侵的服务器本身,这里存在着大量访问者。他们开始考虑“我们该如何通过下载进一步入侵这些用户?”到这里,恶意行为开始发生整体性变化。

既然已经开始研究网络钓鱼了,那接下来很自然的延伸方向自然是恶意软件喽。我们拥有着特殊的定位,因为通过谷歌搜索的抓取工具,我们能够全面了解网络城郭。因此,我们开始同时关注网络钓鱼与恶意软件,而安全浏览正是以这样的汇集方式逐步成型。

安全浏览工程技术主管Panos Mavrommatis:

安全浏览最早只是Mozilla火狐浏览器上的反网络钓鱼插件。当时是2005年,谷歌公司还没有自己的浏览器。当我在2006年加入时,团队负责人是Niels,他希望我们进一步扩展至恶意软件研究层面以保护用户,而不仅限于网络钓鱼本身。那就是我接到的第一个项目——而且时至今日仍然没有完成。

“但我们并没有想到十年之后,我们的成果能够运行在30亿台设备上。这真的有点吓人。”

Niels Provos,谷歌公司

当时,我们的目标是抓取网络并保护谷歌的主要产品(即搜索服务)抵御那些指向其它可能损害用户计算机的网站的恶意链接。这是即反网络钓鱼插件之后,安全浏览项目推出的第二款产品,用户能够在恶意搜索结果当中看到相关标记。而后,如果您点击该链接,将收到来自搜索服务的进一步警告,其中提醒您所访问的网站可能会损害您的计算机。

在此期间还发生了不少趣事,特别是我们与受安全浏览警报影响的网站管理员们进行了一系列沟通。在我们着手研究用户如何在网络上遭遇恶意软件问题时,我们很快就意识到其中相当一部分恶意内容实际上来自合法网站。这些网站本身并无不良企图,只是受到了入侵并开始通过漏洞传播恶意软件。在这种情况下,网站所有者或管理员通常并没有意识到已经出现了问题。

在我与网站管理员们进行的第一次互动中,他们常常会对我们表达的观点感到惊讶。因此,我们开始构建专用于Web主服务器的工具,如今其被称为Search Console。其基本功能在于尝试引导网站管理员了解其网站受到感染的原因,或者至少告诉他们其服务器上有哪些网页因为怎样的理由而正在传播恶意软件。或者,我们有时候也会向其直接展示已经被注入网站的代码片段。

Provos:我们也受到了很多质疑,比如“Niels,我可不接受你只是为了网络用户的利益而侦察我们的网站这种说法。谷歌公司必须对此拿出个态度。”为此,我们整理了其中的基本思路,即如果网络能够以更安全的形式呈现在用户面前,那么人们将更频繁地使用我们的产品,这必须会令谷歌受益。

然而,我们并没有想到十年之后,我们的成果能够运行在三十亿台设备上,这真的有点吓人。为数十亿人提供重要服务对我们来说代表着一种巨大的责任。如果我们在检测方面做得不够好,他们就可能暴露在恶意内容当中。

Mavrommatis:在2008年左右,我们开始构建一套用于运行谷歌已经抓取的每个页面的引擎,旨在评估各页面的行为方式。要完成这项工作,只能利用谷歌的内部云基础设施。正因为如此,谷歌公司当时才能够进行大量创新,因为我们的内部拥有着这套极为开放的基础设施,大家可以使用一切闲置资源并在整个网络上运行恶意检测引擎。

安全浏览首席工程师Moheeb Abu Rajab:从学校毕业之后,我一直尝试在几台设备上构建这类系统,我也在这方面投入了大量时间与精力。而这只是谷歌公司在规模化方面做出的规模最小的努力。

Mavrommatis:我们当时还在同步推动一个进展较慢但更具深度的扫描程序,其能够在真实浏览器中加载网页。这比我们以往遇到过的单网站组件测试要更耗费资源。以这两套系统为基础,我们得以构建起自己的第一款机器学习分类器。更深层次的爬网服务能够为轻量级引擎提供训练数据,因此其可以学会识别哪些站点最可能存在恶意意图并需要进一步接受深度扫描。因此即使以谷歌公司的规模,我们也无法利用真实浏览器抓取整个搜索索引。

前安全浏览项目组成员,谷歌AI工程师Noé Lutz:

大约在同一时间点,也就是2009年,我们开始利用机器学习处理网络钓鱼活动。对于团队而言,那段时间相当恐怖,因为在此之前我们一直利用机器学习作为过滤性方案,旨在找出真正需要投入大量计算资源的重点; 但现在,我们需要第一次真正以全自动方式将某些东西判断为网络钓鱼、恶意软件或者是有害/无害的对象。

我还记得好天我们启动了项目,接下来所有工作都由机器负责。那是个非常重要的日子。虽然一切进展顺利,但我记得我们花了很长时间才启动这套工具。我们原本以为整个过程可能需要几周,但实际上我们需要投入数个月才能真正对这款工具抱有充分的信心。如果我们犯了错误,我们会非常清楚地了解其会带来怎样的破坏性后果。

Provos:重大时刻往往也意味着严峻的时刻。我们在2009年遇到了一个严重的生产问题。那是一个周六的早上,我们遇到了很多错误,并最终执行了一项错误的配置推送。结果就是,我们将每一条谷歌搜索结果都标记为“恶意”。

即使是在2009年,谷歌也已经成为一款极具人气的搜索引擎,这意味着我们的错误对整个世界产生了巨大的影响。幸运的是,我们的站点可靠性工程团队在这方面处于领先地位,问题在15分钟之内即得到了解决。然而,这仍然引发了大量搜索问题,并促使我们引入更多额外的保护与防御措施,从而确保不会再次出现这样的状况。幸运的是,那时候我们的谷歌人已经意识到安全浏览作为服务的重要意义。也正因为如此,我们才得以将其整合至搜索服务当中。

谷歌软件工程师Nav Jagpal:

2008年,我们将安全浏览集成到Chrome当中。Chrome的出现代表着一次重大的转变,因为在之前使用IE等浏览器时,大家很可能会长期使用陈旧版本。此外,大家能够在任意网站上下载这些浏览器,这意味着其中可能包含大量恶意代码,并导致您的计算机感染病毒。但随着时间的推移,每个人都开始更好地构建软件。原先最薄弱的环节是浏览器,如今则是用户。现在,要在用户的机器上运行代码,只要征得对方同意即可。正因为如此,安全浏览机制才显得如此至关重要。

Mavrommatis:大约在2011到2012年期间,我们开始为谷歌平台构建更深入的集成体系,特别是Android、Chrome扩展程序以及Google Play。我们也创造出了独特且无与伦比的团队,他们专注于每款产品的集成工作,并与提供平台的主要团队共同协作。

前安全浏览产品经理,现就职于美国银行(于2017年接受采访)Allison Miller: 安全浏览在幕后支持着一切。我们建议的基础设施会收集这些信息,并将其推送到谷歌平台上的所有产品当中。如此一来,这些产品会帮助用户发现各类恶意内容。不过人们并不需要感受到这一切的进行,我们有时候也觉得这种设计思路太过“静默”了。

安全浏览软件开发经理Fabrice Jaubert: 在网络外部进行分支构建存在着一系列挑战,但同时也具有自己的优势。因为我们对生态系统拥有了更多控制权,因此我们能够将其引向更安全的实践方向。我们无法决定人们对其网页的处理方式,但我们可以通过Chrome浏览器中的扩展程序或Android应用表达我们认为合理的内容。

Lutz:其中还存在着一些非技术性挑战。谷歌是一家大型企业,跨团队间的有效协作往往很难实现。有时候,大家可能很难从外部感受到,但Chrome使用的语言与谷歌的其它众多服务有所不 ,而且其发布流程也存在着巨大差异。这一点在Android方面体现得尤为明显——其拥有着完全不同的软件发布方式。因此,我认为让每个人都保持一致并相互理解,就成了一个需要克服的重大障碍。

“我们在幕后支持着一切。我们构建基础设施。”

Allison Miller,谷歌公司

谷歌浏览器 mac

前安全浏览团队成员,谷歌AI产品经理Stephan Somogyi:

我知道接下来我要表达的听起来像是陈词滥调,但请大家认真听我讲完。“风太大了,猪都能飞起来”的状况也同样适用于安全浏览。我们希望将其覆盖范围扩展至移动设备端的决定并没有引发任何争论,但我们在这一过程中遇到了一大困境,因为安全浏览在桌面端需要处理的数据量对移动设备而言过于庞大。我们知道,我们推送到移动设备的所有内容都会给用户带来成本,因为他们需要为自己的移动流量付费。因此,我们希望压缩当前已经拥有的数据以控制其体积。我们不希望用户的注意力被每款应用中的各自安全浏览功能所困扰,当然也不希望这些应用各自下载相同的安全数据。因此,我们决定将这项功能直接内置于Android当中,从而将全部繁重的工作集中起来进行处理。就这样,从2015年秋季开始,安全浏览开始成为一项系统服务。

华军世界上迎来送往| 谷歌浏览器 xp-Chrome

因此,我们构建起一个极为简单的API,每一位开发人员都可以利用其向Android本地系统服务查询当前URL到底可不可信。我们还希望确保编写出的成果不会以不必要的方式启动蜂窝调制解调器并大量消耗电池电量,毕竟这会严重影响用户的使用体验。因此,如果当前网络不可用,则该服务将不会被调用。我们花了很多精力实现这项Android功能,而事实证明其最终表现比我们当初的预期还要精密与玄妙。

Mavrommatis:我们的团队在2013年到2014年期间迎来了另一项重大工程,我们将其称为“不受欢迎的软件”。其主要面向桌面用户,旨在解决某些攻击者由以往单纯使用恶意软件技术、逐步转变为将恶意代码隐藏在具备合法功能的软件中的这一全新趋势。目前我们还不清楚各大反病毒软件厂商是如何标记这类情况的,我们也不知道其它浏览器怎样解决这个问题。但就我们而言,最关注的仍然是其对用户造成的实际影响。

2014年左右,我们的数据显示,Chrome用户报告的投诉当中有超过四成与其设备上运行的某种软件有关。这些软件会影响他们的浏览体验——包括可能注入更多广告或者捆绑安装其它用户不需要的软件。这类情况导致了很多问题,而我们也发现很多Chrome用户都在下载这类应用。因此,我们改进了下载保护服务,并找到在开始下载之前向用户发出警告的有效方法。

Jagpal:这是一项重大的责任,但在感觉上也非常抽象。在收到具体的警告或者警报时,大家肯定会想“这里有问题?我得怎样想办法保护自己?”为了避免这种情况,我们使用了更为抽象的提示方式,把这项功能变得像是电灯开关一样,这样用户们就能了解情况但又不致因细节信息而分心。

Jaubert:我14岁的小孩已经把安全浏览视为一种理所当然的功能。他曾收到一条短信形式的网络钓鱼邮件,但却没有被我们的系统所发现。他对此感到震惊,并质问我“你为什么不保护我?我还以为你们都解决好了!”这实际上让我相当欣慰,因为人们开始以理所当然的心态享受安全浏览带来的便利。

Chrome安全产品经理(前安全浏览项目经理)Emily Schechter:

大家可以自信地告诉别人,当他们访问安全网站时,自己不会面临任何风险。而更重要的是,安全浏览会在他们访问经常发生问题的网站时提醒他们可能存在的风险。

人们应该期望网络世界默认安全且易于使用。我们不应要求人们拥有大量专业知识才能浏览网页,他们也不需要知道网络钓鱼是什么或者恶意软件是什么。相反,用户可以要求软件在出现问题时发出通知,而这正是安全浏览希望达成的目标。

本文由安全内参翻译自Wired