网络安全态势感知之数据预处理

计算机与网络安全
数据采集之后通常要对其进行预处理,用于数据预处理的技术有很多,如清洗、集成、归约和变换等,这些技术并非互相排斥,而是可以一起使用的。预处理的目的是保证从数据采集、存储直到分析、可视化的整个过程中不引入太多错误和无关的数据。本文将对数据预处理的主要内容和几种典型的数据预处理方法进行介绍和说明。

数据采集之后通常要对其进行预处理,用于数据预处理的技术有很多,如清洗、集成、归约和变换等,这些技术并非互相排斥,而是可以一起使用的。预处理的目的是保证从数据采集、存储直到分析、可视化的整个过程中不引入太多错误和无关的数据。本文将对数据预处理的主要内容和几种典型的数据预处理方法进行介绍和说明。

1、数据预处理的主要内容

数据预处理的主要内容包括数据审核、数据筛选和数据排序。

(1)数据审核

数据审核主要包括以下四个方面:

准确性审核:从数据的真实性与精确性角度检查资料,其审核的重点是检查在调查过程中所发生的误差。

适用性审核:根据数据的用途,检查数据解释说明问题的程度。具体包括数据与所选主题、与目标总体的界定等是否匹配。

及时性审核:检查数据是否按照规定时间发送,如未按规定时间发送,则要检查未及时发送的原因。

一致性审核:检查数据在不同存储空间是否一致,数据内涵是否出现不一致、矛盾或不相容等情况。

对于不同来源的数据,在审核的内容和方法上有所不同。对于原始数据应主要从完整性和准确性两个方面进行审核。完整性审核主要是检查收集的数据是否全面,是否有所遗漏。准确性审核主要包括检查数据是否真实地反映了客观情况,内容是否符合实际;检查数据是否有错误,计算是否正确等。对于通过其他渠道取得的二手数据,除了对其完整性和准确性进行审核外,还应该着重审核数据的适用性和时效性。二手数据可以来自多种渠道,有些数据可能是为特定目的而获得的,或者是已经按照特定需要做了加工处理。对于使用者来说,应该首先弄清楚数据的来源和口径,以便确定是否符合数据分析处理需要、是否需要重新加工整理等。此外,还要对数据的时效性进行审核,一般来说,网络安全态势感知需要实时监控,应尽可能使用最新的实时获取数据。

(2)数据筛选

数据通过审核后,应对审核过程中发现的错误尽可能予以纠正。当发现的数据错误不能予以纠正,或者有些数据不符合分析处理要求而又无法弥补时,就需要对数据进行筛选。

数据筛选主要包括两方面的内容:

● 将某些不符合要求的数据或有明显错误的数据予以剔除。

● 将符合某种特定条件的数据筛选出来,对不符合特定条件的数据予以剔除。

数据筛选在数据预处理中的作用是十分重要的,筛选的数据的质量好坏直接影响后续网络安全数据分析和态势理解的正确性。

(3)数据排序

数据排序是指按照一定顺序将数据进行排列,以便数据分析人员发现一些明显的特征或趋势并找到解决问题的线索。除此之外,排序还有助于对数据检查纠错,为重新归类或分组等提供依据。在某些场合,排序本身就是分析的目的之一。排序可借助于计算机轻松完成。

2、数据预处理方法

网络安全数据的预处理至少应包括三个过程:一是数据清洗,即将原始数据通过数据规整和数据标注进行清洗,形成精准的安全数据;二是数据融合,基于已知的特征将基础安全数据进行合并,形成具有相同特征或属性的数据族,减少数据分析量;三是数据关联,即结合IP关系、时序关系、交互特征等进行数据关联,形成基础的数据关系网络图谱。

我们常常用完整性、一致性和准确性这三个因素来衡量数据质量,如果在这三个方面数据能满足其应用要求,那么它是高质量的。然而,由于各种机器或人为的原因,现实世界的数据会出现缺失、不一致和错误等情况,此外数据的时效性、可信性也会影响对数据的理解和处理。数据预处理采用的方法和技术有很多,如合并、降维、属性变换、特征子集选择、清洗与精简、整合与集成、重构、数据转换、数据融合等,在大数据的应用中还有一些高级的预处理手段,如写缓冲、读/写优先级仲裁以及索引定位等,但较为常用的基本方法主要包括以下几种,下面将依次进行介绍:

● 数据清洗

● 数据集成

● 数据归约

● 数据变换

● 数据融合

3、数据清洗

很多数据是“脏”的,如果不经过清洗,可能会导致分析过程陷入混乱,引起不可靠的输出,所以我们需要对“脏”数据进行“清洗”。数据清洗(Data Cleaning)有时也被称为数据清理或数据过滤,即除去源数据集中的噪声数据和无关数据,处理遗漏数据和清洗“脏”数据,除去空白数据域,通过填写缺失的值光滑噪声数据,识别或删除离群点并解决不一致性来“清洗”数据。《纽约时报》将数据清洗称为“看门人工作”,并且称数据分析人员百分之八十的时间都花费在数据清洗任务上。尽管安全分析师的工作重在安全分析,但也必须懂得对数据的处理技巧。

网络安全数据清洗的过程大致为:将不同途径、不同来源、不同格式的安全数据进行格式转换、垃圾过滤、数据去重、格式清洗等操作去除“脏”数据。以网络攻击知识库、网络安全情报库、黑白名单库等为基础,在海量原始数据规整过程中同步进行数据标注,将异常、报警、威胁、五元组等关键信息标记出来,形成精准的基础安全数据。

(1)不完整数据

