14.1.1 恶意代码定义与分类
恶意代码的种类主要包括计算机病毒(Computer Virus )、蠕虫(Worms )、特洛伊木马(Trojan Horse)、逻辑炸弹(Logic Bombs )、细菌(Bacteria),恶意脚本(Malicious Scripts)和恶意 ActiveX控件、间谍软件(Spyware)等。根据恶意代码的传播特性,可以将恶意代码分为主动传播和被动传播两大类。
【考生要能区分哪些是主动传播,哪些是被动传播】
14.1.2 恶意代码攻击模型程可大概分为以下 6 个步骤:
第一步,侵入系统。恶意代码实现其恶意目的第一步就是要侵入系统。
第二步,维持或提升己有的权限。恶意代码的传播与破坏需要建立在盗用用户或者进程的合法权限的基础之上。
第三步,隐蔽。为了隐蔽己经侵入系统的恶意代码,可能会采取对恶意代码改名、删除源文件或者修改系统的安全策略等方式。
第四步,潜伏。恶意代码侵入系统后,在具有足够的权限并满足某些条件时就会发作,同时进行破坏活动。
第五步,破坏。恶意代码具有破坏性的本质,为的是造成信息丢失、泄密,系统完整性被破坏等。
第六步,重复前面 5 步对新的目标实施攻击过程.
14.1.3 恶意代码生存技术
1.反跟踪技术
恶意代码靠采用反跟踪技术来提高自身的伪装能力和防破译能力,使检测与清除恶意代码的难度大大增加。
反跟踪技术大致可以分为两大类:
1)反动态跟踪技术 2)反静态分析技术
2.加密技术
加密技术是恶意代码进行自我保护的手段之一,再配合反跟踪技术的使用,让分析者不能正常调试和阅读恶意代码,无法获得恶意代码的工作原理,自然也不能抽取特征串。从加密的内容上划分,加密手段有三种,即信息加密、数据加密和程序代码加密。大部分恶意代码对程序体本身加密,但还有少数恶意代码对被感染的文件加密。
3.模糊变换技术
模糊变换技术主要分为以下几种:
指令替换技术:模糊变换引擎(Mutation Engine)对恶意代码的二进制代码进行反汇编,解码并计算指令长度,再对其同义变换。
指令压缩技术:经恶意代码反汇编后的全部指令由模糊变换器检测,对可压缩的指令 同义压缩。
指令扩展技术:扩展技术是对汇编指令进行同义扩展,所有经过压缩技术变换的指令 都能够使用扩展技术来进行逆变换。
伪指令技术:伪指令技术主要是将无效指令插入恶意代码程序体,例如空指令。
重编译技术:使用重编译技术的恶意代码中携带恶意代码的源码。
4.自动生产技术
普通病毒能够利用“多态性发生器”编译成具有多态性的病毒。代码本身产生改变,但却可以保持原
有功能。
5.变形技术
在恶意代码的查杀过程中,多数杀毒厂商通过提取恶意代码特征值的方式对恶意代码进行分辨。这种基于特征码的病毒查杀技术的致命缺点是需要一个特征代码库。
6.三线程技术
三线程技术的工作原理是一个恶意代码进程同时开启了三个线程,其中一个为负责远程控制工作的主线程,另外两个为用来监视线程负责检查恶意代码程序是否被删除或被停止自启动的监视线程和守护线程。注入其他可执行文件内的守护线程,同步于恶意代码进程。只要进程被停止,它就会重新启动该进程。
7.进程注入技术
在系统启动时操作系统的系统服务和网络服务一般能够自动加载。恶意代码程序为了实现隐藏和启动的目的,把自身嵌入与这些服务有关的进程中。
8.通信隐藏技术
实现恶意代码的通信隐藏技术一般有四类:端口定制技术、端口复用技术、通信加密技术、隐蔽通道技术。
14.1.4 恶意代码攻击技术
1.进程注入技术
系统服务和网络服务在操作系统中,当系统启动时被自动加载。进程注入技术就是将这些与服务相关的嵌入了恶意代码程序的可执行代码作为载体,实现自身隐藏和启动的目的。
2.超级管理技术
部分恶意代码能够攻击反恶意代码软件。恶意代码采用超级管理技术对反恶意代码软件系统进行拒绝服务攻击,阻碍反恶意代码软件的正常运行。
3.端口反向连接技术
防火墙对于外网进入内部的数据流有严格的访问控制策略,但对于从内到外的数据并没有严格控制。指令恶意代码使用端口反向连接技术使攻击的服务端(被控制端)主动连接客户端(控制端)端口。
4.缓冲区溢出攻击技术
恶意代码利用系统和网络服务的安全漏洞植入并且执行攻击代码,攻击代码以一定的权限运行有缓冲区溢出漏洞的程序来获得被攻击主机的控制权。
14.1.5 恶意代码分析技术
恶意代码的分析方法由静态分析方法和动态分析方法两部分构成。其中,静态分析方法有反恶意代码软件的检查、字符串分析和静态反编译分析等;动态分析方法包括文件监测、进程监测、注册表监测和动态反汇编分析等。
1.静态分析方法
恶意代码的静态分析主要包括以下方法:
(1)反恶意代码软件的检测和分析。反恶意代码软件检测恶意代码的方法有特征代码法、校验和法、行为监测法、软件模拟法等。
(2)字符串分析。字符串分析的目的是寻找文件中使用的 ASCII 或其他方法编码的连续字符串。
2.动态分析方法
恶意代码的动态分析主要包括以下方法:
(1)文件监测。恶意代码在传播和破坏的过程中需要依赖读写文件系统,但存在极少数恶意代码只是单纯依赖内存却没有与文件系统进行交互。
(2)进程监测。恶意代码要入侵甚至传播,必须有新的进程生成或盗用系统进程的合法权限,主机上所有被植入进程的细节都能为分析恶意代码提供重要参考信息。
14.2.1 计算机病毒概念与特性
(1)隐蔽性。计算机病毒附加在正常软件或文档中,例如可执行程序、电子邮件、Word 文档等,一旦用户未察觉,病毒就触发执行,潜入到受害用户的计算机中 。
(2)传染性。计算机病毒的传染性是指计算机病毒可以进行自我复制,并把复制的病毒附加到无病毒的程序中,或者去替换磁盘引导区的记录,使得附加了病毒的程序或者磁盘变成了新的病毒源,又能进行病毒复制,重复原先的传染过程。
(3)潜伏性。计算机病毒感染正常的计算机之后,一般不会立即发作,而是等到触发条件满足时,才执行病毒的恶意功能,从而产生破坏作用。
(4)破坏性。计算机病毒对系统的危害性程度,取决于病毒设计者的设计意图。有的仅仅是恶作剧,有的破坏系统数据。
14.2.2 计算机病毒组成与运行机制
计算机病毒由三部分组成:
复制传染部件(replicator)、隐藏部件(concealer )、破坏部件((bomb )。
复制传染部件的功能是控制病毒向其他文件的传染;隐藏部件的功能是防止病毒被检测到;破坏部件则用在当病毒符合激活条件后,执行破坏操作.
14.2.3 计算机病毒常见类型与技术
1.引导型病毒
2.宏病毒(Macro Viruses)
宏是 1995 年出现的应用程序编程语言,它使得文档处理中繁复的敲键操作自动化。
3.多态病毒(Polymorpluc Viruses )
多态病毒每次感染新的对象后,通过更换加密算法,改变其存在形式。一些多态病毒具有超过二十亿种呈现形式,这就意味着反病毒软件常常难以检测到它,一般需要采用启发式分析方法来发现。多态病毒有三个主要组成部分:杂乱的病毒体、解密例程(decryption routine )、变化引擎( mutation
engine )。在一个多态病毒中,变化引擎和病毒体都被加密。
4.隐蔽病毒(Stealth Viruses)
隐蔽病毒试图将自身的存在形式进行隐藏,使得操作系统和反病毒软件不能发现。隐蔽病毒使用的技术有许多,主要包括:
隐藏文件的日期、时间的变化;
隐藏文件大小的变化;
14.2.4 计算机病毒防范策略与技术
1.查找计算机病毒源
2.阻断计算机病毒传播途径
3.主动查杀计算机病毒
4.计算机病毒应急响应和灾备
14.3.1 特洛伊木马概念与特性
特洛伊木马(Trojan Horse,简称木马),其名称取自古希腊神话特洛伊战争的特洛伊木马,它是具有伪装能力、隐蔽执行非法功能的恶意程序,而受害用户表面上看到的是合法功能的执行。
目前特洛伊木马己成为黑客常用的攻击方法。
14.3.3 特洛伊木马运行机制
木马受攻击者的意图影响,其行为表现各异,但基本运行机制相同,整个木马攻击过程主要分为五个部分:
①寻找攻击目标。攻击者通过互联网或其他方式搜索潜在的攻击目标。
②收集目标系统的信息。获取目标系统的信息主要包括操作系统类型、网络结构、应用软件、用户习惯等。
③将木马植入目标系统。攻击者根据所搜集到的信息,分析目标系统的脆弱性,制定植入木马策略。木马植入的途径有很多,如通过网页点击、执行电子邮件附件等。
④木马隐藏。为实现攻击意图,木马设法隐蔽其行为,包括目标系统本地活动隐藏和远程通信隐藏。
⑤攻击意图实现,即激活木马,实施攻击。木马植入系统后,待触发条件满足后,就进行攻击破坏活动。
14.3.4 特洛伊木马植入技术
特洛伊木马植入是木马攻击目标系统最关键的一步,是后续攻击活动的基础。当前特洛伊木马的植入方法可以分为两大类,即被动植入和主动植入。被动植入是指通过人工干预方式才能将木马程序安装到目标系统中,植入过程必须依赖于受害用户的手工操作;而主动植入则是指主动攻击方法,将木马程序通过程序自动安装到目标系统中,植入过程无须受害用户的操作。
常用的植入方法如下:
1. 文件捆绑法。将木马捆绑到一些常用的应用软件包中,当用户安装该软件包时,木马就在用户毫无察觉的情况下,被植入系统中。
2. 邮件附件。木马设计者将木马程序伪装成邮件附件,然后发送给目标用户,若用户执行邮件附件就将木马植入该系统中。
3. Web 网页。木马程序隐藏在 html 文件中,当受害用户点击该网页时,就将木马植入目标系统。
14.4 网络蠕虫分析与防护
14.4.1 网络蠕虫概念与特性
网络蠕虫是一种具有自我复制和传播能力、可独立自动运行的恶意程序。它综合了黑客技术和计算机病毒技术。
14.4.2 网络蠕虫组成与运行机制
网络蠕虫由四个功能模块构成:探测模块、传播模块、蠕虫引擎模块和负载模块。
(1)探测模块。完成对特定主机的脆弱性检测,决定采用何种攻击渗透方式。该模块利用获得的安全漏洞建立传播途径,该模块在攻击方法上是开放的、可扩充的。
(2)传播模块。该模块可以采用各种形式生成各种形态的蠕虫副本,在不同主机间完成蠕虫副本传递。例如“Nimda”会生成多种文件格式和名称的蠕虫副本;"Worm.KillMsBlast”利用系统程序(例如 tftp)来完成推进模块的功能等。
(3)蠕虫引擎模块。该模块决定采用何种搜索算法对本地或者目标网络进行信息搜集,内容包括本机系统信息、用户信息、邮件列表、对本机的信任或授权的主机、本机所处网络的拓扑结构、边界路由信息等。这些信息可以单独使用或被其他个体共享。
(4)负载模块。也就是网络蠕虫内部的实现伪代码。
14.4.3 网络蠕虫常用技术
1.网络蠕虫扫描技术有三种措施可以采取:
一是减少扫描未用的地址空间;
二是在主机漏洞密度高的地址空间发现易感主机;
三是增加感染源。根据网络蠕虫发现易感主机的方式,可以将网络蠕虫的传播方法分成三类,即随机扫描、顺序扫描、选择性扫描。
14.5 僵尸网络分析与防护
僵尸网络是恶意代码的一种类型。
14.5.1 僵尸网络概念与特性
僵尸网络(Botnet)是指攻击者利用入侵手段将僵尸程序((bot or zombie)植入目标计算机上,进而操
纵受害机执行恶意活动的网络。
14.5.2 僵尸网络运行机制与技术
僵尸网络的运行机制主要由三个基本环节构成。
第一步,僵尸程序的传播。通过利用计算机网络系统的漏洞、社会工程学、犯罪工具包等方式,传播僵尸程序到目标网络的计算机上。
第二步,对僵尸程序进行远程命令操作和控制,将受害目标机组成一个网络。僵尸网络可分为集中式和分布式,僵尸程序和控制端的通信协议方式有 IRC, HTTP。
第三步,攻击者通过僵尸网络的控制服务器,给僵尸程序发送攻击指令,执行攻击活动,如发送垃圾电子邮件等。
14.5.3 僵尸网络防范技术
1.僵尸网络威胁监测
通常利用蜜罐技术获取僵尸网络威胁信息,部署多个蜜罐捕获传播中的僵尸程序(Bot),记录该 Bot 的网络行为,然后通过人工分析网络日志并结合样本分析结果,可以掌握该 Bot 的属性,包括它连接的服务器(DNS / IP )、端口、频道、密码、控制口令等信息,从而获得该僵尸网络的基本信息甚至控制权。
2.僵尸网络检测
根据僵尸网络的通信内容和行为特征,检测网络中的异常网络流量,以发现僵尸网络。
3.僵尸网络主动遏制
通过路由和 DNS 黑名单等方式屏蔽恶意的 IP 地址或域名。
4.僵尸程序查杀
14.6 其他恶意代码分析与防护
14.6.1 逻辑炸弹
逻辑炸弹是一段依附在其他软件中,并具有触发执行破坏能力的程序代码。逻辑炸弹的触发条件具有多种方式,包括计数器触发方式、时间触发方式、文件触发方式、特定用户访问触发方式等。逻辑炸弹只在触发条件满足后,才开始执行逻辑炸弹的破坏功能。
14.6.2 陷门
陷门是软件系统里的一段代码,允许用户避开系统安全机制而访问系统。陷门由专门的命令激活,一般不容易发现。陷门通常是软件开发商为调试程序、维护系统而设定的功能。陷门不具有自动传播和自我复制功能。
14.6.3 细菌
细菌是指具有自我复制功能的独立程序。虽然细菌不会直接攻击任何软件,但是它通过复制本身来消耗系统资源。
例如,某个细菌先创建两个文件,然后以两个文件为基础进行自我复制,那么细菌以指数级的速度增长,很快就会消耗掉系统资源,包括 CPU、内存、磁盘空间。
14.6.4 间谍软件
间谍软件通常指那些在用户不知情的情况下被安装在计算机中的各种软件,执行用户非期望的功能。这些软件可以产生弹出广告,重定向用户浏览器到陌生的网站。同时,间谍软件还具有收集信息的能力,可记录用户的击键情况、浏览习惯,甚至会窃取用户的个人信息(如用户账号和口令、信用卡号),然后经因特网传送给攻击者。一般来说,间谍软件不具备自我复制。
14.8 恶意代码防护技术应用
本节给出了终端防护、高级持续威胁防护的应用场景。
14.8.1 终端防护
终端防护通常是在终端上安装一个恶意代码防护代理程序,该代理程序按照终端管理中心下发的安全策略进行安全控制。
14.8.2 APT 防护
高级持续威胁(简称 APT)通常利用电子邮件作为攻击目标系统。攻击者将恶意代码嵌入电子邮件中,然后把它发送到目标人群,诱使收件人打开恶意电子文档或单击某个指向恶意站点的链接。一旦收件人就范,恶意代码将会安装在其计算机中,从而远程控制收件人的计算机,进而逐步渗透到收件人所在网络,实现其攻击意图。
针对高级持续威胁攻击的特点,部署 APT 检测系统,检测电子文档和电子邮件是否存在恶意代码,以防止攻击者通过电子邮件和电子文档渗透入侵网络,如图 14-17 所示。