广义病毒的形式化定义及识别算法概要.docx
- 文档编号:6519545
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:12
- 大小:51.88KB
广义病毒的形式化定义及识别算法概要.docx
《广义病毒的形式化定义及识别算法概要.docx》由会员分享,可在线阅读,更多相关《广义病毒的形式化定义及识别算法概要.docx(12页珍藏版)》请在冰豆网上搜索。
广义病毒的形式化定义及识别算法概要
广义病毒的形式化定义及识别算法
何鸿君,罗莉,董黎明,何修雄,侯方勇,钟广军
国防科技大学计算机学院,长沙,410073
摘要恶意软件的定义是多年来安全领域的研究重点,恶意软件包括病毒、蠕虫和木马。
目前仅有病毒的形式化定义,蠕虫、木马没有公认的形式化定义。
按照传统病毒的定义,不存在准确识别病毒的算法。
本文提出代码是否为病毒是相对于用户而言的,给用户带来损害的代码才是病毒。
据此观点,本文以用户意愿为标准,将病毒区分为显式病毒、隐式病毒,并给出了显式病毒的形式化定义和识别算法。
理论分析表明,传统病毒以及大部分木马、蠕虫均属于显式病毒,实际案例分析也证实了这一点。
关键词病毒、蠕虫、木马、用户意愿、显式病毒、隐式病毒
1前言
病毒的定义是反病毒技术研究的基础,一直是计算机安全领域的重要研究课题,相关论文很多[1]。
广义病毒包括了传统病毒、蠕虫、木马等所有恶意程序,本文的讨论针对广义病毒。
公认的传统病毒定义是Cohen博士1984年提出的,“计算机病毒是一种程序,它可以感染其它程序,感染的方式为在被感染程序中加入计算机病毒的一个副本,这个副本可能是在原病毒基础上演变过来的”[2]。
其后,很少提出新的有影响力的形式化定义[3]。
蠕虫、木马的定义研究,情况要更糟糕些,有个别的形式化定义[4],但影响力不大。
事实上,随着病毒技术的发展,很多病毒同时具备病毒、蠕虫、木马的特征。
例如,2001年9月8日发现的Nimda病毒,NAI公司把它归为病毒,CERT把它归为蠕虫,而Incidents.Org则把它同时归为病毒和蠕虫。
从这个角度看,严格区分狭义病毒、蠕虫、木马的意义不大。
技术是中性的,本身不存在恶意,好人用它来造福社会,坏人用它来损人利己。
因此,如果定义了一种称为“病毒”的技术,并将采用该技术的程序称为病毒,那么,这种定义肯定是不严谨的。
据此观点,我们以是否违背用户意愿为标准,将广义病毒区分为显式病毒、隐式病毒,并给出了显式病毒的形式化定义和识别算法。
理论分析表明,狭义病毒以及大部分木马、蠕虫均属于显式病毒,实际案例分析也证实了这一点。
这些工作的重要价值在于,指出了狭义病毒以及大部分木马、蠕虫是可以准确识别的。
这一结论与“不能准确识别狭义病毒”历史结论并不矛盾,因为狭义病毒的经典定义实质上是定义了一种“病毒”技术,而不是病毒本身。
本文第2节提出程序是否为病毒是相对的,若对用户有损害则为病毒,否则不是,并简要分析传统病毒定义的不足。
第3节提出“用户意愿”概念,用以描述用户操作计算机过程中的意图。
第4节给出广义病毒的定义,并讨论定义的性质。
第5节给出一种准确识别显式病毒的算法,并指出与传统结论截然不同的原因在于对病毒的定义不同。
最后,总结全文。
2病毒本质的讨论
2.1损害的相对性
一个程序之所以被称为“病毒”,是因为它具有损害性。
损害性是恶意程序的本质,而是否造成损害一定是对用户而言的。
例如病毒V,对于作者来说,如果他是在测试V,那V对他而言是没有损害的,因为V运行的结果就是他所需要的;而如果他在不知道的情况下运行了V或者被V感染的程序,则V对他而言是有损害的,因为运行结果不是他希望的。
再例如,用户已经知道病毒V的功能是删除当前目录下的所有文件,用户经常把它当作一个文件删除工具使用,对用户来说V是一个实用程序。
可见,程序是否为病毒是用户的主观判断,这种认识可表述为以下公理。
病毒相对性公理一个程序是否为病毒,是相对于用户而言的。
如果用户认为程序给自己带来了损害就是病毒,否则不是病毒。
根据病毒相对性公理,我们可以直接得到一个非常有趣的结论:
判断某程序是否为病毒的算法,如果不引入用户的意见,则该算法是不可能做出准确判断的。
这种认识可表述为以下定理。
判不准定理通过分析程序代码的方法准确判断一个程序是否为病毒,这样的判断算法是不存在的。
2.2传统病毒定义的不足
为加深对病毒相对性的理解,我们回顾一下经典的病毒定义。
FredCohen1984年给出了广为接受的病毒定义,“计算机病毒是一种程序,它可以感染其它程序,感染的方式为在被感染程序中加入计算机病毒的一个副本,这个副本可能是在原病毒基础上演变过来的”[1]。
随后,Cohen给出了病毒的形式化定义[5],将病毒的范围扩大到了所有的自我复制程序,以及在系统或网络中演化和移动的程序。
基于上述狭义病毒的定义,有两个重要结论:
1)很多正常程序被归结为病毒,从而病毒有了“好”、“坏”之分[6,7]。
例如自动升级程序,虽然不是病毒,但是按照Cohen给出的定义它们被归结为病毒。
2)按照给定的病毒定义,没有算法能够准确识别病毒[1,2,8]。
Cohen的病毒定义没有引入用户的意见,因此,根据判不准定理有结论:
不存在一个算法能够准确识别病毒。
事实确实如此,下面引用的是Cohen关于不能检测病毒的证明过程[1]。
“为断定一个给定程序P是病毒,必须断定P感染其他程序。
这是不可判定的,因为P能够调用判断过程D并且感染其他程序,当且仅当D断定P不是病毒。
我们由此断定一个程序通过检查一个病毒的外表来区分病毒与其他程序是不可行的。
下面是对程序V的一个修改,作为D的不可判定性例子,我们使用了一个假定的判断过程D,D返回true当且仅当其参数是一个病毒。
”
programcontradictory-virus:
=
{...
main-program:
=
{if~D(contradictory-virus)then
{infect-executable;
iftrigger-pulledthendo-damage;
}
gotonext;
}
}
记上述代码为CV。
如果D断定CV是病毒,CV将不感染其他程序,所以不是病毒。
如果D断定CV不是病毒,CV将感染其他程序,所以是病毒。
因此,假定的过程D是自相矛盾的,通过外表来准确断定病毒是不可判定的。
”
3用户意愿
为准确描述用户的意见,这里提出“用户意愿”概念。
用户意愿代表着用户的想法,理论上我们可以根据实际需要,定义各种各样的用户意愿。
本文仅讨论用户对程序访问文件的意愿。
用户意愿是用户发布的文件访问授权,表示同意某程序以某模式访问某文件。
例如,用户操作程序Word,通过打开文件对话框选择了只读文件doc,那么,用户意愿就是允许程序Word以只读模式访问文件doc。
用户意愿强调授权信息的真实性,即这种访问授权确实是用户本人发布的,而不是程序伪造的。
定义1一个用户意愿是用户发布的一个文件访问授权,表示授权程序p以模式m访问文件f,记为(p,f,m)。
用户授予程序某种访问权,程序可以长期性拥有这种访问权,也可以只是临时性的获得。
对应的,将用户意愿区分为静态意愿、动态意愿。
定义2如果用户授权程序p以模式m访问文件f,其有效时间是永久性的,那么,用户意愿(p,f,m)称为静态意愿。
例如,用户希望系统启动后自动运行某日程安排程序MySchedule,那么其意愿“授权操作系统只读访问文件MySchedule”就是一种静态意愿。
除非用户后来改变了这种授权,否则,每次系统启动时都会自动运行MySchedule。
定义3如果用户授权程序p以模式m访问文件f,其有效时间是直到文件关闭,那么,用户意愿(p,f,m)称为动态意愿。
用户与程序的交互过程中,其发布的文件访问授权通常是动态意愿。
例如,用户操作程序Word编辑文档doc,用户希望的是当他授权Word打开doc时,Word才能访问doc,关闭doc后,Word不能访问doc。
定义4用I表示用户意愿的集合,用Fall表示计算机上所有文件的集合。
称Fin={f|pm(p,f,m)I}为意愿内文件集合,Fout=Fall-Fin为意愿外文件集合。
计算机运行过程中,用户意愿的集合随时间在变化,相应地,Fin、Fout也在变化。
根据经验,|Fout|10000,|Fin|10,并且Fin随时间变化的幅度很小。
特殊情况下,例如扫描文件系统,Fin可能接近或者等于Fall。
读者或许从字面上理解“用户意愿”,认为意愿是一种主观想法,具有强烈的不确定性:
对不同的用户来说,同一件事情可能有不同的意愿,甚至相反的意愿。
下面作进一步澄清。
用户意愿是由用户进行的工作明确决定的。
例如,用户运行程序Word编辑文件f1,这决定了一个动态意愿(Word,f1,读写),即授权Word以读写模式访问文件f1;随后,用户关闭了f1,这决定了取消一个动态意愿(Word,f1,读写);再后来,用户编辑文件f2,这决定了一个动态意愿(Word,f2,读写)。
静态意愿也是明确的,由用户的需要唯一决定,前面解释静态意愿的定义时已经举过例子。
这可表述为以下性质。
性质用户意愿是明确的,动态意愿由用户进行的工作唯一决定,静态意愿由用户的需要唯一决定。
4病毒的新定义及性质
4.1定义
有了“用户意愿”概念,就可以准确描述用户的意图,而从代码的执行行为是否符合用户意愿角度则可以定义损害性。
因此,可以以是否遵循用户意愿作为病毒判断标准。
定义以下记号:
p、p’:
任意的程序。
m、m’:
任意的文件访问模式。
ACCESSP:
ACCESSP={(f,m)|程序p以模式m访问了文件f}。
定义5一个程序p是显式病毒(简称EV),当且仅当,fm((f,m)ACCESSP(p,f,m)I)。
4.2性质
根据EV的定义,有以下覆盖能力结论。
覆盖能力定理1EV涵盖了所有攻击Fout中文件的恶意程序,以及攻击Fin中文件的两类恶意程序:
1)不按照用户授权的模式进行访问;2)访问其他程序被授权访问的文件。
【证明:
先证明第一条结论:
EV涵盖了所有攻击Fout中文件的恶意程序。
p,假设p攻击了Fout中的文件。
fm((f,m)ACCESSPfFout)
fm((f,m)ACCESSPfFin),
又Fin={f|pm(p,f,m)I},
fm((f,m)ACCESSP(p,f,m)I)
p是EV。
下面证明第二条结论。
1)p,假设p不按照用户授权的模式访问Fin中的文件。
fmm’((f,m)ACCESSP(p,f,m)I(p,f,m’)Imm’)
fm((f,m)ACCESSP(p,f,m)I)
∴p是EV。
2)p,假设p访问程序p’被授权访问的文件。
fp’m((f,m)ACCESSP(p,f,m)I(p’,f,m)Ipp’)
fm((f,m)ACCESSP(p,f,m)I)
p是EV。
证毕!
】
根据传统病毒的定义,病毒的感染环节一定要首先分析程序文件,发现适合感染后一定要修改该程序文件。
由于程序文件是稳定的对象,用户不会授权程序对它进行修改,狭义病毒的这种读/写文件访问不属于用户授权范围。
因此,狭义病毒属于EV。
同样道理,蠕虫、木马为了能够在计算机上永久驻留,必须将自身以单独的文件形式或者寄生在其他文件中的形式保存在系统中。
大部分的蠕虫、木马是这样的,也属于EV。
这可表述为以下结论。
覆盖能力定理2EV涵盖了狭义病毒,以及涉及文件篡改、文件窃取的蠕虫、木马。
为验证上述结论,我们随机抽取了TrendLab[8]提供的实际病毒案例共255个进行分析。
结果表明,这些病毒在执行过程中都包含了对文件系统的访问操作,特别是大多具有安装环节,在安装环节中修改注册表以保证在系统启动时能够自动运行。
这种文件系统访问操作,是违背用户意愿偷偷进行的,因而都是EV。
覆盖能力定理3EV扩大了传统广义病毒的内涵,涵盖了部分有设计或开发缺陷的程序,如果这种缺陷导致程序进行非授权文件访问。
上述结论可由EV的定义直接得到。
这种范围扩大的重要意义,就在于把这类有缺陷的程序纳入到了需要防御的范畴,更好地满足了用户的需求。
考虑一个例子,为保证机器丢失时信息不泄密,设计这样一个自毁程序:
当连续10次输入登录密码错误时,删除系统中的所有信息。
由于程序设计中存在有缺陷,程序在非预定条件下激活了自毁功能,毁掉了系统的信息,造成了损失。
这样的程序是不是病毒是有争议的,但是需要防御它却是没有争议的。
为覆盖所有的病毒,我们将EV之外的病毒定义为隐式病毒(简称HV)。
定义6一个病毒v是HV,当且仅当,v不是EV。
从文件系统角度看,HV能够带来的后果是有限的,原因在于:
1)只要程序p的攻击对象超出Fin,p就属于EV。
2)相比整个文件系统,Fin通常非常小,HV能够造成的损失也就限定在很小的范围内。
参见图1,小方格区域为Fout,小圆圈区域为Fin。
图1EV、HV攻击范围示意
4.3案例分析
为证实大部分病毒为EV,我们在2004、2006年对TrendLab提供的实际病毒案例进行了三次随机分析,共分析了255个病毒。
分析结果表明,这255个病毒全部为EV,其中传统病毒45个,蠕虫178个,木马32个。
2009年,我们又对1998年以来最具影响力、破坏力的典型病毒进行了分析,共分析了19个病毒。
分析结果表明,17个病毒属于EV,有对文件系统的读写操作和对注册表的修改操作,而CodeRed、SQLSlammer不属于EV。
分析结果见表1,考虑到篇幅限制,仅给出个别病毒的原理分析。
表1著名病毒的主要原理分析
序号
病毒名
病毒类型
主要原理分析
1
CIH
文件病毒
利用VXD技术,直接攻击、破坏PE文件(EXE、DLL文件)。
2
WIN32.FunLove.4099
文件病毒
3
Melissa
宏病毒
4
ILOVEYOU
蠕虫
5
CodeRed
蠕虫
6
SQLSlammer
蠕虫
利用SQLSERVER2000的解析端口1434的缓冲区溢出漏洞,对网络上的SQL服务器进行攻击,该病毒也只存在于内存中。
7
Blaster
蠕虫
8
Sobig.F
蠕虫
9
Bagle
蠕虫
10
MyDoom
蠕虫
11
Sasser
蠕虫
利用LSASS的缓冲区溢出漏洞进行攻击,并感染计算机上的PE文件。
病毒运行后,将自身复制为%WinDir%\avserve.exe,并在注册表的相关启动项中创建:
"avserve.exe"=%WinDir%\avserve.exe,以实现自动启动。
12
HappyTime
蠕虫
13
Nimda
蠕虫
14
Want.Job
蠕虫
15
WhBoy.h
蠕虫
16
Trojan/QQPass
木马
17
win32.hack.huigezi
木马
18
Trojan/PSW.GamePass
木马
19
Trojan/Agent.pgz
木马
图2给出了著名的“熊猫烧香”病毒的感染、传播流程。
该病毒于2006年10月16日爆发,并迅速登上年度病毒之王的宝座,被评为全球病毒史上最具有影响力的病毒之一。
从流程图可以看出,病毒运行会对磁盘文件系统进行访问操作(图中以灰色背景显示),且具有安装和修改注册表的环节。
图2熊猫烧香病毒的感染、传播流程
综合以上案例分析,可以得出:
绝大多数病毒在藏匿、感染、传播和破坏等过程中,都存在着对文件的读写和对注册表的修改。
其原因在于:
病毒为在计算机上永久保留下来,必须把自身的拷贝以文件形式保存起来;病毒为达到自动启动的目的,必须改写注册表文件。
上面案例中的“RedCode”和“SQLSlammer”病毒属于例外,原因是:
它们都是利用缓冲区溢出漏洞,借助于服务器的网络连接(通过某些开着的端口对外大量地发送自己)来攻击其他的服务器,将病毒自身直接从一台电脑内存传播到另一台电脑内存中,它们并不往被攻击服务器的硬盘中写入病毒信息。
它们攻击的对象并非终端计算机用户,而是网络服务器。
5病毒识别算法及讨论
5.1算法定义
病毒识别算法设UA是当前登录系统的用户,p为任意程序,I是用户意愿的集合,IS是用户的静态意愿,(p,f,m)表示“用户授权了程序p以模式m访问文件f”,op(p,f,m)表示“程序p请求以模式m访问文件f”,将目录当作文件看待。
算法步骤如下:
初始化IS;
while(true)do
{等待事件E的发生;
if(E=UA动态授权p以模式m打开文件f)then
{I=I∪{(p,f,m)};break;}
if(E=UA静态授权p以模式m打开文件f)then
{IS=IS∪{(p,f,m)};将IS以文件形式保存在系统中;break;}
if(E=p退出)then
{从I中删除所有的(p,f,m);break;}
if(E=p关闭了文件f&&(p,f,m)I)then
{I=I-{(p,f,m);break;}
if(E=UA取消静态授权(p,f,m))then
{IS=IS-{(p,f,m)};将IS以文件形式保存在系统;break;}
if(E=UA取消动态授权(p,f,m))then
{I=I-{(p,f,m)};break;}
if(E=p发出请求op(p,f,m))then
{if(op(p,f,m)是“读目录名称、属性信息或目录下的文件名称、属性信息”)then
{执行op(p,f,m);break;}
if((p,f,m)I∪IS)then
{执行op(p,f,m);break;}
报警“p是EFM”;
}
}
注意算法中标记为斜体字的语句块,它监控了所有的文件访问请求op(p,f,m),如果(p,f,m)I∪IS就被认为是病毒。
而这正好是EV的判断条件。
因此,直接有以下结论。
识别能力性质如果程序p是EV,那么p一定会被病毒识别算法检测出来。
5.2识别能力的讨论
识别能力性质表明,包括传统病毒在内的显式病毒可以被准确检测出来。
这与“病毒不可准确检测”的著名论断相矛盾。
这是否意味着前人的工作存在错误呢?
其实不然,原因就在于对病毒的定义完全不同。
传统的病毒定义,实质上是定义了一种称为“病毒”的技术,这种定义肯定是不完善的。
原因在于:
首先,技术是中性的,本身不存在善恶,好人用它来造福社会,坏人用它来损人利己;其次,病毒程序设计技术是发展的。
对此,Cohen博士也意识到了,认为“就像任意的新技术一样,病毒是一把双刃剑”[1]。
例如,钩子函数技术被许多恶意软件用来窃取用户账户、密码等,根据狭义病毒定义,使用该技术的程序可以归结为病毒,但是许多正常软件采用该技术使自身功能强大,户使用软件更方便。
6未来工作
应用广义病毒定义进行病毒防御,如果频繁向用户询问其意愿,会造成用户反感,甚至迫使用户放弃该方案。
因此,寻求全面准确的自动获取用户意愿的方案是下一步研究的重点。
此外,广义病毒定义虽然在安全性质、识别能力上比传统的病毒定义有较大突破,但仍然存在不足。
比如,隐式病毒没有给出准确、具体的形式化定义,这也是下一步的努力方向。
7总结
本文以是否违背用户意愿为标准,将广义病毒区分为显式病毒、隐式病毒,并给出了显式病毒的形式化定义和识别算法。
理论分析表明,狭义病毒以及大部分木马、蠕虫均属于显式病毒,实际案例分析也证实了这一点。
本文工作的意义在于从用户意愿角度给出了显式病毒、隐式病毒的定义,指出传统病毒以及大部分木马、蠕虫在理论上是可以准确识别的。
8参考文献
[]PrabhatK.Singh,ArunLakhotia,Analysisanddetectionofcomputervirusesandworms:
Anannotatedbibliography,ACMSIGNPLANNotices,vol.37,No.2,pp.29-35,Feb.2002
[2]F.Cohen,"ComputerViruses-TheoryandExperiments,"ComputersandSecurity,6,1984
[3]DavidM.Chess,SteveR.White,AnUndetectableComputerVirus,InVirusBulletinConference,September2000
[4]AdlemanLM.Anabstracttheoryofcomputerviruses.Advancesincryptology-CRYPTO'88Proceedings,403(Aug,1988)p354-374.Springer-Verlag
[5]F.Cohen,"ComputationalAspectsofComputerViruses,"ComputersandSecurity,vol.8,pp.325-344,1989
[6]FredCohen,ACaseforBenevolentViruses,ASPPress,1991
[7]VesselinBontchev,Are'Good'ComputerVirusesStillaBadIdea?
Proc.EICAR’94Conf.,pp.25-47,1994
[8]AdlemanLM.Anabstracttheoryofcomputerviruses.Advancesincryptology-CRYPTO'88Proceedings,403(Aug,1988)p354-374.Springer-Verlag.
附1
FormalDefinitionofGeneralizedVirusandItsIdentifyingAlgorithm
HeHongjun,LuoLi,DongLiming,HeXiuxiong,HouFangyong,ZhongGuangjun
ComputerSchoolofNationalUniversityofDefenseTechnology,ComputerDepartment
AbstractThedefinitionofmalicioussoftwareisahotinsecuritydomain,malicioussoftwareincludesvirus,wormandTrojanhorse.Thereisnowonlyformaldefinitionofvirus,andnowidelyacceptedformaldefinitionsofwormandTrojanhorse.Accordingtodefinitionoftraditionalvirus,thereisnoalgorithmtoidentifyvirusdefinitely.Th
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 广义 病毒 形式化 定义 识别 算法 概要