孙 治 , 杨 慧 , 张 江 , 陈剑锋 , 徐 锐
(1.网络空间安全四川省重点实验室,四川 成都 610041;2.中国电科网络空间安全技术重点实验室,四川 成都 610041;3.中国电子科技网络信息安全有限公司,四川 成都 610041)
如今是一个信息技术高速发展的时代,网络早已渗透于当今社会各行各业,随着移动互联网的快速普及,接入了海量的不同类型的网络设备。随着物联网和5G技术的快速发展,更多种类的物联网设备也将加入到网络。这些设备可能是服务器、交换机、防火墙、手机、个人电脑,也可能是网络摄像头、智能家电等物联网设备。然而数量庞大种类繁多的网络设备也会暴露出更多的网络安全问题,并给网管带来严峻的挑战。识别特定区域的网络设备,可以更好地保护个人和组织的数据,防范已经存在和未知的风险。而且确定设备类型对于网络空间态势感知也具有重要的意义。
目前识别网络设备类型的主要方法是通过网络探测来实现[1]。而网络扫描是一种网络探测方法,是指通过扫描特定的计算机网络端口获取目标主机的相关信息的技术。常见的网络扫描开源软件有Nmap、Zmap等。以Nmap扫描工具为例,它使用自建的模板指纹库,模板指纹库是根据不同目标设备对探测包的差别应答来产生的。然而,这种网络设备识别方法存在不足。由于目标设备的复杂性,网络设备可能有固件版本的更新,可能换用了不同的操作系统,甚至是一种指纹库没有的未知设备,导致探测到的设备指纹无法匹配指纹库。因此,只使用扫描工具不能有效地识别网络设备的类型。
针对上述问题,本文将概念格方法引入到了网络设备的识别,提出了一种基于概念格的网络设备识别方法。该方法可以解决设备识别过程中差异性难以量化的问题,利用概念格计算网络设备的属性相似度,显著简化设备识别过程。针对未知的网络设备,也能够给出可能的设备类型。
网络探测是获取区域资产数据的重要手段。区域资产是对组织或个人有价值的信息资源,是安全策略重点关注的对象。网络探测通常包含四个步骤,包括目标发现、端口探测、服务发现、操作系统侦测,这四个步骤一般遵循着一定的顺序执行。该技术通常通过设备在通信过程中应答的某种信息对其进行辨识和判定,实现的方式主要包括被动和主动 2 种[2]。
被动方式不主动向目标主机发送数据包,而是根据目标向外发送请求时,从携带的信息来分析判别目标的设备类型。被动识别对扫描网络环境要求较低,对目标网络状态影响不大,但是它能够提供的信息量有限,而且可靠性也不如主动式,常用于高速的流量获取、协议种类识别等场景。主动方式是从探测源将特定的信息发送给目标主机,通过触发某些期望的设备回应来分析出目标主机的设备类型。主动方式获取的信息量较多而且信息可靠性高,但是也容易被目标发现和针对。主动式探测常用于主机存活性检测、端口开放性检测、系统和服务指纹发现以及漏洞扫描等场景。目前有很多开源扫描工具可供选择,这些扫描工具各有所长,适用不同类型的应用场景。因此进行网络扫描工作时,选择合适的扫描工具可以达到事半功倍的效果。
形式概念分析(Formal Concept Analysis,FCA),由德国的Wille R.教授于1982年首次提出[3]。概念格是FCA理论的核心数据结构,该理论基于哲学范畴中的概念,每个“概念”分为内涵和外延两部分:内涵是事物的某些属性的集合,而外延就是具有这些属性的事物对象的集合。概念格从本质上来说,它描述的是对象与属性之间的联系,表明各概念之间的泛化、特化关系。作为一种切实有效的数据分析工具,概念格理论得到广泛认可,并成功应用于多种领域,诸如数据挖掘、信息检索,知识发现,搜索引擎等领域[4-6]。利用概念格的层次分类模型,可以较好的量化网络设备的差异程度[7]。
从数学的角度来看,概念间的包含关系是一种偏序关系,其产生的完全格,就是概念格。由概念格上的偏序关系生成的Hasse图,能够反映概念的层次结构并直观地体现概念之间的关系。现实世界的各种事物或信息大都可以比较容易的表示成一个对象或实例具有某些属性或特征的关系。
概念格中的每个节点都是一个形式概念,形式概念由外延和内涵两部分组成。概念格的结构对知识表示具有直观性和层次性等特点。在形式概念分析中,这种对象-属性间的二元关系被称为形式背景(Formal Context),它是一个由对象集、属性集、二元关系所构成的三元组。概念格的Hasse图是以概念作为节点,以连接父子概念的线段作为边,按照父概念在子概念上方的顺序,把所有概念连接起来所构成的图。由形式背景生成概念格的过程被称为概念格构造。
以下介绍一些概念格的数学基本定义。
定义1.设(U,A,I)为一个形式化背景,其中U={x1,x2,…,xn}为对象集合,xi对应本文研究的目标网络设备;A={a1,a2,…,am}为属性集合,ai表示网络设备的一个属性;I为U和A之间的二元关系,对于一个对象x∈U,属性a∈A,那么xIa表示对象x具有属性a。
定义2.设(U,A,I)为网络空间资源形式化背景,定义两种运算X*,B*:
式中,X*为X中所有对象的属性集合,B*为B中所有对象的属性集合。
定 义 3.若 一 个 二 元 组 (X,B)满 足 X*=B 且B*=X,则称(X,B)是一个形式概念,其中X称为概念的外延,B称为概念的内涵。
大数据蕴含有丰富的知识,而概念格是一种知识提取的形式化描述工具。概念结点的外延是概念所覆盖的对象(实例)集合,概念结点的内涵是对象所共有的属性(特征)集合。运用概念格具有知识表达的直观性和完备性[8],有利于网络设备的类型判别。
本文提出了一种基于概念格的网络设备识别方法。首先根据已知网络设备类型的属性,结合领域专家知识构建网络空间实体资源的形式背景,然后采用快速正则化逼近算法构建网络设备属性概念格;接下来利用多种开源工具探测目标设备,将探测到的信息转换为目标设备的属性值;最后使用网络设备属性概念格计算目标设备与已知设备类型的概念相似度。
网络设备具有型号、连接方式、对外服务、IP地址、MAC地址、操作系统、所在城市、所属的机构等信息,这些信息称为网络设备的属性信息。将网络设备的所有特征属性集成到一个树型结构中,称为网络设备属性特征树。特征树中每一个叶子节点就是一个属性,表示网络中至少有一个设备具有这样的特征属性。通过特征树,可以把设备的属性特征表示为一个二值特征向量,向量的个数为特征树中叶子节点的数目,如(1,0,0,1,0,1,1),网络设备具有的特征在向量中标为1,不具有的特征在向量中标为0。
构建网络设备属性概念格首先需要建立网络设备的形式背景(见表1)。根据已知网络设备类型的属性,结合领域专家知识构建一张网络设备形式背景表格,表格行表示已知的网络设备类型,列表示网络设备的属性值。例如,表1中属性列打上“×”标记的表示该类设备具有这个属性。
表1 网络设备形式背景表格示意
目前概念格的构造算法主要分为两类:批处理算法和增量算法。批处理算法又可以分三种:自顶向下算法、自底向上算法和枚举算法。
本文采用快速正则化逼近算法(Fast Close-by-One,FCBO)建立网络资产属性概念格[9],该算法通过减少重复计算的概念格的总数来获取更高的效率,可以解决其它常见的建格算法时间开销大的问题。以下简要描述FCBO算法构建网络设备属性概念格 L(U,A,I)的流程。
步骤一:输入算法参数,首个待处理的概念<A,B>、待处理的属性y∈Y,以及属性集合Y的子集{ Ny⊆ Y | y ∈ Y }用于存储处理过的属性;
步骤二:判断快速正则化逼近是否达到停止条件,是中止算法并输出建格结果,否则继续;
步骤三:设定概念信息指针Mj指向Nj,Nj表示待处理属性集合,计算概念<C,D>;
步骤四:判断概念<C,D>是否为新概念,是则将(<C,D>, j)加入新概念队列中,否则更新概念信息指针Mj指向D。
步骤五:判断队列是否为空,是则输出建格结果,否则保存概念;
重复上述步骤,直到算法中止退出。
目标设备扫描是获取目标设备信息的有效方式。通过向目标主机发送的特定的探测包,目的是通过触发某些期望的设备回应来分析出目标主机的有关信息。为了快速提取目标设备的属性值,本方法将探测过程分为了两个步骤:端口存活性探测、解析端口的banner信息。
本方法首先是对目标设备的端口存活性进行探测。使用开源扫描工具zmap探测目标设备的最常用的1 000个端口的存活性。因为zmap采取的是无状态的扫描,没有进行完整的TCP协议的三次握手,因此大规模扫描速度极大提升。
接下来是解析端口的banner信息。使用扫描工具nmap,向目标设备的存活端口发送探测报文。然后将得到的回复包与数据库中的签名进行对比,如果反复探测都无法得出具体应用,记录应用返回报文,以便进行进一步人工判断。
最后,探测存活端口记录获取的设备属性关键字,例如:网络设备的归属城市、ISP、所属机构、连接方式、对外服务等属性是能够被探测到的属性,这些属性构成网络设备特征属性关键字,对照上一小节中形式背景,将目标设备属性特征表示为二值特征向量。
将目标设备属性作为一个新概念添加到上一小节的新建的网络设备属性概念格L(U,A,I)。
由定义3,将目标设备属性概念记作(X1,B1),那么两个概念 (X1,B1)和 (X2,B2)的相似度为:
其中α,β表示对象与属性的权重参数,满足α+β=1。根据概念格的对偶性质通常设置α=β=0.5。
在网络设备属性概念格L(U,A,I)中,若目标网络设备x1涉及的概念集合定义为M;已知设备x2涉及的概念集合定义为N,则目标设备和已知设备类型的属性概念相似度为:
其中概念集合M中的每个概念的外延都包含网络设备x1,概念集合N中的每个概念的外延都包含已知设备类型x2。|M|为概念集合M中概念的个数,|N|为概念集合N中概念的个数。本文采用网络设备的属性概念相似度,评估网络设备的相似程度。
重复上述步骤,直至完成目标设备与已知设备类型的概念相似度计算,最后判断目标设备为概念相似度最大的类型 arg max simL<L,x1,xi)>。
本文研究了概念格的属性关联规则挖掘,提出了一种基于概念格的网络设备识别方法。利用概念格计算网络设备的属性相似度,显著简化设备类型的识别过程。针对未知网络设备,也能够给出可能的设备类型。该方法可以解决设备识别过程中差异性难以量化的问题,不足之处是算法使用的网络设备形式背景需要领域专家人工建立,这部分的工作量很大而且容易出错,同样探测目标设备信息转为设备属性也需要人工参与,未来将结合自然语言处理技术实现属性的自动提取。