基于电子指纹的网络攻击溯源技术
2020-11-17吴朝雄马书磊
吴朝雄,马书磊,石 波,于 冰
(中国航天科工集团二院 706所,北京 100854)
0 引 言
网络攻击溯源已开展多方面的研究,包括基于临近节点溯源[1];追踪溯源体系的构建[2];动态概率包标记的DDOS攻击溯源优化方法[3];溯源过程中网络包防被修改或者伪造[4];恶意代码的编码特性、演化特性及对溯源阶段的作用[5];SDN网络上的网络溯源[6];网络节点攻击路径的检测[7];层次分析法的网络攻击溯源动态评估模型[8];基于IDS报警和rootkit的威胁溯源方法研究[9]等。
当前网络攻击溯源存在一些问题,主要包括以下几点:目前主要为网络层的溯源,对具体被攻击的内容对象溯源不全面、不清楚;网络攻击动态性较强,目前攻击溯源过于笼统,导致无法分辨出高度疑似的攻击路径和确定的攻击路径;网络溯源后,缺乏对网络攻击影响的分析和预测;网络攻击溯源定位网络攻击者及攻击组织难度大。
本文针对上述不足之处,提出了基于电子指纹的网络攻击溯源技术。该技术能够实现数据级的、全过程的网络攻击溯源,并能预测后续受影响的网络范围。
1 系统设计思路
网络攻击溯源根据溯源的目标和对象不同,分为不同层次的溯源。按照TCP/IP结构,主要分为网络层和应用层网络攻击溯源。按照攻击源头对象的不同,网络攻击追踪溯源划分为虚假IP追踪、Botnet追踪、匿名网络追踪、跳板追踪和局域网追踪5类;也可将网络攻击追踪溯源划分为溯源攻击主机、控制主机、攻击者、攻击组织机构4个级别[10]。
美国信息安全保障局提出“安全必须从以网络为中心,转向以数据为中心”。当前敌对者发动的攻击往往以窃取数据、毁瘫数据为主要目标之一。
因此,根据网络攻击溯源的分类以及当前以数据安全为中心的网络安全防护模式的特点,本文的网络攻击溯源主要围绕数据开展分析,重点构建细粒度的网络攻击路径,能够溯源到被攻击的数据。
基于电子指纹的网络攻击溯源的研究思路主要包括以下过程:
首先,生成数据的电子指纹。通过提取数据中流动信息、交互信息、时间戳等特征,并对选取的数据特征进行组合,对数据特征进行加密生成数据的电子指纹。并将电子指纹与数据进行映射,实现电子指纹与数据的一一对应。通过电子指纹信息,能够在不同数据之间建立起关系,为后续攻击溯源提供基础。
其次,以数据电子指纹为基础,结合网络攻击日志信息,构建原生网络攻击树。依托建立的数据关系,初步构建网络攻击路径。然后再对分析得到的网络攻击路径进行交叉分析、同源分析,重构网络攻击路径,分辨出确定和可疑的攻击路径,并定位攻击发生的源头。
最后根据网络攻击发生的时间、攻击对象、攻击特点、同机数据交叉感染、数据的流动和共享过程,预测受影响的网络范围。网络攻击溯源及预测的流程如图1所示。
图1 网络攻击溯源及预测流程
2 基于电子指纹的网络攻击溯源与预测方法
2.1 电子指纹设计与绑定
(1)电子指纹设计
网络中的数据由生产者创造出来,并经过不同的途径流动到不同的位置。在数据流动过程中,数据经过用户的修改、编辑等形成新的数据。因此,数据在网络系统中具有较强的关联关系。由于每个数据包含的内容不同、所有者属性不同、创建时间等信息是唯一的,可通过对数据相关特征进行提取,并利用提取的特征生成数据的电子指纹信息。并通过对数据电子指纹的跟踪,能够实现对数据全流程流动信息的掌控,为网络攻击路径重构和溯源提供基础。
设计的电子指纹信息包括标签头、流动信息、文件属性信息、审计信息等4类信息。在本文中,依据数据在网络传播中呈现的特点,选取数据IP、数据传送者IP、流动时间戳、操作类型等作为数据的特征,用以生成数据电子指纹的标志。数据的电子指纹设计结构如图2所示。
图2 电子指纹设计结构
其中,标签头为电子指纹的保护属性,采用哈希或者签名等算法实现。
电子指纹用ftab表示,ftab=(fid,fip,p_ip,timestamp_se)。其中,fid为电子指纹标识;fip为当前数据所在的网络地址;p_ip为数据发送者地址;timestamp_se为流动时间戳,也即数据交换的时间。
电子指纹信息在数据落地阶段生成,是数据在网络中的唯一“身份”。在电子指纹生成过程中采用哈希或者签名等算法,确保电子指纹具有不可修改、抗伪造等的特性。数据在发送之前将当前数据的地址信息赋值给电子指纹中p_ip。当数据落地,将数据落地后的地址信息赋值给fip,并重新计算数据的电子指纹,生成新数据的电子指纹。
(2)电子指纹与数据关系映射
电子指纹与数据之间的关系映射可采用两种方式,一是在文件落地存储的时候,采用文件驱动或者应用程序改写的方式,将电子指纹信息嵌入到文件的数据区,在嵌入过程中,电子指纹嵌入到文件数据区,形成一个整体,从而达到电子指纹与数据不可分割的效果。二是通过建立电子指纹与数据的一一映射关系的电子指纹索引表,并动态维护电子指纹索引表。
经过映射后的数据信息用F表示,F=(ftab,fip,fna,fpa)。其中,fna为文件名称,fpa为数据的存储路径。
2.2 原生网络攻击树的构建
系统进化树是表明被认为具有共同祖先的各物种间演化关系的树,在树中每个节点代表其各个分治的最近共同祖先,而节点的线段长度对应了其演化的距离,数枝的长度反映当前这些事件发生之间的进化距离。网络攻击的传播、感染均与系统进化树具有高度相似的特性。网络攻击往往通过一个节点发起攻击,然后不断地探测与该节点具有联通关系的其它节点,并通过攻陷其它节点,然后迭代进行下一步的攻击,如此反复,最终实现网络攻击及传播。因此,在原生网络攻击树的构建过程中,借鉴了进化树的相关思想,通过用树结构来构建网络攻击路径。用树节点表示每个被攻击的数据信息,节点与节点之间的连线表示攻击之间的演化及传播路径。树中节点的长度表示攻击经过的步骤数量或者节点数量。将树与数据流动路径和交互关系结合,可以获取数据之间在时间、空间方面的关系。并根据网络攻击的目标对象、交互关系、发生时间等,构建网络攻击之间的传播和流动关系。
为更好理解文中内容,本文做以下定义:
定义1 同源数据表示树中两个或者多个数据节点有共同的祖先的节点的集合。
定义2 同机数据表示在同一棵树或者不同的树中的两个或者多个数据节点地址相同的节点的集合。
定义3 节点长度表示从攻击源头到该节点之间所经过的路径,代表了其被攻击的演化距离。
定义4 关系节点分为直接关系节点和间接关系。节点直接关系节点表示与该数据节点之间的距离为1的节点。间接关系节点表示与该数据节点之间的距离大于1的节点。
定义5 数据相似度表示树中两个节点所包含的内容重合的程度,相似度为重合内容在节点内容中的占比。
上述定义的简要说明如图3所示。
图3 示意图
如图3所示,C、D为B的同源数据,B、C、D为A的同源数据。D的节点距离为2。B、C为直接关系节点,A、C为间接关系节点。
原生网络攻击树主要目的是为了发现和找到与被攻击数据存在所有直接关系与间接关系的数据节点。
原生网络攻击树的构建以数据的电子指纹为基础,结合网络安全日志信息进行构建。网络安全日志信息由部署在网络中的安全防护设备提供。从网络安全日志信息中抽取出来的网络攻击信息用V表示。V=(vip,fna,fpa,md5,vna,vdes,vdg)。其中,vip为网络攻击发生的地址信息;md5为文件的MD5值;vna为网络攻击的名称;vdes为对网络攻击的描述;vdg为网络攻击的严重程度。
原生网络攻击树依托电子指纹确定数据之间各节点的关系,形成流动路径。再通过关联分析Vi与Fj中的地址信息、电子指纹信息等,初步确定与被攻击数据所有有关联的数据信息。
原生网络攻击树采用R表示,树中节点信息采用T表示,T=(F,fip,flag)。其中,flag为该节点是否被攻击的标志,该标志可以分为0、1、2、3等3种状态。0表示未被攻击,即网络安全防护设备未发现的攻击;1表示确定受到攻击,即网络安全防护设备检测到的攻击;2表示通过推理后确定为被攻击;3表示攻击状态不确定,但是被攻击疑似度较高。
任意选取被攻击的数据F为数据源,向上、向下寻找其关系节点,分析数据之间的完整流动关系。
构建原生网络攻击树R的算法如下:
(1)选取Vi,判断Vi中vip、fpa、fna与Fj中fip、fna是否一致。如果一致,提取Fj中ftabs中fid、fip、p_ip等信息形成T,并将T加入到R。
(2)选取数据Fi,与R中各个节点中包含的fip、p_ip等信息进行比较和分析。
(3)若Fi.ftab.fip=R.F.fab.p_ip,则抽取Fi中的相关信息,形成节点T,将T作为R的子节点,更新树R的信息。
(4)若Fi.ftab.fip=R.F.fab.p_ip,则抽取Fi中的相关信息,形成节点T,将T作为R的父节点,更新树R的信息。
(5)若R.F.fab.fip≠Fi.ftab.fip,则退出计算,表明已经搜索完所有节点信息。
(6)重复步骤(2)~步骤(5),若完成对F的全部搜索,则完成原生网络攻击树R的构建。
(7)根据网络安全设备检测到的网络攻击信息,分析R中各节点发生网络攻击的情况,并按照前文所述的3类被攻击状态修改标记信息。
2.3 网络攻击路径构建
网络攻击具有较强的并发性、隐藏性,网络攻击路径构建主要是构建确定的、可疑的、隐藏的所有网络攻击的路径。在网络攻击路径构建过程中,排除外界人为的干扰,如果当前的数据受到网络攻击,那么该数据的同机数据、同源数据极大可能也被攻击。网络攻击路径构建包含网络攻击标记与攻击路径构建两方面。在网络攻击路径构建过程中采用剪枝法快速生成网络攻击路径。
网络攻击标记:
针对构建的原生网络攻击树R,若未被攻击的节点标记为0,在R中搜索其同机数据,只要有一个节点的标记为1,则将所有其它地址信息相同的节点标记修改为2。
网络攻击路径构建:
网络攻击路径构建通过搜索R,回溯原生攻击树中网络攻击的传播路径。网络攻击路径主要通过关联分析和推理,在R中推理出确定以及高度疑似被攻击的数据节点,并剪枝未被攻击的节点。
在网络攻击溯源过程中,用集合R^表示溯源得到的攻击路径集合。
具体攻击路径溯源算法如下:
(1)搜索R中节点被攻击标记flag=1的所有同机数据节点,形成集合M,计算M中各节点的节点长度;
(2)选取M中长度最小的p节点为溯源算法的开始节点;若M集合为空,算法结束;
(3)若p节点的父节点q.flag=1,则将p节点的指针上移到p的父节点;
(4)若p节点的父节点q.flag=0,则将q、p以及p的所有同源数据节点加入到R^,在节点信息存放过程中不改变节点的连接关系;
(5)修改p的所有同源数据节点的flag=1。
(6)在R中将以q为根节点的所有子树全部从R中剪掉。同时,从M集合中删除与R^中相同的节点;重复步骤(2) ~步骤(6)。
算法结束后,形成的R^即为网络攻击路径。
网络攻击路径重构:
网络攻击具有较强的动态性,同时也由于网络攻击存在信息不完善、信息缺失等情况,导致前一时刻发现的网络攻击不一定为最终的攻击结果,前一时刻未发现的传播和感染关系也可能在下一时刻被发现。因此,网络攻击路径重构过程中,将网络攻击路径分为两种状态,即确定的攻击路径以及可疑的攻击路径,并动态结合当前的攻击信息进行不断地调整和分析。确定的攻击路径至少在当前能够描绘出攻击的传播路径。可疑的攻击路径需要根据后续网络攻击呈现的信息进行进一步的分析和重构,才能判断是否为确定的攻击。
网络攻击路径重构旨在对多条网络攻击路径进行数据同源性分析、数据同机性分析、数据相似性分析等,并辨别出确定的攻击路径以及高可疑的攻击路径。根据数据流动的时间先后关系以及数据被攻击的情况进行综合分析,对攻击路径进行交叉关联分析。攻击路径重构涉及到两个层面:一是同源数据的攻击路径重构,只针对一个R^集合的分析。二是多源数据的攻击路径重构,针对多个R^集合之间的分析。其中,多源数据由于没有缺乏同源性,主要从数据包含的具体内容、数据格式、数据同机性等方面开展分析,并最终发现攻击之间的传播关系、感染关系等多种关联关系,从而完成对网络攻击路径进行重构。多源数据间交叉关联分析的路径大部分均为可疑路径。
攻击路径重构算法如下:
(1)任意选取R1^中的攻击路径p,然后判断p根节点是否为R1^中其它网络攻击路径q的子节点。
(2)如果p为子节点,且p的流动时间戳大于q的时间戳,则将p作为q中与p节点同机数据节点的子节点,形成一条可疑的网络攻击路径,更新网络攻击路径q。
(3)在q内部再次搜索是否同机数据节点,如果有,则将时间戳大的节点m作为时间戳小的节点s的子节点,形成一条可疑的网络攻击路径。并将节点m与其父节点之间的攻击路径由确定状态变为可疑状态。
(4)若m的父节点无其它子节点,且flag=2,则m的指针移到其父节点,继续搜索其父节点,将路径改为疑似路径,重复步骤(4),直到父节点flag=0。
(5)重复(1)~步骤(4),直到将R1^分析完成。
(6)分析R1^中是否有节点与R2^中的数据节点的内容相似,对于内容相似度高于50%及以上的数据节点,按照步骤(1)~步骤(4)进行分析和重构。
最后分析得到的结果即为最后的网络攻击路径。通过网络攻击路径能够较为清楚定位到攻击发生的源头以及攻击是如何一步一步实施的。对可疑的网络攻击路径,需要待进一步的信息输入,再确认是否为确定的攻击路径。
2.4 攻击影响评估与预测
根据重构的网络攻击路径,结合原生网络攻击树的节点连接关系,对网络攻击进行影响分析,预测即将受影响的节点。由于攻击及攻击目标均具有一定的相似性和传播性,网络攻击的影响预测以地址为中心,基于重构的网络攻击路径,对网络攻击路径进行精简,将树节点中地址信息相同的节点合并为同一个节点,不改变原节点与其它节点之间的逻辑连接关系及原节点被攻击的情况。完成对网络攻击路径的剪枝后,再结合原生网络攻击树中的连接关系进行进一步合并,最后在重构的网络攻击路径中新增的节点即为可能受影响的节点,完成对网络攻击影响的预测。
3 实验仿真与分析
3.1 实验环境
为了测试和验证本文提出的方法的有效性,搭建了一套实验环境,实验中部署多台终端及两台服务器,一套防病毒软件。服务器上部署邮件系统及点对点服务软件。在各终端上预先存放部分数据,包括word、ppt、图片等多种数据文件信息,然后通过点对点服务以及邮件服务进行数据流动、交互和共享。在数据交换和流动过程中,让相关数据被具有较强传播性、感染性和控制性病毒攻击,包括蠕虫病毒、宏病毒等攻击。搭建的实验网络拓扑图如图4所示。
图4 实验环境拓扑
3.2 实验仿真与分析
实验中网络攻击日志信息主要由防病毒软件提供。在实验过程中,对病毒的传播、感染通过精准控制,记录操作病毒的时间、路径等信息,作为样本数据。通过本技术在实验环境中得到的数据为实验数据,分析实验结果与样本数据的误差,从而判断本技术的准确率。为方便分析本技术的准确率,主要通过多次实验,统计分析正确溯源的攻击路径数量占比,最后取多次实验结果的平均值。
首先,将不带病毒的文件放在1号终端,然后通过邮件、点对点通信等手段发送到不同的终端。并在不同的终端上操作后,再发给其它相关终端。具体的数据流动及数据检测到被攻击的信息见表1。
表1 实验样本数据
表1中 (ftab1,1,0) 表示数据节点的信息,其中,第一位表示数据的电子指纹,第二位表示地址信息,为方便理解,用终端序号代表数据的地址信息,第三位表示被攻击的标志。表1中数据源表示该数据为传播节点,流动路径为数据的接收对象。每一行表示一条数据传播链路。以第一行数据为例,第一行数据信息表示 (ftab1,1,0)→(ftab2,2,0)→(ftab3,3,0)→(ftab4,4,0)→(ftab5,5,0),即1号终端的电子指纹为ftab1的数据流动到2、3、4、5号终端,并且在各自的终端中生成新的电子指纹。用ftab代表各数据的电子指纹。实验中只有ftab3、ftab5、ftab16、ftab17、ftab18等数据为实际未被感染和攻击的数据。
在实验过程,操作数据ftab6、ftab12、ftab13,使其攻击代码能够被执行,从而能够被防病毒软件检测出来,其它被攻击的数据虽然已经被感染,但是由于没有执行相关操作,所以数据被攻击状态处于隐藏状态。同时,(ftab4,4) 比(ftab6,4)的流动时间要早。(ftab14,4)比(ftab12,4)的流动时间要早。
根据算法构建的原生网络攻击树R示意如图5所示。
图5 构建的原生网络攻击树
由于(ftab12,7)、(ftab13,5)等检测到被攻击,按照算法,从原生网络攻击树中,构建出分别以(fab2,2)、(fab4,4)为源数据的两条攻击路径,如图6所示。
图6 网络攻击路径构建
图6中,存在(ftab4,4)、(ftab6,4)为同机数据,可能存在交叉感染的情况,由于(ftab4,4)的数据流动的时间戳比(ftab6,4)大,因此,可能存在(ftab6,4)到(ftab4,4)的攻击路径,将该条攻击路径标记为可疑路径。重构后的网络攻击路径中确定的网络攻击路径采用实线表示,疑似网络攻击路径采用虚线表示,如图7所示。
图7 攻击路径重构结果
图7中,通过本文的技术共溯源出7条网络攻击路径,与实验中样本数据保持一致。
结合图5、图7的包含的数据信息、网络攻击信息,分析数据之间的同源性、数据流动的关系,可以计算出后续可能被影响的终端包括3、6、10。网络攻击节点影响预测结果如图8所示。
图8 网络攻击节点影响预测
采用实验中所述的方法,分别在终端数量为10、20、30台的网络规模下,进行了3组实验,每组实验选取不同数量的样本数据进行多轮溯源计算,最后取平均值,实验结果见表2。
表2 实验结果统计
从实验结果中可以看出,通过本文的方法能够发现被攻击数据,并定位被攻击数据的源头。通过对多次实验结果的溯源结果的准确性进行了统计分析。
4 结束语
本文设计基于电子指纹的网络攻击溯源的方法,实现对被损数据细粒度、全过程的网络攻击路径溯源,对网络攻击影响范围的预测,对攻击路径类别的识别,能够根据网络攻击信息的动态输入,对网络攻击进行动态溯源分析。同时,通过对多组实验数据的统计分析,分析本技术的溯源准确率。后续还需进行进一步的深入研究和技术突破,主要需要开展大规模网络、大样本数据的环境下,攻击溯源的准确率、时效性、同源性攻击溯源等方面的优化。