网络环境下被动式多维度主机指纹模型构建方法及其装置与流程

文档序号:11589838阅读:248来源:国知局
网络环境下被动式多维度主机指纹模型构建方法及其装置与流程

本发明属于网络安全技术领域,特别涉及一种网络环境下被动式多维度主机指纹模型构建方法及其装置。



背景技术:

随着互联网的飞速发展,人们的社会活动越来越倾向于网络化,网络成为了传播、存储和交互各种信息的新平台。根据中国互联网络信息中心(cnnic)在2016年公布的中国互联网络发展状况统计报告显示,截止2016年6月,我国网民规模达到7.10亿,上半年新增网民2132万人,增长率达到51.7%,与2015年底相比提高1.3个百分点,超过全球平均水平3.1个百分点。互联网的普及给人们的生活带来了极大的方便,也在很大程度上改变了人们的生活方式。然而随之而来的大量安全隐患也开始不断出现。2015年3月,苹果在线商店服务中断长达11个小时,市值蒸发130亿美元;2016年7月,twitter被黑客攻击,超过3200万twitter用户的登录信息遭泄露;2016年上半年,一名俄国黑客盗取了2.723亿邮箱信息,其中包括4000万个雅虎邮箱、3300万微软邮箱以及2400万个谷歌邮箱。因此,主机识别成为了当前研究的一个热门问题。

主机识别对于计算机网络犯罪取证、抵御匿名攻击等具有重要意义。网络攻击者和窃密者往往会实施网络伪装以逃避追查,由于数据报报头在网络中传输时的透明性,上网主机可以修改自身的网络标识,因此依赖ip地址、mac地址等手段已不能确切标识网络主机。传统的方法大多是通过获取主机硬件指纹和主机软件环境指纹对主机进行识别,然而这些方法在工作模式上具有较大的局限性,容易受到网络过滤设备、网络拓扑结构等因素的影响,导致获取特征信息不足,在探测准确度上存在一定的问题。因此,需要对主机多个维度特征进行提取、融合,构建多个维度主机指纹库,全面描述主机,提高主机识别准确率。



技术实现要素:

针对现有技术中的不足,本发明提供一种网络环境下被动式多维度主机指纹模型构建方法及其装置,有效解决特征获取不足导致识别主机准确率降低和误判问题,对主机多个维度特征进行提取融合,构建多维度主机指纹库,全面描述主机,提高主机识别准确率。

按照本发明所提供的设计方案,一种网络环境下被动式多维度主机指纹模型构建方法,包含如下内容:

对网络数据流量进行初步筛选和过滤;

通过不同类型插件提取多维度主机特征信息,其中,不同类型插件对应识别特征库中相应的识别特征;

基于map-score算法评估每个特征信息对应不同主机的关联度,构建用于主机识别的多维度主机指纹库。

上述的,对网络数据流量进行初步筛选和过滤:通过五元组策略对网络原始流量进行初步筛选和过滤,去除噪音,缩小数据量。

优选的,在用户态定义插件类型,通过不同类型插件提取多维度主机特征信息,包含如下内容:在用户态定义插件类型,通过识别特征树依次对应用协议进行识别匹配,其中,插件类型至少包含:主机硬件特征解析、主机软件环境特征解析及主机网络行为特征解析,不同类型插件对应相应的主机特征信息的识别特征;识别特征树中:父节点代表解析主机特征信息类型,中间节点代表在对应维度主机特征信息下所包含的应用程序,叶子节点代表解析对应应用协议下主机特征信息所使用的识别特征。

上述的,通过识别特征树依次对应用协议进行识别匹配,包含如下内容:通过插件定义的树形结构从根节点依次对应用数据进行匹配,通过叶子节点的识别特征解析主机特征信息。

上述的,基于map-score算法对多维度的主机特征信息,构建用于主机识别的多维度主机指纹库,包含如下内容:

通过map方法构建存储特征信息的主机特征矩阵;

采用score方法通过主机特征矩阵评估每个特征对应不同主机的关联度,构建用于主机识别的多维度主机指纹库。

优选的,所述的主机特征矩阵采用带索引的十字链表进行特征信息存储。

优选的,采用带索引的十字链表进行特征信息存储,包含如下内容:定义index数组,通过bkdr哈希算法对特征信息进行哈希计算,哈希值作为index数组的下标,对应的值为指向主机特征信息的指针,主机特征信息项存储特征信息出现的总次数且使用双指针分别指向特征信息出现的主机项和下一个主机特征信息项,主机项存储特征信息在主机上出现的次数并指向下一台出现该特征信息的主机,直至网络数据流量数据包处理完成没有新加项。

