55
1 计计计计计 Computer Virus 计计计 [email protected] [email protected] 武武武武武武武武武

计算机病毒 Computer Virus

  • Upload
    braith

  • View
    162

  • Download
    0

Embed Size (px)

DESCRIPTION

计算机病毒 Computer Virus. 傅建明 [email protected][email protected]. 武汉大学计算机学院. 第三章 计算机病毒的基本机制. 3.1 计算机病毒状态 3.2 计算机病毒的三种机制 3.3 计算机病毒的传播机制 3.4 计算机病毒的触发机制 3.5 计算机病毒的破坏机制. 3.1 计算机病毒状态. 计算机病毒在传播中存在静态和动态两种状态。 静态病毒 , 指存在于辅助存储介质 ( 如软盘、硬盘、磁带、 CD-ROM) 上的计算机病毒。 - PowerPoint PPT Presentation

Citation preview

Page 1: 计算机病毒 Computer Virus

1

计算机病毒Computer Virus

傅建明[email protected][email protected]

n

武汉大学计算机学院

Page 2: 计算机病毒 Computer Virus

2

第三章计算机病毒的基本机制 3.1 计算机病毒状态3.2 计算机病毒的三种机制3.3 计算机病毒的传播机制3.4 计算机病毒的触发机制3.5 计算机病毒的破坏机制

Page 3: 计算机病毒 Computer Virus

3

3.1 计算机病毒状态计算机病毒在传播中存在静态和动态两种状

态。静态病毒 , 指存在于辅助存储介质 ( 如软盘、

硬盘、磁带、 CD-ROM) 上的计算机病毒。 动态病毒,指进入了计算机内存的计算机病

毒,它必定是随病毒宿主的运行,如使用寄生了病毒的软、硬盘启动机器,或执行染有病毒的程序文件时进入内存的。

Page 4: 计算机病毒 Computer Virus

4

计算机病毒状态内存中的动态病毒又有两种状态:能激活态和

激活态

能激活态 : 当内存中的病毒代码能够被系统的正常运行机制所执行时,动态病毒就处于能激活态。

激活态 : 系统正在执行病毒代码时,动态病毒就处于激活态。

Page 5: 计算机病毒 Computer Virus

5

计算机病毒状态一般认为病毒链接到中断向量或块设备驱动

程序上,成功地驻留内存后,病毒就获得了系统控制权。实际上,处于“能激活态”的病毒并未获得系统控制权。

内存中的病毒还有一种较为特殊的状态——失活态。如果用户把中断向量表恢复成正确的值,修改中断向量表的动态病毒就失活了;如果用户把设备驱动程序头恢复成正确的值,修改设备驱动程序头的动态病毒就失活了。

Page 6: 计算机病毒 Computer Virus

6

3.2 计算机病毒的三种机制 病毒程序是一种特殊程序,其最大特点是具有感染能力。病毒的感染动作受到触发机制的控制,病毒触发机制还控制了病毒的破坏动作。病毒程序一般由感染模块、触发模块、破坏模块、主控模块组成,相应为传染机制、触发机制和破坏机制三种。有的病毒不具备所有的模块,如巴基斯坦智囊病毒没有破坏模块。

Page 7: 计算机病毒 Computer Virus

7

感染模块

感染模块是病毒进行感染动作的部分,负责实现感染机制。感染模块的主要功能:

1) 寻找一个可执行文件。2) 检查该文件中是否有感染标记。3) 如果没有感染标记,进行感染,将病毒

代码放入宿主程序。

Page 8: 计算机病毒 Computer Virus

8

感染模块小球病毒的传染:a) 读入目标磁盘的自举扇区( BOOT 区)。b) 判断是否满足传染条件。c) 若满足(目标盘 BOOT 区的 01FC 偏移位置为 5713H 标志),则将病毒代码前 512 个字节写入 BOOT 引导程序,将其后 512 个字节写入该簇,并将该簇标记为坏簇,保护起来。d) 跳转至原 INT 13H 的入口执行正常的磁盘操作。

Page 9: 计算机病毒 Computer Virus

9

触发模块 触发模块根据预定条件满足与否,控制病毒的感染或破坏动作。依据触发条件的情况,可以控制病毒感染和破坏动作的频率,使病毒在隐蔽的状态下,进行感染和破坏动作。

Page 10: 计算机病毒 Computer Virus

10

触发模块病毒的触发条件有多种形式,例如:日期、时间、

发现特定程序、感染的次数、特定中断调用的次数等。

病毒触发模块主要功能:·检查预定触发条件是否满足。·如果满足,返回真值。·如果不满足,返回假值。

