在Malware必威平台APPbytes,我们看到了很多恶意软件。无论是用于攻击Web服务器还是窃取您的文件的僵尸网络,当今的大部分恶意软件都希望在感染和操作期间保持隐藏,以防止去除和分析。恶意软件使用许多技术实现了这一点 为了挫败检测和分析 - 一些示例包括使用模糊的文件名,修改文件属性,或在合法计划和服务的假装下运作。在更先进的情况下,恶意软件可能会尝试颠覆现代检测软件(即MBAM)以防止被发现,隐藏运行进程和网络连接。可能性是完全无穷无尽的。

尽管现代恶意软件进展,但肮脏的计划无法永远隐藏。当找到恶意软件时,它需要一些额外的防御层来保护自己免受分析和逆向工程。通过实施额外的保护机制,恶意软件可能更难以检测甚至更具弹性。虽然使用很多技巧来隐藏恶意软件的内部,但几乎每个恶意软件都使用的技术是二进制的混淆

混淆(在软件的背景下)是一种使二进制和文本数据无法读取和/或难以理解的技术。软件开发人员有时采用混淆技术,因为它们不希望他们的节目是反向设计或盗版的。

其实现可以像几个比特操纵一样简单,并作为加密标准(即des,AES等)。在恶意软件的世界中,隐藏有关程序使用的重要单词(称为“字符串”)是有用的,因为它们会深入了解恶意软件的行为。所述字符串的示例将是恶意URL或注册表项。有时恶意软件进一步逐步,并使用名为Packer的特殊程序组合整个文件。

让我们看看今天在很多恶意软件中使用的一些实际的混淆例子。

场景1:独家或操作(XOR)
独家或者操作(表示为XOR)可能是最常用的混淆方法。这是因为它很容易实现,并且很容易隐藏从未训练的眼睛的数据。考虑以下突出显示的数据。

XOR_ENCODE.

混淆的数据在其当前形式中无法读取。

在其当前形式中,数据无法读取。但是当我们应用0x55的XOR值时,我们完全看到了其他东西。

xor_decode.

使用0x55的XOR操作显示恶意URL。

现在我们有恶意网址。看起来像这个恶意软件联系人“http://tator1157.hostgator.com”检索文件“bot.exe”。

这种混淆的形式通常很容易失败。即使您没有XOR键,也存在于通过在搜索特定字符串的每个可能的单字节XOR值中手动循环的程序。在UNIX和Window平台上提供的一个流行的工具是Xorsearch.由Didier Stevens撰写。此工具搜索以多种格式编码的字符串,包括XOR。

由于恶意软件作者知道这样的程序,因此它们实施了自己的诀窍以避免检测。他们可能做的一件事是一个双循环方法,对具有特定值的数据执行XOR,然后用另一个值进行第二次传递。常用的单独技术(尽管同样有效)是将循环中的XOR值递增。使用前一个示例,我们可以使用0x55的字母'H',然后是0x56,依此类推。这也会打败常见的XOR检测程序。

场景2:Base64编码

Base64.编码已使用很长时间才能通过仅处理文本的系统传输二进制数据(机器代码)。顾名思义,其编码字母包含64个字符,其中符号(=)用作填充字符。字母表包含字符A-Z,A-Z,0-9,+和/。下面是一些编码文本的一个例子,表示指向SVChost.exe文件的字符串,由Windows用于主机服务。

Base64_

Base64通常用于恶意软件以伪装文本字符串。

虽然编码输出完全不可读,但Base64编码比大量编码方案更容易识别,通常是因为其填充字符。有很多工具可以在线和通过下载的程序执行Base64编码/解码功能。

由于Base64编码易于克服,因此恶意软件作者通常会进一步采取措施并更改Base64字母的顺序,该顺序破坏标准解码器。这允许自定义编码例程更难以破坏。

场景3:rot13
也许是常用的三种技术中最简单的是rot13。ROT是“旋转”的ASM指令,因此ROT13将意味着“旋转13”。ROT13使用简单的字母替代来实现混淆的输出。

让我们开始编码字母'a'。由于我们旋转十三个,我们计算字母表的下一个十三个字母,直到我们降落在'n'之前。这真的是所有人!

rot13_

ROT13使用简单的字母替换到混血文本。

上图显示了一个流行的注册表项,用于列出每次用户登录时运行的程序。还可以修改ROT13以旋转不同数量的字符,如rot15。

场景4:运行时包装器
在很多情况下,整个恶意软件程序都会被滥用。这可以防止任何人查看恶意软件的代码,直到它被放置在内存中。

使用已知的内容实现这种类型的混淆包装机程序。包装器是拍摄原始恶意软件文件并压缩它的软件,从而使所有原始代码和数据不可读。在运行时,包装程序将采用包装程序并将其解压缩在内存中,显示程序的原始代码。

包装商已经使用了很长时间的合法目的,其中一些包括减少文件大小和保护盗版。他们帮助隐藏重要的计划组件和遏制新手计划饼干。

幸运的是,在识别和解包这些文件时,我们并不是没有帮助。有许多程序可以检测商业包装机,并建议如何解压缩。这些文件扫描仪的一些示例是Exeinfo Pe.和佩迪(不再开发,但仍可下载)。

艾泰醚

ExeIdfo PE是一种探测公共包装机的一个很好的工具。

但是,正如您所预期的那样,情况可能会变得更加复杂。恶意软件作者喜欢创建自定义包装器,以防止较少经验丰富的反向工程解压缩其恶意软件的内容。这种方法击败了现代的解包脚本,并强制逆转器手动解压缩文件,看看程序正在做什么。甚至rarer,有时恶意软件作者将两次包装他们的文件,首先使用商业包装器,然后是他们自己的自定义包装机。

结论
虽然这种技术列表肯定不会详尽无遗,但这希望这更好地了解恶意软件如何隐藏自我看法。混淆是一种高度可靠的技术,用于隐藏文件内容,有时如果使用包装程序程序,则有时是整个文件本身。

混淆技术始终改变,但知道我们在Malwarebytes的情况下放心都很清楚这一点。必威平台APP我们的员工在战斗恶意软件方面拥有多年的经验,并竭尽全力了解恶意文件真正的事。

带上它,恶意软件。做你最糟糕的!

___________________________________________________________________________

约书亚加拿他尔是Malwarebytes的恶意软件智能分析师,他对当前恶意软件威胁进行了必威平台APP研究和深入分析。他拥有超过5年的经验,与美国国防情报机构合作,通过逆向工程技术分析恶意软件和制定防御策略。他的文章拆包博客介绍恶意软件中的最新消息以及全长技术分析。跟着他在推特上@joshcannell.