上述的,采用score方法通过主机特征矩阵评估每个特征对应不同主机的关联度,构建用于主机识别的多维度主机指纹库,包含如下内容:

假设sa代表主机集合,a是sa中的一台主机,δ(t,a)表示特征t是否在主机a出现过,出现为1,未出现则为0,∑a∈saδ(t,a)表示特征t在主机a下出现过的次数,特征t对应主机x的score值表示为:,对主机特征矩阵中每一条特征ti分别计算对应不同主机x的score值,当score(ti,x)>μ时,则认为特征x是主机的指纹,完成多维度主机指纹库的构建,其中,μ为预先设定阈值。

一种网络环境下被动式多维度主机指纹模型构建装置,包含:

网络流量截取筛选模型,用于通过五元组策略对网络原始流量进行初步筛选和过滤

主机特征信息识别提取模块,用通过不同类型插件提取多维度的主机特征信息,插件类型至少包含:主机硬件特征解析、主机软件环境特征解析及主机网络行为特征解析,不同类型插件对应相应的主机特征信息的识别特征;

主机指纹库构建模块,基于map-score算法构建用于主机识别的多维度主机指纹库。

上述的装置,所述的主机指纹库构建模块包含:

主机特征矩阵构建单元,用于通过map方法构建存储特征信息的主机特征矩阵;

关联度评估单元,采用score方法通过主机特征矩阵评估每个特征对应不同主机的关联度,构建用于主机识别的多维度主机指纹库。

本发明的有益效果:

1、本发明方法简单,易操作实现,采用五元组策略对高速混杂的网络原始流量进行初步筛选和过滤,去除噪音,缩小数据流量,为了防止硬件截取速度过快导致主机特征识别解析模块无法同步处理导致丢包的情形,通过采用零拷贝技术减少数据拷贝次数和系统调用,将网卡数据直接送达上层应用,实现cpu的零参与,减少cpu负担,提高数据的处理能力;为了高效、准确地提取主机特征信息在用户态定义了插件,从而保证不同类型的网络数据流量可以统一定义、并发处理,可以定制插件功能,定期更新维护插件,监控插件运行状态,防止出现空转或者崩溃,当单个节点无法满足数据处理需求时,可以进行分布式部署,对原始数据流量进行分流,统一调配调度插件;插件解析的内容可以通过配置文件进行灵活配置,对于同维度主机特征信息的解析需求只需要增加识别特征即可,对于增加识别特征不能满足需求的,则可以通过新增插件实现,便于维护和管理,只需定期对识别特征库进行更新,即可保证主机特征信息提取的准确性,且支持分布式多点部署。

2、本发明中因主机特征信息具有多样性,对于一台主机来说,由于安装软件环境和网络行为的不同均会导致出现不同格式重复的特征信息,而由于应用协议的规定不同的主机下也会出现大量相同的标识性较弱的特征信息,这都给主机指纹的选择增加了难度,本发明通过基于map-score算法对不同维度主机特征信息进行,最终完成主机指纹库的构建。方法简单,易操作,能准确高效地发现主机特征信息,为全面了解主机、准确识别主机提供了技术基础,具有实际的应用价值。

附图说明:

图1为本发明的装置示意图;

图2为本发明的装置中主机特征信息识别提取模块示意图;

图3为本发明的方法流程示意图;

图4为主机特征信息提取流程图。

图5为map方法构建的主机特征矩阵结构。

图6为map方法使用的数据结构。

图7为实施例中使用的实验数据集。

图8为构建单维度主机指纹识别主机结果。

图9为多维度主机指纹库主机识别结果。

具体实施方式:

下面结合附图和技术方案对本发明作进一步详细的说明,并通过优选的实施例详细说明本发明的实施方式,但本发明的实施方式并不限于此。

实施例一,参见图1所示,一种网络环境下被动式多维度主机指纹模型构建装置,包含:

网络流量截取筛选模型,用于通过五元组策略对网络原始流量进行初步筛选和过滤;

主机特征信息识别提取模块,用于通过不同类型插件提取多维度的主机特征信息,插件类型至少包含:主机硬件特征解析、主机软件环境特征解析及主机网络行为特征解析,不同类型插件对应相应的主机特征信息的识别特征;

主机指纹库构建模块,基于map-score算法构建用于主机识别的多维度主机指纹库。