Page 11: 计算机病毒 Computer Virus

11

破坏模块 破坏模块负责实施病毒的破坏动作。其内部是实现病毒编写者预定破坏动作的代码。这些破坏动作可能是破坏文件、数据。破坏计算机的空间效率和时间效率或者使机器运行崩溃。有些病毒的该模块并没有明显的恶意破坏行为,仅在被传染的系统设备上表现出特定的现象,

该模块有时又被称为表现模块。

Page 12: 计算机病毒 Computer Virus

12

主控模块

主控模块在总体上控制病毒程序的运行。其基本动作如下:·调用感染模块,进行感染。·调用触发模块,接受其返回值。·如果返回真值,执行破坏模块。· 如果返回假值,执行后续程序。 计算机磁盘的管理计算机磁盘的管理

Page 13: 计算机病毒 Computer Virus

13

3.3 计算机病毒的传播机制 3.3.1 病毒感染目标和过程3.3.2 感染长度和感染次数3.3.3 引导型病毒的感染3.3.4 寄生感染3.3.5 插入感染和逆插入感染3.3.6 链式感染3.3.7 破坏性感染3.3.8 滋生感染3.3.9 没有入口点的感染3.3.10 OBJ、 LIB 和源码的感染3.3.11 混合感染和交叉感染3.3.12 零长度感染

Page 14: 计算机病毒 Computer Virus

14

3.3.1 病毒感染目标和过程        硬盘系统分配表扇区 (主引导扇区 )        硬盘 BOOT 扇区        软盘 BOOT 扇区        覆盖文件 (OVL)        EXE文件        COM文件        COMMAND文件        IBMBIOS文件 /IBMD0S 文件另外, eml,doc,dot,bvs,bat, pl,html,flash,dll,sys, asp

Page 15: 计算机病毒 Computer Virus

15

3.3.1 病毒感染目标和过程

病毒入侵宿主程序的基本方式有两种:替代方式和链接方式。染毒程序运行时,必须能使病毒代码得到系统的控制权。染毒程序运行时,首先运行病毒代码。而病毒的宿主程序可分为两类:操作系统和应用程序。

病毒代码替换磁盘的 Boot扇区、主引导扇区。

COMMAND 程序做宿主程序

Page 16: 计算机病毒 Computer Virus

16

3.3.1 病毒感染目标和过程

(a) 病毒感染文件头部 (b)病毒感染文件尾部 (c)病毒感染文件中部

图 3. 1 病毒与宿主程序的链接方式

病毒代码

宿主程序

宿主程序

病毒代码

宿主程序病毒代码宿主程序

Page 17: 计算机病毒 Computer Virus

17

3.3.1 病毒感染目标和过程中断矢量表 中断矢量表

(a)正常中断 (b) 病毒修改中断

入口地址

中断处理程序

入口地址

中断处理程序

病毒

中断程序

Page 18: 计算机病毒 Computer Virus

18

3.3.2 感染长度和感染次数·保持原长度。·增长长度为恒定值。·增长长度的单位为一基数,在 1 节 (16

字节 ) 内浮动。 ·每次感染,宿主程序增长长度都在变化。

Page 19: 计算机病毒 Computer Virus

19

3.3.2 感染长度和感染次数

单次感染病毒在每次感染宿主程序时,将病毒代码放入宿主程序的同时,还放置了感染标记。当病毒再次遇到已染毒程序时,当发现染毒程序中的感染标记时,便不会再进行感染。

重复感染

单次感染 病毒程序 目标程序

带毒的目标程序

Page 20: 计算机病毒 Computer Virus

20

3.3.2 感染长度和感染次数

重复感染是指病毒遇到宿主文件时,不论宿主文件是否已感染过,都再次进行感染。重复感染的结果是病毒文件长度不断膨胀。病毒的重复感染可分如下几种:·简单的重复感染。·有限次数重复感染。·每次重复感染时,长度变化。·每次重复感染时,病毒代码的位置变化。   

Page 21: 计算机病毒 Computer Virus

21

3.3.2 感染长度和感染次数

(a) 初次感染 (b) 重复感染

图 3. 4 Anto病毒变位重复感染

Anto(1)

宿主程序

Anto(1)

宿主程序

Anto(2)

……

Anto(n)

Page 22: 计算机病毒 Computer Virus

22

3.3.3 引导型病毒的感染 uni nfected di sk

0 1 2 ……(sector No)

…… ……

Boot sector or Master Boot Record

I nfected di sk (repl aced boot/ MBR)

0 1 2 ……(sector No)

XXXXX …… XXXXX ……

病毒的首部 BS or MBR 病毒的尾部

