一种基于非结构化实时数据库的安全管理运维服务平台
技术领域
本发明涉及信息安全应用技术领域,尤其涉及非结构化实时数据库的安全管理运维平台架构的方法与***。
背景技术
本发明中包含的英文简称如下:
SSD:SolidStateDrives固态硬盘
ID:identification标识
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基础实施的安全保障就显得格外重要。
随着政府和企业信息化程度不断提高。各业务***间联系越来越密切,数据交换越来越频繁,各***有着复杂网络或逻辑连接,存在大量数据交换,甚至一个故障可以引发成为企业全网故障,一点或一种业务***出现漏洞感染病毒或受到攻击,将迅速波及其它业务***及网络,甚至导致企业全网瘫痪。
企业IT***产生了丰富的日志数据,随着存储设备成本的降低,没有理由丢弃这些数据,然而,缺乏相应的分析工具来存储和关联这些异构的日志数据,使得进行大数据分析更为艰难,主要表现在以下几个方面:
1、日志数据的时间特性和异构特性,使得传统的SQL结构化数据库难以适合。
传统数据库存储的信息,只是表示某种状态。具体地说,在某个时间点上的真实世界或虚拟对象的一个快照。例如,库存、机票预订和公司员工信息。再者,一方面,这些数据量是受限的,例如,公司员工信息库不可能超过70亿条记录,因为没有哪一家公司的员工人数超过70亿。此外,数据库中的每个记录都有一组属性(例如,姓名、地址、工资、性别、出生年月)。尽管每个记录的属性不同,但是,这些记录属性的集合不能超出传统数据库设计的上限。因此,这样的数据被称为结构化数据。结构化数据的分析技术已经相当地成熟,有许多非常专业的分析工具。基于传统SQL关系数据库非常适合结构化数据。
相比之下,大多数设备产生的日志数据,例如,syslog、webserver日志,都是一些非结构化的文本文件。虽然文本文件可能隐含着松耦合,但是,各种不同的设备所产生的日志文件可能不同,并且还会频繁地变化,甚至是设想不到的意外变化。通常,这种类型的数据代表了一个完整的事件的历史,而不是一个时间快照。因此,设备生成的日志文件的数据量,通常要比结构化数据大几个数量级。此外,每个记录具有一个共同的属性:事件发生时间。因此,传统的分析技术不再适合像日志那样的数据。在过去,尽管日志包含非常有用的信息,但是,很少对这些日志进行分析,并经常被删除以释放存储空间。
2、时间是异构数据源的最佳关联器。
企业的IT基础实施的成千上万的软件组件(数据源),产生了数以万计的不同类型的日志数据。由于这些数据的非结构化性质,没有通常所说的唯一标识(或ID),以区别各种不同的日志,以通过日志的唯一标识来进行关联分析。然而,每个事件发生的时间,这个时间是唯一可以用来进行关联各类非结构化日志数据。传统的关系数据库语义没有这个时间关联的功能,因为不同设备很少产生时间完全相同的日志。
3、时间是重要的特性。
除了时间是非结构化数据最好的关联词之外,时间对于数据管理和查询优化也是非常必要的。关联分析往往涉及到被限制在一个特定时间范围内的数据,而不是所有的数据。此外,从最近的时间范围内的数据,通常比它之前的数据,优先级要高。因此,优化最近的数据很重要。虽然现在存储成本在下降,使得存储TB级数据(甚至PB级数据)较之以前要经济一些,但是,快速存储技术,如SSD,还是昂贵。因此,一个动态数据的存储应该优先考虑将最近的数据存储在诸如SSD快速磁盘上,而将较之以前的数据存储到更便宜的存储设备上。传统数据库很容易存储时间,但是,当存储记录时,其时间根本不被考虑,这样使得很难分析和优化最近的数据。如果数据能够通过时间来切分,则对某一段时间范围的分析是非常高效的。
为此,如何利用信息化手段提高企业安全管理运维效益,优化企业信息安全管理运维服务,使得它能够为各类企业提供专业的和高性能的信息安全运维管理服务,即成为尤其是信息安全管理运维设计上必须要解决的一个重要课题。
发明内容
本发明在分析了上述各类企业信息安全管理运维服务平台的缺陷和不足之后,提出了一种基于半结构化实时数据库的安全管理运维服务平台。
本发明的核心思想是:构建一个非结构化实时数据库,存储文本格式的日志信息。
所述非结构化实时数据库,存储的日志信息,其字段包括但不限于:时间(time),即事件发生的时间;唯一标识符(ID),即与事件相关的标识,例如,事务ID(Transactionid)、用户ID(userid)、产品(Productid)和消息ID(Messageid);源IP(Source_IP);源端口号(Source_Port);目标IP(Dest_IP);目标端口号(Dest_Port);事件类型(SourceType);主机(Host);事件描述(EventText)。
所述日志信息字段,可以实现不同设备之间的事件关联。
优选地,可以按照时间范围存储日志信息,或以分片方式存储日志信息。
优选地,索引和存储日志信息的分片,保存多个副本。
本专利针对目前技术方案中存在的主要问题而提供了一种高性能的大数据查询的方法及装置,具有适应以下IT运营的特征:
(1)变化是不可预测的
设备的上线和下线,是动态变化的,甚至是不可预测的。因此,新的设备的日志信息也会与已有设备的日志格式不一样,采用传统数据库存储这样的日志,需要事先对日志数据格式进行分析,这样,非常费时、费力,简直是不可能的。
(2)软件和硬件升级是不可避免的
组件需要定期的升级和/或重新配置,为了设备升级和***扩容。例如,IPv4向IPv6升级。因此,升级之后的设备的日志信息也会与未升级设备的日志格式不一样,采用传统数据库存储这样的日志,需要事先对日志数据格式进行分析。这样,也是非常费时、费力,也简直是不可能的。
(3)故障不可避免
硬件的服务年限、软件的BUG,以及误操作和安全攻击,因此,故障不可能彻底消灭,但是应该尽可能快地检测到,并将损失降低到最小。
附图说明
图1为本发明所述的一种基于非结构化实时数据库的安全管理运维服务平台的MapReduce应用场景示意图;
图2为本发明所述的一种基于非结构化实时数据库的安全管理运维服务平台的存储框架示意图。
具体实施方式
下面是根据附图和实例对本发明的进一步详细说明:
从各种设备生成的非结构化格式的数据,转化成传统关系数据库那样要求的结构化数据,已有的技术是通过数据抽取来实现的(即ETL),一种提取、转换和加载技术。这种工具对于分析由各种设备产生的数据是存在问题的。要求使用ETL工具抽取数据的设计者们必须熟悉全部数据格式才能正确地完成数据抽取的任务。这样的预假设是不可行的,理由有如下二点:许多企业的IT***从没有所存储数据的完整目录,要抽取以前从未见过的数据就存在困难了。其次,在大型***中的数据量是非常之大,正确地提取它们往往是不切实际的。
通过采用非结构化的实时数据库,这些问题在很大程度上是可以避免的,发现新数据时,只需要添加一个新的解析规则;可能解析数据的方法有多种。
另一个常见的问题时,使用传统的关系数据库存储设备产生的实时数据时定义“保留”策略,这个无论是从存储的角度、法律和合规性方面,是非常重要的;然而,这种方法仍然需要事先对设备产生数据的了解。
基于Hadoop/Spark的大数据分析平台,ApacheHive提出了一个通用的,非结构化实时数据库的可扩展接口,并提供了ETL工具,对存储在分布式文件***(HDFS)上的海量数据进行分析,采用MapReduce模型,以及Hadoop的作业管理引擎;但是,Hive被设计为批处理***,不具有实现功能,最小的作业也需要好几分钟,这样的性能根本满足不了信息安全管理运维快速定位故障和安全攻击的要求。
目前,非结构化数据处理仅局限在本厂的设备产生的日志数据(或者说,局限在有限的数据源),局限在已事先了解日志数据的格式。
本发明所述的信息安全管理运维平台,涉及到各种厂家生产的设备。其核心思想是:构建一个非结构化实时数据库,存储和兼容各个厂家设备的日志格式。
所述非结构化实时数据库,其字段包括但不限于:时间(time),即事件发生的时间;唯一标识符(ID),即与事件相关的标识,例如,事务ID(Transactionid)、用户ID(userid)、产品(Productid)和消息ID(Messageid);源IP(Source_IP);源端口号(Source_Port);目标IP(Dest_IP);目标端口号(Dest_Port);事件类型(SourceType);主机(Host);事件描述(EventText)。
所述日志信息字段,可以实现不同设备之间的事件关联。
进一步地,可以按照时间范围存储日志信息,或以分片方式存储日志信息。
图1为本发明所述的一种基于非结构化实时数据库搜索服务MapReduce应用场景示意图。
大数据的收集和存储,需要依赖高度可靠的数据存储架构。作为大数据分析的基础,数据存储是否良好关系甚大。
随着企业IT架构不断扩展,服务器、存储设备的数量越来越多,网络变得更加复杂,如果确保企业业务不间断、运营更高效,是安全管理运维中心的核心任务,也成为运维人员所必须应对的挑战。
对于这些体量超大的数据,原有的运维思路和运维方法已难以满足其海量数据计算、存储、应用和安全等多种职能的需求。一方面是成千上万台IT设备,以及各种软件***;另一方面繁多复杂的业务应用,企业要借助先进的自动化运维管理模式来实现大体量***管理。
借助于Hadoop/Spark大数据平台,全面提升信息安全管理运维平台的核心竞争力。在图1中,首先,通过索引服务器查找出包括所述时间范围的分片(例如,采用HDFS存储技术);然后,并行地查找到所需数据;最后,合并查询结果,并输出给用户。
图2为本发明所述的一种基于大数据的信息安全管理运维服务平台的数据采集处理方法及装置的功能框架示意图。在图2中,有多台采集终端,其负责接收所采集到的各种不同设备的安全管理运维数据。在图2中,也有多台索引服务器,其负责存储和查询数据,每一台索引服务器仅负责所辖存储数据库的查询和写入操作。所述采集终端、索引服务器和存储设既可以由不同的计算机***构成,也可以是由不同的软件模块所构成。
存储所采集到的数据时,采集终端根据“就近存储”策略,确定一台或多台存储数据服务器接收所采集到的数据,并将其所采集到的数据转发到存储数据服务器上;另一方面,采集终端不仅可以执行一些数据关联操作,以消除冗余和无关的数据(例如,重复告警数据),而且采集终端还可以缓存当前所采集到的数据,以防止存储数据服务器由于种种原因造成没有接收而导致数据丢失。确定一台或多台存储数据服务器接收所采集到的数据,可以根据采集数据的地点和时间来决定,需要检测所采集数据中的时间戳,以便采集终端决定发送采集数据到哪一台索引服务器和存储服务器接上。
注意到分发到不同的索引服务器之下的存储数据服务器上,可以以并行分发方式来实现,这种架构非常适合Hadoop的MapReduce或Spark的分布式计算模型。通过这种计算模型有助于提升海量数据的查询性能,有助于提升海量采集数据的入库性能,有助于提升用户体验。当向索引服务器之下的存储服务器上存储数据的时候,可以以并发的方式实现,这是因为多个索引服务器之下存储服务器可以以并发方式来处理所输入的数据。这个并发处理也可以发生在查询数据的时候,这是因为多个索引服务器也能够实现并发地查询数据。其过程如下:
首先,索引服务器接收来自采集终端的数据,根据采集终端地点的位置(或IP)和时间戳,来决定接收来自采集终端数据的索引服务器和存储数据服务器;其次,索引服务器检查所接收数据字段是否齐全,例如,如果缺少时间字段,则***时间(这个时间可以是当前***数据的时间)。注意到所采集到的数据,可能包括许多行,通过回车分隔,或者分行符,并且一个采集数据包含一行、或多行。在采集数据入库之前需要消除不必要的字符串和决定数据的边界等。可以通过启发式规则(诸如基于正则表达式规则或基于分隔符规则)来确定采集数据的边界,也可以通过预先定义的特征或特征字符串来确定采集数据边界。这些预先定义的特征可以包括标点符号、或其它的特别字符,例如,回车、tab键、空格或分行符等。在某些情况下,为了使得规则能够适应用户特别的需求,用户可以微调或配置规则使得索引服务器能够更好地利用其决定采集数据的边界。
其次,索引服务器为每个采集到的数据决定发生时间。如上所述,这些时间可能直接从采集到的数据中抽取,或***时间字段,近似于采集到的数据的发生时间。在某些情况之下,时间就是接收数据的时间、或数据产生的时间。索引服务器通过时间与每一个所采集到的数据进行关联。因此,安全管理运维平台可以通过对采集数据的处理,可以移除采集数据中的部分内容(例如,无关的文本,特征等),或者移除数据中的冗余部分。注意到用户也可以通过利用正则表达式或其它可能技术来指定要删除的部分。
其次,可以有选择地添加关键词索引有助于通过关键词快速地搜索到所采集的数据。为了建设关键词索引,索引服务器首先要确定一些关键词(例如,源IP、目标IP、事件类型)。然后,索引服务器包括某些确定的关键词,并且,每一个关键词与包含该关键词的采集数据进行关联或定位该关键词所对应的采集数据。以后,当索引服务器接收基于关键字的查询时,索引服务器就可以通过访问关键字索引来快速确定包含关键词的采集数据。
在某些实施例中,关键字索引可以包括在采集数据中可以找到的“名称-值”对的记录,其中一个“名称-值”对可以包含一对由符号连接的关键字,如一个等于符号或冒号。以这种方式,包含这些“名称-值”对的采集数据能够快速地定位;例如,如果字符“destIP=10.0.1.2”在采集数据中被发现,则这个“destIP”字段可以为该采集数据自动地创建,并分配一个值为“10.0.1.2”。
最后,索引服务器之下存储数据服务器所存储的采集数据,其中,每个采集数据都要存储一个时间以方便查找基于以某个时间范围内的事件。在某些情况下,将所存储的采集数据被组织成多个存储分片。其中,每个存储分片所存储的采集数据关联特定的时间范围。这不仅提高了基于时间的搜索/查询的效率,而且它也允许最近的事件被存储在内存以方便更快的检索/查询的速度和频繁地访问。例如,一个包含最新采集数据的存储分片可以被存储在闪存,而不是在硬盘上。每个索引服务器负责采集数据的存储和检索所存储的采集数据。通过将采集数据在多个索引服务器及其之下的存储数据服务器进行分布式存储,多个索引服务器可以并行地分析和查询采集数据,例如,这种架构可以使用ApacheHadoopMapReduce或Spark计算模型来提高平台的性能和提升用户体验,其中每个索引服务器返回部分的搜索结果给查询引擎,查询引擎再合并各个索引服务器所反馈的各个子查询结果,从而为用户产生一个查询答案。
此外,索引和存储分片可以有多个副本,存储在多个不同的索引服务器及其之下的存储数据服务器上,以实现安全管理运维平台的高可用性和灾难恢复功能。
以上所述仅为本发明的较佳实施例,并非用来限定本发明的实施范围;凡是依本发明所作的等效变化与修改,都被视为本发明的专利范围所涵盖。