因主机特征信息具有多样性,对于一台主机来说,由于安装软件环境和网络行为的不同均会导致出现不同格式重复的特征信息,而由于应用协议的规定不同的主机下也会出现大量相同的标识性较弱的特征信息,这都给主机指纹的选择增加了难度,本发明通过在用户态定义不同类型插件对主机特征信息进行识别提取,并基于map-score算法评估每个特征信息对应不同主机的关联度,构建用于主机识别的多维度主机指纹库;方法简单,易操作,能准确高效地发现主机特征信息,有效提高主机识别的准确率,为全面了解主机、准确识别主机提供了技术基础,具有实际的应用价值。

实施例二,如图1~2所示,与实施例一基本相同,不同之处在于:所述的主机指纹库构建模块包含:

主机特征矩阵构建单元,用于通过map方法构建存储特征信息的主机特征矩阵;

主机指纹提取单元,采用score方法评估主机特征矩阵中每个特征对应不同主机的关联度,构建用于主机识别的多维度主机指纹库。

参见图2所示,通过对主机特征信息的提取得到主机不同维度条目众多的主机特征信息,但是由于应用协议的规定,在主机与应用程序交互的过程中不同行为携带的主机特征信息不尽相同,进而导致主机特征信息标识主机的强度也不同,标识性弱的主机特征信息会大量频繁地出现在多台主机上,标识性强的主机特征信息则集中出现在少数的主机上。而对于一台主机来说,在一定时间段内主机软硬件环境较为稳定,这也就为主机指纹信息的提取提供了条件,如果能够找出频繁出现在一台主机上不同维度的主机特征信息,且该特征极少出现在其他主机上,则在一定程度上可以说明该主机特征信息具有较强的主机识别能力,当从不同维度上提取出一台主机大量符合上述条件的主机特征信息后,将其进行融合则可以构建出主机指纹库,具有良好的健壮性和可靠性,有效解决现有技术中由于获取特征不全而导致主机识别率低的问题,具有较强的实际应用价值。系统管理从三个方面进行管理:一、插件的管理,可以定制插件功能,定期更新维护插件;二、插件状态管理,控制插件的运行和停止,监控插件运行状态防止出现空转或者崩溃;三、统一管理和调度,当单个节点无法满足数据处理需求时,可以进行分布式部署,对原始数据流量进行分流,系统统一调配调度插件。插件解析的内容可以通过配置文件进行灵活配置,对于同维度主机特征信息的解析需求只需要增加识别特征即可,而对于增加识别特征不能满足需求的则可以新增插件。基于模块化的思想方便系统管理和维护,只需定期对识别特征库进行更新就可以保证主机特征信息提取的准确性,且系统支持分布式多点部署。

实施例三,参见图1~3所示,一种网络环境下被动式多维度主机指纹模型构建方法,包含如下内容:

对网络数据流量进行初步筛选和过滤;

通过不同类型插件提取多维度主机特征信息,其中,不同类型插件对应识别特征库中相应的识别特征;

基于map-score算法评估每个特征信息对应不同主机的关联度,构建用于主机识别的多维度主机指纹库。

方法简单,易于实现,能够准确高效地发现主机特征信息,为全面了解主机、准确识别主机提供技术基础,具有很强的实际应用价值。

实施例四,参见图1~9所示,一种网络环境下被动式多维度主机指纹模型构建方法,包含如下内容:

一)通过五元组策略对网络原始流量进行初步筛选和过滤,去除噪音,缩小数据量,为了防止硬件截取速度过快导致主机特征识别解析模块无法同步处理导致丢包的情形,通过采用零拷贝技术减少数据拷贝次数和系统调用,将网卡数据直接送达上层应用,实现cpu的零参与,减少cpu负担,提高数据的处理能力。预先设置内核,指定预留起始位置参数和预留物理内存大小;加载内核程序,将预留起始位置参数和预留物理内存大小传递至内核,初始化内核缓冲区及直接内存存取模块,同时指定用于零拷贝网卡使用的网络接口,并生成用于用户程序和内核交互的设备交互文件;用户态读取设备交互文件,获取缓冲区总长度,并将其映射到用户态程序,同时初始化用户态模块程序,初始化用户态缓冲区及数据包调度器,通过零拷贝技术抓取网络数据流量数据包。

二)在用户态定义插件类型,通过识别特征树依次对应用协议进行识别匹配,通过插件定义的树形结构从根节点依次对应用数据进行匹配,通过叶子节点的识别特征解析主机特征信息,其中,插件类型至少包含:主机硬件特征解析、主机软件环境特征解析及主机网络行为特征解析,不同类型插件对应相应的主机特征信息的识别特征;识别特征树中:父节点代表解析主机特征信息类型,中间节点代表在对应维度主机特征信息下所包含的应用程序,叶子节点代表解析对应应用协议下主机特征信息所使用的识别特征。

