内容简介:“打包”或“加密”恶意程序的概念在希望绕过或破坏静态和动态分析工具分析的威胁参与者中广泛流行。逃避分类和检测是一种军备竞赛,其中新技术在野外交易和使用。本文为作者“曲速未来安全区”,原创文章,转载时请保留本声明及附带文章链接。 内容仅供读者参考,并非投资建议,本网站将保留所有法律权益。
2018-09-27 23:00 技术 观点 402 收藏
“打包”或“加密”恶意程序的概念在希望绕过或破坏静态和动态分析 工具 分析的威胁参与者中广泛流行。逃避分类和检测是一种军备竞赛,其中新技术在野外交易和使用。
前言
“打包”或“加密”恶意程序的概念在希望绕过或破坏静态和动态分析工具分析的威胁参与者中广泛流行。逃避分类和检测是一种军备竞赛,其中新技术在野外交易和使用。例如,观察到许多加密服务由地下论坛提供,他们声称通过反病毒技术,沙箱和其他端点解决方案制作任何恶意软件“FUD”或“完全无法检测”。然后还看到了对正常用户活动建模的更多努力,并将其作为指纹恶意软件分析环境的有效对策。
Delphi Code to the Rescue
在检查的样本带有Delphi签名如下图所示,与使用IDR(Interactive Delphi Reconstructor)分析时的Delphi代码构造一致。
图1:样本中的Delphi签名
Delphi编程语言是编写利用Windows API函数的应用程序和程序的简便方法。事实上,一些演员故意将默认库包含为妨碍静态分析的转移,并使应用程序在动态分析中“看起来合法”。如下图显示了一个讨论这种技术的演员的论坛帖子。
图2:演员讨论技术的地下论坛帖子
分销活动
可以观察到许多具有不同主题的垃圾邮件活动会丢弃使用此打包程序打包的有效内容。
一个例子是平均快速传输垃圾邮件,它将文档文件作为附件,它利用恶意宏来删除有效负载。垃圾邮件如下图所示。
图3:垃圾邮件示例1
另一个例子是平均报价主题垃圾邮件,它将漏洞利用文档文件作为附件,利用公式编辑器漏洞来删除有效负载(下图所示)。
图4:垃圾邮件示例2
示例中的文档从http://5.152.203.115/win32.exe获取了一个有效负载。原来是Lokibot恶意软件。
用户活动检查
封隔器竭尽全力确保它不在分析环境中运行。普通用户活动涉及在一段时间内旋转或更改的许多应用程序窗口。打包器的第一个变体使用GetForegroundWindow API在进一步执行之前检查更改窗口的用户活动至少三次。如果它没有看到窗户的变化,它会使自己陷入无限的睡眠。代码如下图所示。有趣的是,这种简单的技术可以检测到一些公开可用的沙箱。
图5:窗口更改检查
为了确认用户活动,打包器的第二个变体使用GetCursorPos和Sleep API检查鼠标光标移动,而第三个变体使用GetLastInputInfo和GetTickCount API检查系统空闲状态。
从PE资源中提取实际有效负载
原始有效负载被拆分为多个二进制blob,并存储在资源目录内的各个位置,如下图所示。
图6:具有加密内容的位图资源
为了定位和组装实际有效负载字节,封装器代码首先直接从资源部分内的硬编码资源ID读取内容。它的前16个字节形成一个XOR密钥,用于使用滚动XOR解密其余字节。解密的字节实际上表示内部数据结构,如下图所示,由打包器用于引用各种资源ID的加密和混淆缓冲区。
图7:显示加密文件信息的结构
然后,打包器从加密缓冲区读取值,从dwStartResourceId开始到dwStartResourceId dwNumberOfResources,并通过读取dwChunkSize的块将它们带到一个位置。一旦准备好最终数据缓冲区,它就会开始使用前面提到的相同滚动XOR算法和上述结构中的新密钥对其进行解密,从而生成核心有效负载可执行文件。此脚本可用于静态提取实际有效负载。
真实的分类
不但能够从样本集中提取的许多解压缩的二进制文件被识别为属于Lokibot恶意软件系列。还能够识别Pony,IRStealer,Nanocore,Netwire,Remcos和nJRAT恶意软件系列,以及硬币挖掘恶意软件系列等。使用打包器的恶意软件系列的分布如下图所示。恶意软件系列的多样性意味着许多威胁参与者正在使用这种“加密”服务工具进行操作,可能从开发人员本身购买。
图8:使用packer分发恶意软件系列
结论
打包者和加密器服务为威胁行为者提供了一种简单方便的选择,可以将尽可能长时间保持真实有效载荷的工作量外包出去并保持未分类。他们经常通过反分析技术找到绕过沙箱环境的好方法; 因此,在试图模拟真实用户行为的沙箱环境中引爆恶意软件样本是一种安全的选择。
本文为作者“曲速未来安全区”,原创文章,转载时请保留本声明及附带文章链接。 内容仅供读者参考,并非投资建议,本网站将保留所有法律权益。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 利用强化学习来躲避基于机器学习的静态恶意PE文件检测模型
- Micro:bit 躲避砖块小游戏-基础部分
- Micro:bit 躲避砖块小游戏-附加功能
- Syborg:一款带有断路躲避系统的DNS子域名递归枚举工具
- Rietspoof恶意软件释放多个恶意有效载荷
- 使用开源代码拼凑出恶意代码:Frankenstein恶意活动分析
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
数学与泛型编程
[美]亚历山大 A. 斯捷潘诺夫(Alexander A. Stepanov)、[美]丹尼尔 E. 罗斯(Daniel E. Rose) / 爱飞翔 / 机械工业出版社 / 2017-8 / 79
这是一本内容丰富而又通俗易懂的书籍,由优秀的软件设计师 Alexander A. Stepanov 与其同事 Daniel E. Rose 所撰写。作者在书中解释泛型编程的原则及其所依据的抽象数学概念,以帮助你写出简洁而强大的代码。 只要你对编程相当熟悉,并且擅长逻辑思考,那么就可以顺利阅读本书。Stepanov 与 Rose 会清晰地讲解相关的抽象代数及数论知识。他们首先解释数学家想要解决......一起来看看 《数学与泛型编程》 这本书的介绍吧!