人工智能驱动的网络攻击:如何检测、预防和抵御智能威胁

立即阅读
我们利用人工智能进行网站翻译,虽然我们力求准确,但不一定总是 100%精确。感谢您的理解。

使用MetaDefender Endpoint 解决方案修复 Google Chrome 浏览器漏洞

OPSWAT
分享此贴

我们很高兴能推出一系列技术分析博客,重点介绍利用我们的先进威胁检测技术识别和修复的各种常见漏洞和暴露 (CVE)。所有研究均由参加 2023 年 9 月启动的OPSWAT 网络安全奖学金计划的研究生完成。

胡志明科学大学 Tri Luong 和 Khoi Ta 的照片
学生参加了OPSWAT 研究金计划。

在本博客中,我们将解释 Google Chrome 浏览器 CVE-2019-13720 以及企业如何抵御 CVE-2019-13720 利用攻击。

什么是 Google Chrome 浏览器?  

谷歌 Chrome 浏览器是谷歌公司开发的一款跨平台网络浏览器,于 2008 年 9 月 2 日正式发布。它的开发是谷歌努力创造更好、更现代化浏览器的一部分。当时它提供了许多新功能,包括标签浏览、隐私模式和与谷歌服务同步。自发布以来,它已成为全球最受欢迎的网络浏览器之一。据估计,截至 2021 年,谷歌 Chrome 浏览器的用户数量约为 32 亿。

由于 Google Chrome 浏览器广受欢迎,它已成为研究和攻击的焦点,吸引着道德黑客和恶意黑客。在 Google Chrome 浏览器中发现的常见漏洞包括拒绝服务(DoS)、信息泄露和远程代码执行等。关于远程代码执行漏洞,Google Chrome 浏览器存在两种类型:沙箱逃逸和非逃逸。

什么是 CVE-2019-13720?

CVE-2019-13720是Google Chrome浏览器78.0.3904.87版本之前的WebAudio中的一个免费使用(UAF)漏洞,远程攻击者可通过伪造的HTML页面利用堆破坏。当受害者访问恶意网页或在存在漏洞的 Google Chrome 浏览器上打开伪造的 HTML 页面时,恶意代码就会在受害者的端点上执行。此 CVE 由 Anton Ivanov 和 Alexey Kulaev 于 2019 年首次报告。

根据 NIST-NVD,显示与网络安全漏洞相关的基础分数和向量字符串的高严重性评级的片段
NIST NVD 上的 CVE-2019-13720 信息

从技术角度看,由于 Qt WebEngine 音频组件中的渲染线程和音频线程之间存在竞赛条件,可利用此漏洞执行 WebAssembly shell 代码,导致受害者的设备被入侵。解决此问题的方法是所有 Qt WebEngine 用户更新到最新版本。

攻击阶段

四步钓鱼攻击信息图表,详细介绍了制作 URL、发送钓鱼电子邮件、受害者打开 HTML 以及远程代码执行的过程
攻击过程

攻击者创建一个带有恶意 HTML 的特殊 URL,并向受害者发送带有该链接的网络钓鱼电子邮件。当受害者打开电子邮件并点击链接时,恶意代码就会被执行,并允许攻击者接管受影响的系统。有关在 HTML 文档中出现的远程代码策略的详细信息,请参阅此处

什么是自由使用(UAF)和堆喷射漏洞?

UAF 漏洞是一种安全漏洞,当程序在释放内存后继续使用内存时就会出现这种漏洞。这会导致各种不良后果,包括数据损坏、任意代码执行和系统崩溃。

堆喷射是一种有效载荷传输技术,需要在整个堆的不同位置写入多个字节。这包括向内存堆注入精心制作的有效载荷(即有害数据),确保执行流跳转到喷洒的内存而不是应用程序的原始代码。这种攻击的目的通常是获取对 EIP 注册表的控制权。 

堆喷射攻击前后的内存分配示意图,并标注了控制流错误
堆喷技术的可视化

什么是 WebAssembly?

WebAssembly 通常缩写为 Wasm,是一种新的二进制指令格式,可作为 C/C++ 等高级语言的可移植编译目标,使其能够在网络浏览器的 JavaScript 引擎中以接近原生的速度运行。 

通过 Emscripten、WebAssembly、JS Glue Code 和 HTML App 将代码从 C/C++ 转换到浏览器的流程图
将代码编译成 WebAssembly