不完整数据是指感兴趣的属性没有值。假设您需要分析某网络内的资产和属性数据,但很多元组的一些属性没有记录值。虽然这些属性出现了空值,但并不意味着它是错误数据,这时我们就需要为这些属性填上数值以将其补充完整,可以用到的方法如下:

人工填充:这是最笨、最原始的方法,费时费力,对于小规模数据还可以采用,但对于大规模数据尤其是数据量很大、缺失值很多的时候,这个方法可能就难以奏效。

忽略元组:如果个别元组的属性值空缺并不会影响整体数据的分析,则可以忽略。但如果元组的属性空缺比例过高,以致影响对数据的整体理解,那么该方法就不太可取。

用全局常量填充:用一个全局常量把不完整的属性值进行统一替换,如unknown。该方法虽然补全了缺失值,但对数据分析并没有起到太大的帮助,甚至可能会引起一些误解。

用属性中间值填充:所谓中间值,是指数据分布在“中间”的值,如对于对称分布的数据而言可以使用均值,而不对称分布的数据可以使用中位数作为中间值。将不完整元组的缺失属性值用中间值进行填充也是常用的一种方法。

用相似样本的属性中间值填充:如果能找到不完整元组的同类,对于不完整元组的缺失属性值,用其同类样本的属性中间值进行填充也是一种选择。

用最可能的值填充:还可以使用各种推理模型和工具,如回归、贝叶斯形式化方法、决策树等进行归纳推理,得到可能性较大的推测值来预测不完整元组的缺失属性值。

总的来说,前两种方法较为原始,应用不广泛,之后的三种方法填入的数据正确率较低,而最后一种方法相对来说是较优的策略,准确度较高。

(2)不一致数据

不一致数据(Incongruent Data)是指数据内涵出现不一致、矛盾和不相容等情况。数据的不一致可能是由于数据冗余造成的,也有可能是由于并发控制不当,或者是各种故障和错误造成的。数据冗余导致的不一致往往是由于重复存放的数据未能进行一致性更新;并发控制不当体现于多用户共享数据库,而更新操作未能保持同步;最后一种则是由于硬件故障和软件故障造成数据丢失或者数据损坏等情况发生。

(3)噪声数据

噪声数据(Noisy Data)是指存在错误或异常(偏离期望值)的数据,通常为无意义的数据,也包括那些难以被机器正确理解和翻译的数据。引起噪声数据的原因有很多,可能是采集数据的设备出现故障、数据输入或数据传输过程中出现错误、存储介质的损坏等。对噪声数据进行处理是数据清洗的一个重要环节,去除噪声以“光滑”数据的常用方法如下:

分箱(Binning):它是通过考察数据周围邻近的值来“光滑”有序数据值。这些有序的值被分布到一些“箱”中,每个“箱”中的数据值都被替换为箱中所有数据的均值或者中位数或者边界值,从而进行“光滑”。“箱”可以是等宽的,也可以是不等宽的。一般来说,“箱”的宽度越大,光滑效果越明显。该技术也是离散化技术的一种。

回归(Regression):是用一个函数拟合数据来“光滑”数据的技术。常见的回归方法有线性回归,通过找出拟合两个属性(或变量)的“最佳”直线,使得一个属性可以用来预测另一个。当然也有多元线性回归,它涉及更多的属性,且数据拟合到一个多维曲面上。

聚类(Clustering):通过把数据对象划分为子集来检测离群点。每个子集形成一个簇,簇中的对象彼此相似,但与其他簇中的对象不相似。落在某个簇集之外的值被视为集群点,可以去除。

当然除上述三种之外,还有很多其他的数据噪声去除方法,如有些基本的统计描述技术(如散点图和盒图)和数据可视化技术一样也能用于识别代表噪声的离群点,对数据进行“光滑”。

(4)数据清洗过程

上面介绍的不完整数据、不一致数据和噪声数据都是会导致不正确的数据,我们简单介绍了一些应对和处理方法,然而,实际上对数据进行清洗并不是那么轻松简单的事情,它还涉及一些重要过程。

数据清洗过程中要做的第一件事就是检测偏差。造成偏差的原因有多种,有的是人为的有意或无意造成的数据输入错误,有的是设备或系统造成的错误,有的是设计过程中的失误,有的是传输过程中的错误,有的是内涵不一致的数据表示,还有的是过期的数据。对于种种数据偏差,我们需要对数据本身的特性有一定的认识,比如:数据有哪些属性,每个属性的数据类型和定义域是什么,数据的分布是均匀的还是不均匀的,一组数据的平均值、中位数是什么,数据期望值、方差是什么,大部分数据都落在哪个区间?等等,这些关于数据的知识有助于我们判断正常数据范围和异常数据值。此外,我们还要对不一致数据进行问题查找,根据唯一性、连续性等规则和空值规则来考察数据是否缺失、一致等。

数据清洗过程中的第二件事就是数据规整。一旦发现了数据偏差,我们就需要对数据进行更正和修改,即数据规整,用一些推测值或正确值来替换有偏差的数据。有时仅仅通过人工修改就能对数据进行规整,有时则需要较为复杂的变换步骤,须采用一些高级的数据转换工具和手段来辅助。

以上两个步骤不是一次性完成,而是迭代执行的,需要多次迭代才能达到较好的结果。

(5)数据清洗工具

在实际应用中,有很多商用或开源的工具可以帮助我们进行数据清洗。

