导语:本文介绍了黑客如何使用UPX确保恶意软件无法被检测到的方法。
可执行文件的终极打包程序(UPX)是一种开源打包程序,可以大幅缩减可执行文件的文件大小(缩减效果比Zip文件更好),并且它与众多可执行格式兼容,比如Windows DDL、macOS应用程序或Linux ELF。
供应商有时使用打包手段来防止基本的逆向工程或非法重新分发。大致说来,打包程序拿来原始的可执行文件后,为新创建的可执行文件添加一小段名为“stub”(存根)的代码。然后,存根代码将用于解包文件,并将可执行文件“恢复”到原始状态。
虽然像UPX这样的一些打包程序只压缩文件,但其他打包程序还可以加密文件。
攻击者可以使用压缩将恶意软件隐藏在看似无害的合法文件中,这可以骗过基于特征的检测系统,甚至骗过基于高级人工智能(AI)的反病毒解决方案。下面介绍了黑客如何使用UPX确保恶意软件无法被检测到的方法。
基于UPX的规避的工作机理
UPX可以打包恶意可执行文件并修改其字节,以生成无法被检测到的恶意软件版本。
通过自解压的归档可执行文件,当打包文件被执行时,打包程序可以在内存中解包自己。
打包的文件通常在磁盘上比较小,但在内存中比较大。如果你检查一个可疑的文件,可能会看到如下典型的部分:
UPX0:一个空的部分,不包含实际的原始数据,但有庞大的虚拟内存大小
UPX1:存根代码和压缩后的可执行文件
还有其他部分,但在这里暂停不详述。
当UPX打包的文件被执行时,所有打包的部分都在内存中解包,包括黑客可能存储在其中的任何恶意代码,程序跳转到原始入口点(OEP)来执行可执行文件。
压缩是一种典型的逃避技术
虽然基于UPX的逃避乍一看可能有点难以理解,但压缩却是避免反病毒检测的一种典型方法。
读者可以执行的一个简单测试就是将恶意软件样本的原始版本和打包版本上传到自己青睐的平台,比如VirusTotal。与恶意软件的原始版本相比,打包版本通常被发现的次数要少得多,许多反病毒工具可能完全漏过了打包版本。
UPX用在恶意软件部署中有多频繁方面缺少太多的统计数据,但MITRE列举了攻击者可以用来隐藏代码的种种“基于打包”的程序(https://attack.mitre.org/techniques/T1027/002/)。许多活动似乎都涉及UPX。
检测UPX打包的文件
你可以尝试一个简单的UPX命令来发现UPX打包的文件:
upx -l {suspicious_binary}
当然,这个命令很有限,不会一直有效。另一个有限但仍然有效的选项是转储十六进制代码,并搜索特定的字符串,比如UPX:
hexdump -C {suspicious_binary} | grep "UPX"
你还可以利用可移植可执行文件(PE)分析器来检测UPX打包的文件。
挫败UPX损毁手法和损坏的文件
外面观察到的许多漏洞并不依赖UPX本身来解包恶意代码,而是故意生成损坏的打包文件。
我们前面分析的基本示例含有非常容易识别的部分,但是攻击者可以使用十六进制编辑器或其他工具来更改字节或插入字符串,从而使文件极难被检测出来。
虽然这样的操作可能会使用upx -d命令破坏典型的解包并抛出错误,但二进制文件仍然会执行。
Akamai推荐的upxdump.py等工具可能能够修复故意损坏的UPX打包的文件,因为它可以修复经常用于混淆UPX打包的恶意软件已损坏的报头部分。
但是要小心,因为一些变体只是剥离UPX报头或注入空字节,这将使工具失效。
打包程序分析和反UPX解包技术
反向工程人员和恶意软件分析师可能会使用ollydbg、radar2甚至流行的Ghydra等工具来分析打包的文件。关键步骤是先确定二进制文件是否使用反UPX解包技术。
虽然Mirai等许多类型的恶意软件使用反UPX解包技术(比如零填充文件)以阻碍安全研究人员的工作,但这并不意味着你不能解包它们。像upx-mod这样的工具可以助一臂之力。
话虽如此,最老练的威胁分子可能使他们的文件对标准的UPX实现方法而言“无法解包”,不过这种情况似乎相当罕见。
应对UPX打包恶意软件的最佳实践
使用恶意的UPX打包文件表明,你不能单单依赖防病毒软件和其他基于特征的解决方案来发现恶意软件,无论这些工具推销自己有多么先进。
但如果没有这些工具,你将更容易受到攻击,不过攻击者总是会想方设法转移合法实用程序的视线、绕过检测。
UPX是一种通用格式,可用于针对各种平台,反UPX解包技术可用于干扰逆向工程和恶意软件分析。
一个好的做法是,当用户不需要UPX时,在一些目录中禁用执行(比如tmp和下载),特别是在企业环境中,这可以通过安全策略来实现。
确保系统没有隐藏文件扩展名,但即使情况并非如此,也不能保证没有人会不明智地点击,特别是面对针对性的攻击活动。你需要把可疑的活动和行为记录下来。
本文翻译自:https://www.esecurityplanet.com/threats/upx-compression-detection-evasion/如若转载,请注明原文地址