然而,由于 WebAssembly 可以从 C/C++ 等非内存安全语言编译,因此常见的编码漏洞(如缓冲区溢出或格式字符串漏洞)可能会被引入交叉编译的 WebAssembly 二进制文件中。这种在 WebAssembly 模块中包含漏洞的可能性增加了当代网络应用程序的攻击面。

显示应用程序内的 JS 和 WA 在运行环境中共享线性内存的示意图
使用 WebAssembly 设计典型应用程序

什么是竞赛条件漏洞?

当多个进程或线程试图同时访问一个共享资源时,就会出现软件中的竞赛条件漏洞,由于访问时间的不同而导致不可预测的结果或运行中断。当程序出现竞赛条件漏洞时,可能会导致应用程序崩溃、数据损坏、结果不正确或不一致等各种问题。攻击者可利用此漏洞获取未经授权的访问、泄漏信息、提升权限或导致系统崩溃。  

TOCTTOU 漏洞被归类为竞赛条件漏洞,它利用了检查和使用资源之间的时间差。

显示应用程序中的 TOCTOU(检查时间到使用时间)漏洞被攻击利用的示意图
软件竞赛条件示意图来源:Devopedia 2020Devopedia 2020 (*) TOCTOU(检查时间到使用时间)

CVE-2019-13720 如何工作?

为了利用这个漏洞,研究人员在 HTML 文件中附加了 JavaScript 代码。当用户启动 HTML 文件时,脚本会创建两个处理相同缓冲区数据的线程(主线程和音频线程),试图找到泄漏的地址。然后,利用 ReverbConvolverStage 中 temporary_buffer_object 的泄漏地址来获取 IIRFilterNode(与 Convolver 共享同一个超级页面)中 feedforward_array 的指针。随后,研究人员尝试获取第二个触发器 UAF 中的前馈数组指针。

漏洞利用的流程触发 UAF、第二次触发 UAF、堆喷射、写入 Shellcode、触发 WebAssembly 模块、执行有效载荷
自由使用触发器流程

WebAssembly 处理 shell 代码的执行。为了能够执行 shell 代码,研究人员尝试释放 IIRFilter 并写入 GCPreventer,直到获得对新分配位置的控制权,而不需要喷射。最后,研究人员将 shellcode 写入内存中的即时 (JIT) 区域。因此,一旦文件阅读器出现错误事件,WebAssembly 模块就会执行 shell 代码。

要执行与此漏洞相关的 shell 代码,用户必须在有漏洞的 Chrome 浏览器版本中禁用沙箱。 

浏览器警告信息 "您使用了不支持的命令行标志--no-sandbox。稳定性和安全性将受到影响

当 shell 代码执行时,它会自动打开受害者设备上的记事本服务。

网页浏览器的错误屏幕上显示 "啊,啪!显示此网页时出了问题 "的信息,同时还有一个打开的记事本窗口

修复方法

MetaDefender Endpoint由OPSWAT 设计的端点安全解决方案 MetaDefender Endpoint 可帮助用户检测并防御系统受到这些攻击。用户禁用隐私Sandbox 功能(--no-sandbox)后,MetaDefender Endpoint 可以检测 CVE 并应用最新的 Google Chrome 浏览器补丁。之后,用户可以手动将 Google Chrome 浏览器更新到最新版本,或者激活Patch Management 选项卡下的 "自动更新 "功能,让OPSWAT MetaDefender Endpoint 在新补丁可用时自动更新浏览器。

为防止接触恶意代码,用户应使用电子邮件过滤工具来检测网络钓鱼攻击,并避免点击电子邮件中的未知 URL。

MetaDefender Endpoint 主要产品功能和优势

  • 审查并修复有风险的应用程序。可在MetaDefender Endpoint UI 中查看存在漏洞或过时的应用程序。
  • 检查操作系统是否正确配置了反恶意软件保护。
  • 确保遵守组织安全标准。
  • 硬盘加密保证。
  • 操作系统补丁验证。
  • 在端点上进行恶意软件扫描和发布无恶意软件公告的多种选项。
MetaDefender Endpoint UI 显示 Google Chrome 浏览器的关键漏洞列表,并附有 CVE 编号和分数
MetaDefender Endpoint 用户界面

MetaDefender Endpoint forEndpoint Vulnerability and Application Patch 可在此处下载


通过OPSWAT 了解最新信息!

立即注册,即可收到公司的最新动态、 故事、活动信息等。