[论文分享] Never Mind the Malware, Here’s the Stegomalware
Never Mind the Malware, Here’s the Stegomalware [IEEE Security & Privacy 2022]
Luca Caviglione | National Research Council of Italy
Wojciech Mazurczyk | Warsaw University of Technology and FernUniversität in Hagen
近年来,隐写技术已逐渐被观察到用于赋予 threats 隐形能力并发起复杂的攻击活动。这需要在一定程度上重新思考对恶意软件的认知。
Background
人们普遍认为隐写术主要用于学术书籍,其使用几乎仅限于研究论文。在计算机科学领域尤其如此: 除了一些成功的想法,比如保护版权、检测数字媒体的变化或跟踪网络流量。从2014年开始,随着恶意软件传播的急剧增长,许多安全研究人员和专家注意到,攻击变得越来越难以检测,许多威胁在互联网上游荡多年而不受干扰。例如,Regin在2014年被发现,但它的最初起源可以追溯到2003年。
即使增加的隐蔽性是编码技术(例如,二进制混淆),防御方法(例如,反取证例程和内存加密)和架构优化(例如,多级加载以推迟恶意有效载荷的检索)混合的结果,研究人员发现隐写术是这种成功的基本要素。
当使用隐写术时,通过将指令序列转换为中间形式(例如,ASCII或Base64)来避免检测,然后通过操纵图像的像素或将其隐藏在元数据中来隐藏它。类似地,对于网络会话的情况,流量混淆创建一个数据包序列,模拟另一个协议或显示标准特征(例如,数据包的大小或使用的端口)。
相反,隐写恶意软件主要利用网络隐蔽通道,这是通过将恶意数据隐藏在合法流量中创建的,以实现隐蔽的通信路径。作为一个可能的例子,攻击者可以通过在目标流的包间延迟中隐藏命令来激活僵尸网络。
事实上,最近在“野外”观察到的样本利用了许多隐身技术,这些技术也扩展到了更广泛的信息隐藏领域。包括如下机制:
- 在看起来无害的数据中隐藏恶意代码或其他资源(例如,库,脚本和配置文件),以避免检测,阻塞或内容过滤规则
- 在受害者的主机上减少有效负载或检索额外的可执行文件,以减少威胁的足迹,避开防病毒软件,或使重建攻击变得更加困难
- 实施隐蔽通道,以泄露信息和交换命令,以及绕过流量策略或入侵检测系统
- 允许进程交换数据,即使被限制在单独的执行区域或硬件实体中(例如,沙箱、容器或CPU内核)。
Instances
2021年5月,一种能够在Steam在线游戏平台的资料图片元数据中隐藏信息的威胁被发现。被操纵的头像不能启动可执行代码: 相反,它只是作为另一个恶意阶段的隐藏载体。在执行时,该威胁检查Microsoft Teams的存在,并评估Twitter的可达性,以实施命令和控制(C&C)操作或部署机器人。
2020年7月,发现了一种石油钻机恶意软件的变种。与之前的版本相比,最有趣的区别在于使用隐写术在电子邮件通信中实现了嵌套的C&C通道,即数据隐藏在以附件形式交换的无害图片中。在2020年5月至6月针对日本、意大利、英国和德国工业机构发动的大规模攻击中,隐写术也是关键因素。
更多的细节,参考Trojan.MSExcel. Agent.be and Trojan.PowerShell。Generic被用来感染受害者并获取额外的有效载荷,包括配置文件。为了避免检测和减少足迹,木马从imgur.com等公共服务下载了一张包含恶意代码的图像。与此同时,另一种利用隐写术并通过USB大容量存储设备传播的恶意软件被识别出来。它名为USBFerry,利用了BKDR_IDSHELL。ZTFC-A后门,在与远程控制器通信时向域名系统(DNS)流量和JPG图像中注入秘密数据。2019年早些时候,在Titanium中也观察到了类似的方法:在这种情况下,数据被隐藏在PNG文件中。
从2020年底到2021年底,几家在线商店定期受到攻击,这也证明了人们对赋予恶意软件隐写技术的兴趣越来越大。随着“Magecart”这个总称,指一些针对电子商务平台的网络犯罪集团,它们窃取信用卡号码并出售牟利。例如,在2020年第一季度,网络犯罪分子通过隐藏在一个PNG文件中浏览网页,使其看起来与受害者浏览器中显示的内容完全一致,从而入侵了特百惠网站。基于攻击的数据隐藏技术的范围是相当广泛的。例如,恶意代码隐藏在电子商务网站的PHP和CSS文件的注释块中,而付款页面的恶意代码将受害者的数据注入到JPG图像中。
2019年,大量隐藏图像内容的攻击被分离出来。例如,LokiBot。在StarCruft威胁中也观察到利用隐写修改过的图像的多级加载机制。然而,2019年发现了一个具有隐写功能的主要远程访问木马威胁(首次出现在2017年)的升级版本,目标是金融科技组织。
为简洁起见,我们只讨论由安全专家和研究人员分离出来的最新威胁。表1总结了在野外观察到的最显著和已知的隐写器。如图所示,该表报告了信息隐藏的位置、使用的伪装技术以及目的。更全面和更新的列表可在网上找到。