I nfected di sk (modi fi ed address of acti ve boot sector)

0 1 2 ……(sector No)

……X XXXXX XXXX ……

病毒地址 病毒

Page 23: 计算机病毒 Computer Virus

23

3.3.3 引导型病毒的感染隐藏方法

1 、把 FAT 表中的簇标记为 bad

2 、改变 BPB 中的逻辑驱动器的容量

3 、非常规格式化磁盘

Page 24: 计算机病毒 Computer Virus

24

3.3.4 寄生感染 病毒将其代码放入宿主程序中,不论放入宿主程序

的头部、尾部还是中间部位,都称之为寄生感染。病毒放入宿主程序中部的感染方式称为插入感染,另外有插入感染和逆插入感染。

有两种方法把病毒放入文件的头部。第一种方法把目标文件的头部移到文件的尾部,然后拷贝病毒体到目标文件的头部的空间。第二种方法是病毒在 RAM中创建其拷贝,然后追加目标文件,最后把连接结果存到磁盘。

Page 25: 计算机病毒 Computer Virus

25

3.3.4 寄生感染感染前

感染后(第一种方法)

感染后(第二种方法)

图 3.6 病毒感染文件的头部

文件头部 文件其它部分

文件头部 文件其它部分 病毒

文件头部 文件其它部分 病毒

Page 26: 计算机病毒 Computer Virus

26

3.3.4 寄生感染

DOS-COM DOS-EXE New EXE

病毒入口

病毒入口

图 3.7 病毒感染文件的尾部

JMP

Program

code/data

Virus

Header

Program

code/data

Virus

DOS stub

Program

code/data

Virus

NE-Header

Page 27: 计算机病毒 Computer Virus

27

SYS文件感染前

SYS文件感染后(第一种方法)

SYS文件感染后(第二种方法)

图 3.8 病毒感染 SYS文件

文件头部 设备驱动的代码和数据

文件其它部分

文件头部 设备驱动的代码和数据 病毒

文件头部 设备驱动的代码和数据 病毒 新文件头部

3.3.4 寄生感染

Page 28: 计算机病毒 Computer Virus

28

3.3.5 插入感染和逆插入感染 一般病毒感染宿主程序时,病毒代码放在宿主程序头部或尾部。而插入感染病毒能够自动地将宿主程序拦腰截断,在宿主程序的中部插入病毒代码。必须保证:

        病毒首先获得运行权。

        病毒不能卡死。

宿主不能因病毒代码的插入而卡死。

Page 29: 计算机病毒 Computer Virus

29

3.3.5 插入感染和逆插入感染

插入 感染

图 3.9 插入感染

Proud病毒

宿主程序

宿主程序

Proud病毒

宿主程序

Page 30: 计算机病毒 Computer Virus

30

3.3.5 插入感染和逆插入感染

(a) Stinkfoot病毒 (b)RAM病毒

图 3.10 逆插入感染

Stinkfoot病毒

(259字节)

宿主程序

RAM病毒

宿主程序

RAM病毒 Stinkfoot病毒

(995字节)

Page 31: 计算机病毒 Computer Virus

31

3.3.6 链式感染

切 断

(a) 病毒写软盘 (b) 修改文件目录 (c) 原起始簇加密后加入目录区

图 3.11 链式感染

DIR-Ⅱ 病毒 文件目录

软盘

最后一簇

起始簇

宿主程序 软盘最后一簇

文件目录

起始簇

加密后的

原起始簇

DIR-Ⅱ

病毒 宿主程序

Page 32: 计算机病毒 Computer Virus

32

3.3.7 破坏性感染

感染 宿主程序

12032字节

(b) 病毒的长度不小于宿主的长度

(a) 病毒的长度小于宿主的长度

图 3.12 破坏感染

Number One病毒

病毒代码

宿主程序

病毒

代码

Page 33: 计算机病毒 Computer Virus

33

3.3.8 滋生感染

NORMAL.EXE NORMAL.COM(病毒程序)

NORMAL.EXE(原来的程序)

NORMAL.EXE(病毒程序)

NORMAL.OLD(原来的程序)

NORMAL.EXE(病毒程序),放在当前目录

NORMAL.EXE(病毒程序),放在系统目录

NORMAL.EXE(病毒程序),放在 PATH搜索目录中

NORMAL.EXE(原来的程序)

伴随方式 3 伴随方式 2

伴随方式 1

Page 34: 计算机病毒 Computer Virus

34

中断向量表

3.3.9 没有入口点的感染

