远程浏览器隔离技术
1、什么是浏览器隔离?
浏览器隔离是一项技术,它通过将加载网页的过程与显示网页的用户设备分开以此来保持浏览活动的安全。这样,潜在的恶意网页代码就不会在用户的设备上运行,可防止恶意软件和其他网络攻击对用户设备和内部网络的影响。
从安全角度来看,访问网站和使用 Web 应用程序都涉及到 Web 浏览器需要加载不受信任的远程来源(如遥远的 Web 服务器)的内容和代码,然后在用户的设备上执行这些代码,这使得浏览 Web 成为一种相当危险的活动。与之相反,浏览器隔离在远离用户的地方加载和执行代码,使用户设备和所连接的网络免受风险的影响——这类似于在工厂内使用机器人来执行某些危险任务可以使工厂工人更安全。
浏览器隔离是零信任安全模型的重要组成部分,在该模型中,默认不信任任何用户、应用程序或网站。零信任是一种信息安全方法,默认情况下不信任任何用户、Web 流量、应用程序或设备。零信任安全模型假设即使用户已安全加载网站 99 次,该网站也可能在第 100 次被入侵。浏览器隔离是在实践中实现这一假设的一种方式。
1.1、浏览器隔离的作用
浏览器隔离的作用:
- 删除危险的下载内容
- 恶意脚本不会在设备上或私人网络内执行
- 阻止通过浏览器进行的零日漏洞(零日漏洞是指利用以前未被发现或未打补丁的漏洞进行的攻击。虽然很少,但零日漏洞几乎不可能被阻止。)
- 可以在不阻止整个网站的情况下阻止恶意 Web 内容
- 数据防泄密。可控制企业的敏感数据只能存在于远程浏览器上,无法下载到本地。即数据不落地。(远程浏览器可配置用户下载数据存放在用户本地端或者远程浏览器端)
1.2、不同类型的浏览器隔离
浏览器隔离主要有以下三种:远程(或云托管)、内部以及客户端。
- 远程浏览器隔离:远程浏览器隔离技术在远离用户设备和组织内部网络的云服务器上加载网页并执行任何相关的 JavaScript 代码。
- 内部浏览器隔离:内部浏览器隔离所做的工作与此相同,但是在组织内部管理的服务器进行。
- 客户端浏览器隔离:客户端浏览器隔离仍然在用户设备上加载网页,但它使用虚拟化或沙盒来将网站代码和内容与设备的其他部分进行隔离。这会将浏览器执行移动到在用户端点或本地服务器上创建的虚拟机或沙箱(应用程序级别或操作系统级别)。这种类型的隔离不能被认为是完全安全的,因为浏览器仍然在用户的设备上执行。攻击者有可能突破隔离并访问用户的本地文件和网络。
在所有三种浏览器隔离方法中,用户的浏览会话会在浏览会话结束时都被删除,因此与该会话相关的任何恶意 cookie 都会被删除。
2、远程浏览器隔离(RBI,Romote Browser Isolation)
远程浏览器隔离技术(RBI,Remote Browser Isolation),该技术从另外一种角度提出了解决现阶段Web类业务的方案风险。通常利用虚拟化或容器化技术将用户的Web浏览活动与端点设备隔离,借此显著减少恶意链接和文件的攻击面。
2.1、远程浏览器隔离的工作原理
- cloud server:RBI服务器,作为整个方案实现的载体。
- cloud browsers:Web服务的内容在RBI服务器提供的隔离容器 cloud browsers 中根据不同的技术进行重建,然后提供给最终用 endpoint(用户终端)
- 客户端与 RBI 服务器的交互协议:客户端到RBI服务之间交互协议根据不同方案协议有所不同,现在大部分还是HTTP协议。
有些方案需要客户端安装特定的 client,有些无客户端方案直接使用主流的浏览器即可。
远程或云托管的浏览器隔离使不受信任的浏览器活动尽可能地远离用户设备和企业网络。它通过在云供应商控制的云服务器上进行用户的 Web 浏览活动来实现。然后,它将产生的网页传输到用户的设备上,这样用户就可以像平常一样与互联网互动,但不会在他们的设备上实际加载完整的网页。鼠标点击或表格提交之类的任何用户行为都会被传输到云服务器并在那里执行。
2.2、用户设备上的操作如何同步到远程浏览器
对于用户,RBI 是这样工作的:
- 用户在远程浏览器隔离服务中进行连接和身份验证。
- RBI 服务创建一个虚拟实例并为用户提供对远程浏览器的访问。
- 用户像往常一样通过本地浏览器与网络内容交互。 (捕获用户浏览器中的事件(点击、鼠标移动、击键等))
- 如360远程浏览器,能捕捉到用户终端设备上的鼠标和键盘的具体事件(包括鼠标具体点击的位置等),然后再传输给远程浏览器重现。捕捉的是硬件设备的事件,不是浏览器 JS 事件。
- 远程浏览器将 Web 内容(以视频流或经过处理的 HTML 代码的形式)传递到用户的本地浏览器。
- 当用户会话结束时,包含远程浏览器的实例将终止。
2.3、远程浏览器隔离如何将web内容发送到用户设备上
远程浏览器隔离服务器有以下几种方式可以将 Web 内容发送到用户的设备上:
2.3.1、像素推送
像素推送比较好理解,通过捕获远程浏览器“窗口”的像素图像,并将图像序列传输到客户端端点浏览器或专有客户端。将浏览器流式传输到用户,用户查看其浏览活动的视频或映像,这种技术就称为“像素推送”。
像素推送捕获用户浏览器中的事件(点击、鼠标移动、击键等),将它们传输到远程浏览器,并以一系列屏幕截图或视频流的形式返回响应。通过这种方式,用户的端点不会接收任何 Web 应用程序代码,并且用户仅与图像或视频渲染进行交互。
像素推送技术与远程桌面的工作方式相似。通过像素推送,用户可能会遇到延迟,因为流式视频和音频内容可能会滞后。此外,用户端点上显示的视频可能会模糊,因为 Web 内容以远程实例上设置的分辨率流式传输。并且使用体验差、带宽占用高、成本高这些都是比较可见的明显缺点。
(360远程浏览器使用该方式来推送web内容)
2.3.2、DOM 重写
打开、检查和重写每个网页,删除恶意内容,然后发送到本地用户浏览器,这种方法称为 DOM 重写。
使用这种方法,将在一个隔离的环境中加载并重写网页以删除潜在的攻击,在内容安全后,它将被发送到用户的设备上,在那里网页代码会被第二次加载和执行。DOM 重建从网页中删除所有可疑或动态代码,这意味着用户可能不会收到页面的重要块。我们可以将安全的 Web 应用程序列入白名单,以降低丢失重要信息的风险。
该方案对于一些内容比较复杂的网站场景不是很合适,但是反过来对于一些简单的门户网站类场景就比较合适了。
2.3.3、网络矢量渲染(NVR)
NVR相较于前两种技术比较难以理解。可以理解为是基于浏览器底层功能的复制将远端浏览器的一些渲染工作流程截取后同步到本地,然后在本地进行复现。
NVR工作原理如下:
(首先要清楚一点,浏览器窗口中可见的所有内容均通过 Skia 渲染层进行渲染。这包括应用程序窗口 UI(如菜单),但更重要的是,网页窗口的整个内容均通过 Skia 渲染。)
- NVR 技术截获远程Chromium 浏览器的Skia 绘制命令 ❶,对其进行令牌化和压缩,然后加密并通过网络 ❷ 传输到在用户端点桌面或移动设备本地运行的任何 HTML5 兼容 Web 浏览器 ❸(Chrome、Firefox 和 Safari 等)。
- 首次使用时,S2 RBI 服务将 NVR WebAssembly(Wasm)库 ❹ 透明地推送到端点设备上的本地 HTML5 Web 浏览器,并在那里缓存以备日后使用。NVR Wasm 代码包含一个嵌入式 Skia 库和必要的代码,用于解压缩、解密和“重演”从远程 RBI 服务器到本地浏览器窗口的 Skia绘制命令。
- 通过获取的绘图命令,在本地 HTML5 浏览器的窗口中重新绘制它们。
(这种技术在 cloudfare(一家美国的关于内容交付网络(CDN) 和安全公司)收购网络矢量渲染(NVR)的 S2 专利技术后归其所有,所以被cloudfare大力推广)
2.4、Skia 图形引擎
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 合成、布局和渲染极其复杂,具有针对不同内容类型、设备环境等进行了优化的多个并行路径。
2.5、RBI技术的好处
- 能够抵御网络钓鱼攻击。当用户单击网络钓鱼电子邮件或文件时,RBI 解决方案会显示经过清理的电子邮件文本、扫描附件,并能在电子邮件包含指向恶意网站的 URL 时隔离网络钓鱼网页。这样,用户与钓鱼网站的交互是完全安全的。
- 防止泄露机密数据。系统管理员可以更改 RBI 设置,以只读模式显示可疑 URL。这允许用户访问此类网页,但不允许他们输入任何凭据。或者,管理员可以只允许用户访问受信任的网站。
- 对下载的文件进行隔离清理。如果用户想要下载一个文件,它也在远程实例中被隔离。RBI 系统提供远程查看此内容的工具(例如 PDF 或图像查看器)。如果软件无法读取下载的文件,它会清理远程服务器上的内容并将其发送到用户的端点。通过这种方式,RBI 解决方案降低了下载恶意和可疑文件的风险。
- 详细的用户活动日志。RBI 系统记录远程实例上的所有事件以及与最终用户的通信。如果发生攻击或安全违规,系统管理员可以查看这些日志以清楚了解网络安全事件、报告事件、提出安全改进建议以防止类似问题、为取证活动收集数据等。
- 能安全访问有风险的内容。RBI 系统可以允许用户访问任何网站并下载他们需要的数据,并且同时会消除存在的威胁。
10、其他的浏览器隔离
10.1、内部浏览器隔离的工作原理
内部浏览器隔离的工作原理与远程浏览器隔离类似。但浏览不是发生在远程云服务器上,而是发生在组织的私有网络内的服务器上。与某些类型的远程浏览器隔离相比,这可以减少延时。
内部隔离的缺点是,组织必须为浏览器隔离配置自己的专用服务器,这可能很昂贵。隔离通常还必须发生在组织的防火墙内,而不是在它之外(就像在远程浏览器隔离过程中那样)。即使用户设备保持安全,不受恶意软件和其他恶意代码的影响,内部网络本身仍然存在风险。此外,内部浏览器隔离很难扩展到多个设施或网络,对于远程员工来说尤其如此。
10.2、客户端浏览器隔离的工作原理
与其他类型的浏览器隔离一样,客户端浏览器隔离对浏览器会话进行虚拟化;与远程和内部浏览器隔离不同,客户端浏览器隔离是在用户设备本身进行的。它试图通过虚拟化或沙盒化将浏览与设备的其他部分分开。
- 虚拟化:虚拟化是将一台计算机划分为独立的虚拟机而不对计算机进行物理改变的过程。这是在称为“虚拟机管理程序”的操作系统下面的一层软件上完成。理论上,在一个虚拟机上发生的事情不应该影响相邻的虚拟机,即使它们在同一设备上也是如此。在用户计算机内一个单独的虚拟机上加载网页,则可保证计算机其他部分的安全。
- 沙盒:沙盒与虚拟机相似。它是一个独立的、封闭的虚拟环境,可以安全地进行测试。沙盒是一种常见的恶意软件检测技术:许多反恶意软件工具在沙盒中打开并执行潜在的恶意文件,看看它们是做什么的。一些客户端浏览器隔离产品使用沙盒来使 Web 浏览活动安全地包含在沙盒中。
由于客户端浏览器隔离涉及到在用户设备上实际加载潜在的恶意内容,它仍然对用户和网络构成风险。将有害代码与设备进行物理隔离是其他类型的浏览器隔离的核心概念,而客户端浏览器隔离则没有这种隔离。