[发明专利]基于软件控制流特征的计算机恶意软件检测新方法有效
申请号: | 201310069852.1 | 申请日: | 2013-03-05 |
公开(公告)号: | CN103177215A | 公开(公告)日: | 2013-06-26 |
发明(设计)人: | 李琪林;赵宗渠;王俊峰;肖杰;苗长胜;余明书;冯军;屈鸣;白泰 | 申请(专利权)人: | 四川电力科学研究院;国家电网公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F17/30 |
代理公司: | 成都信博专利代理有限责任公司 51200 | 代理人: | 舒启龙 |
地址: | 610071 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 软件 控制 特征 计算机 恶意 检测 新方法 | ||
技术领域
本发明涉及计算机信息安全中的恶意软件的检测方法,特别是对于恶意软件设计者采用模糊和多态技术来隐藏代码外部信息和局部特征时,其检测结果具有良好的稳定性的恶意软件检测方法。
背景技术
随着计算机科学在社会各个领域的广泛应用,计算机软件的安全问题受到人们越来越多的关注。建立可信的软件系统成为维护计算机信息安全的一种有效手段,对于恶意软件的检测成为软件可信性分析的核心研究方向。
传统的基于特征码的检测方式需要通过专用数据库来更新和维护事先提取相关特征码,通过扫描引擎查找软件的局部信息,并使用字符串匹配方法来对比这些信息和特征码的相似度,根据对比结果来得出检测结论。这种检测方法被广泛应用于现有的杀毒软件和系统防护软件中,属于比较成熟的技术,现在开发重点主要集中在提高代码的扫描速度和特征码提取的准确度。
近年来提出的非特征码恶意软件检测方法中,有些是采用启发式分析或是基于软件行为来判断正常软件和恶意软件,这些方法在没有软件先验信息的情况下,对zero-day恶意软件有一定的检测效果。还有一些研究是通过在软件特殊结构属性信息来分类软件,比如通过提取PE文件的头部信息进行对比分类,在正常运行环境也取得了不错的检测结果。这些方法都是通过对软件的局部信息挖掘,期望得到能够将软件正确分类的指标集,然后用指标集检测软件。
上述的恶意软件检测方法分别存在以下问题:
第一,基于特征码的检测方法需要获得恶意软件的特征码,并将不断增加的特征码到用户端的数据库,对日益庞大的数据库维护成为使用者付出的代价。该检测方法最大的缺点是难以检测未知的恶意软件,用户不能够及时处理新的安全威胁。
第二,采用启发式分析或是基于软件行为检测方法是通过获得代码的特殊局部信息对软件进行分类,但是对于使用模糊和多态的恶意软件,这种局部特征往往不固定,因此该检测方法在判断这些恶意软件时准确率不够。
第三,使用标准格式信息来区分软件的检测方法,利用的是软件的外部描述信息,这些信息大多不直接涉及软件的行为,对于熟悉该方法的恶意软件设计者,能够通过对格式信息的特殊处理来大幅度降低该方法的检测效果。
发明内容
本发明的目的是提供一种识别准确率高、检测结果稳定性好的基于软件控制流特征的恶意软件检测方法。
本发明的目的是这样实现的:一种基于软件控制流特征的恶意软件检测方法,包含4个主要步骤:
1)对PE格式文件即Portable Executables格式文件进行反汇编:
采用递归下降算法来处理文件,以有效区分指令和数据,并采用基于x86汇编指令集创建指令序列;
2)根据控制流选择代码的基本块
软件控制流是指反汇编代码中的基本块所形成的控制流结构;基本块是由若干虚拟地址连续的指令组成,它的特点是只有一个入口地址和一个出口地址,即这些指令执行时要么都不执行,要么按地址依次全部执行;基本块的构成采用断点判别法来实现,即首先确定整个软件代码序列中的断点地址,在相邻断点地址之间的指令序列则形成一个基本块;
3)软件特征表示和筛选
将软件代码序列中的基本块作为代表软件的特征类型,采用布尔型向量来表达软件特征:统计软件样本中出现的所有n个基本块并编号分别为(0,1,2,…,n-1),所有软件使用一个n维的布尔向量来表示,当软件包含编号为i的基本块时,向量的第i+1表示为1,否则表示为0;并通过软件特征在文件中出现的频率来筛选特征,最优先的选择区间为[0.2×m,0.6×m],其中m是所有样本中不同特征的数量;
4)通过数据挖掘算法判断恶意软件和正常软件:
4.1)通过数据挖掘算法产生训练集结果:
该过程是生成训练集结果和判断规则的过程;首先对大量的正常软件和恶意代码样本进行处理,样本文件按前面的特征表示与筛选生成的数据集作为输入,通过机器学习过程,在以下选用的数据挖掘算法中得到训练集结果;数据挖掘算法采用基于决策树的C4.5算法,基于Random Forest的分类算法和贝叶斯分类算法中的基于Bagging算法之一种;并按m fold交叉验证产生分类规则;训练集结果产生的这些分类规则作为之后检测PE文件的依据;
m fold交叉验证:在对文件进行分类时,将所有文件按随机方式平均分为m份,将其中m-1份作为机器学习的材料,而另外1份作为测试目标,这样进行m次,使每一份都能得到测试;
4.2)产生测试结果:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川电力科学研究院;国家电网公司,未经四川电力科学研究院;国家电网公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310069852.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:交错PWM控制电路
- 下一篇:高效率XC/DC电源转换电路