这些工具有的采用简单的领域知识(如拼写检查),检查并纠正数据中存在的错误和偏差。在数据来源较多的情况下,还可以采用分析和模糊匹配技术进行数据清洗。此外,还有一些被称为数据审计的工具可以辅助使用,这类工具通过分析数据发现规则和联系,并检测违反这些条件的数据来发现错误和偏差,如它们可以采用统计分析来发现相关性或者通过聚类来识别离群点。当然,也有一些基本的统计分析和数据可视化工具可以辅助发现数据错误和偏差点。

对于存在不一致性需要进行数据变换的数据,我们可以采用一些数据迁移工具来进行简单的变换,如常见的ETL工具,就能允许用户通过图形用户界面进行数据变换,Sqoop就是一种数据迁移工具,用于在Hadoop和关系数据库(结构化存储器)之间交换数据,进而改进数据的互操作性,它也是数据清洗工具的一种。

4、数据集成

数据的不一致性也是常见的引起数据错误的原因,为了减少数据集的不一致性和冗余,我们需要对数据进行集成,也就是对来自多个数据存储的数据进行合并处理、解决语义模糊性的过程。数据集成就是将若干个分散的数据源中的数据,逻辑地或物理地集成到一个统一的数据集合中,其核心任务是要将互相关联的分布式异构数据源集成到一起,提供统一的数据接口,使用户能够以透明的方式访问这些数据源。集成是指维护数据源整体上的数据一致性以提高信息共享利用的效率;透明的方式是指用户无需关心如何实现对异构数据源数据的访问,只关心以何种方式访问何种数据。

(1)数据集成的难点

数据分析之前多半需要进行数据集成。数据集成即将多个数据源中的数据合并,存放在一个一致的数据存储中,如存放在数据仓库或者大数据平台中。网络安全态势感知的数据源可能包括多个数据库、数据立方体或一般文件,常见的如各种DBMS、各类XML文档、HTML文档、电子邮件、文本文件、包捕获数据等结构化和非结构化数据。

数据集成的难点主要体现在以下方面:

异构性。被集成的数据源来自多个渠道,数据模型异构给集成带来很大困难。这些异构性主要表现在语法、数据语义、数据源使用环境等。例如,在语法异构上,源数据和目的数据之间命名规则及数据类型存在不同,需要实现字段到字段、记录到记录的映射,解决其中名字冲突和数据类型冲突。还有一些不常见的语法异构,如数据源在构建时隐含了一些约束信息,在数据集成时这些约束隐藏可能会造成错误。在语义异构上,常常是需要破坏字段的原子性,直接处理数据内容,常见的语义异构有字段拆分、字段合并、字段数据格式变换、记录间字段转移等。语法异构和语义异构的区别可以追溯到数据源建模时的差异:当数据源的实体关系模型相同,只是命名规则不同时,造成的只是数据源之间的语法异构;当数据源构建实体模型时采用了不同的粒度划分、不同的实体间关系以及不同的字段数据语义表示,必然会造成数据源间的语义异构,给数据集成带来很大麻烦。此外,复杂的关系模型也会造成很多语义异构现象。

分布性。数据源是分布在不同系统和设备中的,需要依靠网络进行数据传输,这就涉及网络传输性能以及如何保证安全性等问题。

自治性。各个数据源有很强的自治性,可以在不通知集成系统的前提下改变自身的结构和数据,这就给数据集成系统的鲁棒性提出挑战。

(2)数据集成类型层次

数据集成可以分为以下四个类型层次。

1)基本数据集成

在基本数据集成的过程中会遇到很多问题,其中最难的问题之一就是通用标识符问题,当同一业务实体存在于多个系统源中并且没有明确的办法确认这些实体是同一实体时,就会产生这类问题。处理该问题的办法有:

● 隔离。保证实体的每次出现都指派一个唯一标识符。

● 调和。确认哪些实体是相同的,并且将该实体的各次出现合并起来。

● 指定。当目标元素有多个来源时,指定某一系统在冲突时占主导地位。

数据丢失问题也是很常见的问题之一,一般解决办法是为丢失的数据产生一个非常接近实际的估计值来进行处理。

2)多级视图集成

多级视图主要用于对数据源之间的关系从低层次向高层次进行集成:底层数据表示方式为局部模型的局部格式,如关系和文件;中间数据表示方式为公共模式格式,如扩展关系模型或对象模型;高级数据表示方式为综合模型格式。视图的集成化过程为两级映射:

● 数据从局部数据库中经过数据翻译、转换并集成为符合公共模型格式的中间视图。

● 进行语义冲突消除、数据集成和数据导出处理,将中间视图集成为综合视图。

3)模式集成

模式集成的指导理论很少,其设计的好坏常常视设计者的经验而定,它属于数据库设计问题。在实际应用中,数据源的模式集成和数据库设计仍有相当大的差距,最明显的表现是在模式集成时出现的命名、单位、结构和抽象层次等发生冲突的问题,无法照搬数据库模式设计的经验来进行处理,需要根据具体情况而定。

在众多互操作系统中,模式集成的基本框架有属性等价、关联等价和类等价等,但最终都可以归类为属性等价。

4)多粒度数据集成

多粒度数据集成是异构数据集成中最难的部分,理想的多粒度数据集成模式应当是自动逐步抽象。多粒度数据集成包括数据综合和数据细化两个方面。

● 数据综合也称为数据抽象,实际上是特征提取和归并的过程,它是指由高精度数据经过抽象形成精度较低但粒度较大的数据,其作用过程为从多个较高精度的局部数据中获得较低精度的全局数据,并对各局域数据进行综合,提取其主要特征。

● 数据细化指通过由一定精度的数据获取精度较高的数据,实现该过程的主要途径有时空转换、相关分析或者由综合中数据变动的记录进行恢复等。

