[发明专利]一种恶意代码检测方法有效
申请号: | 200810089576.4 | 申请日: | 2008-04-08 |
公开(公告)号: | CN101266550A | 公开(公告)日: | 2008-09-17 |
发明(设计)人: | 毛剑;韦韬;戴帅夫;邹维;王铁磊;张超;赵新建;李佳静 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F9/45 | 分类号: | G06F9/45;G06F21/00;H04L29/06 |
代理公司: | 北京君尚知识产权代理事务所 | 代理人: | 余长江 |
地址: | 100871*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 恶意代码 检测 方法 | ||
技术领域
本发明涉及一种基于语义的恶意代码检测方法,可以完整地刻画基于函数调用的攻击行为,并有效地识别二进制可疑程序中的恶意行为。属于互联网安全技术领域。
背景技术
随着网络和计算机技术的快速发展,恶意代码的种类、传播速度、感染数量和影响范围都在逐渐增强。恶意代码已经成为威胁互联网安全和计算机系统安全的重要因素,对恶意代码的分析和检测是所有安全策略中的重要环节。
传统的最为广泛使用的恶意代码检测技术是基于特征码的检测技术。它提取恶意代码中某个二进制片断作为该恶意代码的“指纹”,当反病毒软件扫描文件时,将当前的文件与病毒特征码库进行对比,通过字串匹配方式判断是否有文件片段与已知样本吻合,从而完成对目标系统进行检测和防护的目的。
但是这种方法不能识别特征未知的恶意代码,而且新病毒的特征码或“指纹”的发布永远落后于病毒的传播。而且由于不同的语法表达可能有相同的语义,因而传统的指纹匹配检测方式很容易被绕过,传统的检测方法也不能识别同一个恶意代码的多态或变形。
为了解决基于特征码检测的方法所存在的这些问题,本发明采用基于语义的恶意代码分析方法。所谓语义,是指高于语法层次的对语言的理解,它抽象的反映了语言的含义。与之不同的是,语法更注重于语言的组织与实现。因此,同一个语义可能有不同的语法表达方式来表达。
基于语义的方法使用抽象语义来分析并刻画程序的行为。这样,只需要记录恶意行为的语义层次的特征,那么通过语法层次上修改代码但是保持语义的新的恶意代码仍然能够被检测出来。而且未知的软件如果有代码片段具有恶意行为的语义特征,那么可以认为它是恶意软件。从而,基于语义的检测方法,可以对抗对语法层次上代码的修改和检测未知的恶意软件。
本发明采用有穷状态自动机来刻画恶意代码的抽象语义。
有穷状态自动机(Finite States Automata,FSA)是一个五元组(Q,A,δ,q1,F),其中Q表示状态集,并且是非空有限集合;A表示输入字母表,是所有可能的输入字母的集合;δ表示一个状态转移函数,定义域是Q×A,值域是Q,也就是说,任意的当前状态,接受任意一个输入字母,根据状态转移函数可以到达另外一个状态或者停机(当当前没有输入字母了或者状态转移函数对当前状态以及输入字母无定义时停机);q1表示状态集Q中一个特定的元素,称为初始状态;F表示Q的一个子集,称为接受状态集。准确的描述可以参考《可计算性与计算复杂性导引》(第二版),张立昂著,北京大学出版社,2004年7月,93页。
对于一组给定的输入字母,从初始状态q1开始,根据状态转移函数,最后停机在某一状态。那么根据这个自动机,可以判断一个输入字符串(输入字母序列)最终能否到达接收状态。所有能到达接收状态的输入字符串称为该有穷状态自动机接受的语言。非形式化的说,自动机的作用就是描述了不同状态之间转换的过程,能够判断一个给定的输入串能否从一个初始状态到达一些特定的状态。
任何一个有穷状态自动机都可以用一个有向图来表示,其中只需要把状态当作节点,把输入字母当作边,一个状态转移就得到从一个节点到另一个节点的边。
本发明另外使用下推自动机来刻画待检测程序的抽象语义。
下推自动机(PDA)是一个7元组(Q,A,Ω,δ,q1,X0,F)。其中,Q表示非空有穷的状态集;A表示输入字母表;Ω表示栈字母表;δ表示函数(或状态转移函数),定义域是Q×(A∪ε)×Ω,值域是Q×Ω*(Ω*代表栈字母表Ω所组成的字符串),也就是说,从任意的当前状态,接受一个输入字母或0个输入字母(ε代表空的),以及当前栈顶字母,该动作函数就可以更改当前状态,同时把栈顶的字母更改为一个字符串;q1表示初始状态;X0表示初始的栈顶字母;F表示状态集Q的一个子集,称为接受状态集。准确的描述可以参考《可计算性与计算复杂性导引》(第二版),张立昂著,北京大学出版社,2004年7月,121页。
对于一组给定的输入字母,从初始状态q1开始,根据状态转移函数,最后停机在某一状态。那么,根据这个下推自动机,可以判断一个输入字符串最终能否到达接收状态。所有能到达接收状态的输入字符串称为该下推自动机接受的语言。非形式化的说,下推自动机是在有穷状态机上加一个“先进后出”的栈。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810089576.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:印刷版材料和印刷版的制作方法
- 下一篇:新的内切核糖核酸酶