本文主要是介绍恶意代码防范技术原理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
恶意代码是网络安全的主要威胁,本节主要阐述恶意代码的概念和分类,给出恶意代码攻击模型,分析恶意代码的生存技术、攻击技术、分析技术以及防范策略。
1.1 恶意代码定义与分类
恶意代码的英文是Malicious Code,它是一种违背目标系统安全策略的程序代码,会造成目标系统信息泄露、资源滥用、破坏系统的完整性及可用性。它能够经过存储介质或网络进行传播,从一台计算机系统传到另一台计算机系统,未经授权认证访问或破坏计算机系统。通常许多人认为“病毒”代表了所有感染计算机造成破坏的程序。事实上,“恶意代码”的说法更为通用,病毒只是一类恶意代码而已。恶意代码的种类主要包括计算机病毒(Computer Virus)、蠕虫(Worms)、特洛伊木马(Trojan Horse)、逻辑炸弹(Logic Bombs)、细菌(Bacteria)、恶意脚本(Malicious Scripts)和恶意ActiveX控件、间谍软件(Spyware)等。根据恶意代码的传播特性,可以将恶意代码分为两大类,被动传播和主动传播。被动传播的恶意软件有计算机病毒、特洛伊木马、间谍软件、逻辑炸弹;主动传播的恶意软件有网络蠕虫和其他。
1.2 恶意代码攻击模型
恶意代码的行为不尽相同,破坏程度也各不相同,但它们的作用机制基本相同。其作用过程可大概分为以下6个步骤:
第一步,侵入系统。恶意代码实现其恶意目的的第一步就是要侵入系统。
第二步,维持或提升已有的权限。恶意代码的传播与破坏需要建立在盗用用户或者进程的合法权限的基础之上。
第三步,隐蔽。为了隐蔽已经侵入系统的恶意代码,可能会采取对恶意代码改名、删除源文件或者修改系统的安全策略等方式。
第四步,潜伏。恶意代码侵入系统后,在具有足够的权限并满足某些条件时就会发作,同时进行破坏活动。
第五步,破坏。恶意代码具有破坏性的本质,为的是造成信息丢失、泄密,系统完整性被破坏等。
第六步,重复前面5步对新的目标实施攻击过程。
1.3 恶意代码生存技术
恶意代码靠采用反跟踪技术来提高自身的伪装能力和防破译能力,使检测与清除恶意代码的难度大大增加。反跟踪技术大致可以分为两大类:反动态跟踪技术和反静态分析技术。
- 反跟踪技术
1)反动态跟踪技术
* 禁止跟踪中断。
* 检测跟踪法。
* 其他反跟踪技术。
2)反静态分析技术
* 对程序代码分块加密执行。
* 伪指令法。
-
加密技术
加密技术是恶意代码进行自我保护的手段之一,再配合反跟踪技术的使用,让分析者不能正常调试和阅读恶意代码,无法获得恶意代码的工作原理,自然也不能抽取特征串。从加密的内容上划分,加密手段有三种,即信息加密、数据加密和程序代码加密。 -
模糊变换技术
恶意代码每感染一个客体对象时都会利用模糊变换技术使潜入宿主程序的代码不尽相同。尽管是同一种恶意代码,但仍会具有多个不同样本,几乎不存在稳定的代码,只采用基于特征的检测工具一般无法有效识别它们。
目前,模糊变换技术主要分为以下几种:- 指令替换技术。
- 指令压缩技术。
- 指令扩展技术。
- 伪指令技术。
- 重编译技术。
-
自动生产技术
普通病毒能够利用“多态性发生器”编译成具有多态性的病毒。多态变换引擎能够让程序代码本身产生改变,但却可以保持原有功能。例如保加利亚的“Dark Avenger”,变换引擎每产生一个恶意代码,其程序体都会发生变化,反恶意代码软件若只是采用基于特征的扫描技术,则无法检测和清除这种恶意代码。 -
变形技术
在恶意代码的查杀过程中,多数杀毒厂商通过提取恶意代码特征值的方式对恶意代码进行分辨。这种基于特征码的病毒查杀技术的致命缺点是需要一个特征代码库,同时这个库中的代码要具有固定性。病毒设计者利用这一漏洞,设计出具有同一功能不同特征码的恶意代码。这种变换恶意代码特征码的技术称为变形技术。常见的恶意代码变形技术包括如下几个方面:- 重汇编技术。
- 压缩技术。
- 膨胀技术。
- 伪指令技术。
- 重编译技术。
-
三线程技术
恶意代码中应用三线程技术是为了防止恶意代码被外部操作停止运行。三线程技术的工作原理是一个恶意代码同时开启了三个线程,其中一个为负责远程控制工作的主线程,另外两个为用来监视线程负责检查恶意代码程序是否被删除或被停止自启动的监视线程和守护线程。注入其他可执行文件内的守护线程,同步于恶意代码进程。只要进程被停止,它就会重新启动该进程,同时向主线程提供必要的数据,这样就使得恶意代码可以持续运行。“中国黑客”就是采用这种技术的恶意代码。 -
进程注入技术
在系统启动时操作系统的系统服务和网络服务一般能够自动加载。恶意代码为了实现隐藏和启动的目的,把自身嵌入与这些服务有关的进程中。这类恶意代码只需要安装一次,就能被服务加载到系统中运行,并且可以一直处于活跃状态。如Windows下的大部分关键服务程序能够被“WinEggDropShell”注入。 -
通信隐藏技术
实现恶意代码的通信隐藏技术一般有四类:端口定制技术、端口复用技术、通信加密技术、隐蔽通道技术。- 端口定制技术,旧木马几乎都存在预设固定的监听端口,但是新木马一般都有定制端口的功能。优点:木马检测工具的一种检测方法就是检测缺省端口,定制端口可以避过此方法的检测。
- 端口复用技术利用系统网络打开的端口(如25和139等)传送数据。
- 通信加密技术,即将恶意代码的通信内容加密发送。通信加密技术胜在能够使得通信内容隐藏,但弊端是通信状态无法隐藏。
- 隐蔽通道技术能有效隐藏通信内容和通信状态,目前常见的能提供隐蔽通道方式进行通信的后门有:BO2K、Code Red II、Nimida和Covert TCP等。但恶意代码编写者需要耗费大量时间以便找寻隐蔽通道。
-
内核级隐藏技术
1)LKM隐藏
LKM是可加载内核模块,用来扩展Linux的内核功能。LKM能够在不用重新编译内核的情况下把模块动态加载到内存中。
2)内存映射隐藏
内存映射是指由一个文件到一块内存的映射。内存映射可以将硬盘上的内容映射至内存中,用户可以通过内存指令读写文件。使用内存映射避免了多次调用I/O操作的行为,减少了不必要的资源浪费。
1.4 恶意代码攻击技术
- 进程注入技术
系统服务和网络服务在操作系统中,当系统启动时被自动加载。进程注入技术就是将这些与服务相关的嵌入了恶意代码程序的可执行代码作为载体,实现自身隐藏和启动的目的。这类恶意代码只需要安装一次,就能被服务加载到系统中运行,并且可以一直处于活跃状态。 - 超级管理技术
部分恶意代码能够攻击反恶意代码软件。恶意代码采用超级管理技术对反恶意代码软件系统进行拒绝服务攻击,阻碍反恶意代码软件的正常运行。例如,“广外女生”是一个国产特洛伊木马,对“金山毒霸”和“天网防火墙”采用超级管理技术进行拒绝服务攻击。 - 端口反向连接技术
防火墙对于外网进入内部的数据流有严格的访问控制策略,但对于从内到外的数据并没有严格控制。指令恶意代码使用端口反向连接技术使攻击的服务端(被控制端)主动连接客户端(控制端)端口。最早实现这项技术的木马程序是国外的“Boinet”,它可以通过ICO、IRC、HTTP和反向主动连接这4种方式联系客户端。“网络神偷”是我国最早实现端口反向连接技术的恶意代码。“灰鸽子”则是这项技术的集大成者,它内置FTP、域名、服务器主动连接这3种服务端在线通知功能。 - 缓冲区溢出攻击技术
恶意代码利用系统和网络服务的安全漏洞植入并且执行攻击代码,攻击代码以一定的权限运行有缓冲区溢出漏洞的程序来获得被攻击主机的控制权。缓冲区溢出攻击成为恶意代码从被动式传播转为主动式传播的主要途径之一。例如,“红色代码”利用IIS Server上的Indexing Service的缓冲区溢出漏洞完成攻击、传播和破坏等恶意目的。
1.5 恶意代码分析技术
恶意代码分析方法由静态分析方法和动态分析方法两部分构成。其中,静态分析方法有反恶意代码软件的检查、字符串分析和静态反编译分析等;动态分析方法包括文件监测、进程监测、注册表监测和动态反汇编分析等。
- 静态分析方法
恶意代码的静态分析主要包括以下方法:
(1)反恶意代码软件的检测和分析。
(2)字符串分析。
(3)脚本分析。
(4)静态反编译分析。
(5)静态反汇编分析。 - 动态分析方法
(1)文件监测。
(2)进程监测。
(3)网络活动监测。
(4)注册表监测。
(5)动态反汇编分析。
目前主要的动态反汇编分析方法有以下两种:- 同内存调试。
- 仿真调试,即虚拟调试。
1.6 恶意代码防范策略
要做好恶意代码的防范,一方面组织管理上必须加强恶意代码的安全防范意识。另一方面,通过技术手段来实现恶意代码防范。
网络安全学习资源分享:
零基础入门
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享 (qq.com)
同时每个成长路线对应的板块都有配套的视频提供:
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享 (qq.com)
因篇幅有限,仅展示部分资料,需要点击上方链接即可获取
这篇关于恶意代码防范技术原理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!