(3)数据集成方法模式

数据集成能把不同来源、格式、特点性质的数据在逻辑上或物理上有机地集中,从而提供全面的数据共享。在数据集成领域,目前已经有很多成熟的框架可以利用,下面对这几种数据集成方法模式做一个基本的分析。

联邦模式。这种模式常常会构造一个联盟数据库,可以是集中数据库系统、分布式数据库系统或者其他联邦式系统类型,它由半自治数据库系统构成,相互之间分享数据,联盟中各数据源之间相互提供访问接口。在这种模式下又分为紧耦合和松耦合两种情况,紧耦合提供统一的访问模式,一般是静态的,在增加数据源上比较困难;而松耦合则不提供统一的接口,但可以通过统一的语言访问数据源,松耦合的前提是解决所有数据源语义上的不一致等问题。

中间件模式。中间件位于异构数据源系统(数据层)和应用程序(应用层)之间,向上为访问集成数据的应用提供统一的数据模式和通用访问接口,向下则协调各数据源系统。中间件模式主要是采用统一的全局数据模型来访问异构的数据库、遗留系统、Web资源等。各数据源的应用程序独立完成自身的任务,中间件系统为异构数据源提供一个高层次检索服务。它是当前比较流行的一种数据集成方法,通过在中间层提供一个统一的数据逻辑视图,隐藏底层的数据细节,使得用户可以把集成数据源看为一个统一整体。能否实现该模型的关键在于如何构造一个逻辑视图,使得不同数据源之间能映射到这个中间层上。

数据仓库模式。数据仓库是面向主题、集成的、与时间相关和不可修改的数据集合,它将各种应用系统集成在一起,为统一的历史数据分析提供坚实的平台,对信息处理提供支持。其中,数据被归类为广义的、功能上独立、没有重叠的主题。数据仓库技术在另外一个层面上表达数据之间的共享,它主要是为了针对某个应用领域提出的一种数据集成方法。

以上几种方法模式在一定程度上解决了应用程序之间的数据共享和互通的问题,但也存在差异:联邦模式主要面向多个数据库系统的集成,其中数据源有可能要映射到每一个数据模式,当集成的数据量和数据库系统很大时困难重重;而中间件和数据仓库模式更适应海量数据的集成,我们在网络安全态势感知的应用上可以更多借鉴这两种模式。

5、数据归约

网络安全数据量浩如烟海、多如细沙,通过数据清洗和数据集成,仅仅能去除一部分无用或错误数据,但对后续的数据分析和态势理解预测并不能节约更多的时间和工作量,因为数据量仍然很大,我们还需要进行一定的手段和方法来减少需要处理的数据量。网络安全数据归约属于数据融合的范畴,其大致过程为:按照数据的来源、类别、属性、时间等进行融合,形成来源明确、类别统一、属性一致、时间有序的源数据。结合IP特征、流量特征、行为特征等,对同类特征指标、同类行为规律的数据进行融合处理,形成在表达的内容、反映的效果、目标的指向上具有共性的数据族。

对于小型或中型数据集,一般的数据预处理步骤已经足够,但对真正大型数据集来讲,在进行数据分析以前更可能采取一个中间的、额外的步骤——数据归约。所谓归约,就是在尽可能保持数据原貌的前提下,最大限度地精简数据量。数据归约主要有两个途径:属性选择和数据采样,分别针对原始数据集中的属性和记录。数据归约可用来得到海量数据集的归约表示,被归约后的数据集虽然小,但仍大致保持原始数据的完整性。

数据归约常用到的策略包括特征归约、维归约、样本归约、数量归约和数据压缩等,接下来进行一一介绍和分析。

(1)特征归约

用于分析的数据集可能包含数以百计的特征(或属性),其中大部分特征可能与网络安全态势感知任务不相关或者是冗余的。特征归约是从原有的特征中删除不相关、弱相关或冗余的特征,或者通过对特征进行重组来减少特征的个数,进而找出最小特征集,使数据类的概率分布尽可能地接近使用所有特征得到的原分布。其原则是在保留甚至提高原有判别能力的同时,尽可能地减少特征向量的维度。特征归约算法的输入是一组特征,输出的是该组特征的一个子集。特征归约一般包括3个步骤:

搜索:在特征空间中搜索特征子集,每个子集称为一个状态,由选中的特征所构成。

评估:输入一个状态(子集),通过评估函数或预先设定的阈值输出一个评估值,使评估值达到最优。

分类:使用最终的特征集来完成分类算法。

我们通常使用统计显着性检验来确定“最好的”和“最差的”特征,这种检验假定属性间是相互独立的。特征归约的基本方法有:①逐步向前选择,即从空特征集开始,确定特征集中“最好的”特征,将其加入归约集中,不停进行迭代,将剩下的原特征集中的“最好的”特征添加进来;②逐步向后删除,即从整个特征集开始,不断删除特征集中“最差的”特征,反复迭代;③组合式方法,即将逐步向前选择和逐步向后删除方法结合使用,每次选择一个“最好的”特征,并在剩余特征中删除一个“最差的”特征,依次迭代;④决策树归纳,即在每个节点上,算法会选择“最好的”特征,并将数据划分成类,每个内部节点表示一个特征上的测试,每个分支对应于测试的一个结果,每个外部节点表示一个类预测。

特征归约处理的效果体现在:归约后的数据大量减少;数据分析处理精度提高;数据预处理结果简单且特征减少。

(2)维归约

