浏览器隔离是一项技术,它通过将加载网页的过程与显示网页的用户设备分开以此来保持浏览活动的安全。这样,潜在的恶意网页代码就不会在用户的设备上运行,可防止恶意软件和其他网络攻击对用户设备和内部网络的影响。
从安全角度来看,访问网站和使用 Web 应用程序都涉及到 Web 浏览器需要加载不受信任的远程来源(如遥远的 Web 服务器)的内容和代码,然后在用户的设备上执行这些代码,这使得浏览 Web 成为一种相当危险的活动。与之相反,浏览器隔离在远离用户的地方加载和执行代码,使用户设备和所连接的网络免受风险的影响——这类似于在工厂内使用机器人来执行某些危险任务可以使工厂工人更安全。
浏览器隔离是零信任安全模型的重要组成部分,在该模型中,默认不信任任何用户、应用程序或网站。零信任是一种信息安全方法,默认情况下不信任任何用户、Web 流量、应用程序或设备。零信任安全模型假设即使用户已安全加载网站 99 次,该网站也可能在第 100 次被入侵。浏览器隔离是在实践中实现这一假设的一种方式。
浏览器隔离的作用:
浏览器隔离主要有以下三种:远程(或云托管)、内部以及客户端。
在所有三种浏览器隔离方法中,用户的浏览会话会在浏览会话结束时都被删除,因此与该会话相关的任何恶意 cookie 或下载内容都会被删除。
远程浏览器隔离技术(RBI,Remote Browser Isolation),该技术从另外一种角度提出了解决现阶段Web类业务的方案风险。通常利用虚拟化或容器化技术将用户的Web浏览活动与端点设备隔离,借此显著减少恶意链接和文件的攻击面。
有些方案需要客户端安装特定的 client,有些无客户端方案直接使用主流的浏览器即可。
远程或云托管的浏览器隔离使不受信任的浏览器活动尽可能地远离用户设备和企业网络。它通过在云供应商控制的云服务器上进行用户的 Web 浏览活动来实现。然后,它将产生的网页传输到用户的设备上,这样用户就可以像平常一样与互联网互动,但不会在他们的设备上实际加载完整的网页。鼠标点击或表格提交之类的任何用户行为都会被传输到云服务器并在那里执行。
对于用户,RBI 是这样工作的:
远程浏览器隔离服务器有以下几种方式可以将 Web 内容发送到用户的设备上:
像素推送比较好理解,通过捕获远程浏览器“窗口”的像素图像,并将图像序列传输到客户端端点浏览器或专有客户端。将浏览器流式传输到用户,用户查看其浏览活动的视频或映像,这种技术就称为“像素推送”。
像素推送捕获用户浏览器中的事件(点击、鼠标移动、击键等),将它们传输到远程浏览器,并以一系列屏幕截图或视频流的形式返回响应。通过这种方式,用户的端点不会接收任何 Web 应用程序代码,并且用户仅与图像或视频渲染进行交互。
像素推送技术与远程桌面的工作方式相似。通过像素推送,用户可能会遇到延迟,因为流式视频和音频内容可能会滞后。此外,用户端点上显示的视频可能会模糊,因为 Web 内容以远程实例上设置的分辨率流式传输。并且使用体验差、带宽占用高、成本高这些都是比较可见的明显缺点。
打开、检查和重写每个网页,删除恶意内容,然后发送到本地用户浏览器,这种方法称为 DOM 重写。
使用这种方法,将在一个隔离的环境中加载并重写网页以删除潜在的攻击,在内容安全后,它将被发送到用户的设备上,在那里网页代码会被第二次加载和执行。DOM 重建从网页中删除所有可疑或动态代码,这意味着用户可能不会收到页面的重要块。我们可以将安全的 Web 应用程序列入白名单,以降低丢失重要信息的风险。
该方案对于一些内容比较复杂的网站场景不是很合适,但是反过来对于一些简单的门户网站类场景就比较合适了。
NVR相较于前两种技术比较难以理解。可以理解为是基于浏览器底层功能的复制将远端浏览器的一些渲染工作流程截取后同步到本地,然后在本地进行复现。
NVR工作原理如下:
(首先要清楚一点,浏览器窗口中可见的所有内容均通过 Skia 渲染层进行渲染。这包括应用程序窗口 UI(如菜单),但更重要的是,网页窗口的整个内容均通过 Skia 渲染。)
(这种技术在 cloudfare(一家美国的关于内容交付网络(CDN) 和安全公司)收购网络矢量渲染(NVR)的 S2 专利技术后归其所有,所以被cloudfare大力推广)
Skia 是一款用 C++ 开发的、性能彪悍的 2D 图像绘制引擎,其前身是一个向量绘图软件。2005 年被 Google 公司收购后,因为其出色的绘制表现被广泛应用在 Chrome 和 Android 等核心产品上。Skia 在图形转换、文字渲染、位图渲染方面都表现卓越,并提供了开发者友好的 API。
Skia 是使用广泛的跨平台图形引擎,用于 Android、Google Chrome、Chrome OS、Mozilla Firefox、Firefox OS、FitbitOS、Flutter、Electron 应用程序框架和许多其他产品。
Chromium 浏览器窗口中可见的所有内容均通过 Skia 渲染层进行渲染。这包括应用程序窗口 UI(如菜单),但更重要的是,网页窗口的整个内容均通过 Skia 渲染。Chromium 合成、布局和渲染极其复杂,具有针对不同内容类型、设备环境等进行了优化的多个并行路径。
内部浏览器隔离的工作原理与远程浏览器隔离类似。但浏览不是发生在远程云服务器上,而是发生在组织的私有网络内的服务器上。与某些类型的远程浏览器隔离相比,这可以减少延时。
内部隔离的缺点是,组织必须为浏览器隔离配置自己的专用服务器,这可能很昂贵。隔离通常还必须发生在组织的防火墙内,而不是在它之外(就像在远程浏览器隔离过程中那样)。即使用户设备保持安全,不受恶意软件和其他恶意代码的影响,内部网络本身仍然存在风险。此外,内部浏览器隔离很难扩展到多个设施或网络,对于远程员工来说尤其如此。
与其他类型的浏览器隔离一样,客户端浏览器隔离对浏览器会话进行虚拟化;与远程和内部浏览器隔离不同,客户端浏览器隔离是在用户设备本身进行的。它试图通过虚拟化或沙盒化将浏览与设备的其他部分分开。
由于客户端浏览器隔离涉及到在用户设备上实际加载潜在的恶意内容,它仍然对用户和网络构成风险。将有害代码与设备进行物理隔离是其他类型的浏览器隔离的核心概念,而客户端浏览器隔离则没有这种隔离。