
基于结构分析与数学模型的计算机病毒.doc
9页基于结构分析与数学模型的计算机病毒李垂娇广东商学院 信息学院 中国 广州 510320 Email:lichuijiao@ Tel:13570570462摘要:本文主要介绍计算机病毒的结构来分析它的传染机理,并通过建立数学模型来分析计算机病毒的传播途径,以此采取相应的防治措施,并通过一个反病毒案例来说明计算机病毒犯罪者最终将受法律的制裁关键词:计算机病毒、病毒的特征、结构、数学模型、防治策略一、概述:随着 IT 的发展,编程技术和计算机病毒技术的提高,计算机病毒的花样层出不穷,表现形式更加的隐蔽,破坏性更加的严重由于计算机系统的脆弱性和因特网的开放性,一种新病毒的出现会以惊人的速度通过网络传播到世界各地,对世界各地的计算机信息系统和网络体系进行破坏,造成网络堵塞瘫痪,计算机内存储的机密信息被窃取二、计算机病毒的特征:计算机病毒是指人为的且故意置入计算机的程序,它可自行复制并感染其他计算机中的程序,并通过计算机磁盘的共用,通信线路数据的传输(如电子邮件)或对软件、硬件的直接操作,都有可能感染病毒,它有良性和恶性之分1、计算机病毒的基本特征是:程序性、传染性、潜伏性、干扰与破坏性、可触发性、针对性、衍生性、夺取系统的控制权、依附性、不可预见性。
程序性:计算机本身不会生成计算机病毒,计算机病毒是由人编制的具有特定功能的计算机程序这就决定了计算机病毒的表现形式和破坏行为的多样性和复杂性传染性:计算机病毒将自身复制到其他程序上,使每个被感染的程序都包含该病毒的复制品 潜伏性:有些文件受染只有在特定的条件下才会被激发,而在还未激发之前它就还处于休眠状态中, 用户根本觉察不到它的存在干扰与破坏性:有些计算机病毒对系统不会造成很严重的危害,它只是影响计算机的工作效率,它们就好像在跟计算机用户开玩笑一样,而有些却能把格式化磁盘、更改系统文件、攻击硬件等,这样的病毒对计算机就已经达到了破坏的程度了可触发性:可触发性的出现就意味着潜伏性的结束,触发的实质是一种或多种条件的控制针对性:每一种病毒的发作都是有特定的环境平台,当对应的环境平台还没出现的时候,计算机病毒只能处于潜伏状态衍生性:计算机病毒的可修改性比较强,病毒程序可以通过被修改而衍生出其他的病毒,它虽来源于源病毒程序,跟它却有着本质的不同夺取系统的控制权:病毒通过寄居在宿主程序上,使得调用受染文件时首先执行病毒程序依附性:病毒只有依附在可执行的文件中才有可能被执行,当没有可执行文件让它依附的时候它也就无计可施了。
不可预见性:由于病毒技术的不断更新,使得反病毒软件的问世跟病毒的防治措施总是滞后于病毒的产生时间,这就决定了病毒的不可预见性2、当前流行的病毒由于技术的发展又具有一些新的特征,这些特征是:抗分析性、隐蔽性、诱惑欺骗性、传播方式的多样性与广泛性、破坏性、变形性、远程启动性、攻击对象的混合性、攻击技术的混合性、多态性随着计算机技术的不断发展,病毒也变得越来越复杂和高级目前最难防御的是变形病毒,由于它的不确定性更加适应病毒的生存,所以估计它将会成为今后病毒发展的主要方向之一变形病毒特征主要是,病毒传播到目标后,病毒自身的代码和结构在空间上、时间上具有不同形式的变化三、计算机病毒的结构:病毒程序在系统中的运行是:做初始化工作 在内存中寻找传染目标 夺取系统控制权 完成传染破坏活动病毒程序可以放在正常可执行文件的首部、尾部可中间,譬如新欢乐时光病毒可以将自己的代码附加在.htm 文件的尾部,并在顶部加入一条调用病毒代码的语句它会产生标题为“help”,附件为“Untitled.htm”的病毒邮件当发作日期到来时,病毒将硬盘中的所有可执行文件用自己的代码覆盖掉病毒可以执行其他程序所能执行的一切功能,唯一不同的是它必须将自身附着在宿主程序上,当运行宿主程序时,病毒一些意想不到的功能也就跟着悄悄地执行了。
病毒的结构一般由以下三部分组成:初始化部分、传染部分、破坏和表现部分其中传染部分包括激活传染条件的判断部分和传染功能的实施部分,而破坏和表现部分则由病毒触发条件判断部分和破坏表现功能的实施部分组成下面用一段代码来表示宿主程序受染的工作机理:program V:= //病毒体程序 (1){goto main; (2)1234567; //标志 (3)subroutine infect-executable := //传染子程序 (4){loop: //循环 (5) file := get-random-executable-file;// 从文件中随机地找到一个可执行文件 (6)if (first-line-of-file =1234567) //若该文件的第一行是标志 1234567 (7) then goto loop //则返回循环开始 (8)else prepend V to file;} //将病毒体程序附着在文件之中 (9)subroutine do-damage : = //破坏子程序 (10) {whatever damage is to be done} //进行相关的破坏功能 (11) subroutine trigger-pulled : = // 激活子程序 (12){return true if some condition holds} //当达到某种条件后则返回真值 (13) main : main-program : = //主程序体 (14){infect-executable; //传染可执行程序 (15) if trigger-pulled then do-damage; //若触发条件为真则执行破坏 (16)goto next;} // 执行正常程序体 (17) next : (18) }由上面的程序代码可知受染程序的工作机理是:第一行代码的功能是跳转执行病毒程序,也即是病毒的初始化阶段。
病毒通过寄居在宿主程序上以获得系统控制权,从而保证当调用受染文件时,首先被执行的是病毒程序,然后才是原主程序第三行代码是个特殊标记,它被用来判断一个可能被感染文件是否已经感染病毒第四行开始到第九行代码是病毒程序的传染部分当该程序被调用后,很快又将控制权交给病毒程序模块,病毒程序首先寻找未被感染过的可执行文件并感染之如果遇到的目标文件已经被该病毒感染了就跳过继续寻找下一个目标第十行和第十一行代码则是病毒的破坏部分,病毒通常会对宿主程序进行破坏活动,宿主程序每被调用一次,该破坏就会进行一次第十二行跟第十三行代码是程序的激发条件,如果前两行的破坏行为是个逻辑炸弹(逻辑炸弹是最早出现的程序威胁之一,它预先规定了病毒和蠕虫的发作时间它是嵌在合法程序中的、只有当特定的事件出现时才会进行破坏的一组程序代码) ,那它就仅在某个特定条件满足时才会被激发第十四行到第十七行代码是病毒的表现部分,它表现了宿主程序受感染的全过程最后一行代码表示病毒程序把控制权交还给原主程序 四、计算机病毒传播的数学模型:病毒可以利用其所得到的系统权限进行传染并通过计算机系统或者网络进行扩散,而每个被传染的程序也会具有病毒体一样的行为能力,从而使病毒传染愈演愈烈。
显然,病毒的传染性是它的关键特性下面通过建立一个数学模型来分析计算机病毒的传播机理:假设一个由 N 台计算机组成的计算机群,它受某一病毒 V 的威胁并且相互之间有数据交换的关系数值 N 表示了该计算机病毒所能传播到的计算机最大数目为了简化分析,我们只考虑病毒在由这 N 台计算机组成的封闭系统内传播,对这 N 台计算机进行编号:C1、C2、... 、Cn,并定义集合C={C1、C2、... 、Cn} 因此,可定义 C 上的二元关系为 Dc={〈Ci,Cj 〉|Ci、Cj 属于 C,i 不等于 j},该关系表示有数据从 Ci 单向流向 Cj,其中 Ci 为源机器,Cj 为目标机器;定义 Mv={Ci|Ci 属于 C,且 Ci 已经感染病毒 V},该定义表示传染过程中已染毒计算机集合从病毒进入系统的时刻(n=0)开始研究,则这 N 台机器中有一台是带毒的,设其编号为 C1,此时 C1=1当 C1 跟C 中的任何一台机器进行数据通信时, (N-1)台机器中的任一台都有被感染跟源机器同样病毒的可能,且感染后不可清除,即计算机一旦染上病毒后,在整个流行期间都是带毒机依此循环下去,最后将导致所有的机都染上病毒,除非它不与其他的机器进行数据通信,可在因特网如此普及的年代不跟其他机器进行数据通信的机器跟一台死机根本没什么区别。
所以,所有的计算机最后全部被感染的趋势是必然的 在单位时间内,一台带毒机跟另一台机器进行数据通信,如果对方已经感染上跟源机器同样的病毒,则源机器的病毒就会跳过目标机器的程序,如果目标机器还没感染上病毒,源机器的病毒程序就会传染给目标机器的程序,致使目标机器中毒而在这个单位时间里,这台目标机器都不可能再与其他的机器进行数据通信令 Xn 是在第 n 个单位时间上 C 中感染病毒的计算机数目,带病毒源机器的数目为 E(Xn) ,则未染毒机的数目为(N-E(Xn ) ) 在单位时间内,N 台计算机之间发生 M 次数据通信(1〈=M〈=N/2〉 ,且参与通信的源机器和目标机器都是随机的,在 N 中均匀分布所谓数学期望值是指一个变量的可能取值与其对应出现概率的乘积所以,在第 n 个单位时间和第 n+1 个单位时间间隙内的 M 次数据通信中,源机器中染毒机器的数学期望值为(M/N )*E (Xn) ,其中 M/N 是指这个时间段内中毒源机器出现的概率,乘以带毒源机器的数目E(Xn ) ,就可得出源机器中染毒机器的数学期望值,即(M/N )* E(Xn) 目标机中无毒机器的数学期望值就等于源机器的数目 M 减于中毒机数目,即 M-(M/N )*E(Xn) 。
由于传播是随机的所以在这次数据通信完毕之后,新增加的染毒机器的数学期望值是(M/N)*E(Xn)* (1-E (Xn )/N) 由于互相通信的两部机都有可能有毒,所以式中的 1-E(Xn)/N 表示接收信息的机在跟源机器进行数据通信之前没有带毒的概率,乘以跟其进行数据通信的那些带毒机的数目就可得出新增加的染毒机的数学期望值,即(M/N)*E(Xn ) (1-E(Xn )/N) 则有: E(Xn+1)-E(Xn)= (M/N)*E(Xn)*(1-E(Xn)/N)=(M/(N*N) )*E(Xn )*(N-E (Xn) ) =K*E(Xn)*(N-E(Xn) )其中,K=M/(N*N)为传染系数上式即为计算机病毒传播的数学模型该模型就是通过假设 N 台机器中有一台带毒,而当它跟其他( N-1)台中的任一台机进行数据通信时,它就把病毒传染给另外一部机器,就这样这 N 台机器中任何两台机随机进行数据通信,最后会致使更多的机器中毒而在一个单位时间内,当有 M 台带毒源机器要进行数据通信的时候,跟其进行数据通信的目标机器就有 M 台,如果这些目标机器都不带毒的话在一个单位时间内就将增加 M 台带毒机,而如果其中。