不同于特征归约,维归约的主要目的是减少所考虑的随机变量或属性的个数。维归约常用的方法有小波变换和主成分分析,它们都是通过把原始数据变换或投影到较小的空间,来对数据进行降维。

小波变换:一种线性信号处理技术,将数据向量X变换成不同的数值小波系数向量X’,每个元组看作一个n维数据向量,即X=(x1,x2,…,xn),描述n个数据库属性在元组上的n个测量值。小波变换常用于多维数据,如数据立方体,一般按以下方法实现。首先将变换用于第一个维,然后第二个维,以此类推。其计算复杂度与立方体中单元的个数呈线性关系。对于稀疏或倾斜数据以及具有有序属性的数据,小波变换能给出很好的结果。据测量,小波变换的有损压缩优于JPEG压缩。在实际应用中,许多领域如时间序列数据分析、计算机视觉和指纹图像压缩都会用到小波变换。

主成分分析:主成分分析又称K-L方法,搜索k个最能代表数据的n维正交向量,其中k≤n,将原数据投影到较小的集合中。

主成分分析基本过程为:①对输入数据规范化,使每个属性都落入相同区间;②计算k个标准正交向量,作为规范化输入数据的基,这些向量称为主成分,输入数据是主成分的线性组合;③对主成分按强弱(方差大小)降序排列;④去掉较弱的成分(方差较小的)来归约数据。该法可用于有序和无序的属性,且能处理稀疏和倾斜数据,多用来做多元回归和聚类分析的输入。多维数据可通过归约为二维问题来处理。不同于小波变换适合高维数据,主成分分析能更好地处理稀疏数据。

(3)样本归约

样本都是已知的,通常数目很大,质量或高或低,可能有或者没有关于实际问题的先验知识。所谓样本归约,是指从完整的数据集中选出一个有代表性的样本的子集。所选取子集大小的确定要以计算成本、存储要求、估计量的精度以及其他一些与算法和数据特性作为衡量因素。

数据分析的初始数据集描述了一个极大的总体,而采用样本归约后,对数据的分析只能基于样本的一个子集。初始数据集中最大和最关键的维度数就是样本的数目,也就是数据表中的记录数。当我们确定数据的样本子集后,就用它来提供整个数据集的一些信息,这个样本子集通常又称为“估计量”,它的质量依赖于所选取样本子集中的元素。数据取样过程总会造成取样误差,这对所有的方法和策略来讲都是不可避免的,当样本子集的规模变大时,取样误差一般会降低,所以数据集越大,采用样本归约的效果越好。

与采用整个数据集的数据进行分析相比较,样本归约具有以下优点:一是成本低,二是速度更快,三是范围更广,四是在有些情况下可以获得更高的精度。因此,样本归约也是较为常见的数据归约方法之一。

(4)数量归约

数量归约是指用可替代的、较小的数据表示形式来替换原数据。数量归约可以是有参的,也可以是无参的。对于有参方法而言,则使用一个模型来估计数据,只需要存放模型参数,而不需要存放实际数据。有参的数量归约有以下两种:

回归:线性回归和多元回归。

对数–线性模型:近似离散多维概率分布。

无参的数量归约有以下四种:

直方图:采用分箱近似数据分布,其中V–最优和MaxDiff直方图是最精确实用的。

聚类:将数据元组视为对象,将对象划分为群或聚类,使得在一个聚类中的对象“类似”而与其他聚类中的对象“不类似”,在分析时使用数据的聚类代替实际数据。

抽样:与样本归约有一定交叉,用数据的较小随机样本表示大的数据集,如简单选择n个样本(类似样本归约)、聚类选样和分层选样等。

数据立方体聚集:数据立方体存储多维聚集信息,每个单元存放一个聚集值,对应多维空间的一个数据点,在最低抽象层创建的称为基本立方体,在最高层抽象的称为顶点立方体。

数量归约是数据离散化技术的一种,它将具有连续型特征的值离散化,使之成为少量的区间,每个区间映射到一个离散符号,这种技术的好处在于简化了数据描述,并易于理解数据和最终分析结果。

(5)数据压缩

数据压缩通过采用一定的变换方法和技术,对原始数据进行归约或“压缩”表示。如果能够通过对“压缩”后的数据进行重构,还原出原始数据,且这个过程不损失信息,那么可以说这种数据压缩是无损的。如果我们只能近似地重构并还原原始数据,那么该数据归约则称为有损的。通常,维归约和数量归约也可以视为某种形式的数据压缩。

当然,还有许多其他方法可以用来进行数据归约。我们应当注意的是,花费在数据归约上的计算时间不应超过或“抵消”在归约后的数据上进行分析和挖掘所节省的时间,这样的归约才有意义和有价值。

6、数据变换

数据预处理阶段还有一种常用的技术就是数据变换。数据变换又称为数据转换,是指将数据从一种表示形式变为另一种表现形式的过程。通过一定的数据变换,数据被转换或统一成适合于进行分析的形式,为网络安全态势理解提供更有效的数据形式。

(1)数据变换策略

常见的数据变换策略有以下几种:

光滑:也就是去掉数据中的噪声。这与前面介绍的数据清洗过程有一定交叉。

属性(特征)构造:由给定的属性构造新的属性并添加到属性集中,以辅助后续分析。

聚合:对数据进行汇总和集中,可以为多个抽象层的数据分析构造数据立方体。这与前面介绍的数据归约过程也有一定交叉。

标准化:把属性数据按比例缩放,使之落入一个特定的小区间。

离散化:将数值属性的原始值用区间标签或概念标签替换,这些标签可以递归地组织成更高层概念,导致数值属性的概念分层,对于同一个属性可以定义多个概念分层。

