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

news2024/9/25 3:24:10

近二十年来,安全 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.coloradmin.cn/o/2138256.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】调试和Git及进度条实现

这里是阿川的博客,祝您变得更强 ✨ 个人主页:在线OJ的阿川 💖文章专栏:Linux入门到进阶 🌏代码仓库: 写在开头 现在您看到的是我的结论或想法,但在这背后凝结了大量的思考、经验和讨论 目录 1.…

LinkedHashMap 如何实现排序

目录 一、LinkedHashMap二、排序实现三、代码片段分析 一、LinkedHashMap LinkedHashMap 是 Java 中的一个集合类,它是 HashMap 的一个子类,继承了 HashMap 的所有特性,并且在此基础上增加了一个双向链表来维护元素的插入顺序或者访问顺序。L…

java的内存分配和回收机制

Java 与 C之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。 概述 垃圾收集(GC)需要完成的三件事情: 哪些内存需要回收?什么时候回收?如何回收&am…

CloudXR 套件扩展 XR 工作流

NVIDIA为开发者提供了一个先进的平台,开发者可以在该平台上使用全新NVIDIA CloudXR 套件来创建可扩展、品牌化的定制扩展现实(XR)产品。 NVIDIA CloudXR 套件基于全新架构而打造,是扩展XR生态的重要工具。它为开发者、专业人士和…

高级 API 性能:着色器

着色器通过使您能够控制渲染过程的各个方面,在图形编程中发挥着关键作用。它们在 GPU 上运行,负责操作顶点、像素和其他数据。 常规着色器计算着色器像素渲染顶点着色器几何体、域和外壳着色器 常规着色器 这些提示适用于所有类型的着色器。 推荐 避…

[产品管理-10]:NPDP新产品开发 - 8 - 波士顿矩阵(当下与未来)在产品市场战略方面的应用

目录 一、波士顿矩阵 理论基础 产品类型划分 分析步骤 重要性 注意事项 二、波士顿矩阵的应用实例 示例背景 数据收集与准备 绘制波士顿矩阵 产品线分类 制定战略对策 一、波士顿矩阵:现在 VS 未来 波士顿矩阵理论,又称市场增长率-相对市场份…

读构建可扩展分布式系统:方法与实践04应用服务

1. 应用服务 1.1. 任何系统的核心都在于实现应用需求的特定业务逻辑 1.2. 服务是可扩展软件系统的核心 1.2.1. 它们将契约定义为一个API,向客户端声明它们的能力 1.3. 应用服务器高度依赖于编程语言,但通常都会提供多线程编程模型,允许服…

Ubuntu系统使用Docker部署Jupyter Notebook并实现笔记云同步

文章目录 前言1. 选择与拉取镜像2. 创建容器3. 访问Jupyter工作台4. 远程访问Jupyter工作台4.1 内网穿透工具安装4.2 创建远程连接公网地址4.3 使用固定二级子域名地址远程访问 前言 本文主要介绍如何在Ubuntu系统中使用Docker本地部署Jupyter Notebook,并结合cpol…

Netty(零散记录)

Netty: 1、Netty三种IO 2、Netty和Reactor的 1、Netty对Reactor的支持 Netty的线程模型时基于Reactor模型实现的,Netty对Reactor三种模式都有非常好的支持,并做了一定的改善,一般情况下,在服务端会采用主从架构模型…

Leetcode面试经典150题-739.每日温度

应读者私信要求,本题协商题目的具体内容 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高&#xff0…

计算机毕业设计 二手闲置交易系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

【目标检测数据集】厨房常见的水果蔬菜调味料数据集4910张39类VOC+YOLO格式

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):4910 标注数量(xml文件个数):4910 标注数量(txt文件个数):4910 标注…

SSH公私钥后门从入门到应急响应

目录 1. SSH公私钥与SSH公私钥后门介绍 1.1 SSH公私钥介绍 1.1.1 公钥和私钥的基本概念 1.1.2 SSH公私钥认证的工作原理(很重要) 1.2 SSH公私钥后门介绍 2. 如何在已拿下控制权限的主机创建后门 2.1 使用 Xshell 生成公钥与私钥 2.2 将公钥上传到被需要被植入后门的服务…

Qt_显示类控件

目录 一、QLabel 1、QLabel属性介绍 2、textFormat文本格式 3、pixmap标签图片 3.1 resizeEvent 4、QFrame边框 5、alignment文本对齐 6、wordWrap自动换行 7、indent设置缩进 8、margin设置边距 9、buddy设置伙伴 二、QLCDNumber 1、QLCDNumber属性介绍 2、实…

再次探讨最小生成树Prim算法

二次复习Prim算法时得到了一些新的启示。正常初次学算法时都特别注意代码,但是慢慢的发现,随着代码能力的增强,代码反而不是这么重要,重要的是算法的思路。既在自己的脑子中能有这个算法的图解。 下面展示一下二次学习的思路&…

秋韵虫趣.

文章目录 虫鸣概览虫坛文化蟀种纷呈中华蟋蟀宁阳蟋蟀刻点铁蟋长颚斗蟋 油葫芦棺头蟋中华灶蟋小素蟋树皮蟋蟀 花生大蟋斑腿针蟋其他鸣虫树蟋,又名竹蛉、邯郸梨片蟋,又名金钟、天蛉、绿蛣蛉、银琵琶凯纳奥蟋,又名石蛉,鳞蟋黄蛉蟋&am…

基于A2C与超启发式的航天器星载自主任务规划算法-笔记

1. Actor-Critic 模块 主要文件:AC.py, PolicyNet.py, ValueNet.py作用:该模块实现了 A2C(Advantage Actor-Critic)强化学习算法。其中,ActorCritic 类是核心,它同时管理策略网络(Actor&#x…

misc合集(1)

[Week3] 这是一个压缩包 有密码,提示QmFzZUNURj8/Pz8/P0ZUQ2VzYUI base64解密是BaseCTF??????FTCesaB 猜测这应该是⼀个轴对称的密码 python ⽣成了密码字典,再通过 ARCHPR 进⾏字典爆破 lowercase abcdefghijklmnopqrstuvwxyz uppercase l…

Vue生命周期;Vue路由配置;vue网络请求;vue跨域处理

一&#xff0c;Vue生命周期 <template><div > <h1 click"changeText">{{ info }}</h1></div> </template><script> export default {name: HelloWorld,data(){return{info:"介绍组件生命周期"}},methods:{chang…

Android源码导入Android Studio

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ 前言 需要先把 Android 源码编译一遍 然后执行下面指令就可以导入android源码了 关于 Android 源码编译可以参考这篇文章【LineageOS源码下载和编译&#xf…