首页> 中国专利> 一种基于本体的计算机病毒分析系统及其特征提取方法

一种基于本体的计算机病毒分析系统及其特征提取方法

摘要

本发明提供一种基于本体的计算机病毒分析系统及病毒特征提取方法,其在Pin平台上获得关键系统调用及内存信息,根据已有知识提取数据依赖关系与控制依赖关系,构建行为依赖图来表示描述病毒语义的行为特征,以此建立计算机病毒本体系统,在病毒样本增加的情况下实现自适应的特征学习与本体构建。本发明通过提取计算机病毒的特征与本体构建使得细粒度地发现病毒行为与指令之间的关系,描述计算机病毒,从而达到准确分析与判断计算机病毒的目的。

著录项

  • 公开/公告号CN103679034A

    专利类型发明专利

  • 公开/公告日2014-03-26

    原文格式PDF

  • 申请/专利权人 南开大学;

    申请/专利号CN201310750929.1

  • 申请日2013-12-26

  • 分类号G06F21/56;

  • 代理机构

  • 代理人

  • 地址 300071 天津市南开区卫津路94号

  • 入库时间 2023-12-17 01:05:13

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-03-21

    未缴年费专利权终止 IPC(主分类):G06F21/56 专利号:ZL2013107509291 申请日:20131226 授权公告日:20160413

    专利权的终止

  • 2016-04-13

    授权

    授权

  • 2014-04-23

    实质审查的生效 IPC(主分类):G06F21/56 申请日:20131226

    实质审查的生效

  • 2014-03-26

    公开

    公开

说明书

技术领域

本发明属于计算机病毒分析领域,具体涉及一种基于本体的计算机病毒分析系统及其特 征提取方法。

背景技术

计算机病毒(Computer Virus)是编制者在计算机程序中插入的破坏计算机功能或者破坏数 据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码。与医学上的“病毒” 不同,计算机病毒不是天然存在的,是某些人利用计算机软件和硬件所固有的脆弱性编制的 一组指令集或程序代码。它能通过某种途径潜伏在计算机的存储介质(或程序)里,当达到某 种条件时即被激活,通过修改其他程序的方法将自己的精确拷贝或者可能演化的形式放入其 他程序中,从而感染其他程序,对计算机资源进行破坏。

目前,常用的病毒检测方法为特征代码法。特征代码法是检测已知病毒的最简单、开销 最小的方法。它的实现是采集已知病毒样本,建立病毒数据库。当病毒检测开始时,打开被 检测文件,在文件中搜索,检查文件中是否含有病毒数据库中的病毒特征代码。如果发现被 检测文件中存在病毒特征代码,由于特征代码与病毒一一对应,便可以断定,被查文件中患 有何种病毒。

现今,计算机病毒分析与检测工具已经实用化,尤其是通过对病毒样本的分析、提取特 征码以及病毒样本性质的计算机病毒检测工具。这些计算机病毒检测工具是使用统计分析、 模糊识别与机器学习方法,寻找样本的特征值,结合虚拟机技术和启发式扫描技术,检测特 征码的存在。这些计算机病毒检测工具应用图形相似和/或二次检测等方法,根据程序之间相 似度即与特征相似度对病毒进行家族分类,其中由于部分传统病毒有其明显特征码且变化较 少,人们对某些病毒形态了解较深刻,所以在特征码明显或特征值可以较为完整描述病毒及 病毒变种性质的情况下,病毒检测工具效果良好。

但是随着智能技术发展,病毒编制与病毒检测永远都是一个事务的两个方面,随着新病 毒与病毒变种不断出现,加之病毒变形技术的使用,在特征码不明显,或特征值不能完整描 述病毒及病毒变种性质的情况下,现有计算机病毒检测容易造成检测失败。

发明内容

为了解决上述问题,本发明人针对现有技术的不足,经过多次设计和研究,本发明提供 了一种基于本体的计算机病毒分析系统及其特征提取方法,该发明能够达到适应病毒变种且 较为准确分析与判断计算机病毒的目的。

依据本发明的第一方面,提供一种基于本体的计算机病毒分析系统,其在Pin平台上获 得关键系统调用及内存信息,根据已有知识提取数据依赖关系与控制依赖关系,构建行为依 赖图来表示描述病毒语义的行为特征,以此建立计算机病毒本体系统,在病毒样本增加的情 况下实现自适应的特征学习与本体构建。

优选地,在Pin平台上运行处理获得待检测样本的含有关键系统调用及内存信息的轨迹 文件,根据所建立描述典型行为的规则库的内容,分析轨迹文件提取数据依赖关系与控制依 赖关系。

