第14章 恶意代码防范技术原理
14.1 恶意代码概述
14.1.1 恶意代码定义与分类
恶意代码的英文是 Malicious Code,它是一种违背目标系统安全策略的程序代码,会造成目标系统信息泄露、资源滥用,破坏系统的完整性及可用性。它能够经过存储介质或网络进行传播,从一 台计算机系统传到另外一 台计算机系统,未经授权认证访问或破坏计算机系统。
恶意代码的种类主要包括计算机病毒(Computer Virus) 、蠕虫(Worms) 、特洛伊木马(Trojan Horse)、逻辑炸弹 (Logic Bombs 入细菌 (Bacteria) 、恶意脚本(Malicious Scripts)和恶意ActiveX 控件、间谍软件(Spyware)等。
随着计算机技术的普及和信息网络化的发展,恶意代码的危害性日益扩大。恶意代码的传播和植入能力由被动向主动转变,由本地主机向网络发展,恶意代码具有更强的隐蔽性,不仅实现进程隐藏和内容隐藏,而且也能做到通信方式隐藏。在恶意代码的攻击目标方面,恶意代码由单机环境向网络环境转变,从有线网络环境向无线网络环境演变,现在已经出现手机病毒。更令人担忧的是,恶意代码逐渐拥有抗监测能力,如通过变形技术来逃避安全防御机制。
14.1 .2 恶意代码攻击模型
恶意代码的行为不尽相同,破坏程度也各不相同,但它们的作用机制基本相同。其作用过程可大概分为以下 6 个步骤:
第一步,侵入系统。
第二步,维持或提升已有的权限。
第三步,隐蔽。
第四步,潜伏。
第五步,破坏。
第六步,重复前面 5 步对新的目标实施攻击过程。
14.1.3 恶意代码生存技术
1. 反跟踪技术 2. 加密技术 3. 模糊变换技术 4.自动生产技术 5. 变形技术 6. 三线程技术 7. 进程注入技术 8. 通信隐藏技术 9. 内核级隐藏技术
14.1.4 恶意代码攻击技术
1. 进程注入技术
系统服务和网络服务在操作系统中,当系统启动时被自动加载。进程注入技术就是将这些与服务相关的嵌入了恶意代码程序的可执行代码作为载体,实现自身隐藏和启动的目的。这类恶意代码只需要安装一次,就能被服务加载到系统中运行,并且可以一直处千活跃状态。
2. 超级管理技术
部分恶意代码能够攻击反恶意代码软件。恶意代码采用超级管理技术对反恶意代码软件系统进行拒绝服务攻击,阻碍反恶意代码软件的正常运行。
3. 端口反向连接技术
防火墙对于外网进入内部的数据流有严格的访问控制策略,但对于从内到外的数据并没有严格控制。指令恶意代码使用端口反向连接技术使攻击的服务端(被控制端)主动连接客户端(控制端)端口
4. 缓冲区溢出攻击技术
恶意代码利用系统和网络服务的安全漏洞植入并且执行攻击代码,攻击代码以一定的权限运行有缓冲区溢出漏洞的程序来获得被攻击主机的控制权。缓冲区溢出攻击成为恶意代码从被动式传播转为主动式传播的主要途径之一。
14.1.5 恶意代码分析技术
恶意代码的分析方法由静态分析方法和动态分析方法两部分构成。其中,
a.静态分析方法有反恶意代码软件的检查、字符串分析和静态反编译分析等;
b.动态分析方法包括文件监测、进程监测、注册表监测和动态反汇编分析等。
14.1.6 恶意代码防范策略
恶意代码防御成为用户、网管的日常安全工作。要做好恶意代码的防范,一方面组织管理上必须加强恶意代码的安全防范意识。因为,恶意代码具有隐蔽性、潜伏性和传染性,用户在使用计算机过程中可能不知不觉地将恶意代码引入所使用的计算机中,所以防范恶意代码应从安全意识上着手,明确安全责任、义务和注意事项。另一方面,通过技术手段来实现恶意代码防御。
--------------
14.2 计算机病毒分析与防护
14.2.1 计算机病毒概念与特性
所有计算机病毒都具有以下四个基本特点:
(1) 隐蔽性。
(2) 传染性。
(3) 潜伏性。
(4) 破坏性。
14.2.2 计算机病毒组成与运行机制
计算机病毒由三部分组成:复制传染部件(replicator) 、隐藏部件(concealer) 、破坏部件(bomb) 。a.复制传染部件的功能是控制病毒向其他文件的传染;
b.隐藏部件的功能是防止病毒被检测到;
c.破坏部件则用在当病毒符合激活条件后,执行破坏操作。
计算机病毒的生命周期主要有两个阶段:
•第一阶段,计算机病毒的复制传播阶段。这一阶段有可能持续一个星期到几年。计算机病毒在这个阶段尽可能地隐蔽其行为,不干扰正常系统的功能。计算机病毒主动搜寻新的主机进行感染,如将病毒附在其他的软件程序中,或者渗透操作系统。同时,可执行程序中的计算机病毒获取程序控制权。在这一阶段,发现计算机病毒特别困难,这主要是因为计算机病毒只感染少量的文件,难以引起用户警觉。
•第二阶段,计算机病毒的激活阶段。计算机病毒在该阶段开始逐渐或突然破坏系统。计算机病毒的主要工作是根据数学公式判断激活条件是否满足,用作计算机病毒的激活条件常有日期、时间、感染文件数或其他。
14.2.3 计算机病毒常见类型与技术
1. 引导型病毒
引导型病毒通过感染计算机系统的引导区而控制系统,病毒将真实的引导区内容修改或替换,当病毒程序执行后,才启动操作系统。
2. 宏病毒(Macro Viruses)
所谓宏病毒就是指利用宏语言来实现的计算机病毒。宏病毒的出现改变了病毒的载体模式,以前病毒的载体主要是可执行文件,而现在文档或数据也可作为宏病毒的载体。
3. 多态病毒 (Polymorphic Viruses)
多态病毒每次感染新的对象后,通过更换加密算法,改变其存在形式。
这就意味着反病毒软件常常难以检测到它,一般需要采用启发式分析方法来发现。多态病毒有三个主要组成部分:杂乱的病毒体、解密例程(decryption routine)、变化引擎(mutation engine) 。因此,多态病毒没有固定的特征、没有固定的加密例程,从而就能逃避基于静态特征的病毒扫描器的检测。
4. 隐蔽病毒(Stealth Viruses)
隐蔽病毒试图将自身的存在形式进行隐藏,使得操作系统和反病毒软件不能发现。病毒加密。
14.2.4 计算机病拆防范策略与技术
计算机病毒种类繁多,千奇百怪,新的病毒还在不断产生,因此计算机病毒防范是一个动态的过程,应通过多种安全防护策略及技术才能有效地控制计算机病毒的破坏和传播。
计算机病毒防范策略和技术主要如下。
1. 查找计算机病毒源
2. 阻断计算机病毒传播途径
3. 主动查杀计算机病毒
4. 计算机病毒应急响应和灾备
14.2.5 计算机病毒防护方案
1.基于单机计算机病毒防护
2. 基于网络计算机病毒防护
3. 基于网络分级病毒防护
4. 基于邮件网关病毒防护
5.基于网关防护
--------------
14.3 特洛伊木马分析与防护
14.3.1 特洛伊木马概念与特性
特洛伊木马(Trojan Horse,简称木马),其名称取自古希腊神话特洛伊战争的特洛伊木马,它是具有伪装能力、隐蔽执行非法功能的恶意程序,而受害用户表面上看到的是合法功能的执行。
14.3.2 特洛伊木马分类
根据特洛伊木马的管理方式,可以将特洛伊木马分为本地特洛伊木马和网络特洛伊木马。本地特洛伊木马是最早期的一类木马,其特点是木马只运行在本地的单台主机,木马没有远程通信功能,木马的攻击环境是多用户的 UNIX 系统,典型例子就是盗用口令的木马。网络特洛伊木马是指具有网络通信连接及服务功能的一类木马,简称网络木马。
14.3.3 特洛伊木马运行机制
整个木马攻击过程主要分为五个部分:
1.寻找攻击目标。攻击者通过互联网或其他方式搜索潜在的攻击目标。
2.收集目标系统的信息。获取目标系统的信息主要包括操作系统类型、网络结构、应用软件、用户习惯等。
3.将木马植入目标系统。攻击者根据所搜集到的信息,分析目标系统的脆弱性,制定植入木马策略。木马植入的途径有很多,如通过网页点击、执行电子邮件附件等。
4.木马隐藏。为实现攻击意图,木马设法隐蔽其行为,包括目标系统本地活动隐藏和远程通信隐藏。
5.攻击意图实现,即激活木马,实施攻击。木马植入系统后,待触发条件满足后,就进行攻击破坏活动,如窃取口令、远程访问、删除文件等。
14.3.4 特洛伊木马植人技术
特洛伊木马植入是木马攻击目标系统最关键的一步,是后续攻击活动的基础。当前特洛伊木马的植入方法可以分为两大类,即被动植入和主动植入。
被动植入是指通过人工干预方式才能将木马程序安装到目标系统中,植入过程必须依赖千受害用户的手工操作;主动植入是指主动攻击方法,将木马程序通过程序自动安装到目标系统中,植入过程无须受害用户的操作。
被动植入主要通过社会工程方法将木马程序伪装成合法的程序,常用的方法如下:
•文件捆绑法。将木马捆绑到 一些常用的应用软件包中,当用户安装该软件包时,木马就在用户毫无察觉的情况下,被植入系统中。
•邮件附件。木马设计者将木马程序伪装成邮件附件,然后发送给目标用户。
•Web 网页。木马程序隐藏在 html 文件中。
14.3.5 特洛伊木马隐藏技术
1. 本地活动行为隐藏技术
• 文件隐藏
• 进程隐藏
• 通信连接隐藏
2. 远程通信过程隐藏技术
• 通信内容加密技术
• 通信端口复用技术
• 网络隐蔽通道
14.3.6 特洛伊木马存活技术
如,“广外女生”是一个国产的特洛伊木马,可以让“金山毒霸”和“天网防火墙”失效。一些高级木马常具有端口反向连接功能,例如 “Boinet"“ 网络神偷”“灰鸽子”等木马。端口反向连接技术是指由木马代理在目标系统主动连接外部网的远程木马控制端以逃避防火墙的限制。
14.3.7 特洛伊木马防范技术
网络木马具有相当高的复杂性和行为不确定性,因此防范木马需要将监测与预警、通信阻断、系统加固及修复、应急管理等多种技术综合集成实现。
1. 基于查看开放端口检测特洛伊木马技术
基本原理是根据特洛伊木马在受害计算机系统上留下的网络通信端口号痕迹进行判断,如果某个木马的端口在某台机器上开放,则推断该机器受到木马的侵害。例如冰河使用的监听端口是 7626, Back Orifice 2000 则是使用 54320 等。
查看开放端口的技术有:1.系统自带的 netstat 命令;2.用端口扫描软件远程检测机器。
2. 基于重要系统文件检测特洛伊木马技术
基本原理是根据特洛伊木马在受害计算机系统上对重要系统文件进行修改留下的痕迹进行判断,通过比对正常的系统文件变化来确认木马的存在。这些重要文件一般与系统的自启动相关,木马通过修改这些文件使得木马能够自启动。例如,在 Windows 系统中, Autostart Folder 、Win.ini 、System.ini 、Wininit.ini 、Winstart.bat 、Autoexec.bat 、Config.sys 、Explorer Startup 等常被木马修改。
3. 基于系统注册表检测特洛伊木马技术
Windows 类型的木马常通过修改注册表的键值来控制木马的自启动,该方法的基本原理是检查计算机的注册表键值异常情况以及对比已有木马的修改注册表的规律,综合确认系统是否受到木马侵害。
4. 检测具有隐藏能力的特洛伊木马技术
Rootkit 是典型的具有隐藏能力的特洛伊木马。
5. 基于网络检测特洛伊木马技术
防止特洛伊木马植入主要有下面几种方法:
•不轻易安装未经过安全认可的软件,特别是来自公共网的软件。
•提供完整性保护机制,即在需要保护的计算机上安装完整性机制,对重要的文件进行完整性检查。
•利用漏洞扫描软件,检查系统存在的漏洞,然后针对相应的漏洞,安装补丁软件包。
6.基于网络阻断特洛伊木马技术
利用防火墙、路由器、安全网关等网络设备,对特洛伊木马的通信进行阻断,从而使得特洛伊木马的功能失效或限制其传播。
7. 清除特洛伊木马技术
清除特洛伊木马的技术方法有两种:手工清除方法和软件清除方法。其工作原理是删除特洛伊木马在受害机器上留下的文件,禁止特洛伊木马的网络通信,恢复木马修改过的系统文件或注册表。
--------------
14.4 网络蠕虫分析与防护
14.4.1 网络蠕虫概念与特性
网络蠕虫是一种具有自我复制和传播能力、可独立自动运行的恶意程序。它综合了黑客技术和计算机病毒技术,通过利用系统中存在漏洞的节点主机,将蠕虫自身从一个节点传播到另外一个节点。在网络环境下,多模式化的传播途径和复杂的应用环境使网络蠕虫的发生频率增高、传播性变强、影响面更广,造成的损失也更大。
14.4.2 网络蠕虫组成与运行机制
网络蠕虫由四个功能模块构成:探测模块、传播模块、蠕虫引擎模块和负载模块。
网络蠕虫的运行机制主要分为三个阶段:
第一阶段,已经感染蠕虫的主机在网络上搜索易感染目标主机,这些易感机器具有蠕虫代码执行条件,例如易感染机器有蠕虫可利用的漏洞。
第二阶段,已经感染蠕虫的主机把蠕虫代码传送到易感染目标主机上。
第三阶段,易感染目标主机执行蠕虫代码,感染目标主机系统。
14.4.3 网络蠕虫常用技术
1. 网络蠕虫扫描技术 (随机扫描、顺序扫描、选择性扫描。)
2. 网络蠕虫漏洞利用技术
a.主机之间的信任关系漏洞
b.目标主机的程序漏洞
c.目标主机的默认用户和口令漏洞
d.目标主机的用户安全意识薄弱漏洞
e.目标主机的客户端程序配置漏洞。
14.4.4 网络蠕虫防范技术
1.网络蠕虫监测与预警技术
安装探测器(如:Snort)从网络环境中收集与蠕虫相关的信息,然后将这些信息汇总分析。
2. 网络蠕虫传播抑制技术
构造一个限制网络蠕虫传播的环境。现在,已有的网络蠕虫传播抑制技术主要基于蜜罐技术。
3. 网络系统漏洞检测与系统加固技术
防治网络蠕虫的关键问题之一是解决漏洞问题,包括漏洞扫描、漏洞修补、漏洞预防等。
4. 网络蠕虫免疫技术
事先设置一个蠕虫感染标记,欺骗真实的网络蠕虫,从而保护易感主机免受蠕虫攻击。
--------------
14.5 僵尸网络分析与防护
14.5.1 僵尸网络概念与特性
僵尸网络(Botnet) 是指攻击者利用入侵手段将僵尸程序(botor zombie)植入目标计算机上,进而操纵受害机执行恶意活动的网络。僵尸网络的构建方式主要有远程漏洞攻击、弱口令扫描入侵、邮件附件、恶意文档、文件
共享等。
14.5.2 僵尸网络运行机制与技术
僵尸网络的运行机制主要由三个基本环节构成:
第一步,僵尸程序的传播。
第二步,对僵尸程序进行远程命令操作和控制,将受害目标机组成一个网络。
第三步,攻击者通过僵尸网络的控制服务器,给僵尸程序发送攻击指令,执行攻击活动。
僵尸网络为保护自身安全,其控制服务器和僵尸程序的通信使用加密机制,并把通信内容嵌入正常的 HTTP 流量中,以保护服务器的隐蔽性和匿名性。控制服务器和僵尸程序也采用认证机制,以防范控制消息伪造和篡改。
14.5.3 僵尸网络防范技术
1. 僵尸网络威胁监测 通常利用蜜罐技术获取僵尸网络威胁信息。
2. 僵尸网络检测 根据僵尸网络的通信内容和行为特征,检测网络中的异常网络流量,以发现僵尸网络。
3. 僵尸网络主动遏制 通过路由和 DNS 黑名单等方式屏蔽恶意的 IP 地址或域名。
4. 僵尸程序查杀 在受害的目标机上,安装专用安全工具,清除僵尸程序。
--------------
14.6 其他恶意代码分析与防护
14.6.1 逻辑炸弹
逻辑炸弹的触发条件具有多种方式,包括计数器触发方式、时间触发方式、文件触发方式、特定用户访问触发方式等。
14.6.2 陷门
陷门是软件系统里的一段代码,允许用户避开系统安全机制而访问系统。
14.6.3 细菌
细菌是指具有自我复制功能的独立程序。虽然细菌不会直接攻击任何软件,但是它通过复制本身来消耗系统资源。
14.6.4 问谍软件
间谍软件通常指那些在用户不知情的情况下被安装在计算机中的各种软件,执行用户非期望的功能。这些软件可以产生弹出广告,重定向用户浏览器到陌生的网站。同时,间谍软件还具有收集信息的能力,可记录用户的击键情况、浏览习惯,甚至会窃取用户的个人信息(如用户账号和口令、信用卡号),然后经因特网传送给攻击者。一般来说,间谍软件不具备自我复制功能。目前,间谍软件日益增多,严重威胁用户和组织机构的信息安全,特别是用户的个人隐私。
--------------
14.7 恶意代码防护主要产品与技术指标
14.7.1 恶意代码防护主要产品
1. 终端防护产品
2. 安全网关产品
3. 恶意代码监测产品
4. 恶意代码防护产品:补丁管理系统
5. 恶意代码应急晌应
14.7.2 恶意代码防护主要技术指标
恶意代码防护产品的主要技术指标有恶意代码检测能力、恶意代码检测准确性、恶意代码阻断能力。
(1) 恶意代码检测能力。
(2) 恶蔥代码检测准确性。
(3) 恶意代码阻断能力。
--------------
14.8 恶意代码防护技术应用
14.8.1 终端防护
终端防护通常是在终端上安装一个恶意代码防护代理程序,该代理程序按照终端管理中心下发的安全策略进行安全控制。
14.8.2 APT 防护
高级持续威胁(简称 APT) 通常利用电子邮件作为攻击目标系统。攻击者将恶意代码嵌入电子邮件中,然后把它发送到目标人群,诱使收件人打开恶意电子文档或单击某个指向恶意站点的链接。一旦收件人就范,恶意代码将会安装在其计算机中,从而远程控制收件人的计算机,进而逐步渗透到收件人所在网络,实现其攻击意图。