“分段”恶意软件

信息安全 恶意软件 杀毒软件
2021-08-24 02:37:19

我一直在研究反恶意软件工具的功能,我觉得我在启发式分析中遗漏了一些东西。

到目前为止我所学到的
反恶意软件程序可以使用启发式分析和签名来确定程序是否是恶意软件。恶意软件作者使用多态代码来避免签名识别,并混淆代码中的操作以避免一些启发式方法。

场景
如果恶意软件作者将他们的代码分割成多个不同的二进制文件,这是否可以被检测到?我正在想象一个场景,其中一个简单的键盘记录器使用许多多态可执行文件来记录键、接收命令和发送数据,以便显示为良性工具。

我觉得这可能会在使用一两个键绑定和其他小工具的程序中产生大量误报。

我的问题
这可能是避免检测的有效方法吗?
如果还没有的话,有什么方法可以防止这种情况发生吗?

1个回答

20 多年来,我一直在为专业安全测试编写恶意软件。逃避 AV 检测是我们客户的共同要求之一。该方法取决于应避开哪种扫描机制。

基于模式的检测在 AV 环境中非常简单。这就像一个正则表达式,它试图识别特定恶意软件的公共部分。如果恶意软件对该识别签名进行了更改,则检测将不再起作用。更改代码片段(例如字符串、内部名称)或二进制文件中的代码块位置可以快速完成并且会成功。

基于启发式的检测做类似的事情,但不是用代码块而是用“动作”。一个动作将是打开一个文件,写入一个字符串并再次关闭文件。Windows 文件系统上的可疑序列可能正在创建一个文件并立即向其添加隐藏标志。大多数 AV 产品都宣称这是恶意的。在大多数情况下,它是(有多少合法的应用程序这样做?)。但是,如果您在这两个任务之间等待几秒钟或在其间执行其他操作(例如同时打开另一个文件),启发式将错过初始任务之间的原始连接。

将任务拆分为像多线程实例一样运行的多个二进制文件可能会产生类似的效果。这是因为 AV 软件无法关联来自多个进程的那么多动作。挑战可能是您必须在目标主机上部署所有二进制文件才能建立框架。但这可能会在启发式分析期间引发一些标志(多次下载、执行后下载另一个二进制文件或从单个二进制文件中提取多个可执行文件)。我通常会下载其他部分并放弃原来的“下载器”。这很好用,生成小的二进制文件并且效率很高。AV 检测对超小和简单文件的效果相当差。

我从来没有遇到过无法绕过 AV 检测的情况。它可能比平时需要更多的时间。这可能就是为什么有人称AV蛇油的原因。