(2019春季 课程编号:011184) 曾风亚 219信安号论 信息安全导论 第12章恶意代码检测与防范技术 中国科学技术大学曾凡平 billzeng@ustc.edu.cn
信息安全导论 第12章 恶意代码检测与防范技术 中国科学技术大学 曾凡平 billzeng@ustc.edu.cn (2019春季 课程编号:011184)
第12章恶意代码检测与防范技术 ·12.1恶意代码概述 ·定义、发展趋势、种类 ·攻击流程、攻击技术和生存技术 ·12.2常见的恶意代码 ·计算机病毒 ·木马 ·蠕虫 ·12.3恶意代码检测与分析技术 。 静态分析方法 ·动态分析方法 ·分类方法 信息安全导论12 3
第12章 恶意代码检测与防范技术 • 12.1 恶意代码概述 • 定义、发展趋势、种类 • 攻击流程、攻击技术和生存技术 • 12.2 常见的恶意代码 • 计算机病毒 • 木马 • 蠕虫 • 12.3 恶意代码检测与分析技术 • 静态分析方法 • 动态分析方法 • 分类方法 信息安全导论12 3
12.1恶意代码概述 恶意代码也可以称为Malware,目前已经有许多定义。 例如,Ed Skoudis>将Malware定义为运行在计算机上, 使系统按照攻击者的意愿执行任务的一组指令。微 软计算机病毒防护指南”中将术语“恶意软件”用作 一个集合名词,指代故意在计算机系统上执行恶意 任务的病毒、蠕虫和特洛伊木马。G.McGrawl则将 恶意代码定义为任何故意的增加、改变或者从软件 系统移除,从而破坏或扰乱系统特定功能的代码。 因此,恶意代码的本质是一种实现某些恶意功能的 代码,通常在未明确提示用户或未经用户授权的情 况下嵌入到另一段程序中,并且在特定的环境下会 被执行,从而达到破坏被感染用户的计算机系统 、 网络功能或者电脑数据的保密性、完整性和可用性 的目的。 信息安全导论12 4
12.1恶意代码概述 • 恶意代码也可以称为Malware,目前已经有许多定义。 例如,Ed Skoudis将Malware定义为运行在计算机上, 使系统按照攻击者的意愿执行任务的一组指令。微 软“计算机病毒防护指南”中将术语“恶意软件”用作 一个集合名词,指代故意在计算机系统上执行恶意 任务的病毒、蠕虫和特洛伊木马。G.McGraw则将 恶意代码定义为任何故意的增加、改变或者从软件 系统移除,从而破坏或扰乱系统特定功能的代码。 • 因此,恶意代码的本质是一种实现某些恶意功能的 代码,通常在未明确提示用户或未经用户授权的情 况下嵌入到另一段程序中,并且在特定的环境下会 被执行,从而达到破坏被感染用户的计算机系统、 网络功能或者电脑数据的保密性、完整性和可用性 的目的。 信息安全导论12 4
12.1.1恶意代码的发展趋势 恶意代码可以追溯到1981年,恶意代码的发展趋势如下: (1)更加具有目的性和功利性。编写和传播恶意代码的最初 目的大多数是由于编写者的炫耀心理。然而,现在更多是为 了牟取利益而窃取用户数据和商业秘密,巨大的商业经济利 益驱使着恶意代码编写者更有组织性、纪律性,同时恶意代 码的隐蔽性也越来越高。 (2)传播手段多样化。传统的传播方式比较单一,主要通过 存储介质和网络文件传播。随着浏览器服务器 (browser/server,B/S)和客户端/服务器(client/server,C/S)架 构的普及使用,客户端软件和浏览器的漏洞为恶意代码的传 播提供了新的途径。恶意代码也可以同时利用多个漏洞或者 采取多种模式来进行传播,对服务端和客户端都发动攻击。 ③)越来越多的移动互联网恶意代码。移动网络的快速发展 衍生出新的恶意软件,用来攻击手机、平板等移动设备和平 台。 信息安全导论12 5
12.1.1 恶意代码的发展趋势 恶意代码可以追溯到1981年,恶意代码的发展趋势如下: • (1)更加具有目的性和功利性。编写和传播恶意代码的最初 目的大多数是由于编写者的炫耀心理。然而,现在更多是为 了牟取利益而窃取用户数据和商业秘密,巨大的商业经济利 益驱使着恶意代码编写者更有组织性、纪律性,同时恶意代 码的隐蔽性也越来越高。 • (2)传播手段多样化。传统的传播方式比较单一,主要通过 存储介质和网络文件传播 。 随着浏览器/服务器 (browser/server,B/S)和客户端/服务器(client/server,C/S)架 构的普及使用,客户端软件和浏览器的漏洞为恶意代码的传 播提供了新的途径。恶意代码也可以同时利用多个漏洞或者 采取多种模式来进行传播,对服务端和客户端都发动攻击。 • (3)越来越多的移动互联网恶意代码。移动网络的快速发展 衍生出新的恶意软件,用来攻击手机、平板等移动设备和平 台。 信息安全导论12 5
12.1.2恶意代码种类 随着计算机技术的发展,恶意代码形态不断变化, 不断衍生出新的种类。恶意代码从开始入侵目标 系统到完成指定任务,在这一次完整的入侵过程 中,不同的恶意代码通常具有不同的作用,主要 分为3类:一是获取系统的控制权;二是对控制 权的维持;三是执行指定任务 根据其代码是否独立,可以将其分成独立的和 寄生的恶意代码。独立的恶意代码能够独立传 播和运行,是一个完整的程序,它不需要寄宿在 另一个程序中。非独立(寄生)的恶意代码只是一 段代码,必须寄生在某个程序(或文档)中,作为 该程序的一部分进行传播和运行。 信息安全导论12 6
12.1.2 恶意代码种类 • 随着计算机技术的发展,恶意代码形态不断变化, 不断衍生出新的种类。恶意代码从开始入侵目标 系统到完成指定任务,在这一次完整的入侵过程 中,不同的恶意代码通常具有不同的作用,主要 分为3类:一是获取系统的控制权;二是对控制 权的维持;三是执行指定任务。 • 根据其代码是否独立,可以将其分成独立的和 寄生的恶意代码。独立的恶意代码能够独立传 播和运行,是一个完整的程序,它不需要寄宿在 另一个程序中。非独立(寄生)的恶意代码只是一 段代码,必须寄生在某个程序(或文档)中,作为 该程序的一部分进行传播和运行。 信息安全导论12 6
根据其是否能自我复制(自动传染),可以将其分 成广义病毒及普通的恶意代码。 对于非独立恶意代码,自我复制过程就是将自身 嵌入宿主程序的过程,这个过程也称为感染宿主 程序的过程。对于独立恶意代码,自我复制过程 就是将自身传播给其他系统的过程。不具有自我 复制能力的恶意代码必须借助其他媒介进行传播。 恶意代码种类繁多,错综复杂,界限难以区分, 没有固定的分类标准,很多安全学家根据恶意软 件的特点和行为定义了不同的类别。一般常见的 恶意代码包括以下几类:计算机病毒(computer virus)、蠕虫(worm)、特洛伊木马(trojan horses)、 RootKit,它们既有功能重叠部分,也有各自的 特征。 信息安全导论12 7
• 根据其是否能自我复制(自动传染),可以将其分 成广义病毒及普通的恶意代码。 • 对于非独立恶意代码,自我复制过程就是将自身 嵌入宿主程序的过程,这个过程也称为感染宿主 程序的过程。对于独立恶意代码,自我复制过程 就是将自身传播给其他系统的过程。不具有自我 复制能力的恶意代码必须借助其他媒介进行传播。 • 恶意代码种类繁多,错综复杂,界限难以区分, 没有固定的分类标准,很多安全学家根据恶意软 件的特点和行为定义了不同的类别。一般常见的 恶意代码包括以下几类:计算机病毒(computer virus)、蠕虫(worm)、特洛伊木马(trojan horses)、 RootKit,它们既有功能重叠部分,也有各自的 特征。 信息安全导论12 7
(1)计算机病毒 ·计算机病毒是指寄居在计算机系统中,在一定条件下被 执行从而为了达到某种特定目的的程序。它通常会破坏 系统、程序的功能和数据,影响系统软件和硬件的正常 使用,并且能够感染其他程序和自我复制。 (2)蠕虫 ·蠕虫也算是一种病毒,它具有自我复制能力并通过计算 机网络来传播,其目的是增加系统和网络的负载,消耗 有限资源。 (3)特洛伊木马 特洛伊木马也可以简称为木马,最初来源于古希腊传说。 计算机木马是一种潜伏在计算机中为了达到某种特殊目 的的程序,比如窃取用户私密信息和控制用户系统等 它与病毒最大的不同点在于,病毒能进行自我复制,而 木马一般不具有自我复制功能,不会感染其他程序。 信息安全导论12 8
(1)计算机病毒 • 计算机病毒是指寄居在计算机系统中,在一定条件下被 执行从而为了达到某种特定目的的程序。它通常会破坏 系统、程序的功能和数据,影响系统软件和硬件的正常 使用,并且能够感染其他程序和自我复制。 (2)蠕虫 • 蠕虫也算是一种病毒,它具有自我复制能力并通过计算 机网络来传播,其目的是增加系统和网络的负载,消耗 有限资源。 (3)特洛伊木马 • 特洛伊木马也可以简称为木马,最初来源于古希腊传说。 计算机木马是一种潜伏在计算机中为了达到某种特殊目 的的程序,比如窃取用户私密信息和控制用户系统等。 它与病毒最大的不同点在于,病毒能进行自我复制,而 木马一般不具有自我复制功能,不会感染其他程序。 信息安全导论12 8
(4)RootKit RootKit最初是指一组能帮助使用者获取系统root权限的 工具包,这里的RootKit是一种恶意程序,用于获取目标 主机oot权限之后隐藏攻击者访问痕迹,使得攻击者不 被发现,从而能够长期拥有管理员权限。它具有很好的 隐蔽性和潜伏性,难以检测。 。一 般情况下,RootKit?不负责root权限的获取,只是辅助 恶意代码长期存活于目标系统中。所以RootKit通常与木 马程序、以太网嗅探器、日志清理工具等配合使用。攻 击者首先通过使用其他远程攻击软件或者安全漏洞来获 得系统的最高访问权限,成功侵入系统后,接着需要在 目标主机中安装上RootKit,完成远程命令和操作之后, RootKit会将自身和其他攻击进程等相关文件都隐藏起来, 并清除系统日志中的有关信息,这样能够保证指定的恶 意程序能够长期运行从而持续性窃取机密信息。 信息安全导论12 9
(4) RootKit • RootKit最初是指一组能帮助使用者获取系统root权限的 工具包,这里的RootKit是一种恶意程序,用于获取目标 主机root权限之后隐藏攻击者访问痕迹,使得攻击者不 被发现,从而能够长期拥有管理员权限。它具有很好的 隐蔽性和潜伏性,难以检测。 • 一般情况下,RootKit不负责root权限的获取,只是辅助 恶意代码长期存活于目标系统中。所以RootKit通常与木 马程序、以太网嗅探器、日志清理工具等配合使用。攻 击者首先通过使用其他远程攻击软件或者安全漏洞来获 得系统的最高访问权限,成功侵入系统后,接着需要在 目标主机中安装上RootKit,完成远程命令和操作之后, RootKit会将自身和其他攻击进程等相关文件都隐藏起来, 并清除系统日志中的有关信息,这样能够保证指定的恶 意程序能够长期运行从而持续性窃取机密信息。 信息安全导论12 9
》 恶意代码种类 RootKit还可以分为用户级RootKit和核心级 RootKit。用户级RootKit侵入系统通常是通过修 改普通用户或者管理员执行的程序来实现的,这 种方法比较容易实现,但同时隐蔽性不够高,容 易暴露;而核心级RootKit一般是侵入操作系统 内核,伪装成内核的一部分来进行隐藏和创建后 门。 。 恶意代码不仅包括以上几种,还有漏洞攻击程 序、逻辑炸弹、流氓软件、间谍软件、CPU恶 意微代码等,还有以上类型的组合或者变异产生 的恶意代码变种。 信息安全导论12 10
恶意代码种类 • RootKit 还 可 以 分 为 用 户 级 RootKit 和 核 心 级 RootKit。用户级RootKit侵入系统通常是通过修 改普通用户或者管理员执行的程序来实现的,这 种方法比较容易实现,但同时隐蔽性不够高,容 易暴露;而核心级RootKit 一般是侵入操作系统 内核,伪装成内核的一部分来进行隐藏和创建后 门。 • 恶意代码不仅包括以上几种,还有漏洞攻击程 序、逻辑炸弹、流氓软件、间谍软件、CPU恶 意微代码等,还有以上类型的组合或者变异产生 的恶意代码变种。 信息安全导论12 10
12.1.3恶意代码攻击流程 ()寻找目标。本地文件、移动存储设备、电子邮件、远程 计算机系统都可以作为传播的介质。 (2)将自身保存在目标之中。主动性的恶意代码如病毒、蠕 虫程序会靠自身来实现这一步骤,而木马、RootKit等则需要 人为植入目标系统或者利用恶意网站欺骗用户下载。 ·③)触发目标系统中的恶意代码执行。恶意代码的触发也包 括主动触发和被动触发。主动触发包括蠕虫利用系统或程序 漏洞、网页木马通过恶意网站来实现。其他的如病毒之类的 触发则需要人为执行程序、打开存储介质。 (④)让自身长期存活于目标系统之中。恶意代码在系统中有 两种存在形式:一是静态存在形式,如文件和启动项文件; 另一种是动态存在形式,如进程、服务和端口等。恶意代码 的存在形式也是其检测的重要基础和依据,恶意代码本身也 会对自己的存在进行隐藏,如RootKit。 信息安全导论12 11
12.1.3 恶意代码攻击流程 • (1)寻找目标。本地文件、移动存储设备、电子邮件、远程 计算机系统都可以作为传播的介质。 • (2)将自身保存在目标之中。主动性的恶意代码如病毒、蠕 虫程序会靠自身来实现这一步骤,而木马、RootKit等则需要 人为植入目标系统或者利用恶意网站欺骗用户下载。 • (3)触发目标系统中的恶意代码执行。恶意代码的触发也包 括主动触发和被动触发。主动触发包括蠕虫利用系统或程序 漏洞、网页木马通过恶意网站来实现。其他的如病毒之类的 触发则需要人为执行程序、打开存储介质。 • (4)让自身长期存活于目标系统之中。恶意代码在系统中有 两种存在形式:一是静态存在形式,如文件和启动项文件; 另一种是动态存在形式,如进程、服务和端口等。恶意代码 的存在形式也是其检测的重要基础和依据,恶意代码本身也 会对自己的存在进行隐藏,如 RootKit。 信息安全导论12 11