这些病毒在宿主文件中没有执行入口,病毒没有记录 COM文件的 JMP指令,也不修改 EXE文件头中的入口地址。该病毒在宿主文件的中部记录跳转到病毒本身的指令,当运行宿主文件后,病毒没有立即得到控制权,而是当宿主例程调用包含病毒跳转指令时才获得系统的控制权。

EPO是 EntryPoint Obscuring的简写,即入口模糊技术。

Page 35: 计算机病毒 Computer Virus

35

3.3.9 没有入口点的感染

EXE文件头

运行时刻库的初始化程序

原来的程序代码

病毒的感染部分找到这部分代码,使用跳转到病毒代码的指令替换

感染之后

EXE文件头

运行时刻库的初始化程序

原来的程序代码

跳转到病毒代码的指令

病毒代码

Page 36: 计算机病毒 Computer Virus

36

3.3.9 没有入口点的感染

感染之前的程序

病毒使用反汇编程序对代码进行反汇编

ADD AX,100H

JMP cd00

INC

MOV AX, 0

发现合适的插入点,将病毒代码插入

感染前的程序

插入点:JMP [病毒代码]

感染前的程序

病毒代码

Page 37: 计算机病毒 Computer Virus

37

3.3.9 没有入口点的感染1.第一个节是 .text2.在 .text 中一定可以找到 call xxxxxxxx.(E8 xxxxxxxx).3.JMP DWORD PTR [YYYYYYYY]在 .text 中4.根据找到的 call xxxxxxxx计算出来的地址不会越界造成内存错误。 其思路是这样的:1.判断 PE合法性和可感染性(有多余空间)2.添加新节,修改 SizeOfImage3.开始EPO1 )在 .text 中寻找 E8 xxxxxxxx, 根据 xxxxxxxx获得 JMP DWORD …的文件偏移。2 )计算跳转到 VStart 的相对距离,覆盖xxxxxxxx。 3)拷贝 JMP DWORD PTR [YYYYYYYY]中的 YYYYYYYY到病毒体内。

Page 38: 计算机病毒 Computer Virus

38

3.3.9 没有入口点的感染hume/pkxp ——.不要问我从哪里来 浅析病毒入口模糊技术 EPO.黑客防线, 2003年第 8期, CVC病毒专栏

Page 39: 计算机病毒 Computer Virus

39

3.3.10 OBJ、 LIB 和源码的感染

病毒感染编译库文件、目标文件和源码,这种方式少且没有广泛流传。这些该感染的 OBJ、 LIB合并代码到一个对象模块或对象库。因此,感染文件不是可执行文件,不会马上传播。其 COM和 EXE文件通过对已感染的 OBJ/LIB连接而成,则该文件已感染。因此,该病毒传播有两个阶段:OBJ/LIB先感染;然后合成不同的病毒体。

如 SrcVir 病毒和 Urphin 病毒。

Page 40: 计算机病毒 Computer Virus

40

3.3.11 混合感染和交叉感染 A 混合感染

既感染文件又感染主引导区或 Boot 扇区的混合感染病毒。

如 Flip

B 交叉感染

在一个宿主程序上感染多种病毒 .

Page 41: 计算机病毒 Computer Virus

41

3.3.11 混合感染和交叉感染

Tai wan 3

Sunday

J erusal em

宿主程序

J-S-T.com

宿主程序

1591

FLI P

l 591

OROPAx

V1591-FL.com

Page 42: 计算机病毒 Computer Virus

42

3.3.12 零长度感染 病毒感染宿主文件时,将其病毒代码放入宿主程序,一般会使宿主程序长度增加,因而很容易被用户发现。而有些病毒在感染时,将病毒代码放入宿主程序,同时保持宿主程序长度不变,称为零长度感染。此类病毒在感染时,采取了特殊技巧。首先在宿主

“ ” “ ”程序中寻找 空洞 ,将病毒代码放入 空洞 之中,“ ”而后改变宿主程序开始处代码,使藏在 空洞 中的

病毒代码首先运行,在病毒运行结束时,恢复宿主 程序开始处代码,而后运行宿主程序。

Page 43: 计算机病毒 Computer Virus

43

3.3.12 零长度感染什么是“空洞”( cavity)呢 ?就是具有足够长度的全部为零的程序数据区或堆栈区。

Page 44: 计算机病毒 Computer Virus

44

3.3.12 零长度感染

cv

P'1

p2

cv

P'1 P'2

cv

p1 p2

2

3 1

4

t0 t1

Page 45: 计算机病毒 Computer Virus

45

3.3.12 零长度感染宿主程序

插入

54A2H

执行 62BCH

(a) 病毒代码插入空洞和改写跳转指令 (b) COMMAND.COM的空洞

图 3.18 零长度感染

病毒代码

全部为 00H的