概念分层:将某些属性泛化到较高的概念层,这些高层次概念层蕴含在数据库的模式中,可以在模式定义级自动定义。

(2)数据变换处理内容

根据上述策略,数据变换通常包含以下处理内容:

平滑处理:该过程可以帮助消除数据中的噪声,主要技术方法有聚类方法、分箱方法和回归方法等。

合计处理:对数据进行总结或合计操作。这样操作常用于构造数据立方体或对数据进行多粒度分析。

泛化处理:用更抽象或更高层次的概念来取代低层次或数据层的数据对象。

标准化处理:就是将有关属性数据的比例投射到特定小范围之中。

(3)数据变换方法

我们从上面已经了解到数据变换的常用策略和处理内容,下面介绍几种有代表性的数据变换方法。

分箱方法。这是一种基于指定的箱个数的自顶向下的分裂技术。例如,通过使用等宽或等频分箱,然后用箱均值或中位数替换箱中的每个值,可以将属性值离散化,就像用箱的均值或箱的中位数“光滑”一样。该技术可以递归地作用于结果划分,产生概念分层。由于并不使用类信息,其是一种非监督的离散化技术。它对用户指定的箱个数很敏感,也容易受离群点的影响。

直方图分析方法。该方法也是一种非监督的离散化技术。直方图由一系列高度不等的纵向条纹或线段表示数据分布的情况,可以使用各种划分规则来定义直方图。一般来说,等频直方图是较理想的情况,数据值被划分为多个分区,每个分区包括相同个数的数据元组。直方图分析方法可以递归地用于每个分区,自动地产生多级概念分层,直到达到一个预先设定的概念层数为止,也可以对每一层使用最小区间长度来控制递归过程,最小区间长度设定每层每个分区的最小宽度,或每层每个分区中值的最少数目。

聚类、决策树和相关分析方法。聚类分析即将一个属性的值划分成簇或组,每个簇中的值相似,由聚类分析产生的簇的集合称作一个聚类。聚类可以用来产生一个属性的概念分层,其中每个簇形成概念分层的一个节点。在相同的数据集上,不同的聚类方法可能产生不同的聚类,聚类的策略有自顶向下的划分策略和自底向上的合并策略,在前一种策略中,每一个初始簇或分区可以进一步分解成若干子簇,形成较低的概念层;在后一种策略中,通过反复地对邻近簇进行分组,形成较高的概念层。决策树是一种树形结构,也称作分类树,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个节点代表一种类别。决策树是一种常用的分类方法,一般采用自顶向下划分的策略,它也是一种监督学习方法。决策树方法的主要思想是选择划分点(熵是最常用于确定划分点的度量),使得一个给定的结果分区包含尽可能多的同类元组,选择某个属性值的最小化熵为划分点并递归地划分结果区间,得到该属性的概念分层。相关分析是对不同特征(属性)或数据之间的相关关系进行分析的一种统计方法。按相关的程度分为完全相关、不完全相关和不相关;按相关的方向分为正相关和负相关;按影响因素的多少分为单相关和复相关。常用的相关分析方法有图表相关分析(折线图及散点图)、协方差及协方差矩阵、相关系数、一元回归及多元回归、信息熵及互信息等。上述方法各有特点,其中图表方法最为直观,相关系数方法可以看到变量之间两两的相关性,回归方程可以对相关关系进行提炼并生成模型用于预测,互信息可以对文本类特征间的相关关系进行度量。

标准化方法。在数据预处理过程中,由于所采用的度量单位对数据分析有一定影响,不同的度量单位会产生不同的结果,为了帮助避免对度量单位选择的依赖性,需要采用一定的标准化(或规范化)手段,对度量单位进行数据变换,使之落入较小的共同区间。一般在没有标准化的情况下,用较小的单位表示属性会导致该属性具有较大值域,对这样的属性常会赋予较高的“权重”,而标准化方法则会尽量赋予所有属性相等的权重。常用的数据标准化方法有三种,即最小–最大规范化、z分数规范化和按小数定标规范化。对于涉及神经网络的分类算法或者基于距离度量的分类和聚类的情况,标准化方法特别有用,在没有数据的先验知识时标准化也是很有用的。

概念分层方法。该方法一般适用于对标称数据的数据变换。标称属性具有有穷多个不同值,这些值呈无序排列,采用人工定义概念分层非常耗时和枯燥,因此可以利用数据库隐藏的模式自动地对其进行定义和分层。概念分层可以把数据变换到多个粒度层,常见的方法有:①采用人工判别方式在模式级显式地说明属性的部分序(如偏序或全序),进而容易地定义概念分层。通常,标称属性或维的概念分层涉及一组属性。②通过显式数据分组说明分层结构的一部分。在大型数据库中,通过显式的值枚举定义整个概念分层是不现实的,然而,对于小部分中间层数据,可以很容易地显式说明分组。③说明属性集但不说明它们的偏序。通过说明一个属性集形成概念分层,但并不显式地说明它们的偏序,然后由系统自动地产生属性的序(根据给定属性集中每个属性不同值的个数),构造有意义的概念分层,具有最多不同值的属性放在分层结构的最底层。一个属性的不同值个数越少,其所在概念分层结构中所处的层次越高。④只说明部分属性集。在定义分层时,通过人工方式可能对分层结构中应当包含什么不那么清楚,因此在分层结构说明中可能只包含相关属性的一小部分,为了处理这种部分说明的分层结构,可以在数据库模式中嵌入数据语义,使得语义密切相关的属性能够聚集在一起,这样一个属性的说明可能触发整个语义密切相关的属性组聚拢,进而形成一个完整的分层结构。

