网安--第七章 恶意代码分析与防治

第7章 恶意代码分析与防治
内容提要
◎ 恶意代码的发展史和恶意代码长期存在的原因
◎ 恶意代码实现机理、定义以及攻击方法
◎ 恶意代码生存技术、隐藏技术,介绍网络蠕虫的定义以及结构
◎ 恶意代码防范方法:基于主机的检测方法和基于网络的检测方法
7.1  恶意代码概述
代码是指计算机程序代码,可以被执行完成特定功能。任何食物事物都有正反两面,人类发明的所有工具既可造福也可作孽,这完全取决于使用工具的人。计算机程序也不例外,软件工程师们编写了大量的有用的软件(操作系统,应用系统和数据库系统等)的同时,黑客们在编写编写扰乱社会和他人的计算机程序,这些代码统称为恶意代码(Malicious Codes)。
7.1.1 研究恶意代码的必要性
在Internet安全事件中,恶意代码造成的经济损失占有最大的比例。恶意代码主要包括计算机病毒(Virus)、蠕虫(Worm)、木马程序(Trojan Horse)、后门程序(Backdoor)、逻辑炸弹(Logic Bomb)等等。与此同时,恶意代码成为信息战、网络战的重要手段。日益严重的恶意代码问题,不仅使企业及用户蒙受了巨大经济损失,而且使国家的安全面临着严重威胁。
恶意代码问题,不仅使企业和用户蒙受了巨大的经济损失,而且使国家的安全面临着严重威胁。目前国际上一些发达国家(如美国,德国,日本等国)均已在该领域投入大量资金和人力进行了长期的研究,并取得了一定的技术成果。据报道,1991年的海湾战争,美国在伊拉克从第三方国家购买的打印机里植入了可远程控制的恶意代码,在战争打响前,使伊拉克整个计算机网络管理的雷达预警系统全部瘫痪,这是美国第一次公开在实战中使用恶意代码攻击技术取得的重大军事利益。
7.1.1 研究恶意代码的必要性
恶意代码攻击成为信息战、网络战最重要的入侵手段之一。恶意代码问题无论从政治上、经济上,还是军事上,都成为信息安全面临的首要问题。恶意代码的机理研究成为解决恶意代码问题的必需途径,只有掌握当前恶意代码的实现机理,加强对未来恶意代码趋势的研究,才能在恶意代码问题上取得先决之机。一个典型的例子是在电影《独立日》中,美国空军对外星飞船进行核轰炸没有效果,最后给敌人飞船系统注入恶意代码,使敌人飞船的保护层失效,从而拯救了地球,从中可以看出恶意代码研究的重要性。
7.1.2 恶意代码的发展史
恶意代码经过20多年的发展,破坏性、种类和感染性都得到增强。随着计算机的网络化程度逐步提高,网络传播的恶意代码对人们日常生活影响越来越大。
1988 年11 月泛滥的Morris蠕虫,顷刻之间使得6000 多台计算机(占当时Internet 上计算机总数的10%多)瘫痪,造成严重的后果,并因此引起世界范围内关注。
1998 年CIH病毒造成数十万台计算机受到破坏。1999 年Happy 99、Melissa 病毒大爆发,Melissa 病毒通过E-mail 附件快速传播而使E-mail 服务器和网络负载过重,它还将敏感的文档在用户不知情的情况下按地址簿中的地址发出。
2000 年5 月爆发的“爱虫”病毒及其以后出现的50 多个变种病毒,是近年来让计算机信息界付出极大代价的病毒,仅一年时间共感染了4000 多万台计算机,造成大约87 亿美元的经济损失。
7.1.2 恶意代码的发展史
2001 年,国信安办与公安部共同主办了我国首次计算机病毒疫情网上调查工作。结果感染过计算机病毒的用户高达73%,其中,感染三次以上的用户又占59%多,网络安全存在大量隐患。
2001 年8月,“红色代码”蠕虫利用微软Web 服务器IIS 4.0 或5.0 中Index服务的安全漏洞,攻破目标机器,并通过自动扫描方式传播蠕虫,在互联网上大规模泛滥。
2003 年,SLammer 蠕虫在10 分钟内导致互联网90%脆弱主机受到感染。同年8月,“冲击波”蠕虫爆发,8天内导致全球电脑用户损失高达20亿美元之多。
2004年到2006年,振荡波蠕虫、爱情后门、波特后门等恶意代码利用电子邮件和系统漏洞对网络主机进行疯狂传播,给国家和社会造成了巨大的经济损失。
恶意代码的发展
目前,恶意代码问题成为信息安全需要解决的,迫在眉睫的、刻不容缓的安全问题。图7-1显示了过去20 多年主要恶意代码事件。
恶意代码从80 年代发展至今体现出来的3个主要特征
①恶意代码日趋复杂和完善:从非常简单的,感染游戏的Apple II 病毒发展到复杂的操作系统内核病毒和今天主动式传播和破坏性极强的蠕虫。恶意代码在快速传播机制和生存性技术研究取得了很大的成功。
②恶意代码编制方法及发布速度更快:恶意代码刚出现时发展较慢,但是随着网络飞速发展,Internet 成为恶意代码发布并快速蔓延的平台。特别是过去5 年,不断涌现的恶意代码,证实了这一点。
③从病毒到电子邮件蠕虫,再到利用系统漏洞主动攻击的恶意代码:恶意代码的早期,大多数攻击行为是由病毒和受感染的可执行文件引起的。然而,在过去5 年,利用系统和网络的脆弱性进行传播和感染开创了恶意代码的新纪元。
7.1.3 恶意代码长期存在的原因
计算机技术飞速发展的同时并未使系统的安全性得到增强。技术进步带来的安全增强能力最多只能弥补由应用环境的复杂性带来的安全威胁的增长程度。不但如此,计算机新技术的出现还很有可能使计算机系统的安全变得比以往更加脆弱。
AT&T 实验室的S. Bellovin曾经对美国CERT(Computer Emergency Response Team)提供的安全报告进行过分析,分析结果表明,大约50%的计算机网络安全问题是由软件工程中产生的安全缺陷引起的,其中,很多问题的根源都来自于操作系统的安全脆弱性。互联网的飞速发展为恶意代码的广泛传播提供了有利的环境。互联网具有开放性的特点,缺乏中心控制和全局视图能力,无法保证网络主机都处于统一的保护之中。计算机和网络系统存在设计上的缺陷,这些缺陷会导致安全隐患。
7.2 码恶意代码实现机理
早期恶意代码的主要形式是计算机病毒。80年代,Cohen 设计出一种在运行过程中可以复制自身的破坏性程序,Adleman将它命名为计算机病毒,它是早期恶意代码的主要内容。随后,Adleman把病毒定义为一个具有相同性质的程序集合,只要程序具有破坏、传染或模仿的特点,就可认为是计算机病毒。这种定义有将病毒内涵扩大化的倾向,将任何具有破坏作用的程序都认为是病毒,掩盖了病毒潜伏、传染等其它重要特征。
7.2.1 恶意代码的定义
90 年代末,恶意代码的定义随着计算机网络技术的发展逐渐丰富,Grimes 将恶意代码定义为,经过存储介质和网络进行传播,从一台计算机系统到另外一台计算机系统,未经授权认证破坏计算机系统完整性的程序或代码。它包括计算机病毒(Computer Virus)、蠕虫(Worms)、特洛伊木马(Trojan Horse)、逻辑炸弹(Logic Bombs)、病菌(Bacteria)、用户级RootKit、核心级RootKit、脚本恶意代码(Malicious Scripts)和恶意ActiveX 控件等。由此定义,恶意代码两个显著的特点是:非授权性和破坏性。
 恶意代码的相关定义
