上泽文通大¥ SHANGHAI JIAO TONG UNIVERSITY 计算机病毒理论模型 刘功申 上海交通大学网络空间安全学院 网络空间安全学院
计算机病毒理论模型 刘功申 上海交通大学网络空间安全学院
上海文通大学 本章学习目标 SHANGHAI JIAO TONG UNIVERSITY 掌握计算机病毒的抽象描述 掌握基于图灵机的计算机病毒模型 掌握基于递归函数的计算机病毒模型 掌握网络蠕虫传播模型 掌握计算机病毒预防理论模型 网络空间安全学院
本章学习目标 掌握计算机病毒的抽象描述 掌握基于图灵机的计算机病毒模型 掌握基于递归函数的计算机病毒模型 掌握网络蠕虫传播模型 掌握计算机病毒预防理论模型
上海文通大学 虚拟案例 SHANGHAI JIAO TONG UNIVERSITY 一个文本编辑程序被病毒感染了。每当使用文本编辑程 序时,它总是先进行感染工作并执行编辑任务,其间, 它将搜索合适文件以进行感染。每一个新被感染的程序 都将执行原有的任务,并且也搜索合适的程序进行感染。 这种过程反复进行。当这些被感染的程序跨系统传播, 被销售,或者送给其他人时,将产生病毒扩散的新机会。 最终,在1990年1月1日以后,被感染的程序终止了先前 的活动。现在,每当这样的一个程序执行时,它将删除 所有文件。 网络空间安全学院
虚拟案例 一个文本编辑程序被病毒感染了。每当使用文本编辑程 序时,它总是先进行感染工作并执行编辑任务,其间, 它将搜索合适文件以进行感染。每一个新被感染的程序 都将执行原有的任务,并且也搜索合适的程序进行感染。 这种过程反复进行。当这些被感染的程序跨系统传播, 被销售,或者送给其他人时,将产生病毒扩散的新机会。 最终,在1990年1月1日以后,被感染的程序终止了先前 的活动。现在,每当这样的一个程序执行时,它将删除 所有文件
上海文通大学 计算机病毒伪代码 SHANGHAI JIAO TONG UNIVERSITY main:= 国 Call injure; 国 Call submain; 国 国 Call infect; 国 {injure:= © If condition then whatever damage is to be done and halt; ⊕ 国 infect:= © If condition then infect files; } 网络空间安全学院
计算机病毒伪代码 {main:= Call injure; … Call submain; … Call infect; } {injure:= If condition then whatever damage is to be done and halt; } {infect:= If condition then infect files; }
上海文通大学 棗例病毒的伪代码 SHANGHAI JIAO TONG UNIVERSITY {main:= 国 Call injure; 国 Call submain; ⊕ Call infect; 国 国 {injure:= If date>=Jan.1,1990 then While file !=0 国 File get-random-file; Delete file; Halt; 国 网络空间安全学院
案例病毒的伪代码 {main:= Call injure; Call submain; Call infect; } {injure:= If date>= Jan. 1,1990 then While file != 0 File = get-random-file; Delete file; Halt; }
上海文通大学 SHANGHAI JIAO TONG UNIVERSITY finfect:= 国 If true then 国 File get-random-executable-file; 国 Rename main routine submain; 国 Prepend self to file; } 网络空间安全学院
{infect:= If true then File = get-random-executable-file; Rename main routine submain; Prepend self to file; }
上游充通大警 精简后的伪代码(压缩或变型) SHANGHAI JIAO TONG UNIVERSITY ⊕ {main:= © Call injure; 国 Decompress compressed part of program; 雪 Call submain; © Call infect; © © finjure:= © If false then halt; } 网络空间安全学院
精简后的伪代码(压缩或变型) {main:= Call injure; Decompress compressed part of program; Call submain; Call infect; } {injure:= If false then halt; }
上海充通大¥ SHANGHAI JIAO TONG UNIVERSITY 国 finfect:= If executable !0 then File get-random-executable-file; Rename main routine submain; Compress file; Prepend self to file; } 网络空间安全学院
{infect:= If executable != 0 then File = get-random-executable-file; Rename main routine submain; Compress file; Prepend self to file; }
上海文通大学 病毒伪代码的共同性质 SHANGHAI JIAO TONG UNIVERSITY 1.对于每个程序,都存在该程序相应的感染形 式。也就是,可以把病毒看作是一个程序到一个 被感染程序的映射。 国 2.每一个被感染程序在每个输入(输入是指可 访问信息,例如,用户输入,系统时钟,数据或 程序文件等)上形成如下3个选择: 网络空间安全学院
病毒伪代码的共同性质 1.对于每个程序,都存在该程序相应的感染形 式。也就是,可以把病毒看作是一个程序到一个 被感染程序的映射。 2.每一个被感染程序在每个输入(输入是指可 访问信息,例如,用户输入,系统时钟,数据或 程序文件等)上形成如下3个选择:
上海文通大学 SHANGHAI JIAO TONG UNIVERSITY 破坏(njure):不执行原先的功能,而去完成其它功能。 何种输入导致破坏以及破坏的形式都与被感染的程序无 关,而只与病毒本身有关。 传染(Infect):执行原先的功能,并且, 如果程序能终止 则传染程序。,对宇除程序以外的其它可访问信息(如时 钟、用卢/程序间的通信)的处理,同感染前的原程序一 样。,另外,不管被感染的程序其原先功能如何(文本编 辑或编译器等),它传染其它程序时,其结果是一样的。 也就是说,一个程序被感染的形式与感染它的程序无关。 模仿(mitate):既不破坏也不传染,不加修改地执行原先 的功能。这也可看作是传染的一个特例,其中被传染的 程序的个数为零。 网络空间安全学院
破坏(Injure):不执行原先的功能,而去完成其它功能。 何种输入导致破坏以及破坏的形式都与被感染的程序无 关,而只与病毒本身有关。 传染(Infect):执行原先的功能,并且,如果程序能终止, 则传染程序。对于除程序以外的其它可访问信息(如时 钟、用户/程序间的通信)的处理,同感染前的原程序一 样。另外,不管被感染的程序其原先功能如何(文本编 辑或编译器等),它传染其它程序时,其结果是一样的。 也就是说,一个程序被感染的形式与感染它的程序无关。 模仿(Imitate):既不破坏也不传染,不加修改地执行原先 的功能。这也可看作是传染的一个特例,其中被传染的 程序的个数为零