恶意软件会在扫描期间移动以避免检测吗?

信息安全 杀毒软件 反恶意软件
2021-09-08 06:58:56

我认为每个 AV-Scanner 都在使用一些可预测的递归扫描来搜索文件中的恶意软件。恶意软件不能轻松检测到扫描并移动到已经检查过的位置,通过了解某些 AV-Scanner 使用的算法来确定吗?

AV-Scanners 是否有任何机制来防止这种行为?

rootkit 也不能​​在扫描期间自行删除,然后在扫描完成后将自己放回原位吗?

3个回答

恶意软件无法以这种方式规避 AV 的主要原因是按访问扫描程序会捕捉到这一点。

从 AV 的角度来看,移动到不同文件的恶意软件与扫描期间创建的新文件是同一个问题。一个非常简单的解决方案是让 AV 跟踪正在创建的新文件(包括正在重命名的当前文件)。这是通过挂钩 OS API 或其他较低级别的挂钩来完成的。

理论上,完美的 rootkit 对 AV 来说是不可见的。为了增加 AV 攻击 rootkit 的机会,AV 在启动序列的早期就开始了,它使用低级别的方式与操作系统和硬件进行通信,并且它会监控自身的篡改活动。此外,扫描的第一阶段是针对活动进程和系统二进制文件。这样做尤其是因为内存中的恶意软件可以像你提到的那样玩诡计。

还要记住,恶意软件方面的任何奇怪活动,例如移动文件、跳过不同进程的内存以及使用类似 rootkit 的方法,只会引起人们的注意,因为合法软件不会有这样的行为。反病毒启发式算法将标记一个奇怪的行为,这可能有助于检测恶意软件,或者二进制文件可能会上传到反病毒服务器以进行进一步分析和交叉检查。

“捉迷藏”场景

一些 AV 执行“线性搜索”扫描,而另一些则随机执行(例如:AVG)。但是用这种捉迷藏的策略隐藏病毒并不是最好的方法,因为它会给它的开发带来太多的复杂性。有一些类型的病毒,例如隐身(拦截来自操作系统的调用并返回虚假或无效响应)、加密(加扰自身以避免检测)或空洞(嵌入到文件中而不改变其大小或格式),哪种更好处理逃避。

AV 是如何工作的?

AV 以两种不同的方式工作。一种是基于先前确定的病毒的已知模式。另一个依赖于“启发式”检查:寻找恶意/不常见/意外系统行为的类型。

Rootkit 与病毒

rootkit 与病毒不同,因为它是一种在您的操作系统完全启动之前被激活的恶意软件。Rootkit 通常具有访问操作系统的特权。因此,AV 不是对抗 rootkit 的正确武器。

这是完全有可能的,尽管病毒需要某种方式来判断 AV 扫描仪在做什么(因为许多病毒会不断运行,无论它们是否在扫描)。这将是不可靠的,尤其是与其他技术(例如隐藏可执行文件)相比。

rootkit可以完全隐藏在受感染的操作系统之外——就您的计算机而言,它并不存在。这使得使用标准防病毒应用程序很难检测到它们。