数据区(空洞)

JMP 空洞地址 病毒代码

MS-DOS3.30

COMMAND.COM

全部为 00H

的 0D19H字节

Page 46: 计算机病毒 Computer Virus

46

3.4 计算机病毒的触发机制 1. 日期和时间触发 :特定日期触发、月份触发、

前半年 /后半年触发 .2. 键盘触发 : 击键次数触发、组合键触发和热

启动触发 3. 感染触发 :感染文件个数触发、感染序数触

发、感染磁盘数触发和感染失败触发 4. 启动触发5. 磁盘访问触发和中断访问触发6. 其它触发

Page 47: 计算机病毒 Computer Virus

47

3.4 计算机病毒的触发机制其它触发 :OS型号、 IP地址、语言、地区、特定漏洞

Page 48: 计算机病毒 Computer Virus

48

3.4 计算机病毒的触发机制感染失败触发 -Worm.Sasser

Page 49: 计算机病毒 Computer Virus

49

3.5 计算机病毒的破坏机制 1. 攻击系统数据区:硬盘主引导扇区、 B

oot 扇区、 FAT 表和文件目录 2. 攻击文件和硬盘:删除、改名、替换内容、丢失部分程序代码、内容颠倒、写入时间变空白、变碎片、假冒文件、丢失文件簇、攻击数据文件。

3. 攻击内存:占用大量内存、改变内存总量、禁止分配内存、蚕食内存

Page 50: 计算机病毒 Computer Virus

50

3.5 计算机病毒的破坏机制4. 干扰系统的运行:不执行命令、干扰内部命令

的执行、虚假报警、打不开文件、内部栈溢出、占用特殊数据区、换现行盘、时钟倒转、重启动、死机、强制游戏、扰乱串并行口。

5. 扰乱输出设备:字符跌落、环绕、倒置、显示前一屏幕、光标下跌、滚屏幕、抖动、乱写、吃字符,演奏曲子、警笛声、炸弹噪声、鸣叫、咔咔声和嘀嗒声,假报警、间断性打印和更换字符

6. 扰乱键盘:响铃、封锁键盘、换字、抹掉缓存区字符、重复和输入紊乱。

Page 51: 计算机病毒 Computer Virus

51

与病毒现象类似的硬件故障 1. 系统的硬件配置 :软件不能正常运行。 2. 电源电压不稳定: 磁盘文件丢失或破坏3. 插件接触不良:设备时好时坏   4. 软驱故障:读坏磁盘 5. 关于 CMOS的问题: CMOS的高级设

置中有一些影子内存开关,这也会影响系统的运行速度。

Page 52: 计算机病毒 Computer Virus

52

与病毒现象类似的软件故障   1. 出现 "Invalid drive specification"(非法驱动器号 ) :说明用户的驱动器丢失   2. 软件程序已被破坏 (非病毒 ) :由于磁盘质量等问题,

文件的数据部分丢失,而程序能运行且出现不正常现象。      3. DOS系统配置不当:DOS操作系统在启动时会去查找

其系统配置文件 CONFIG.SYS,并按其要求配置运行环境。如果系统环境设置不当会造成某些软件不能正常运行,如 CC++语言系统、AUTOCAD等等。   4. 软件与DOS版本的兼容性:DOS操作系统自身的特点

是具有向下的兼容性。许多软件都要过多地受其环境的限制。   

Page 53: 计算机病毒 Computer Virus

53

与病毒现象类似的软件故障5. 引导过程故障:系统引导时屏幕显示 "Missing ope

rating system"(操作系统丢失), 故障原因是硬盘的主引导程序可完成引导,但无法找到 DOS系统的引导记录。造成这种现象的原因是 C 盘无引导记录及 DOS系统文件,或 CMOS中硬盘的类型与硬盘本身的格式化时的类型不同。 6. 用不同的编辑软件程序:用户用一些编辑软件编辑源程序,编辑系统会在文件的特殊地方做上一些标记。这样当源程序编译或解释执行时就会出错。例如,用WPS的 N命令编辑的文本文件,在其头部也有版面参数,有的程序编译或解释系统却不能将之与源程序分辨开,这样就出现了错误。   

Page 54: 计算机病毒 Computer Virus

54

与病毒现象类似的软件故障 7. 某些软件无法正常运行:如 word 由于

内存不足无法存盘。 8. 网络连接数过多导致新的应用无法上网:句柄数有限

9. 防火墙配置不当导致无法上网。

Page 55: 计算机病毒 Computer Virus

55

作业试提出一种新的感染机制、一种新的触发

机制、一种新的破坏机制(仅限于 win32 病毒或Worm )。