编写自解密病毒的原因

信息安全 加密 恶意软件
2021-08-26 15:26:14

编写自解密病毒的基本原理是什么?我的意思是一种病毒,它的有效负载加密,在运行时解密并运行它。

这如何保护病毒免受杀毒软件的侵害?

现在它本身仍然是一种可行的技术,还是现代防病毒软件可以对抗这种恶意软件?

3个回答

它是某些病毒用来掩盖其存在并避免检测并促进更容易传播(影响其他系统)的混淆技术之一。

此类病毒会加密(在可随传播而变异的变形或多病毒的情况下自加密)其有效载荷,因此阻止直接检查,这可能导致防病毒软件检测和/或清除它们的能力降低。它们很难通过快速的防病毒检测方法来检测,例如根据病毒定义表检查文件签名,如果有效负载在其中移动位置,则有效地改变文件签名(变形)。不过,变形病毒不一定使用加密。

在自解密的一堆讨厌的东西中,最难检测的是多态病毒,它可以改变有效载荷的加密方案(和/或使用随机加密密钥),以及变异解密代码本身(部分未加密并解密有效负载的文件)。使用防病毒软件检测此类病毒的唯一可靠方法是深度启发式,检查其结构的较小块的签名,和/或通过在沙箱中运行它们并检查它们的实际作用。这种扫描技术当然计算成本很高,默认情况下出于速度考虑(并且可能避免误报)在消费级软件上禁用,并且没有多少用户在实际上能够使用这种高级检测方法的发行版上启用此功能。

因此,要回答您的问题,它仍然是一种可行的技术,因为它使此类病毒更难在它们可能用来传播给其他人的大多数系统上检测到,并提高了它们的存活率如果您有兴趣,此页面列出了最常见的病毒混淆技术

除了标准的自加密/解密病毒外,还有一种新的病毒加密技术正在使用中。去年,一种​​名为 Gauss 的高科技专业级病毒被发现带有加密的有效载荷。该方案的巧妙之处在于,加密的有效载荷使用来自目标受害者计算机的数据作为解密密钥。在将病毒安装在非常特定的受害者机器上之前,没有分析师可以解密有效载荷的作用。

在高斯的情况下,密钥由两个值的组合组成。该病毒在 PATH 环境变量中构建一个列表条目,并在 Program Files 目录中构建一个文件夹名称列表。将两个列表中的每一对组合起来,添加一个盐,它运行 10,000 次 MD5 迭代(与 PBKDF2 的操作非常相似),然后尝试使用哈希作为密钥进行解密。如果失败,则配对下一个文件夹名称,并重复循环。如果成功,payload 将被解密并执行。迄今为止,尚未有人宣布发现将解锁有效载荷的这对术语。

Gauss 已经拥有未加密的恶意软件。它可以监控击键并从某家黎巴嫩银行的账户中窃取资金。预计加密有效载荷的性质将更加引人注目,类似于以摧毁伊朗离心机而闻名的 Stuxnet。

加密病毒由解密例程和加密病毒有效载荷组成。如果用户启动此类病毒,则:

  1. 病毒解密例程执行解密病毒有效载荷。

  2. 然后解密例程执行加密的病毒载荷。

  3. 每次感染新文件时,它都会复制已解密的病毒负载和解密例程。感染后,它使用新的加密密钥使用有效负载加密病毒,并将自身与解密例程一起附加到目标文件。

  4. 随着加密密钥从感染到感染的变化,因此病毒有效载荷主体发生变化,使得病毒有效载荷在感染之间出现不同。这使得反病毒软件很难搜索从一致的病毒体中提取的病毒特征码。

  5. 从感染到感染,解密例程保持不变,这是防病毒软件可以利用的弱点。

但这是一种非常基本的技术,恶意软件编写者使用越来越多的复杂技术来绕过 AV 检测。

来源 理解和管理多态病毒。