7.2.2 恶意代码攻击机制
恶意代码的行为表现各异,破坏程度千差万别,但基本作用机制大体相同,其整个作用过程分为6个部分:
①侵入系统。侵入系统是恶意代码实现其恶意目的的必要条件。恶意代码入侵的途径很多,如:从互联网下载的程序本身就可能含有恶意代码;接收已经感染恶意代码的电子邮件;从光盘或软盘往系统上安装软件;黑客或者攻击者故意将恶意代码植入系统等。
②维持或提升现有特权。恶意代码的传播与破坏必须盗用用户或者进程的合法权限才能完成。
③隐蔽策略。为了不让系统发现恶意代码已经侵入系统,恶意代码可能会改名、删除源文件或者修改系统的安全策略来隐藏自己。
④潜伏。恶意代码侵入系统后,等待一定的条件,并具有足够的权限时,就发作并进行破坏活动。
⑤破坏。恶意代码的本质具有破坏性,其目的是造成信息丢失、泄密,破坏系统完整性等。
⑥重复①至⑤对新的目标实施攻击过程。
恶意代码的攻击模型
7.3 恶意代码实现关键技术
一段好的恶意代码,首先必须具有良好隐蔽性,生存性,不能轻松被软件或者用户察觉。然后,必须具有良好的攻击性。
7.3.1 恶意代码生存技术
生存技术主要包括4方面:
反跟踪技术
加密技术
模糊变换技术
自动生产技术。
反跟踪技术可以减少被发现的可能性,加密技术是恶意代码自身保护的重要机制。
1. 反跟踪技术
(1)禁止跟踪中断。针对调试分析工具运行系统的单步中断和断点中断服务程序,恶意代码通过修改中断服务程序的入口地址实现其反跟踪目的。“1575”计算机病毒采用该方法将堆栈指针指向处于中断向量表中的INT 0至 INT 3区域,阻止调试工具对其代码进行跟踪。
(2)封锁键盘输入和屏幕显示,破坏各种跟踪调试工具运行的必需环境;
(3)检测跟踪法。检测跟踪调试时和正常执行时的运行环境、中断入口和时间的差异,根据这些差异采取一定的措施,实现其反跟踪目的。例如,通过操作系统的API 函数试图打开调试器的驱动程序句柄,检测调试器是否激活确定代码是否继续运行。
(4)其它反跟踪技术。如指令流队列法和逆指令流法等。
反静态分析技术主要包括两方面内容
(1)对程序代码分块加密执行。为了防止程序代码通过反汇编进行静态分析,程序代码以分块的密文形式装入内存,在执行时由解密程序进行译码,某一段代码执行完毕后立即清除,保证任何时刻分析者不可能从内存中得到完整的执行代码;
(2)伪指令法(Junk Code)。伪指令法系指在指令流中插入“废指令”,使静态反汇编无法得到全部正常的指令,不能有效地进行静态分析。例如,“Apparition”是一种基于编译器变形的Win32 平台的病毒,编译器每次编译出新的病毒体可执行代码时都要插入大量的伪指令,既达到了变形的效果,也实现了反跟踪的目的。此外,伪指令技术还广泛应用于宏病毒与脚本恶意代码之中。
2. 加密技术
加密技术是恶意代码自我保护的一种手段,加密技术和反跟踪技术的配合使用,使得分析者无法正常调试和阅读恶意代码,不知道恶意代码的工作原理,也无法抽取特征串。从加密的内容上划分,加密手段分为信息加密、数据加密和程序代码加密三种。
大多数恶意代码对程序体自身加密,另有少数恶意代码对被感染的文件加密。例如,“Cascade”是第一例采用加密技术的DOS环境下的恶意代码,它有稳定的解密器,可以解密内存中加密的程序体。“Mad ”和“Zombie”是“Cascade”加密技术的延伸,使恶意代码加密技术走向32位的操作系统平台。此外,“中国炸弹”(Chinese bomb)和“幽灵病毒”也是这一类恶意代码。
3. 模糊变换技术
(1)指令替换技术。
(2)指令压缩技术。
(3)指令扩展技术。
(4)伪指令技术。
(5)重编译技术。
4. 自动生产技术
恶意代码自动生产技术是针对人工分析技术的。“计算机病毒生成器”,使对计算机病毒一无所知的用户,也能组合出算法不同、功能各异的计算机病毒。“多态性发生器”可将普通病毒编译成复杂多变的多态性病毒。
多态变换引擎可以使程序代码本身发生变化,并保持原有功能。保加利亚的“Dark Avenger”是较为著名的一个例子,这个变换引擎每产生一个恶意代码,其程序体都会发生变化,反恶意代码软件如果采用基于特征的扫描技术,根本无法检测和清除这种恶意代码。
7.3.2 恶意代码攻击技术
常见的攻击技术包括:进程注入技术、三线程技术、端口复用技术、超级管理技术、端口反向连接技术和缓冲区溢出攻击技术。
1. 进程注入技术
当前操作系统中都有系统服务和网络服务,它们都在系统启动时自动加载。进程注入技术就是将这些与服务相关的可执行代码作为载体,恶意代码程序将自身嵌入到这些可执行代码之中,实现自身隐藏和启动的目的。
这种形式的恶意代码只须安装一次,以后就会被自动加载到可执行文件的进程中,并且会被多个服务加载。只有系统关闭时,服务才会结束,所以恶意代码程序在系统运行时始终保持激活状态。比如恶意代码“WinEggDropShell”可以注入Windows 下的大部分服务程序。
2. 三线程技术
在Windows 操作系统中引入了线程的概念,一个进程可以同时拥有多个并发线程。三线程技术就是指一个恶意代码进程同时开启了三个线程,其中一个为主线程,负责远程控制的工作。另外两个辅助线程是监视线程和守护线程,监视线程负责检查恶意代码程序是否被删除或被停止自启动。
守护线程注入其它可执行文件内,与恶意代码进程同步,一旦进程被停止,它就会重新启动该进程,并向主线程提供必要的数据,这样就能保证恶意代码运行的可持续性。例如,“中国黑客”等就是采用这种技术的恶意代码。
3. 端口复用技术
端口复用技术,系指重复利用系统网络打开的端口(如25、80、135和139等常用端口)传送数据,这样既可以欺骗防火墙,又可以少开新端口。端口复用是在保证端口默认服务正常工作的条件下复用,具有很强的欺骗性。例如,特洛伊木马“Executor”利用80 端口传递控制信息和数据,实现其远程控制的目的。
4. 超级管理技术
一些恶意代码还具有攻击反恶意代码软件的能力。为了对抗反恶意代码软件,恶意代码采用超级管理技术对反恶意代码软件系统进行拒绝服务攻击,使反恶意代码软件无法正常运行。例如,“广外女生”是一个国产的特洛伊木马,它采用超级管理技术对“金山毒霸”和“天网防火墙”进行拒绝服务攻击。
5. 端口反向连接技术
防火墙对于外部网络进入内部网络的数据流有严格的访问控制策略,但对于从内网到外网的数据却疏于防范。端口反向连接技术,系指令恶意代码攻击的服务端(被控制端)主动连接客户端(控制端)。
国外的“Boinet”是最先实现这项技术的木马程序,它可以通过ICO、IRC、HTTP 和反向主动连接这4 种方式联系客户端。国内最早实现端口反向连接技术的恶意代码是“网络神偷”。“灰鸽子”则是这项技术的集大成者,它内置FTP、域名、服务端主动连接这3 种服务端在线通知功能。
6. 缓冲区溢出攻击技术
缓冲区溢出漏洞攻击占远程网络攻击的80%,这种攻击可以使一个匿名的Internet 用户有机会获得一台主机的部分或全部的控制权,代表了一类严重的安全威胁。恶意代码利用系统和网络服务的安全漏洞植入并且执行攻击代码,攻击代码以一定的权限运行有缓冲区溢出漏洞的程序,从而获得被攻击主机的控制权。
缓冲区溢出攻击成为恶意代码从被动式传播转为主动式传播的主要途径。例如,“红色代码”利用IIS Server 上Indexing Service 的缓冲区溢出漏洞完成攻击、传播和破坏等恶意目的。“尼姆达蠕虫”利用IIS 4.0/5.0 DirectoryTraversal 的弱点,以及红色代码II 所留下的后门,完成其传播过程。
7.3.3 恶意代码的隐蔽技术
隐藏通常包括本地隐藏和通信隐藏,其中本地隐藏主要有文件隐藏、进程隐藏、网络连接隐藏、内核模块隐藏、编译器隐藏等。网络隐藏主要包括通信内容隐藏和传输通道隐藏。
1. 本地隐藏
本地隐蔽是指为了防止本地系统管理人员觉察而采取的隐蔽手段。本地系统管理人员通常使用“查看进程列表”,“查看目录”,“查看内核模块”,“查看系统网络连接状态”等管理命令来检测系统是否被植入了恶意代码。
隐蔽手段
隐蔽手段主要有三类:一类方法是将恶意代码隐蔽(附着、捆绑或替换)在合法程序中,可以避过简单管理命令的检查;另一类方法是如果恶意代码能够修改或替换相应的管理命令,也就是把相应管理命令恶意代码化,使相应的输出信息经过处理以后再显示给用户,就可以很容易地达到蒙骗管理人员,隐蔽恶意代码自身的目的;还有一类方法是分析管理命令的检查执行机制,利用管理命令本身的弱点巧妙地避过管理命令,可以达到既不修改管理命令,又达到隐蔽的目的。
本地隐藏包括5个方面
(1)文件隐蔽。
(2)进程隐蔽。
(3)网络连接隐蔽。
(4)编译器隐蔽。
(5)RootKit 隐蔽。
2. 网络隐蔽
现在计算机用户的安全意识较以前有了很大提高。在网络中,普遍采用了防火墙、入侵检测和漏洞扫描等安全措施。那种使用传统通信模式的恶意代码客户端与服务端之间的会话已不能逃避上述安全措施的检测,恶意代码需要使用更加隐蔽的通信方式。
使用加密算法对所传输的内容进行加密能够隐蔽通信内容。隐蔽通信内容虽然可以保护通信内容,但无法隐蔽通信状态,因此传输信道的隐蔽也具有重要的意义。对传输信道的隐蔽主要采用隐蔽通道技术。美国国防部可信操作系统评测标准对隐蔽通道进行了如下定义:
隐蔽通道是允许进程违反系统安全策略传输信息的通道。隐蔽通道分为两种类型:存储隐蔽通道和时间隐蔽通道。存储隐蔽通道是一个进程能够直接或间接访问某存储空间,而该存储空间又能够被另一个进程所访问,这两个进程之间所形成的通道称之为存储隐蔽通道。时间隐蔽通道是一个进程对系统性能产生的影响可以被另外一个进程观察到并且可以利用一个时间基准进行测量,这样形成的信息传递通道称为时间隐蔽通道。
7.4 网络蠕虫
随着网络系统应用及复杂性的增加,网络蠕虫成为网络系统安全的重要威胁。在网络环境下,多样化的传播途径和复杂的应用环境使网络蠕虫的发生频率增高、潜伏性变强、覆盖面更广,网络蠕虫成为恶意代码研究中重中之重。
7.4.1 网络蠕虫的定义
网络蠕虫是一种智能化、自动化的计算机程序,综合了网络攻击、密码学和计算机病毒等技术,是一种无需计算机使用者干预即可运行的攻击程序或代码,它会扫描和攻击网络上存在系统漏洞的节点主机,通过局域网或者国际互联网从一个节点传播到另外一个节点。
蠕虫具有主动攻击、行踪隐蔽、利用漏洞、造成网络拥塞、降低系统性能、产生安全隐患、反复性和破坏性等特征,网络蠕虫是无须计算机使用者干预即可运行的独立程序,它通过不停地获得网络中存在漏洞的计算机上的部分或全部控制权来进行传播。
7.4.2 蠕虫的结构
网络蠕虫的功能模块可以分为主体功能模块和辅助功能模块。实现了主体功能模块的蠕虫能够完成复制传播流程,而包含辅助功能模块的蠕虫程序则具有更强的生存能力和破坏能力
1. 主体功能模块
主体功能模块由四个模块构成:①信息搜集模块。该模块决定采用何种搜索算法对本地或者目标网络进行信息搜集,内容包括本机系统信息、用户信息、邮件列表、对本机的信任或授权的主机、本机所处网络的拓扑结构,边界路由信息等等,这些信息可以单独使用或被其他个体共享;②扫描探测模块。完成对特定主机的脆弱性检测,决定采用何种的攻击渗透方式;③攻击渗透模块。该模块利用②获得的安全漏洞,建立传播途径,该模块在攻击方法上是开放的、可扩充的;④自我推进模块。该模块可以采用各种形式生成各种形态的蠕虫副本,在不同主机间完成蠕虫副本传递。例如“Nimda”会生成多种文件格式和名称的蠕虫副本;“W32.Nachi.Worm”利用系统程序(例如TFTP)来完成推进模块的功能等等。
2. 辅助功能模块
辅助功能模块是对除主体功能模块外的其他模块的归纳或预测,主要由五个功能模块构成:①实体隐藏模块。包括对蠕虫各个实体组成部分的隐藏、变形、加密以及进程的隐藏,主要提高蠕虫的生存能力;②宿主破坏模块。该模块用于摧毁或破坏被感染主机,破坏网络正常运行,在被感染主机上留下后门等;③信息通信模块。该模块能使蠕虫间、蠕虫同黑客之间能进行交流,这是未来蠕虫发展的重点;利用通信模块,蠕虫间可以共享某些信息,使蠕虫的编写者更好地控制蠕虫行为;④远程控制模块。控制模块的功能是调整蠕虫行为,控制被感染主机,执行蠕虫编写者下达的指令;⑤自动升级模块。该模块可以使蠕虫编写者随时更新其它模块的功能,从而实现不同的攻击目的。
7.5 恶意代码防范方法
目前,恶意代码防范方法主要分为两方面:基于主机的恶意代码防范方法和基于网络的恶意代码防范方法。
7.5.1 基于主机的恶意代码防范方法
主要包括:基于特征的扫描技术、校验和、沙箱技术和安全操作系统对恶意代码的防范,等等。
1. 基于特征的扫描技术
基于主机的恶意代码防范方法是目前检测恶意代码最常用的技术,主要源于模式匹配的思想。扫描程序工作之前,必须先建立恶意代码的特征文件,根据特征文件中的特征串,在扫描文件中进行匹配查找。用户通过更新特征文件更新扫描软件,查找最新的恶意代码版本。这种技术广泛地应用于目前的反病毒引擎中
恶意代码防范工作流程
基于特征的扫描技术主要存在两个方面的问题
①它是一种特征匹配算法,对于加密、变形和未知的恶意代码不能很好地处理;
②需要用户不断升级更新检测引擎和特征数据库,不能预警恶意代码入侵,只能做事后处理。
2. 校验和
校验和是一种保护信息资源完整性的控制技术,例如Hash 值和循环冗余码等。只要文件内部有一个比特发生了变化,校验和值就会改变。未被恶意代码感染的系统首先会生成检测数据,然后周期性地使用校验和法检测文件的改变情况。运用校验和法检查恶意代码有3 种方法:
(1)在恶意代码检测软件中设置校验和法。对检测的对象文件计算其正常状态的校验和并将其写入被查文件中或检测工具中,而后进行比较。
(2)在应用程序中嵌入校验和法。将文件正常状态的校验和写入文件本身中,每当应用程序启动时,比较现行校验和与原始校验和,实现应用程序的自我检测功能。
(3)将校验和程序常驻内存。每当应用程序开始运行时,自动比较检查应用程序内部或别的文件中预留保存的校验和。
校验和两个缺点
校验和可以检测未知恶意代码对文件的修改,但也有两个缺点:首先,校验和法实际上不能检测文件是否被恶意代码感染,它只是查找变化。即使发现恶意代码造成了文件的改变,校验和法也无法将恶意代码消除,也不能判断究竟被那种恶意代码感染。其次,恶意代码可以采用多种手段欺骗校验和法,使之认为文件没有改变。
3. 沙箱技术
沙箱技术指根据系统中每一个可执行程序的访问资源,以及系统赋予的权限建立应用程序的“沙箱”,限制恶意代码的运行。每个应用程序都运行在自己的且受保护的“沙箱”之中,不能影响其它程序的运行。同样,这些程序的运行也不能影响操作系统的正常运行,操作系统与驱动程序也存活在自己的“沙箱”之中。美国加州大学Berkeley 实验室开发了基于Solaris 操作系统的沙箱系统,应用程序经过系统底层调用解释执行,系统自动判断应用程序调用的底层函数是否符合系统的安全要求,并决定是否执行。
4. 安全操作系统对恶意代码的防范
恶意代码成功入侵的重要一环是,获得系统的控制权,使操作系统为它分配系统资源。无论哪种恶意代码,无论要达到何种恶意目的,都必须具有相应的权限。没有足够的权限,恶意代码不可能实现其预定的恶意目标,或者仅能够实现其部分恶意目标。
7.5.2 基于网络的恶意代码防范方法
由于恶意代码具有相当的复杂性和行为不确定性,恶意代码的防范需要多种技术综合应用,包括恶意代码监测与预警、恶意代码传播抑制、恶意代码漏洞自动修复、恶意代码阻断等。基于网络的恶意代码防范方法包括:恶意代码检测防御和恶意代码预警。
其中常见的恶意代码检测防御包括:基于GrIDS的恶意代码检测、基于PLD硬件的检测防御、基于HoneyPot的检测防御和基于CCDC的检测防御。
1. 基于GrIDS的恶意代码检测
著名的GrIDS 主要针对大规模网络攻击和自动化入侵设计的,它收集计算机和网络活动的数据以及它们之间的连接,在预先定义的模式库的驱动下,将这些数据构建成网络活动行为来表征网络活动结构上的因果关系。它通过建立和分析节点间的行为图(Activity Graph),通过与预定义的行为模式图进行匹配,检测恶意代码是否存在,是当前检测分布式恶意代码入侵有效的工具。
2. 基于PLD硬件的检测防御
华盛顿大学应用研究室的John W. Lockwood、James Moscola1和MatthewKulig等提出了一种采用可编程逻辑设备(Programmable Logic Devices,PLDs)对抗恶意代码的防范系统。该系统由三个相互内联部件DED(Data Enabling Device)、CMS(Content Matching Server)和RTP(Regional Transaction Processor)组成。
DED负责捕获流经网络出入口的所有数据包,根据CMS提供的特征串或规则表达式对数据包进行扫描匹配并把结果传递给RTP;CMS负责从后台的MYSQL数据库中读取已经存在的恶意代码特征,编译综合成DED设备可以利用特征串或规则表达式;RTP根据匹配结果决定DED采取何种操作。恶意代码大规模入侵时,系统管理员首先把该恶意代码的特征添加到CMS的特征数据库中,DED扫描到相应特征才会请求RTP做出放行还是阻断等响应。
3. 基于HoneyPot的检测防御
早期HoneyPot主要用于防范网络黑客攻击。ReVirt是能够检测网络攻击或网络异常行为的HoneyPot系统。Spitzner首次运用HoneyPot防御恶意代码攻击。HoneyPot之间可以相互共享捕获的数据信息,采用NIDS的规则生成器产生恶意代码的匹配规则,当恶意代码根据一定的扫描策略扫描存在漏洞主机的地址空间时,HoneyPots可以捕获恶意代码扫描攻击的数据,然后采用特征匹配来判断是否有恶意代码攻击。
4. 基于CCDC的检测防御
由于主动式传播恶意代码具有生物病毒特征,美国安全专家提议建立CCDC(The Cyber Centers for Disease Control)来对抗恶意代码攻击。防范恶意代码的CCDC体系实现以下功能:①鉴别恶意代码的爆发期;②恶意代码样本特征分析;③恶意代码传染对抗;④恶意代码新的传染途径预测;⑤前摄性恶意代码对抗工具研究;⑥对抗未来恶意代码的威胁。CCDC 能够实现对大规模恶意代码入侵的预警、防御和阻断。但CCDC也存在一些问题:①CCDC是一个规模庞大的防范体系,要考虑体系运转的代价;②由于CCDC体系的开放性,CCDC自身的安全问题不容忽视;③在CCDC 防范体系中,攻击者能够监测恶意代码攻击的全过程,深入理解CCDC防范恶意代码的工作机制,因此可能导致突破CCDC 防范体系的恶意代码出现。
本章总结
本章介绍了研究恶意代码的必要性,恶意代码的定义以及分类。介绍了恶意代码的实现机理,重点介绍了实现的关键技术:恶意代码的生存技术、恶意代码攻击技术以及恶意代码的隐藏技术。作为研究的重点,介绍了蠕虫的定义以及流行蠕虫的结构,最后指出了恶意代码的防范方法。
本章习题
一、选择题
1. 黑客们在编写编写扰乱社会和他人的计算机程序,这些代码统称为___________。
A. 恶意代码       B. 计算机病毒
C. 蠕虫           D. 后门
2. 2003 年,SLammer 蠕虫在10 分钟内导致___________互联网脆弱主机受到感染。
A. 60%      B. 70%
C. 80%      D. 90%
3. 造成广泛影响的1988年Morris蠕虫事件,就是___________作为其入侵的最初突破点的。
A. 利用操作系统脆弱性  B. 利用系统后门
C. 利用邮件系统的脆弱性  D. 利用缓冲区溢出的脆弱性
4. 下面是恶意代码生存技术是___________。
A. 加密技术     B. 三线程技术
C. 模糊变换技术    D. 本地隐藏技术
5. 下面不属于恶意代码攻击技术是___________。
A. 进程注入技术    B. 超级管理技术
C. 端口反向连接技术   D. 自动生产技术
本章习题
二、填空题
1. 恶意代码主要包括计算机病毒(Virus)、___________、木马程序(Trojan Horse)、后门程序(Backdoor)、___________等等。
2. 恶意代码80 年代发展至今体现出来的3个主要特征:___________、___________和从病毒到电子邮件蠕虫,再到利用系统漏洞主动攻击的恶意代码。
3. 早期恶意代码的主要形式是___________。
4. 隐藏通常包括本地隐藏和通信隐藏,其中本地隐藏主要有文件隐藏、进程隐藏、网络连接隐藏、内核模块隐藏、编译器隐藏等。网络隐藏主要包括___________和___________。
5. 网络蠕虫的功能模块可以分为___________和___________。
本章习题
三、简答题
1. 简述研究恶意代码的必要性。
2. 简述恶意代码长期存在的原因。
3. 恶意代码是如何定义,可以分成哪几类?
4. 说明恶意代码的作用机制的6个方面,并图示恶意代码攻击模型。
5. 简述恶意代码的生存技术是如何实现的。
6. 简述恶意代码如何实现攻击技术。
7. 简述恶意代码如何实现隐藏技术。
8. 简述蠕虫的功能结构。
9. 简述目前恶意代码的防范方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值