前言
区块链安全咨询公司 曲速未来 表示:“打包”或“加密”恶意程序的概念在希望绕过或破坏静态和动态分析工具分析的威胁参与者中广泛流行。逃避分类和检测是一种军备竞赛,其中新技术在野外交易和使用。例如,观察到许多加密服务由地下论坛提供,他们声称通过反病毒技术,沙箱和其他端点解决方案制作任何恶意软件“FUD”或“完全无法检测”。然后还看到了对正常用户活动建模的更多努力,并将其作为指纹恶意软件分析环境的有效对策。
Delphi Code to the Rescue
在检查的样本带有Delphi签名如下图所示,与使用IDR(Interactive Delphi Reconstructor)分析时的Delphi代码构造一致。
Delphi编程语言是编写利用Windows API函数的应用程序和程序的简便方法。事实上,一些演员故意将默认库包含为妨碍静态分析的转移,并使应用程序在动态分析中“看起来合法”。如下图显示了一个讨论这种技术的演员的论坛帖子。
分销活动
可以观察到许多具有不同主题的垃圾邮件活动会丢弃使用此打包程序打包的有效内容。
一个例子是平均快速传输垃圾邮件,它将文档文件作为附件,它利用恶意宏来删除有效负载。垃圾邮件如下图所示。
另一个例子是平均报价主题垃圾邮件,它将漏洞利用文档文件作为附件,利用公式编辑器漏洞来删除有效负载(下图所示)。
示例中的文档从http://5.152.203.115/win32.exe获取了一个有效负载。原来是Lokibot恶意软件。
用户活动检查
封隔器竭尽全力确保它不在分析环境中运行。普通用户活动涉及在一段时间内旋转或更改的许多应用程序窗口。打包器的第一个变体使用GetForegroundWindow API在进一步执行之前检查更改窗口的用户活动至少三次。如果它没有看到窗户的变化,它会使自己陷入无限的睡眠。代码如下图所示。有趣的是,这种简单的技术可以检测到一些公开可用的沙箱。
为了确认用户活动,打包器的第二个变体使用GetCursorPos和Sleep API检查鼠标光标移动,而第三个变体使用GetLastInputInfo和GetTickCount API检查系统空闲状态。
从PE资源中提取实际有效负载
原始有效负载被拆分为多个二进制blob,并存储在资源目录内的各个位置,如下图所示。
为了定位和组装实际有效负载字节,封装器代码首先直接从资源部分内的硬编码资源ID读取内容。它的前16个字节形成一个XOR密钥,用于使用滚动XOR解密其余字节。解密的字节实际上表示内部数据结构,如下图所示,由打包器用于引用各种资源ID的加密和混淆缓冲区。
然后,打包器从加密缓冲区读取值,从dwStartResourceId开始到dwStartResourceId+dwNumberOfResources,并通过读取dwChunkSize的块将它们带到一个位置。一旦准备好最终数据缓冲区,它就会开始使用前面提到的相同滚动XOR算法和上述结构中的新密钥对其进行解密,从而生成核心有效负载可执行文件。此脚本可用于静态提取实际有效负载。
真实的分类
不但能够从样本集中提取的许多解压缩的二进制文件被识别为属于Lokibot恶意软件系列。还能够识别Pony,IRStealer,Nanocore,Netwire,Remcos和nJRAT恶意软件系列,以及硬币挖掘恶意软件系列等。使用打包器的恶意软件系列的分布如下图所示。恶意软件系列的多样性意味着许多威胁参与者正在使用这种“加密”服务工具进行操作,可能从开发人员本身购买。
结论
区块链安全咨询公司 曲速未来 观点:打包者和加密器服务为威胁行为者提供了一种简单方便的选择,可以将尽可能长时间保持真实有效载荷的工作量外包出去并保持未分类。他们经常通过反分析技术找到绕过沙箱环境的好方法; 因此,在试图模拟真实用户行为的沙箱环境中引爆恶意软件样本是一种安全的选择。
本文内容由 曲速未来 (WarpFuture.com) 安全咨询公司整理编译,转载请注明。 曲速未来提供包括主链安全、交易所安全、交易所钱包安全、DAPP开发安全、智能合约开发安全等相关区块链安全咨询服务。