在用户态定义插件类型,参见图2所示,不同类型插件对应识别特征库中相应类型的识别特征;数据包到达网络接口,过滤掉非配置协议报文,保留配置处理的协议报文,并将其存储在系统内核指定的预留物理内存中;读取配置文件,加载相应类型的插件,通过插件中相应的识别特征对主机流量进行匹配,提取出多维度的主机特征信息。

三)通过map方法构建存储特征信息的主机特征矩阵,所述的主机特征矩阵采用带索引的十字链表进行特征信息存储;采用score方法评估每个特征对应不同主机的关联度,构建用于主机识别的多维度主机指纹库,具体内容如下:

1)采用带索引的十字链表进行特征信息存储,包含如下内容:定义index数组,通过bkdr哈希算法对特征信息进行哈希计算,哈希值作为index数组的下标,对应的值为指向主机特征信息的指针,主机特征信息项存储特征信息出现的总次数且使用双指针分别指向特征信息出现的主机项和下一个主机特征信息项,主机项存储特征信息在主机上出现的次数并指向下一台出现该特征信息的主机,直至网络数据流量数据包处理完成没有新加项。

2)假设sa代表主机集合,a是sa中的一台主机,δ(t,a)表示特征t是否在主机a出现过,出现为1,未出现则为0,∑a∈saδ(t,a)表示特征t在主机a下出现过的次数,特征t对应主机x的score值表示为:

对主机特征矩阵中每一条特征ti分别计算对应不同主机x的score值,当score(ti,x)>μ时,则认为特征x是主机的指纹,完成多维度主机指纹库的构建,其中,μ为预先设定阈值。

为验证本发明的有效性,下面结合附图及具体实例对本发明做进一步解释说明:

1)高速混杂流量下主机特征信息提取

该过程的实现如图4所示,使用零拷贝技术的数据处理主要分为用户态和内核态。系统开始执行后,首先预先设置内核,预留出一部分从指定的起始位置(baseaddress)开始指定大小(memorysize)的物理内存,加载内核模块程序,并将参数baseaddress和memorysize传递给内核模块,并完成内核缓冲区管理的初始化,dma模块初始化,同时指定网络接口interface为零拷贝程序使用的网卡,并生成一个设备文件供用户程序与内核模块交互信息;用户态程序通过读取上述的设备文件获取缓冲区的总长度,并将之映射到用户态程序,同时初始化缓冲区、数据包调度器等相关的模块程序,然后零拷贝开始工作捕获数据包。

为了高效并行地对不同类型的特征信息进行提取,采用插件的方式在用户态对数据进行处理。不同插件定义了不同类型特征的识别特征,程序读取配置文件后即加载相应的插件。原始数据包到达指定的网卡interface后,首先过滤掉非配置协议报文,仅保留配置处理的协议报文,并将其存储在系统内核预先分配好的地址空间中,由于该地址空间已经与用户态程序的存储空间进行了映射,故上层程序调取数据时通过用户态缓存区数据管理程序就可以直接调用数据了。然后通过插件里的识别特征对主机流量进行匹配,提取出相应类型的主机特征信息。

2)基于map-score算法的多维度主机指纹库构建

通过对主机特征信息的提取得到主机不同维度条目众多的主机特征信息,但是由于应用协议的规定,在主机与应用程序交互的过程中不同行为携带的主机特征信息不尽相同,进而导致主机特征信息标识主机的强度也不同,标识性弱的主机特征信息会大量频繁地出现在多台主机上,标识性强的主机特征信息则集中出现在少数的主机上。而对于一台主机来说,在一定时间段内主机软硬件环境较为稳定,这也就为主机指纹信息的提取提供了条件,如果能够找出频繁出现在一台主机上不同维度的主机特征信息,且该特征极少出现在其他主机上,则在一定程度上可以说明该主机特征信息具有较强的主机识别能力,当从不同维度上提取出一台主机大量符合上述条件的主机特征信息后,将其进行融合则可以构建出主机指纹库。

本发明提出了基于map-score的主机指纹选择算法,其作用是对提取到的不同维度主机特征信息进行评估,找出符合多维度主机指纹模型定义条件的主机特征信息集合。该算法主要有两个方法:(1)map方法,用来构建机器能够计算的主机特征矩阵。(2)score方法,基于map算法构建出的主机特征矩阵评估每一个特征信息对应不同主机的关联度。