7、数据融合

(1)数据融合与态势感知

数据融合与整个态势感知过程的关系都极为密切,不仅仅在态势提取阶段,在态势理解和预测阶段也会用到大量的数据融合算法模型,甚至前面介绍的预处理方法有些也会与数据融合方法有交叉,因为数据融合不仅仅是一种数据处理方法,还是一门学科。我们先来看看数据融合的产生背景。早在20世纪70年代军事领域就提出了“多源数据融合”的概念,多源数据融合就是模仿人和动物处理信息的认知过程。人或动物首先通过眼睛、耳朵和鼻子等多种感官对客观事物实施多种类、多方位的感知,获得大量互补和冗余的信息,然后由大脑对这些感知信息依据某种未知的规则进行组合和处理,从而得到对客观对象统一与和谐的理解和认识。人们希望用机器来模仿这种由感知到认知的过程,于是产生了新的边缘学科——数据融合。数据融合也称为信息融合,是指对多源数据进行多级别、多层次、多方面的集成、关联、处理和综合,以获得更高精度、概率或置信度的信息,并据此完成需要的估计和决策的信息处理过程。

数据融合技术起源于军事领域,也在军事领域得到广泛应用,其应用范围主要有:①组建分布式传感器网络进行监视,比如雷达网络监视空中目标、声呐网络监视潜艇。②实用多传感器对火力控制系统进行跟踪指挥。③在指挥控制系统中进行应用,进行态势和威胁估计。④侦察和预警等。美国军队的军事情报分析动态显示专家系统、多传感器多平台跟踪的情报相关处理器系统、陆军战术指控系统,法国的防空指挥控制系统,德国“豹2”坦克的信息系统都应用了数据融合技术。在民用方面,数据融合被成功应用于机器人和智能仪器系统、遥感图像分析与理解、气象预报、安全防范、工业监控、智能交通、经济金融等诸多领域。

态势感知的概念源于空中交通监管,态势感知过程以态势数据的融合处理为中心,态势感知模型的建立大多以数据融合模型为基础,态势感知过程的数据处理流程也与数据融合模型的处理流程非常相似。最早提出“网络空间态势感知”概念的Tim Bass设计的基于多传感器数据融合的入侵检测框架,就是将数据融合领域中的JDL模型应用到网络安全态势感知领域的结果。由此可见,网络空间态势感知从诞生之初就与数据融合技术密不可分。数据融合技术是态势感知技术的基础,态势感知需要结合网络中各种设备的多样信息以得到一个综合结果,对数据的处理和融合是态势感知过程的中心。网络环境中的各种设备信息、安全告警信息及网络流量信息等繁杂多样的信息构成了网络中的多源异构数据,态势感知的目的是对这些数据进行融合处理并得到网络的总体态势。数据融合技术能有效融合所获得的多源数据,充分利用其冗余性和互补性,在多个数据源之间取长补短,从而为感知过程提供保障,以便更准确地生成网络空间态势信息。

(2)数据融合的层次分类

数据融合作为一种多级别、多层次的数据处理,作用对象主要是来自多个传感器或多个数据源的数据,经过数据融合所做的操作,使得通过数据分析而得到的结论更加准确与可靠。按照信息抽象程度可以把数据融合分为3个层次,从低到高依次为数据级融合、特征级融合和决策级融合。

最低层为数据级融合,也称为信号级融合。对未经处理的各个数据源的原始数据进行综合分析处理,进行的操作只包括对数据的格式进行变换、对数据进行合并等,最大程度地保持了原始信息的内容。这种处理方式可以处理大量的信息,但是操作需要的时间较长,不具备良好的实时性。

中间一层为特征级融合。在对原始数据进行预处理以后,对数据对象的特征进行提取,之后再进行综合处理。通过数据的特征提取,在获得数据中重要信息的同时,去掉一些不需要关注的信息,这样就实现了信息的压缩,减小了数据的规模,满足了实时处理的要求。

最高层是决策级融合。在决策级融合之前,已经对数据源完成了决策或分类。决策级融合根据一定的规则和决策的可信度做出最优决策,因此具有良好的实时性和容错性。

在当前复杂的网络环境中存在着多种多样的安全设备,这些安全设备从不同的角度对网络上不同的内容进行监控,所提供的安全事件信息的格式也各不相同。将处在不同位置、所提供信息格式也不相同的网络安全设备看作网络安全状态信息采集传感器,那么采用数据融合技术对各种网络安全事件信息进行预处理操作,在此基础上进行归一化、态势聚合计算等操作,就可以实现对网络运行状况以及面临的威胁情况等的实时评估。在对多传感器产生的原始安全信息进行压缩和特征提取等低层数据融合操作后,其输出结果就可以为高层次的态势评估提供依据。数据融合以及相关的算法在网络安全管理和安全态势分析与评估中得到了很多应用。

(3)数据融合相关算法

数据融合继承自许多传统学科并且运用了许多新技术,是一种对数据进行综合处理的技术。按照不同的分类方法,有的将数据融合方法分为三大类,即直接操作数据源(如加权平均、神经元网络)、利用对象的统计特性和概率模型进行操作(如卡尔曼滤波、贝叶斯估计、统计决策理论)和基于规则推理的方法(如模糊推理、证据推理、产生式规则等);有的将数据融合方法分为两大类,一类是经典方法,主要包括基于模型和基于概率的方法,如加权平均法、卡尔曼滤波法、贝叶斯推理、Dempster-Shafer证据理论(简称D-S证据理论)、小波分析、经典概率推理等,另一类是现代方法,主要包括逻辑推理和机器学习的人工智能方法,如聚类分析法、粗糙集、模板法、模糊理论、人工神经网络、专家系统、进化算法等。