进一步地,构建有向图来表示描述病毒语义的行为特征,并与规则匹配,得出各个规则 的表现程度。

更优选地,以得到的各个规则的表现程度来建立计算机病毒本体,对待测样本通过相似 度计算,确定在病毒本体知识树的位置,给出系统分析的结果。

具体地,基于本体的计算机病毒分析系统包括如下模块:

(1)Pin平台处理模块,其对计算机病毒样本使用Pin平台上编写的程序进行处理,输 出为轨迹文件,轨迹文件包含病毒样本的关键系统调用流程及内存信息;

(2)具有自动更新的功能规则库模块,其使用经验知识,通过研究计算机病毒典型行为 的编程实现手段,提取数据依赖关系与控制依赖关系来表示已知计算机病毒的典型行为;

(3)规则匹配模块,规则匹配模块对Pin平台处理后输出的样本轨迹文件进行逐行分析, 得出该样本轨迹文件的全部函数与数据的顺序与依赖关系,与规则库中的规则进行匹配,输 出匹配具体结果,使用本体知识对匹配具体结果进行处理与分类;

(4)本体管理模块,其具有构建与查询功能,所建立的本体以OWL格式文件的形式存在; 所建立的本体具有一般本体的通用性,对已知病毒利用已知特征,使用本体知识通过protégé  api手动构建本体;

(5)本体的自适应学习模块,对于不断增加的病毒样本,使用聚类算法,在病毒本体知 识树添加新出现的病毒特征与病毒种类;

(6)本体相似度计算模块,对给出规则匹配结果的病毒样本,进行属性的相似度计算, 给出病毒本体知识树中位置,得出病毒分析的最终结果。

优选地,本体管理模块实现了手动的类别、属性、实例的添加或删除或修改,并能实现 病毒查询的功能;

依据本发明的第二方面,提供一种基于上述计算机病毒分析系统的计算机病毒特征提取 方法,所述计算机病毒特征提取方法包括以下步骤:

1)规则库模块中的规则为关键各种典型病毒行为编写方法的描述,规则库模块中的规则 是关键系统调用之间的协调与组合,采用序列描述表示API函数的出现次序与各API函数之 间的参数相等以及因果的逻辑关系;

2)使用Pin提供的API编写Pintool来提取运行中的代码特征,输出为样本轨迹文件, 样本轨迹文件包含了样本的按时序排列的关键系统调用及内存信息;

3)规则匹配模块对Pin平台处理后输出的样本轨迹文件进行逐行扫描,将规则库中的相 邻关系表示为矩阵,按矩阵中的关系有无出现,使用数据结构中的有向图来表示样本里得的 关键系统函数与数据的顺序与依赖关系;

4)有向图与规则库中的规则进行匹配,得出与各个规则的匹配形态,以表示行为的出现 顺序与程度,所有行为的匹配结果记录在特征文件中。

优选地,所述使用Pin提供的API编写Pintool来提取运行中的代码特征,为使用Pin 平台处理模块对未知文件样本处理。

本发明所提供的基于本体的计算机病毒分析系统及其病毒特征提取方法在Pin平台上获 得关键系统调用、内存信息,根据已有知识提取数据依赖关系与控制依赖关系,构建行为依 赖图来表示描述病毒语义的行为特征,以此建立计算机病毒本体系统,在病毒样本增加的情 况下实现自适应的特征学习与本体构建。因而在病毒样本增加的情况下实现了自适应的特征 学习与本体聚类构建算法,从而达到适应病毒变种,较为准确分析与判断计算机病毒的目的。

具体实施方式

下面将结合本发明实施例中的各个模块,对本发明实施例中的技术方案进行清楚、完整 地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实 施例,都属于本发明保护的范围。另外地,不应当将本发明的保护范围仅仅限制至下述具体 模块或具体参数。

基于本体的计算机病毒分析系统包括如下模块:(1)Pin平台处理模块,它对计算机病 毒样本使用Pin平台上编写的程序进行处理,输出为轨迹文件,轨迹文件包含病毒样本的关 键系统调用流程、内存信息。(2)具有自动更新的功能规则库模块,使用经验知识,通过研 究计算机病毒典型行为的编程实现手段,使用提取数据依赖关系与控制依赖关系表示已知计 算机病毒的典型行为。(3)规则匹配模块,规则匹配模块对Pin平台处理后输出的样本轨迹 文件进行逐行分析,得出该文件的全部函数与数据的顺序与依赖关系,与规则库中的规则进 行匹配,输出匹配具体结果,匹配具体结果使用本体知识进行处理与分类,包括后续与本体 相关的三个模块。(4)本体管理模块,具有构建与查询功能,所建立的本体以OWL格式文件 的形式存在,其具有一般本体的通用性,对已知病毒利用已知特征,使用本体知识通过protégé  api手动构建本体。实现了手动的类别,属性,实例的添加,删除,修改等操作,在此基础 上实现病毒查询的功能。(5)本体的自适应学习模块,对于不断增加的病毒样本,使用聚类 算法,在病毒本体知识树添加新出现的病毒特征与病毒种类。(6)本体相似度计算模块,对给 出规则匹配结果的病毒样本,进行属性的相似度计算,给出病毒本体知识树中位置,得出病 毒分析的最终结果。

