什么是恶意软件?
恶意软件一直是防病毒和编码专家关注的严重问题。如今,恶意软件已发展到异常复杂的水平,使其很难被检测到。检测到恶意软件的这种延迟使它可以更广泛地传播,但是如果防病毒软件可以在短时间内扫描恶意软件,则可以进行处理。但是,如果恶意软件使用伪装策略,例如:
- 加密,
- 寡态
- 多态性,以及
- 变质;
他们可以使检测从困难到看似不可能。
用于检测恶意软件的技术
在编程语言的早期,计算机专家曾经用来制造病毒来娱乐,然后慢慢地,这些病毒被滥用了很多用途,例如窃取银行帐号和密码以及还用于为人们报仇的密码。因此,病毒的产生不再是一种炫耀活动,而是变成了渎职行为。为了掩饰自己,恶意软件创建者首先尝试使用隐身技术。
-
隐身技巧
这些技术掩盖了恶意软件对受感染系统所做的任何类型的更改。当用户打开来自电子邮件或网站的恶意附件链接时,隐形病毒可感染计算机系统。这些隐形病毒会破坏整个系统的性能。但是,由于这两种修改,它们的检测似乎很困难。
- 他们隐藏了最初感染文件的大小。
- 他们暂时远离受感染的文件,并将自己复制到另一个驱动器中的文件中,用干净的文件替换其先前的位置。
恶意软件的上述工作基于隐形伪装的两个主要方面,即隐藏恶意软件的痕迹以及对人类和防病毒程序隐藏主要代码。但是,恶意软件创建者无法在很长一段时间内发挥优势,因为后来防病毒软件可以对其进行处理,这让伪装的恶意软件演变成为可能。
-
加密
这是最早的伪装技术,在这种技术中,恶意软件作者趋向于改进其程序代码以免被检测到,从而使病毒更深入地渗透到计算机中。除了代码的主体之外,该技术还利用了解密循环。解密循环的主要工作是隐藏代码主体的工作。没有解密器,代码主体就毫无意义,因为解密器负责加密和解密代码。一些复杂的加密方式涉及使用由特殊算法生成的恒定值或滑动变量值。
病毒扫描程序有时无法检测到加密的病毒,因为它们必须先解密代码以对整个代码进行解码,然后防病毒软件发生了革命性变化,并已开始检测解密代码,从而为检测病毒提供了间接的证据。 -
寡态
隐藏恶意软件的下一个进步是利用同态代码专门启动计算机病毒的同态。寡态性不仅仅使用一个解密器,而是使用n个解密器。在此过程中,主体趋向于从n个解密器中选择一个随机解密器,这使得检测对于病毒扫描程序而言很繁琐。但是,由于特定代码的预定义解密器的最大数量不超过几百个,因此,由于某些高级防病毒软件使用通配符(低概率和高影响)扫描方法来检测它们,因此可以通过一些高级防病毒软件对其进行检测。这种方法需要很多时间,但仍然可以检测到病毒。
-
多态性
它是寡聚和加密的一种非常复杂的形式。寡态和多态之间的唯一区别是,在多态中使用了无限数量的解密器。各种多态性技术的基础是通过更改病毒的外观来使病毒分析更加困难。解密器不断地将其外观从一个副本更改为另一个副本,并且此过程非常熟练,因此病毒扫描程序无法利用任何副本进行检测。多态性可以很容易地使大多数防病毒软件普遍执行的基于签名的检测变得愚蠢,因此必须使用机器学习和基于行为的分析进行检测。机器学习的重点是文件的异常行为,而不是其签名。同样,无论代码设计得如何好,但是在代码进行了足够数量的仿真之后,将通过简单的字符串匹配来揭示底层的加密代码。
-
变质
它是完全不同的一种病毒,没有加密部分,但是就像多态病毒一样,它具有突变引擎。该引擎修改了整个病毒,而不仅仅是修改了解密程序。在突变后的变态病毒中,它们可能具有不同的代码,体型和结构,但其行为保持不变。变态病毒具有突变引擎的四个主要组成部分:
- 拆装机
- 代码分析器
- 代码变压器
- 组装工
变态病毒的工作过程如下:
- 步骤1:病毒首先找到其代码,然后将其转换为汇编指令(由内部反汇编程序完成的任务)。
- 步骤2:代码分析器为代码转换器提供所需的信息。这些信息包括:
- 该程序的结构和流程图。
- 变量和寄存器的生命周期等。
- 步骤3:代码转换器是更改引擎二进制代码序列的变异引擎的核心。
- 步骤4:然后,汇编程序将病毒的汇编代码转换为机器二进制代码。
好的变质病毒几乎是不可能捕获的。只有使用基于行为的分析和机器学习才能完全解决此问题。尽管迄今为止已经解决了各种变态病毒,但尚未设计出具体的方法来与之抗衡。