一种基于大数据的信息安全管理运维服务平台的数据采集处理方法及装置
技术领域
本发明涉及信息安全应用技术领域,尤其涉及非结构化实时数据库的数据存储性能、数据查询性能和平台高可用性。
背景技术
本发明中包含的英文简称如下:
SPL:SearchProcessingLanguage搜索处理语言
ETL:Extract,TransformandLoad提取、转换和加载技术
SOC:SecurityOperationCenter安全管理中心
IDS:IntrusionDetectionSystems入侵检测系统
MIS:ManagementInformationSystem管理信息系统
DMZ:demilitarizedzone隔离区、或非军事化区
APP:Application应用程序
SNMP:SimpleNetworkManagementProtocol简单网络管理协议
HDFS:HadoopDistributeFileSystemHadoop分布式文件系统
ODBC:OpenDatabaseConnectivity开放数据库互连
WMI:WindowsManagementInstrumentationWindows管理规范
Opsec:OpenPlatformforSecurity安全开放平台
NAS:NetworkAttachedStorage网络附属存储
SAN:StorageAreaNetworkandSANProtocols存储区域网络及其协议
IBM:InternationalBusinessMachinesCorporation国际商业机器公司
MQ:MessageQueue消息队列
安全生产历来是保障各项工作有序开展的前提,也是考核各级领导干部的否决指标。网络及信息安全管理运维体系是各类企业安全生产工作的重要组成部分。保障网络高效稳定地运行,是企业一切市场经营活动和正常运作的基础。
随着各类企业信息系统的建设和完善,有效的提高了劳动生产率,降低了运营成本。一旦企业各业务系统出现安全事件、或发生故障、或形成性能瓶颈,不能及时发现、不能及时处理、不能及时恢复,势必直接影响企业的业务运行,影响企业的正常运营秩序,导致企业业务不能正常开展。因此,对于企业IT基础实施的安全保障就显得格外重要。
随着企业信息化程度不断提高。各业务系统间联系越来越密切,数据交换越来越频繁,各系统有着复杂网络或逻辑连接,存在大量数据交换,甚至一个故障可以引发成为企业全网故障,一点或一种业务系统出现漏洞感染病毒或受到攻击,将迅速波及其它业务系统及网络,甚至导致企业全网瘫痪。
尽管目前一些企业的信息安全技术体系已初步形成,但是随着系统里存储的事件越来越大,查询速度越来越慢,用户的也会越来越体验差。
目前,各类企业信息安全运维管理平台存在以下问题:
1、各种信息安全产品和网络设备品种多,分布广,数据量大,缺少统一的数据分析管理和风险管理,缺少基于大数据的信息安全分析;
2、信息安全产品和网络设备的知识库不统一,缺少统一的解决方案;
3、安全职责不清,具体职责未落实到位;
4、信息安全管理运维考核不细致,缺少部分必要和关键的指标;
5、不同安全设备事件之间甚至同一安全设备的事件缺少更加高级智能的分析和汇聚关联,导致数据量庞大,不便于对安全隐患的分析和发现问题,防患于未然;
6、信息安全事件上报不及时,故障诊断不及时,处理效率低,效果差;
7、信息安全事件和资产的漏洞没有进行必要的关联分析和风险分析,导致很多事件没有进一步的分析和处理;
8、出现紧急事件没有很好的预警和处理流程,缺乏数据在线备份、离线备份和数据恢复工具。
上述问题不同程度地存在企业已经建成的业务和网络之中,成为企业今后业务安全管理运维稳定提升的障碍。
为此,如何利用信息化手段提高企业安全管理运维效益,解决企业各系统所存在的安全隐患,以及设计出基于大数据的海量事件处理方法及装置,优化企业信息安全管理和维护工作,使得它能够为各类企业提供专业的和高效率的信息安全管理运维服务,即成为尤其是信息安全管理运维服务商必须要解决的一个重要课题。
发明内容
本发明在分析了上述各类企业信息安全管理运维服务平台的缺陷和不足之后,提出了一种基于大数据的信息安全管理运维服务平台的数据采集处理方法及装置,在满足实时采集、实时查询和高可用性的同时,也能够提升用户体验,以及平台的可扩展性。
本发明的核心思想包括:构建基于大数据的信息安全管理运维服务平台的分布式存储引擎、分布式查询引擎和半结构化实时数据库,提升采集数据、存储数据和数据查询的性能,以及平台的高可用性。
分布式存储引擎,并行地接收所采集到的数据,以及对所采集到的数据能够实现快速“就近存储”,即选择最近的存储节点快速存储所采集到的数据,或者说,将同一个地点的采集数据存储到最近节点(或者次最近节点)上;并且,存储服务器可以按照时长或存储块大小的策略进行分片,索引服务器依据节点和时间段(或存储块大小)信息建立索引。所采集到的数据选择存储数据库时,首先,考虑选择最近的节点(或次最近节点)来存储所采集到的数据;其次,选择与之采集时间范围匹配的索引服务器之下的数据库服务器存储所采集到的数据;或者,选择与之采集时间匹配的索引服务器之下的存储块分片,将所采集到的数据存储到所包含的多个分片所对应的数据库中。
进一步地,上述方法还包括:索引服务器,按照预定的采集数据存储策略建立索引。
进一步地,为了提升和优化所采集到数据的入库性能,需要采用并行处理机制,例如,使用HadoopMapReduce或Spark分布式架构。
分布式查询,根据查询请求,分布式查询引擎首先确定该查询请求涉及到一个或多个节点上的索引服务器(或同一个节点内的多个索引服务器或不同节点的多个索引服务器)。如果该查询请求涉及多个索引服务器,则同时转发该查询请求到所述多个索引服务器中。各个索引服务器将查询结果返回给分布式查询引擎,分布式查询引擎合并查询结果;为了提升查询性能,需要采用并行查询机制,例如,使用HadoopMapReduce或Spark分布式架构。
半结构化实时数据库,存储所采集数据的数据库,采用半结构化的实时数据库,或非结构化实时数据库。由于传统结构化数据库需要事先熟悉全部数据,这几乎不可能,因为所采集的数据字段数量是非常之大,而且所采集的数据由于设备老化和升级等原因其数据字段也是动态变化的,事先正确地了解它们往往是不切实际的。
进一步地,为了保证安全管理运维服务平台的高可用性,索引服务器和存储采集数据的分片,需要存储多个副本。例如,索引服务器存储两个副本,而存储采集数据分片则存储3个副本。这多个副本,既可以在同一个节点内的不同服务器上,也可以在不同的节点的服务器上。
本专利针对目前技术方案中存在的主要问题而提供了一种高性能的大数据的采集数据存储和查询的方法及装置,具有以下特点:
(1)实时性能
为满足实时采集、实时存储和实时查询的需求,采用分布式并行计算架构,使用HadoopMapReduce或Spark的并发处理能力,来提升系统的性能;
(2)高可用性
索引服务器和存储采集数据的分片,有多个副本,保证了安全管理运维服务平台的高可用性;
(3)可扩展性
分布式的存储架构,能够实现在线升级和平滑过渡。
附图说明
图1为本发明所述的一种基于大数据的信息安全管理运维服务平台的数据采集处理方法及装置的应用场景示意图;
图2为本发明所述的一种基于大数据的信息安全管理运维服务平台的数据采集处理方法及装置的功能框架示意图。
具体实施方式
下面是根据附图和实例对本发明的进一步详细说明:
本发明提供了一种基于大数据的信息安全管理运维服务平台的数据采集处理方法及装置,其具体包括如下内容:分布式存储、分布式查询、分布式展示和半结构化实时数据库。
分布式存储引擎,并行地接收所采集的数据,并对所采集到的数据实现快速“就近存储”,即选择最近的存储节点快速存储所采集到的数据,或者说,将同一个地点的采集数据存储到最近节点(或者次最近节点)上;并且,存储服务器按照时长和存储块大小的策略进行分片,索引服务器依据节点和时间段(或存储块大小)建立索引。所采集到的数据选择存储数据库时,首先,选择最近的节点(或次最近节点)来存储所采集到的数据;其次,选择与之采集时间范围匹配的索引服务器之下的存储数据服务器存储所采集到的数据;或者,选择与之采集时间匹配的索引服务器之下的存储数据服务器的存储块分片,将所采集到的数据存储到所包含的多个分片所对应的半结构化实时数据库中。
上述方法还包括:索引服务器,按照预定的所采集数据的存储策略建立索引。
为了提升和优化所采集到数据的入库性能,需要采用并行处理机制,例如,使用HadoopMapReduce或Spark分布式架构。
分布式查询,根据查询请求,分布式查询引擎首先确定该查询请求所涉及到的一个或多个节点上的索引服务器(或同一个节点内的多台索引服务器或多个节点的多台索引服务器)。如果该查询请求涉及多台索引服务器,则同时转发该查询请求到所述多台索引服务器中。各个索引服务器将查询结果返回给分布式查询引擎,分布式查询引擎合并查询结果;为了提升查询性能,需要采用并行查询机制,例如,使用HadoopMapReduce或Spark分布式架构。
半结构化实时数据库,存储所采集数据的数据库,采用半结构化的实时数据库,或非结构化实时数据库。由于传统结构化数据库需要事先熟悉全部数据,这几乎不可能,因为所采集的数据字段的数量是非常之大,而且所采集的数据字段由于设备老化和升级等原因也是动态变化的,事先正确地了解它们往往是不切实际的。
为了保证安全管理运维服务平台的高可用性,索引服务器和存储采集数据的分片,需要存储多个副本,例如,索引服务器存储两个副本,而采集数据分片存储3个副本。这多个副本,既可以在同一个节点内的不同服务器上,也可以在不同的节点的服务器上。
本发明提供一种基于大数据的信息安全管理运维服务平台的数据采集装置,包括分布式存储模块、分布式查询模块、展示模块和半结构化数据库四部分所组成。
分布式存储模块,并行地接收到的采集数据进行快速分布式存储。为了加快存储和查询速度,本专利提供了一种分布式存储的方法,采集数据存储是查询数据的基础。分布式存储模块并行地接收所采集的数据,并对所采集到的数据能够实现“就近存储”,即选择最近的存储节点存储所采集到的数据,或者说,将同一个地点的采集数据存储到最近节点(或者次最近节点)上;并且,存储服务器按照时长或存储块大小策略进行分片,索引服务器依据节点和时间段(或存储块大小)建立索引。所采集到的数据选择存储数据库时,首先,选择最近的节点(或次最近节点)来存储所采集到的数据;其次,选择与之时间范围匹配的索引服务器之下的数据库服务器存储所采集到的数据;或者,选择与之时间匹配的存储块分片,将所采集到的数据存储到所包含的多个分片所对应的数据库中。为了提升和优化所采集到数据的入库性能,需要采用并行处理机制,例如,使用HadoopMapReduce或Spark分布式架构。
分布式查询模块,分布式查询模块主要负责从存储模块中快速查询相关采集数据并快速返回。具体可根据查询请求,查询引擎确定所涉及的一个或多个索引服务器,各个索引服务器返回查询结果,查询引擎合并查询结果返回给展示界面。这其中可能被查询的采集数据包含在不同的节点或同一个节点内的多台索引服务器或不同节点的多台索引服务器上,为了提高查询性能,需要并行处理查询请求,例如,例如,使用HadoopMapReduce或Spark分布式架构。
展示模块,是系统与用户交互的直接接口。主要功能是与查询模块结合,将查询结果展现给用户。
半结构化实时数据库,存储所采集数据的数据库,采用半结构化的实时数据库,或非结构化实时数据库。由于传统结构化数据库要事先熟悉全部数据,这几乎不可能,因为所采集的数据量是非常之大,而且所采集的数据由于设备老化和升级也是动态变化的,事先正确地了解它们往往是不切实际的。
图1为本发明所述的一种基于大数据的信息安全管理运维服务平台的数据采集处理方法及装置的应用场景示意图;本发明可以应用到企业的IT系统、电子商务和过程控制系统的安全管理运维中;另一方面,这些应用场景都有一个共同特征,即这些来自各种不同设备的数据源具有共同的特征:是一种海量的、异构的和实时数据流。在图1中,第一幅图为IT系统的实时数据,其来自于WebServer、Applicationserver和数据库的安全管理运维数据;第二幅图为电子商务交易平台,它具有事务性特征,包括买和卖双方的事务,以及电商平台开店和在该电商平台开店的厂家之间的事务,实时数据以事务的形式产生,其表示购买意向或交易或最终买卖。第三幅图为过程控制系统,实时数据来自于各种传感器和仪器仪表。所有这三幅图都是本发明的应用场景。
如下内容只涉及本发明的第一幅图,但是,本发明也可以应用到图1中电子商务和过程控制的实时数据环境中。
图2为本发明所述的一种基于大数据的信息安全管理运维服务平台的数据采集处理方法及装置的功能框架示意图。在图2中,有多台采集终端,其负责接收所采集到的各种不同设备的安全管理运维数据。在图2中,也有多台索引服务器,其负责存储和查询数据,每一台索引服务器仅负责所辖存储数据库的查询和写入操作。所述采集终端、索引服务器和存储设既可以由不同的计算机系统构成,也可以是由不同的软件模块所构成。
存储所采集到的数据时,采集终端根据“就近存储”策略,确定一台或多台存储数据服务器接收所采集到的数据,并将其所采集到的数据转发到存储数据服务器上;另一方面,采集终端不仅可以执行一些数据关联操作,以消除冗余和无关的数据(例如,重复告警数据),而且采集终端还可以缓存当前所采集到的数据,以防止存储数据服务器由于种种原因造成没有接收而导致数据丢失。确定一台或多台存储数据服务器接收所采集到的数据,可以根据采集数据的地点和时间来决定,需要检测所采集数据中的时间戳,以便采集终端决定发送采集数据到哪一台索引服务器和存储服务器接上。
注意到分发到不同的索引服务器之下的存储数据服务器上,可以以并行分发方式来实现,这种架构非常适合Hadoop的MapReduce或Spark的分布式计算模型。通过这种计算模型有助于提升海量数据的查询性能,有助于提升海量采集数据的入库性能,有助于提升用户体验。当向索引服务器之下的存储服务器上存储数据的时候,可以以并发的方式实现,这是因为多个索引服务器之下存储服务器可以以并发方式来处理所输入的数据。这个并发处理也可以发生在查询数据的时候,这是因为多个索引服务器也能够实现并发地查询数据。其过程如下:
首先,索引服务器接收来自采集终端的数据,根据采集终端地点的位置(或IP)和时间戳,来决定接收来自采集终端数据的索引服务器和存储数据服务器;其次,索引服务器检查所接收数据字段是否齐全,例如,如果缺少时间字段,则插入时间(这个时间可以是当前插入数据的时间)。注意到所采集到的数据,可能包括许多行,通过回车分隔,或者分行符,并且一个采集数据包含一行、或多行。在采集数据入库之前需要消除不必要的字符串和决定数据的边界等。可以通过启发式规则(诸如基于正则表达式规则或基于分隔符规则)来确定采集数据的边界,也可以通过预先定义的特征或特征字符串来确定采集数据边界。这些预先定义的特征可以包括标点符号、或其它的特别字符,例如,回车、tab键、空格或分行符等。在某些情况下,为了使得规则能够适应用户特别的需求,用户可以微调或配置规则使得索引服务器能够更好地利用其决定采集数据的边界。
其次,索引服务器为每个采集到的数据决定发生时间。如上所述,这些时间可能直接从采集到的数据中抽取,或插入时间字段,近似于采集到的数据的发生时间。在某些情况之下,时间就是接收数据的时间、或数据产生的时间。索引服务器通过时间与每一个所采集到的数据进行关联。因此,安全管理运维平台可以通过对采集数据的处理,可以移除采集数据中的部分内容(例如,无关的文本,特征等),或者移除数据中的冗余部分。注意到用户也可以通过利用正则表达式或其它可能技术来指定要删除的部分。
其次,可以有选择地添加关键词索引有助于通过关键词快速地搜索到所采集的数据。为了建设关键词索引,索引服务器首先要确定一些关键词(例如,源IP、目标IP、事件类型)。然后,索引服务器包括某些确定的关键词,并且,每一个关键词与包含该关键词的采集数据进行关联或定位该关键词所对应的采集数据。以后,当索引服务器接收基于关键字的查询时,索引服务器就可以通过访问关键字索引来快速确定包含关键词的采集数据。
在某些实施例中,关键字索引可以包括在采集数据中可以找到的“名称-值”对的记录,其中一个“名称-值”对可以包含一对由符号连接的关键字,如一个等于符号或冒号。以这种方式,包含这些“名称-值”对的采集数据能够快速地定位;例如,如果字符“destIP=10.0.1.2”在采集数据中被发现,则这个“destIP”字段可以为该采集数据自动地创建,并分配一个值为“10.0.1.2”。
最后,索引服务器之下存储数据服务器所存储的采集数据,其中,每个采集数据都要存储一个时间以方便查找基于以某个时间范围内的事件。在某些情况下,将所存储的采集数据被组织成多个存储分片。其中,每个存储分片所存储的采集数据关联特定的时间范围。这不仅提高了基于时间的搜索/查询的效率,而且它也允许最近的事件被存储在内存以方便更快的检索/查询的速度和频繁地访问。例如,一个包含最新采集数据的存储分片可以被存储在闪存,而不是在硬盘上。每个索引服务器负责采集数据的存储和检索所存储的采集数据。通过将采集数据在多个索引服务器及其之下的存储数据服务器进行分布式存储,多个索引服务器可以并行地分析和查询采集数据,例如,这种架构可以使用ApacheHadoopMapReduce或Spark计算模型来提高平台的性能和提升用户体验,其中每个索引服务器返回部分的搜索结果给查询引擎,查询引擎再合并各个索引服务器所反馈的各个子查询结果,从而为用户产生一个查询答案。
此外,索引和存储分片可以有多个副本,存储在多个不同的索引服务器及其之下的存储数据服务器上,以实现安全管理运维平台的高可用性和灾难恢复功能。
以上所述仅为本发明的较佳实施例,并非用来限定本发明的实施范围;凡是依本发明所作的等效变化与修改,都被视为本发明的专利范围所涵盖。