基于本体的计算机病毒分析系统病毒特征提取方法包括以下步骤:

1)规则库模块中的规则为关键各种典型病毒行为编写方法的描述,是关键系统调用之间 的协调与组合,采用序列描述表示API函数的出现次序与各API函数之间的某些参数相等以 及因果的逻辑关系。

2)使用Pin提供的API编写Pintool来提取运行中的代码特征,即使用Pin平台处理模 块对未知文件样本处理,输出为轨迹文件,包含了样本的按时序排列的关键系统调用、内存 信息。

3)规则匹配模块对Pin平台处理后输出的样本轨迹文件进行逐行扫描,将规则库中的相 邻关系表示为矩阵,按矩阵中的关系有无出现,使用数据结构中的有向图来表示样本里得的 关键系统函数与数据的顺序与依赖关系。

4)有向图与规则库中的规则进行匹配,得出与各个规则的匹配形态,以表示行为的出现 顺序与程度,所有行为的匹配结果记录在特征文件中。

为使本发明的目的、技术方案和优点更加清楚,下面将对本发明实施方式作进一步地详 细描述。

为了达到适应新病毒与病毒变种,较为准确分析与判断计算机病毒的目的,在特征码不 明显,或特征值不能完整描述病毒及病毒变种性质的情况下,提高检测正确率,本发明实施 例提供了一种基于本体的计算机病毒分析系统及计算机病毒特征提取方法,详见下文描述:

1、本方案中Pin平台处理模块,其实现的关键步骤是收集了病毒行为有关WinAPI函数, 根据其原型中参数个数与类型编写插装函数,使得Pin能查找与病毒分析有关的有效的函数 对象。

Pin是Intel公司提供的程序插装平台工具,支持IA-32,Intel(R)64和IA64架构上 的Linux和Windows可执行程序,网址为pintool.org/。Pin通过在可执行程序的任何地方 插入C或C++编写的任意代码,使得可以将Pin附加到进程上。Pin执行具体的插装任务需通 过定义Pintool来实现。

本模块使用Pin提供的API编写Pintool来实现提取运行中的病毒代码特征,包括以下 编写步骤:

1)初始化:首先调用PIN_InitSymbols,之后调用PIN_Init初始化Pin系统。打开输出 文件流,以备后续结果输出。

2)注册回调函数:使用IMG_AddInstrumentFunction注册自定义回调函数,对按本方法 中收集的与病毒行为有关的函数列表,查找得到有效的函数对象,进行插装操作,插装函数 为依据WinAPI函数原型中参数个数和类型编写。

3)使用Pin_StartProgram()启动被插装的代码,输出到结果文件。

Pin工具本身提供使用手册,其常规使用方法为本领域技术人员使用者所公知,本发明 实施例在此不再赘述。

2、具有自动更新的功能规则库模块,使用经验知识,通过研究计算机病毒典型行为的编 程实现手段,使用提取数据依赖关系与控制依赖关系表示已知计算机病毒的典型行为。规则 为关键各种典型病毒行为编写方法的描述,是关键系统调用之间的协调与组合,采用序列描 述表示API函数的出现次序与各API函数之间的某些参数相等以及因果的逻辑关系。

如果数量较多的样本在下述步骤3的处理过程中,多次出现新的API组合,根据其距离 已有规则的重要程度与距离,设定阈值,使得新的行为增加到规则库中。

3、规则匹配模块对Pin平台处理后输出的样本轨迹文件进行逐行扫描,将规则库中的相 邻关系表示为矩阵,按矩阵中的关系有无出现,使用数据结构中的有向图来表示样本里得的 关键系统函数与数据的顺序与依赖关系。有向图与规则库中的规则进行匹配,也就是(2)中 的表示序列,得出与各个规则的匹配形态,以表示行为的出现顺序与程度,所有行为的匹配 结果记录在特征文件中,输出为特征文件,输出结果再使用本体知识进行处理与分类,包括 后续与本体相关的三个模块。