1)经典方法

加权平均法是最简单直观的数据融合方法,它将不同传感器提供的数据赋予不同的权重,加权平均生成融合结果。其优点是直接对原始传感器数据进行融合,能实时处理传感器数据,适用于动态环境,缺点是权重系数带有一定的主观性,不易设定和调整。

卡尔曼滤波法常用于实时融合动态底层冗余传感器数据,用统计特征递推决定统计意义下的最优融合估计。其优点是它的递推特性保证系统处理不需要大量的数据存储和计算,可实现实时处理;缺点是对出错数据非常敏感,需要有关测量误差的统计知识作为支撑。

贝叶斯推理法基于贝叶斯推理法则,在设定先验概率的条件下利用贝叶斯推理法则计算出后验概率,基于后验概率做出决策。贝叶斯推理在许多智能任务中都能作为对于不确定推理的标准化有效方法,其优点是简洁、易于处理相关事件;缺点是难以区分不确定事件,在实际运用中定义先验似然函数较为困难,当假定与实际矛盾时,推理结果很差,在处理多假设和多条件问题时相当复杂。

D-S证据理论的特点是允许对各种等级的准确程度进行描述,并且直接允许描述未知事物的不确定性。在D-S证据理论中使用了一个与概率论相比更加弱的信任函数,信任函数的作用就是能够准确地把不知道和不确定之间的差异区分开来。其优点是不需要先验信息,通过引入置信区间、信度函数等概念对不确定信息采用区间估计的方法描述,解决了不确定性的表示方法。缺点在于其计算复杂性是一个指数爆炸问题,并且组合规则对证据独立性的要求使得其在解决证据本身冲突的问题时可能出错。

2)现代方法

聚类分析法是一组启发式算法,通过关联度或相似性函数来提供表示特征向量之间相似或不相似程度的值,据此将多维数据分类,使得同一类内样本关联性最大,不同类之间样本关联性最小。其优点是在标识类应用中模式数目不是很精确的情况下效果很好,可以发现数据分布的一些隐含的有用信息。缺点在于由于其本身的启发性使得算法具有潜在的倾向性,聚类算法、相似性参数、数据的排列方式甚至数据的输入顺序等都对结果有影响。

粗糙集理论的主要思想是在保持分类能力不变的前提下,通过对知识的约简导出概念的分类规则。它是一种处理模糊性和不确定性的数学方法,利用粗糙集方法分析决策表可以评价特定属性的重要性,建立属性集的约简以及从决策表中去除冗余属性,从约简的决策表中产生分类规则并利用得到的结果进行决策。

模板法应用“匹配”的概念,通过预先建立的边界来进行身份分类。它首先把多维特征空间分解为不同区域来表示不同身份类别,通过特征提取建立一个特征向量,对比多传感器观测数据与特征向量在特征空间中的位置关系来确定身份。模板法的输入是传感器的观测数据,输出的是观测结果的身份,其缺点是边界建立时会互相覆盖从而使身份识别产生模糊性,同时特征的选择和分布也会对结果有很强的影响。

模糊理论是基于分类的局部理论,建立在一组可变的模糊规则之上。模糊理论以隶属函数来表达规则的模糊概念和词语的意思,从而在数字表达和符号表达之间建立一个交互接口。它适用于处理非精确问题,以及信息或决策冲突问题的融合。由于不同类型的传感器识别能力不同,模糊理论中考虑了信源的重要程度,更能反映客观实际,提高了融合系统的实用性。

人工神经网络是模拟人脑结构和智能特点,以及人脑信息处理机制构造的模型,是对自然界某种算法或函数的逼近,也可能是对一种逻辑策略的表达。人工神经网络在数据融合方面应用广泛,如前向多层神经网络及其逆推学习算法、对向传播神经网络等。神经网络处理数据容错性好,具有大规模并行模拟处理能力,具有很强的自学习、自适应能力,某些方面可以替代复杂耗时的传统算法。

专家系统也称基于知识的系统,是具备智能特点的计算机程序,该系统具备解决特定问题所需专门领域的知识,是在特定领域内通过模仿人类专家的思维活动以及推理与判断来求解复杂问题。其核心部分为知识库和推理机,知识库用来存放专家提供的知识,系统基于知识库中的知识模拟专家的思维方式来求解问题。推理机包含一般问题求解过程所用的推理方法和控制策略,由具体的程序实现。推理机如同专家解决问题的思维方式,知识库通过推理机来实现其价值。专家系统可用于决策级数据融合,适合完成那些没有公认理论和方法、数据不精确或不完整的数据融合。

不同数据融合算法的优缺点以及适用范围如表1所示。

表1 各种数据融合算法对比分析

此外,关联分析这个方法也很适合网络安全数据的融合预处理。常见的有:一是依据数据族的属性相似度进行关联,如数据族指向的目标相同、端口相同或目标地址相同等,建立关联关系。二是依据时间顺序进行关联,如同一IP在网络流量、操作日志、应用审计、监测报警等数据上具有时序特征的,建立关联关系。三是IP交互关联,在IP通信、数据流向、请求与应答等存在交互行为的,建立关联关系。通过上述数据关联,可将原始数据进行重新组织,以梳理出数据的流向、行为、脉络、层次等关系,形成数据关系图谱。

THEEND

最新评论(评论仅代表用户观点)

更多
暂无评论