ner
恶意代码

如何清除恶意代码

分享
  • Simon 2 风险管理(专业级)RM/PL CICSA
    Simon2 风险管理(专业级)RM/PL CICSA

    恶意代码的清除是根据恶意代码的感染过程或感染方式,将恶意代码从系统中删除,使被感染的系统或被感染的文件恢复正常的过程。

    1.感染引导区型恶意代码的清除

    引导区型恶意代码是一种通过感染系统引导区获得控制权的恶意代码,根据感染的类型分为主引导区和引导区恶意代码两种类型。由于恶意代码寄生在引导区中,因此可以在操作系统前获得系统控制权,其清除方式主要是对引导区进行修复,恢复正常的引导信息,恶意代码随之被清除。

    2.文件依附型恶意代码的清除

    文件依附型恶意代码是一种通过将自身依附在文件上的方式以获得生存和传播的恶意代码,由于恶意代码将自身依附在被感染文件上,只需根据感染过程和方式,将恶意代码对文件的操作进行逆向操作,就可以清除。典型的文件型恶意代码通常是将恶意程序追加到正常文件的后面,然后修改程序首指针,使得程序在执行时先执行恶意代码,然后再跳转去执行真正的程序代码,这种感染方式会导致文件的长度增加。清除的过程相对简单,将文件后的恶意代码清除,并修改程序首指针使之恢复正常即可。

    部分恶意代码会将自身进行拆分,插入到被感染的程序的自由空间内。例如,著名的CIH病毒,就是将自身代码拆分开,放置在被感染程序中没有使用的部分,这种方式的被感染文件的长度不会增加。这种类型的恶意代码相比前一种感染文件后端的恶意代码的清除要复杂得多,只有准确了解该类恶意代码的感染方式,才能有效清除。

    部分文件依附型恶意代码是覆盖型文件感染恶意代码,这类恶意程序会用自身代码覆盖文件的部分代码,将其清除会导致正常文件被破坏,无法修复,只能用没有被感染的原始文件覆盖被感染的文件。

    3.独立型恶意代码的清除

    独立型恶意代码自身是独立的程序或独立的文件,如木马、蠕虫等,是恶意代码的主流类型。清除独立型恶意代码的关键是找到恶意代码程序,并将恶意代码从内存中清除,然后就可以删除恶意代码程序。

    如果恶意代码自身是独立的可执行程序,其运行会形成进程,因此需要对进程进行分析,查找到恶意代码程序的进程,将进程终止后,从系统中删除恶意代码文件,并将恶意代码对系统的修改还原,就可以彻底清除该类恶意代码。

    如果恶意代码是独立文件,但并不是一个独立的可执行程序,而是需要依托其他可执行程序的运行和调用,才能加载到内存中,例如,利用DLL注入技术注入程序中的恶意DLL文件(.dll),利用加载为设备驱动的系统文件(.sys)都是典型的依附、非可执行程序。清除这种类型的恶意代码也需要先终止恶意代码运行,使其从内存中退出。与独立型恶意代码不同的是,这种类型的恶意代码是由其他可执行程序加载到内存中的,因此需要将调用的可执行程序从内存中退出,恶意代码才会从内存中退出,相应的恶意代码文件也才能被删除。如果调用恶意代码的程序为系统关键程序,无法在系统运行时退出,在这种情况下,需要将恶意代码与可执行程序之间的关联设置删除,重新启动系统后,恶意代码就不会被加载到内存中,文件才能被删除。

    4.嵌入型恶意代码的清除

    部分恶意代码嵌入在应用软件中,例如,攻击者利用网上存在的大量开源软件,将恶意代码加入到某开源软件的代码中,然后编译相关程序,并发布到网上吸引用户下载,获得用户敏感信息、重要数据。由于这种类型的恶意代码与目标系统结合紧密,通常需要通过更新软件或系统,甚至重置系统才能清除。

  • 写回答