当前位置: 首页 > article >正文

攻击者如何在日常网络资源中隐藏恶意软件

近二十年来,安全 Web 网关 (SWG) 一直在监控网络流量,以检测恶意软件、阻止恶意网站并保护企业免受基于 Web 的威胁。

然而,攻击者已经找到了许多绕过这些防御措施的方法,SquareX的安全研究人员对此进行了记录。

最危险的策略之一是将恶意软件隐藏在显眼的地方,使用图像、WebAssembly、HTML、CSS 和 JavaScript 等日常 Web 资源来伪装攻击。

这些客户端组装技术完全绕过了 SWG,利用常见的 Web 元素将恶意负载直接传送到浏览器。

恶意软件嵌入在 SWG 通常忽略的普通文件中,并且只有在到达受害者的设备后才会重新组装和执行。

在大多数情况下,SWG 并不知道正在发生文件下载事件。

WebAssembly

WebAssembly (WASM) 是一种二进制汇编格式,旨在在浏览器中以接近原生的速度运行代码。

许多合法的 Web 应用程序都使用 WASM 进行大量计算,包括 Figma 和 Adob​​e 等平台。

然而,攻击者已经找到了一种将恶意软件隐藏在 WASM 模块中的方法,使恶意负载不被 SWG 发现。

由于 SWG 不对 WASM 文件进行静态或动态分析,因此恶意负载无需审查即可通过。

一旦到达客户端,JavaScript 就会从 WASM 文件中提取并组装恶意软件,并将其投放到受害者的设备上。

WASM 是攻击者利用的理想媒介,因为它被广泛使用,但业界缺乏 WASM 安全分析框架。

SquareX在其业界首创的浏览器检测和响应解决方案中率先检测恶意 WebAssembly。 

图像隐写术

隐写术是一种将数据隐藏在图像中的做法,并不是一项新技术,但它已经发展成为一种逃避 SWG 检测的有效方法。

图像通常被视为安全的,很少被 SWG 深入检查,使其成为走私恶意代码的完美载体。

在这次攻击中,恶意软件嵌入在图像文件的最低有效位 (LSB) 中,隐藏的代码不会影响图像的可见外观。

一旦图像在浏览器上呈现,JavaScript 就会从图像中提取恶意软件并将其放入用户的磁盘中。

隐写术的使用增加了额外的复杂性,使得传统安全工具在没有特定隐写分析的情况下难以检测到。

HTML、CSS、JavaScript、SVG 嵌入

攻击者还可以将恶意内容隐藏在网页设计的核心组件中:HTML、CSS 和 JavaScript。

这些基本元素是网页功能的基础,非常适合隐藏 SWG 无法检测到的恶意负载。

HTML 嵌入攻击

攻击者将恶意软件存储为看似无害的 HTML 标记内的二进制数组。

对于 SWG 来说,此内容显示为常规 HTML 并允许通过。

一旦进入客户端,JavaScript 就会读取 HTML 标记,提取恶意代码并将其重新组合成功能性攻击。

CSS 嵌入攻击

恶意代码也可以嵌入到 CSS 变量或规则中,而 SWG 不会检查这些变量或规则。JavaScript 在到达浏览器后会从 CSS 文件中提取隐藏的恶意软件,并触发有效负载的下载。

JavaScript 数组攻击

攻击者将恶意软件嵌入 JavaScript 数组中。由于 SWG 不会对 JavaScript 代码进行实时动态分析,因此这些数组可以不经扫描就通过网络。当页面加载时,JavaScript 会将数组组装成恶意文件并执行它。

SVG 嵌入攻击

可缩放矢量图形对攻击者特别有吸引力,因为它们可以在标记中包含隐藏的二进制数据,这些数据可以被运行在客户端的 JavaScript 读取并重新组合成恶意软件。

这些技术说明了攻击者如何瞄准企业网络。通过将恶意软件隐藏在日常网络资源中,他们甚至能够绕过最先进的 SWG。 

随着攻击者不断改进其技术,企业显然必须采用新的安全措施来防范客户端攻击。浏览器原生安全解决方案在浏览器本身内运行,对于在最后的检测和缓解这些威胁至关重要。 


http://www.kler.cn/news/306119.html

相关文章:

  • rust + bevy 实现小游戏 打包成wasm放在浏览器环境运行
  • Vue3使用Websocket进行跨页面通信
  • 2024年金九银十最新版Java面试题及答案整理(持续更新)
  • 从单体到微服务:FastAPI ‘挂载’子应用程序的转变
  • AI在医学领域:医学AI的安全与隐私全面概述
  • 【iOS】ViewController的生命周期
  • Linux06(vi/vim)
  • 【Python机器学习】循环神经网络(RNN)——超参数
  • 什么是Java 语法糖?
  • ARM驱动学习之8 动态申请字符类设备号
  • sqli-labs Basic Challenge Less_1 通关指南
  • 【AI学习】陶哲轩在 2024 年第 65 届国际数学奥林匹克(IMO)的演讲:AI 与数学
  • 基于YOLOV8+Pyqt5光伏太阳能电池板目标检测系统
  • 使用docker配置wordpress
  • SQLite的入门级项目学习记录(一)
  • Kafka 消息丢失如何处理?
  • kubeadm方式安装k8s续:
  • 【Unity实战】SO反序列化正确姿势
  • 【智路】智路OS Airos Edge 2.0 Quick Start
  • 利用 FastAPI 和 Jinja2 模板引擎快速构建 Web 应用
  • 通过logstash同步elasticsearch数据
  • 【资料分析】常见的坑
  • 文件外发怎么保证安全
  • sqli-labs靶场自动化利用工具——第1关
  • 在Coontroller层中我们经常使用的@RequestParam, @PathVariable, @RequestBody ,区别以及各自的使用场景
  • golang实现从服务器下载文件到本地指定目录
  • 简单接口自动化框架实现(Python+requests+pytest)
  • _Array类,类似于Vector,其实就是_string
  • 编写程序模版的搭建
  • Android Kotlin 中的 `groupBy` 方法详解