与本体相关的三个模块,分别是本体管理模块,本体自适应学习模块与本体相似度计算 模块。这些模块都是在netbeans平台下,采用java语言进行编写,设计了下述算法对进行 相似程度的计算,通过protégé api进行对本体的操纵,实现本体的构建,查询和管理。

4、本体管理模块,具有构建与查询功能,所建立的本体以OWL格式文件的形式存在,其 具有一般本体的通用性,对已知病毒利用已知特征,使用本体知识通过protégé api手动构 建本体。实现了手动的类别,属性,实例的添加,删除,修改等操作,在此基础上实现病毒 知识查询的功能。

病毒查询查询针对某具体的病毒知识进行查询,主要通过关键字查询,所使用关键字种 类为名称关键字和功能关键字。

1)当关键字为病毒名称时,用获取的关键字和病毒知识树的病毒名称进行比较,获得所 需的病毒,并显示病毒的父节点,子节点以及属性等详细信息。

2)当关键字为功能名称时,用获取的关键字和病毒本体知识树中的对象属性和数据属性 进行比较,显示所查询到得属性名称,并通过显示其domain和range来丰富查询内容

通过上述步骤,可根据需求对本体中已经存在的病毒知识进行查询。

5、本体的自适应学习模块,对于不断增加的病毒样本,使用聚类算法,在病毒本体知识 树添加新出现的病毒特征与病毒种类,使得病毒本体更加完善,主要有下面两种处理方法: 类内实例产生明显的聚类现象,说明有新类的生成;不同的类(兄弟之间)所包含的实例的 距离变小,则重新聚类,可能产生新的类。所设计病毒本体的自适应学习算法主要步骤如下:

设定阈值s、a、b。

2)当某一类中的实例达到一定的数量s时,对这些实例进行聚类,计算聚类中心的距离, 当着距离大于a时,则将这些实例分裂,并添加新的病毒分类到树中。

3)计算相邻两个类(兄弟节点之间)所包含的实例之间的相似程度,若相似程度大于阈 值b,并且大于原来所在类的实例之间的相似程度,则重新调整实例的位置,产生新的类。

6、本体相似度计算模块,对给出规则匹配结果的病毒检测样本,进行属性的相似度计算, 给出病毒本体知识树中位置,得出病毒分析的最终结果。

其中使用样本与病毒属性的相似度计算方法。病毒首先具有粗细粒度行为特征,其次具 有完成这次行为特征它需要调用的API序列。依据已有知识对典型病毒建立包含行为间层次、 逻辑、时序关系以及行为的API等内容的行为特征树。特征树的上层节点为大粒度行为,子 节点是组成父节点的小粒度行为,叶节点是为完成这个行为调用的API方法,叶节点之间与 子节点之间有与或关系,调用顺序等时序关系。由未知样本的规则匹配结果,根据规则时序 关系与API信息,建立样本特征树,比较样本特征树在病毒特征树中的覆盖程度,计算样本 特征树与病毒特征树的相似程度,所述具体步骤如下:

设定整数m和n,分别代表相同节点个数和不同节点个数。

从根节点始,采用深度优先遍历算法,每次比较的两个节点处于树的同一位置上,针对 某一节点只有一棵树存在,则视为不同节点,n加1。即父节点的值相同,深度相同,比较两 个节点的值,不同则n加1。若相同,则转(3)。

对两个节点的子节点,检验节点值相等,比较时序关系,验算与或关系,若都相同,则 m加1;否则,n+1。

得出两者的相似度为Sim(V1,V2)=m/(m+n)(V1为待测样本,V2为病毒)。

通过上述步骤完成了对病毒本体知识树中所有病毒与新样本的比较,得到一组相似度, 确定最大相似度在病毒本体树的位置,给出分类结果与确定特征。

综上所述,本发明实施例提供了一种基于本体的计算机病毒分析系统及计算机病毒特征 提取方法,本发明在Pin平台上运行处理获得待检测样本的含有关键系统调用及内存信息的 轨迹文件,根据所建立描述典型行为的规则库的内容,分析轨迹文件提取数据依赖关系与控 制依赖关系,构建有向图来表示描述病毒语义的行为特征,并与规则匹配,得出各个规则的 表现程度,同样以此建立计算机病毒本体,对待测样本通过相似度计算,确定在病毒本体知 识树的位置,给出系统分析的结果。在病毒样本增加的情况下实现了自适应的特征学习与本 体聚类构建算法,从而达到适应病毒变种,较为准确分析与判断计算机病毒的目的。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何 熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵 盖在本发明的保护范围之内。本领域普通的技术人员可以理解,在不背离所附权利要求定义 的本发明的精神和范围的情况下,可以在形式和细节中做出各种各样的修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号