在以太网环境下,假设在一定的时间段内,每一个ip对应一台主机。对提取到的每一条主机特征信息通过map算法构建如图5所示主机特征矩阵,特征矩阵中每一行表示一条特征ti,每一列表示出现过的主机xi,特征矩阵中map(ti,xi)的值则表示特征ti出现在主机xi下的次数。

完整的主机特征矩阵是一个高维稀疏矩阵,随着主机特征信息数量的增加,数据的检索和匹配会占用大量系统资源,同时如果使用传统的方式对其存储会导致大量资源的浪费,而当矩阵维度越来越多,数据的存储和提取也将受到影响,为了便于score算法的计算,提高数据存取效率,提出通过采用带索引的十字链表进行map矩阵的存储,如图6所示。首先定义一个index数组,通过bkdr哈希算法对特征信息进行哈希计算,哈希值作为数组的下标,而该项的值是一个指针,指向该主机特征信息,主机特征信息项存储着该特征出现的总次数且使用双指针分别指向该特征出现的主机项和下一个特征项,主机项存储该特征在该主机上出现的次数并指向下一台出现该特征的主机,以此类推,直到数据包处理完成没有新加项。这种数据结构对于稀疏矩阵来说可以极大压缩其占用的系统空间,同时通过哈希值提高特征检索的速度,冲突率极低。

从图5中可以看到,特征“p_info=m1@163.com”全部出现在hosta下,则该特征很有可能成为主机指纹信息,而特征“mozilla/5.0”虽然出现的次数很多,但是覆盖主机的范围也很广,因此该特征成为主机指纹信息的可能性较低。由此提出score算法的主要思想:a)对于某一台主机而言,特征出现在一个主机流量中的频率越高且在其他主机流量中频率越低则更能代表这台主机;b)对于一个主机特征信息而言,出现在不同主机的数量越多越不能代表一台主机。

因此,假设sa代表主机集合,a是sa中的一台主机,δ(t,a)表示特征t是否在主机a出现过,出现为1,未出现则为0,∑a∈saδ(t,a)表示特征t在多少台主机下出现过的次数,特征t对应主机x的score值表示为:

对主机特征矩阵中每一条特征ti分别计算对应不同主机x的score值,当score(ti,x)>μ时,则认为特征x是主机的指纹,完成多维度主机指纹库的构建,其中,μ为预先设定阈值。值越大说明特征t出现在主机x下的次数越多,特征t作为主机指纹的可能性也就越大,∑a∈saδ(t,a)越大说明特征t作为主机指纹的可能性越小。以此类推,对主机特征矩阵中每一条特征ti分别计算对应不同主机x的score值,当score(ti,x)>μ时,认为特征x是主机的指纹,μ是根据大量实验给出的一个经验值。

实验数据通过校园网采集了35台主机不同时间段的通信数据。其中采集30台主机1个小时的正常通信流量作为构建主机指纹库的样本数据,对主机的正常上网行为不做要求。然后在不同的时间段通过校园网再次采集35台(含样本集中的30台主机)主机30分钟的正常通信流量作为测试数据。样本集外的5台主机数据作为噪音数据。由于校园网采用dhcp服务为主机分配ip地址,因此在测试集中有10台主机的ip与样本集中的ip不同。具体使用数据集如图7所示。

通过多维主机指纹模型对样本集中30台主机流量进行多维度主机指纹库构建,设置μ=1,即通过map-score提取的每一条主机特征信息都是主机指纹信息,构建得到2个单维度主机指纹库和一个多维度主机指纹库,然后分别采用单维度主机软件环境指纹、单维度主机网络行为指纹和多维度主机指纹进行实验,计算识别主机的准确率和召回率。假设p表示主机识别率,r表示主机召回率,计算公式如下:

实验结果如图8、9所示,图8中:a为单维度主机软件环境指纹主机识别结果,b为单维度主机网络行为指纹主机识别结果。从实验结果可以看出多维主机指纹库在识别主机准确率和召回率上相比单维度主机指纹识别都有近9%的提升,主机软件环境指纹和主机网络行为指纹在识别主机的过程中可以相互补充,弥补由于单维度指纹获取不到导致的无法识别主机的情况。同时在测试集中有10台主机的ip与样本集中使用的ip不同,测试结果均正确识别,说明多维主机指纹库在对主机识别时可以容忍主机ip地址发生变化。在保证采集的主机通信流量完整的情况下,主机指纹模型具有良好的健壮性和可靠性。实际上可以效解决现有技术中由于获取特征不全导致主机识别率低的问题。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1