Case of Invoke-PSImage
Invoke-PSImage 很好地说明了猜测何时使用隐写术是非常困难的。本质上,Invoke-PSImage允许通过改变相关绿色和蓝色通道的4个最低有效位,将PowerShell脚本嵌入到图像的像素中。尽管简单且有一些限制,但该方法已经发布在GitHub上,并在安全相关论坛上迅速传播。令人惊讶的是,在发布仅仅两天之后,它就被用于平昌奥运会的第一次攻击。
这证明了“运行代码”的可用性是一项攻击技术成功的重要标准之一。近年来,Invoke-PSImage已经被Powload利用(在2018年上半年发现),并且它仍然存在于Emotet [9] 和bebloh [10] 的不同版本的工具箱中。通过灰星(Greystar)勒索软件和Ursnif [11] 的一些变种,将有效载荷加载到受害者的主机上。另一个值得注意的利用方式是创建后门,就像在bandook [12] 中发生的那样。
What’s Next
很明显,隐写软件使用的广泛技术和内容导致了攻击者和防御者之间的不对称。此外,如果网络犯罪分子怀疑某一运营商将被监视,他/她可以简单地转移到另一个运营商,因此几乎不可能设计出一刀切的对策。因此,开源和商业产品(例如,防火墙和防病毒)的可用性是高度分散或专业化的。例如,许多入侵检测系统不是设计来处理开箱即用的网络隐蔽通道,需要开发特定的规则 [13]。
对于针对图像的威胁,已经有一些专门的产品可用,例如McAfee的隐写防御方案 [14],但它们似乎还不够成熟,无法大规模使用。真正关心隐写软件的研究人员和安全专家在设计防御策略时应该考虑以下4个原则:
(1) Opportunity makes the thief
隐写和隐藏方法主要利用不必要的信息、不完全隔离或可被操纵以存储秘密的歧义。因此,未来的硬件、应用程序编程接口、多媒体文件和网络协议应该强制执行一些抗隐写的设计标准。
(2) Decouple
检测和缓解隐写软件需要同时检查多个工件,这些工件可能非常不同(例如二进制文件、元数据和网络数据包)。即使每个威胁都有自己的特征,需要特定的签名(例如,大量系统调用或HTTP流量响应体中的模式),用于获取硬件和软件可见性的技术也可能是唯一的。追踪隐藏在“意料之外”的数据的攻击者时,一种减轻负担的方法可以从解耦设计中受益。
(3) You will never know
隐写器可能会在意想不到的地方留下它存在的迹象。隐藏的数据可能会增加文件的大小,网络流量的寄生使用可能会改变数据包头部位的分布,图像隐写可能会在RGB直方图中产生特征。事实上,隐写软件的影响是无法预测的,签名和被隐藏数据之间的关系通常无法用常识来捕捉。为了实现这一目标,人工智能可以在一定程度上减少防御者对能够隐藏信息的威胁的盲目性。
(4) Follow the code
随着“犯罪即服务”模式的日益扩散,这种模式允许使用第三方代码和设施来设计和实施威胁。事实上,如果一种充分的、公开可用的方法成为恶意工具的一部分,或者成为威胁后代的基础,那么它的采用将变得非常不可能控制。与此同时,在互联网上寻找利用隐写术的想法、工具和概念验证实现,从预测隐写策略或在恶意威胁消失之前追踪它们的角度来看,可能是一项有价值的努力。
总结
References
[9] “Internet security threat report,” Symantec, Feb. 2019. Accessed: Jun. 9, 2022. https://docs.broadcom.com/doc/istr-24-2019-en
[10] R. Han, C. Yang, J. Ma, S. Ma, Y. Wang, and F. Li, “IMShell-Dec: Pay more attention to external links in powershell,” in Proc. IFIP Int. Conf. ICT Syst. Security Privacy Protection, 2020, vol. 580, pp. 189–202.
[11] C. Patsakis and C. Anargyros, “Analysing the Fall 2020 Emotet campaign,” 2020, arXiv:2011.06479.
[12] T. Seals, “Digitally signed bandook trojan reemerges in global spy campaign,” ThreatPost, Nov. 30, 2020. https://threatpost.com/ digitally-signed-bandook-trojan -spy-campaign/161676
[13] T. Koziak, K. Wasielewska, and A. Janicki, “How to make an intrusion detection system aware of steganographic transmission,” in Proc. Eur. Interdisciplinary Cybersecurity Conf., Nov. 2021, p. 77–82.
[14] “Steganography defensive initiative,” McAfee. Accessed: Jun. 2022. https://www.mcafee.com/enterprise/it-it/downloads/free-tools/ steganography.html
Insights
(1) Stegomalware can give out a paper
(2) scouting the Internet for ideas, tools, and proof-of-concept implementations exploiting steganography could be a worthy effort in the perspective of anticipating cloaking strategies or chasing alicious threats before they disappear.
相关文章:
[论文分享] Never Mind the Malware, Here’s the Stegomalware
Never Mind the Malware, Here’s the Stegomalware [IEEE Security & Privacy 2022] Luca Caviglione | National Research Council of Italy Wojciech Mazurczyk | Warsaw University of Technology and FernUniversitt in Hagen 近年来,隐写技术已逐渐被观…...
代号:408 —— 1000道精心打磨的计算机考研题
文章目录 📋前言🎯计算机科学与技术专业介绍(14年发布)🧩培养目标🧩毕业生应具备的知识和能力🧩主要课程 🎯代号:408🔥文末送书🧩有什么优势&…...
《QT从基础到进阶·十六》QT实现客户端和服务端的简单交互
QT版本:5.15.2 VS版本:2019 客户端程序主要包含三块:连接服务器,发送消息,关闭客户端 服务端程序主要包含三块:打开消息监听,接收消息并反馈,关闭服务端 1、先打开服务端监听功能 …...
行业追踪,2023-11-13
自动复盘 2023-11-13 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…...
开放领域对话系统架构
开放领域对话系统是指针对非特定领域或行业的对话系统,它可以与用户进行自由的对话,不受特定领域或行业的知识和规则的限制。开放领域对话系统需要具备更广泛的语言理解和生成能力,以便与用户进行自然、流畅的对话。 与垂直领域对话系统相比…...
终端神器:tmux
安装tmux简单使用自己的理解(小白专属) 使用的初衷: 在Linux终端下,由于session(会话)和windows(窗口)是绑定一起的,你打开一个终端的黑窗口就是打开一个会话,…...
Elasticsearch学习(一)
ElasticSearch学习(一) 1 什么是Elasticsearch 1.什么是搜索? 百度:我们比如说想找寻任何信息时候就会上百度上搜索一下 比如说:电影、图片、小说等等…(提到搜索的第一印象) 百度 &#x…...
CSS3的常见边框汇总
<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>CSS3 边框</title><style>body, ul, li, dl, dt, dd, h1, h2, h3, h4, h5 {margin: 0;padding: 0;}body {background-color: #F7F7F7;}.wr…...
酷柚易汛ERP-购货订单操作指南
1、应用场景 先下购货订单,收货入库后生成购货单。 2、主要操作 2.1 新增购货订单 打开【购货】-【购货订单】新增购货订单。(*为必填项,其他为选填) ① 录入供应商:点击供应商字段框的 ,在弹框中选择供…...
【数据仓库】数仓分层方法详解与层次调用规范
文章目录 一. 数仓分层的意义1. 清晰数据结构。2. 减少重复开发3. 方便数据血缘追踪4. 把复杂问题简单化5. 屏蔽原始数据的异常6. 数据仓库的可维护性 二. 如何进行数仓分层?1. ODS层2. DW层2.1. DW层分类2.2. DWD层2.3. DWS 3. ADS层 4、层次调用规范 一. 数仓分层…...
记一次线上问题引发的对 Mysql 锁机制分析
背景 最近双十一开门红期间组内出现了一次因 Mysql 死锁导致的线上问题,当时从监控可以看到数据库活跃连接数飙升,导致应用层数据库连接池被打满,后续所有请求都因获取不到连接而失败 整体业务代码精简逻辑如下: Transaction p…...
Android 工厂模式距离传感器逻辑优化
Android 工厂模式距离传感器逻辑优化 接到客户反馈提到距离传感器校准完毕之后,每次测试完成界面都会弹出“请点击校准按钮进行校准!”Toast弹窗,需要对弹窗的显示逻辑进行优化,即只让其在首次进入距离传感器测试界面时弹出&#…...
Dell笔记本电脑 启动时提示解决
https://www.dell.com/support/kbdoc/en-us/000139731/what-the-headless-operation-mode-active-post-message-means-and-how-to-stop-it-appearing-during-start-up dell官方解释: 提示来自于BIOS/UEFI固件中POST Behaviar,只要打开了忽略警告、错误…...
【人工智能Ⅰ】7-KNN 决策树
【人工智能Ⅰ】7-KNN & 决策树 7-1 KNN(K near neighbour) 思想:一个样本与数据集中的k个样本最相似,若这k个样本大多数属于某类别,则该个样本也属于这类别 距离度量 样本相似性用欧氏距离定义 L p ( x i , x…...
【LeetCode】26. 删除有序数组中的重复项
26. 删除有序数组中的重复项 难度:简单 题目 给你一个 非严格递增排列 的数组 nums ,请你原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素…...
K8S知识点(八)
(1)实战入门-Label 通过标签实现Pod的区分,说白了就是一种标签选择机制 可以使用命令是否加了标签: 打标签: 更新标签: 筛选标签: 修改配置文件,重新创建一个pod 筛选࿱…...
25.4 MySQL 函数
1. 函数的介绍 1.1 函数简介 在编程中, 函数是一种组织代码的方式, 用于执行特定任务. 它是一段可以被重复使用的代码块, 通常接受一些输入(参数)然后返回一个输出. 函数可以帮助开发者将大型程序分解为更小的, 更易于管理的部分, 提高代码的可读性和可维护性.函数在编程语言…...
Unity 下载Zip压缩文件并且解压缩
1、Unity下载Zip压缩文件主要使用UnityWebRequest类。 可以参考以下方法: webRequest UnityWebRequest.Get(Path1); //压缩文件路径webRequest.timeout 60;webRequest.downloadHandler new DownloadHandlerBuffer();long fileSize GetLocalFileSize(Path2); …...
c++11新特性篇-委托构造函数和继承构造函数
C11引入了委托构造函数(Delegating Constructor)和C11及后续标准引入了继承构造函数(Inheriting Constructor)两个特性。 1.委托构造函数 委托构造函数是C11引入的一个特性,它允许一个构造函数调用同一类的另一个构造…...
Flink SQL处理回撤流(Retract Stream)案例
Flink SQL支持处理回撤流(Retract Stream),下面是一个使用Flink SQL消费回撤流的案例: 假设有一个数据流,包含用户的姓名和年龄,希望计算每个姓名的年龄总和。 以下是示例代码: // 创建流执行…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...
c# 局部函数 定义、功能与示例
C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...
