CN106326750A - 数据库安全性分析方法及系统 - Google Patents

数据库安全性分析方法及系统 Download PDF

Info

Publication number
CN106326750A
CN106326750A CN201510379967.XA CN201510379967A CN106326750A CN 106326750 A CN106326750 A CN 106326750A CN 201510379967 A CN201510379967 A CN 201510379967A CN 106326750 A CN106326750 A CN 106326750A
Authority
CN
China
Prior art keywords
analysis
stream
analyzed
data base
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201510379967.XA
Other languages
English (en)
Inventor
张园超
肖磊
方海峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510379967.XA priority Critical patent/CN106326750A/zh
Publication of CN106326750A publication Critical patent/CN106326750A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种数据库安全性分析方法及系统。其中的方法包括:在数据库上监视数据库的访问流;基于监视的数据库的访问流解析出用于数据库安全性分析的分析参数;发送待分析数据包到分布式消息队列中,所述待分析数据包包括:所述分析参数;通过分析分布式消息队列中的待分析数据包获得数据库的安全性分析结果。本发明实现了在降低硬件成本以及人员成本的同时,解决了大规模数据库集群或者云计算数据库场景下的安全分析问题。

Description

数据库安全性分析方法及系统
技术领域
本发明涉及数据库技术领域,尤其涉及一种数据库安全性分析方法及系统。
背景技术
对数据库进行安全性分析的目的是发现非法的数据库访问行为,以保证数据库的安全。目前,数据库的安全分析方法为:在每个数据库网络交换机上进行访问流量分光或者端口镜像,再进行访问流量的重组或汇聚,从而获得一份数据库的访问流量;解析该访问流量获得SQL(StructuredQuery Language,结构化查询语言)语句和执行结果信息;根据预定规则对该SQL语句和执行结果信息进行分析,生成分析报表以及产生报警。整个处理过程在一个数据库安全审计的硬件设备上集中完成。
目前的数据库安全性分析方法至少存在如下缺点:
1、随着业务的发展需要不断的扩容硬件设备,由于现有方案中使用的流量分光及汇聚等硬件设备成本较高,因此,在进行扩容时所需硬件成本过高。
2、硬件扩容会带来网络结构变更,网络结构变更需要专业的人员变更网络光纤的布置,因此,扩容所需人员成本也较高。
因此,现有的数据库的安全分析方法由于具有上述缺点,因此无法应用于大规模数据库集群或者云计算数据库场景。
发明内容
本发明解决的技术问题之一是提供一种数据库安全性分析方法及系统,在降低硬件成本及人员成本情况下,解决了大规模数据库集群或者云计算数据库场景下的安全分析问题。
根据本发明一方面的一个实施例,提供了一种数据库安全性分析方法,包括:
在数据库上监视数据库的访问流;
基于监视的数据库的访问流解析出用于数据库安全性分析的分析参数;
发送待分析数据包到分布式消息队列中,所述待分析数据包包括所述分析参数;
通过分析分布式消息队列中的待分析数据包获得数据库的安全性分析结果。
可选地,所述基于监视的数据库的访问流解析出用于数据库安全性分析的分析参数包括:
如果监视的数据库的访问流属于SQL协议访问流,则基于监视的数据库的访问流解析出第一类型的分析参数;
如果监视的数据库的访问流属于非SQL协议访问流,则基于监视的数据库的访问流解析出第二类型的分析参数。
可选地,所述发送待分析数据包到分布式消息队列中包括:
向分布式消息队列的集中调度模块发送分配消息队列的请求;
接收所述集中调度模块返回的包含所分配的消息队列信息的响应;
发送待分析数据包到所分配的消息队列。
可选地,在所述待分析数据包包括所述分析参数情况下,所述通过分析分布式消息队列中的待分析数据包获得数据库的安全性分析结果包括:
针对第一类型的分析参数进行第一类型分析,得到第一类型分析结果;以及
针对第二类型的分析参数进行第二类型分析,得到第二类型分析结果。
可选地,所述第二类型的分析参数包括:包含访问流的源IP、源端口号、目的地IP、目的地端口号的四元组信息;
所述第二类型分析包括:判断所述四元组信息中是否存在非法IP和非法端口号。
可选地,所述第二类型的分析参数包括:包含访问流的源IP、源端口号、目的地IP、目的地端口号的四元组的单位时间流量;
所述第二类型分析包括:判断所述四元组的单位时间流量是否超出设定安全流量值。
可选地,所述第二类型的分析参数还包括:响应于四元组的单位时间流量超出设定阈值而获得的所述四元组的访问流中的采样数据包;
所述第二类型分析还包括:分析所述采样数据包的内容是否符合安全标准。
可选地,所述待分析数据包中还包括心跳包,所述通过分析分布式消息队列中的待分析数据包获得数据库的安全性分析结果包括:
判断当前时间距离接收上一个心跳包的时长是否超过规定时长阈值,以确定对数据库的监视功能是否处于正常工作状态。
根据本发明另一方面的一个实施例,提供了一种数据库安全性分析系统,包括:数据库主机监控单元、分布式消息队列、安全性分析单元;
数据库主机监控单元,被配置在数据库主机上,用于监视数据库的访问流,基于监视的数据库的访问流解析出用于数据库安全性分析的分析参数,发送待分析数据包到分布式消息队列中,所述待分析数据包包括:所述分析参数;
安全性分析单元,用于通过分析分布式消息队列中的待分析数据包获得数据库的安全性分析结果。
可选地,所述数据库主机监控单元用于:
如果监视的数据库的访问流属于SQL协议访问流,则基于监视的数据库的访问流解析出第一类型的分析参数;
如果监视的数据库的访问流属于SQL协议访问流,则基于监视的数据库的访问流解析出第二类型的分析参数。
可选地,所述数据库主机监控单元包括:
请求子单元,用于向分布式消息队列的集中调度模块发送分配消息队列的请求;
接收子单元,用于接收所述集中调度模块返回的包含所分配的消息队列信息的响应;
发送子单元,用于发送待分析数据包到所分配的消息队列。
可选地,安全性分析单元包括:
第一分析子单元,用于针对第一类型的分析参数进行第一类型分析,得到第一类型分析结果;以及
第二分析子单元,用于针对第二类型的分析参数进行第二类型分析,得到第二类型分析结果。
可选地,所述第二类型的分析参数包括:包含访问流的源IP、源端口号、目的地IP、目的地端口号的四元组信息;
所述第二类型分析包括:判断所述四元组信息中是否存在非法IP和端口号。
可选地,所述第二类型的分析参数包括:包含访问流的源IP、源端口号、目的地IP、目的地端口号的四元组的单位时间流量;
所述第二类型的分析包括:判断所述四元组的单位时间流量是否超出设定安全流量值。
可选地,所述第二类型的分析参数还包括:响应于四元组的单位时间流量超出设定阈值而获得的所述四元组的访问流中的采样数据包;
所述第二类型的分析包括:分析所述采样数据包的内容是否符合安全标准。
可选地,所述待分析数据包中还包括心跳包,则所述安全性分析单元包括:
心跳包分析子单元,用于对心跳包进行分析,判断当前时间距离接收上一个心跳包的时长是否超过规定时长阈值,以确定所述数据库主机监控单元是否处于正常监视状态。
本实施例通过直接在数据库上监视数据库的访问流,因此不需要流量分光器以及汇聚设备等成本较高的专门的硬件设备,有效降低了硬件成本以及硬件扩容带来的人员成本。通过将待分析数据包发送到分布式消息队列,可有效解决容量瓶颈问题,且该分布式消息队列便于进行水平扩展,因此本申请实施例能够适用于大规模数据库集群或云计算数据库的安全性分析。
本领域普通技术人员将了解,虽然下面的详细说明将参考图示实施例、附图进行,但本发明并不仅限于这些实施例。而是,本发明的范围是广泛的,且意在仅通过后附的权利要求限定本发明的范围。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1是根据本发明一个实施例的数据库安全性分析方法的流程图。
图2是根据本发明一个实施例的选择消息队列以及发送待分析数据包的方法的流程图。
图3是根据本发明一个实施例的数据库安全性分析系统的结构示意图。
图4是根据本发明一个实施例的数据库主机监控单元结构示意图。
图5是根据本发明一个实施例的安全性分析单元结构示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。
这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。
这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
下面结合附图对本发明的技术方案作进一步详细描述。
图1是根据本发明一个实施例的数据库安全性分析方法的流程图,该方法主要包括如下步骤:
S10、在数据库上监视数据库的访问流;
S11、基于监视的数据库的访问流解析出用于数据库安全性分析的分析参数;
S12、发送待分析数据包到分布式消息队列中,所述待分析数据包包括所述分析参数;
S13、通过分析分布式消息队列中的待分析数据包获得数据库的安全性分析结果。
下面对上述各步骤做进一步详细介绍。
现有技术中的数据库安全性分析方法由于是在网络交换机上获取数据库的访问流,因此需要专门的硬件设备如流量分光器及汇聚设备等做网络流量分光及汇聚等相关处理,从而导致扩容时需要较高的硬件成本以及人员成本。
步骤S10是在数据库上监视数据库的访问流,即,直接从运行数据库的主机上获取数据库的访问流,因此不需要所述的流量分光器以及汇聚设备等成本较高的专门的硬件设备,有效降低了硬件成本以及硬件扩容带来的人员成本。
其中,在数据库上监视数据库的访问流可通过在数据库上布置一具有监视功能的单元来实时获取数据库的访问流。
步骤S11基于监视的数据库的访问流解析出用于数据库安全性分析的分析参数包括:
如果监视的数据库的访问流属于SQL协议访问流,则基于监视的数据库的访问流解析出第一类型的分析参数;本申请实施例对该第一类型的分析参数的内容不做具体限制,其可以包括:SQL命令的执行相关信息(包括:SQL语句、SQL命令执行是否成功、查询结果条数、查询结果大小、查询耗时等)和数据库连接相关信息(包括:查询来源ip、查询来源端口号)。
如果监视的数据库的访问流属于非SQL协议访问流,则基于监视的数据库的访问流解析出第二类型的分析参数(对于第二类型的分析参数的介绍详见下文)。
可以理解的是,在基于监视的数据库的访问流解析出用于数据库安全性分析的分析参数前,会首先判断所监视的数据库的访问流是否为SQL协议访问流。若是SQL协议访问流,则解析出第一类型分析参数,若为非SQL协议访问流,则解析出第二类型的分析参数。
其中,判断所监视的数据库的访问流是否为SQL协议访问流的方法包括:通过所述访问流访问数据库的端口号(一般在访问流中会携带该端口号)来判断。例如为SQL协议配置指定端口号,则携带该指定端口号的访问流即为SQL协议访问流,否则为非SQL协议访问流。
本实施例中所述的第二类型的分析参数可以包括:访问流的四元组信息(包含访问流的源IP、源端口号、目的地IP、目的地端口号),和/或四元组的单位时间流量,还可包括采样数据包。
其中,四元组的单位时间流量可以为该四元组的每分钟的流量,当然并不局限于此。
其中,所述采样数据包是响应于四元组的单位时间流量超出设定阈值而获得的。所述阈值例如可以为100k。当四元组的单位时间流量超出设定阈值时,可从后续的该四元组的访问流中获取指定数量的采样数据包,所述指定数量例如可以为四元组的单位时间流量的1%或5%等等,当然本申请实施例并不局限于此。
通过上面的描述可以看出,基于监视的数据库的访问流解析出的分析参数包括:第一类型的分析参数(即SQL协议的分析参数)以及第二类型的分析参数(即非SQL协议的分析参数)。另外,本申请实施例在数据库上还可产生心跳包,所述心跳包是定时发送的用于通知当前监视状态的命令字。通过该心跳包可以分析出数据库上用于监视数据库的访问流的单元是否处于正常监视状态。
因此,本申请实施例中在数据库上产生的待分析数据包包括:SQL协议的分析参数和非SQL协议的分析参数中的任一种,或心跳包。
步骤S12中,发送待分析数据包到分布式消息队列中。
具体的,针对SQL协议的分析参数,可实时将该SQL协议的分析参数以待分析数据包形式发送到分布式消息队列中,也就是每监视到一个SQL协议的访问流,则解析出SQL协议的分析参数,随即以待分析数据包形式发送到分布式消息队列中。
针对非SQL协议的分析参数,可每间隔固定时间发送一次,例如每间隔一分钟将解析得到的非SQL协议的分析参数以待分析数据包形式发送到分布式消息队列。
对于心跳包则按照预设的心跳包发送间隔发送到分布式消息队列。
在待分析数据包发送到分布式消息队列时,由于分布式消息队列包括多个消息队列,则在发送该待分析数据包前需获知需发送到哪个消息队列中。其中一种选择消息队列并发送待分析数据包到分布式消息队列的方法的实施例如图2中所示,包括如下子步骤:
子步骤120、向分布式消息队列的集中调度模块发送分配消息队列的请求。
对于分布式消息队列,其存在至少一个集中调度模块,通过向该集中调度模块发送分配消息队列的请求来获知需要发送到哪个消息队列中。
其中,在该集中调度模块中保存分布式消息队列的所有消息队列的列表,该集中调度模块可采用轮询式分配方法分配消息队列,例如,按照消息队列列表中消息队列的顺序依次轮流选择消息队列作为分配的消息队列。或者各消息队列实时向集中调度模块发送各消息队列的空闲缓存量,由集中调度模块根据各消息队列实时上报的空闲缓存量,为该请求分配消息队列。
本申请实施例通过集中调度模块统一分配消息队列,方便了在分布式消息队列进行水平扩展后的同步更新问题,只要更新该集中调度模块中的消息队列的列表即可,而对于数据库来说无需做任何变动。
子步骤121、接收所述集中调度模块返回的包含所分配的消息队列信息的响应。
在该响应消息中可包含所分配的消息队列的IP、端口号以及分区信息(一个消息队列一般配置多个分区)。
子步骤122、发送待分析数据包到所分配的消息队列。
具体的,可以按照响应消息中包含的消息队列的IP、端口号以及分区信息发送待分析数据包。
本申请另一选择消息队列的方法可以为:在每个数据库中保存分布式消息队列中所有消息队列的列表(包含消息队列的IP和端口号信息),在发送待分析数据包时各数据库采用轮询式选择方法选择消息队列并发送待分析数据包。
需要说明的是,本申请实施例所述的分布式消息队列可以为kafka消息队列,当然并不局限于此。所应用的分布式消息队列只要能够实现负载均衡以及方便水平扩展的目的即可。
本申请实施例由于将待分析数据包发送到分布式消息队列中,且该分布式消息队列具有方便水平扩展的特性,因此,解决了数据库安全性分析的容量瓶颈问题。
步骤S13可采用流计算方式实时分析分布式消息队列中的待分析数据包。其中可通过分布式流计算引擎来实现该分析操作,也就是对应分布式消息队列,安全性分析使用的流计算引擎也采用分布式。
具体的,由于待分析数据包包括第一类型的分析参数和第二类型的分析参数,当然还可包括心跳包,那么在分析该分析参数时对应的分析方法如下:
针对第一类型的分析参数进行第一类型分析,得到第一类型分析结果;以及
针对第二类型的分析参数进行第二类型分析,得到第二类型分析结果。
本申请实施例对第一类型的分析参数进行第一类型分析的方法不做具体限制,可以包括如下分析操作:
1)记录SQL语句。
2)判断SQL语句是否为合法的SQL语句。
其中,可通过预制的合法SQL语句白名单库来判断SQL语句是否为合法的SQL语句,若待判断的SQL语句在该合法SQL语句白名单库中,则可确定该SQL语句为合法的SQL语句,否则为非法SQL语句,针对判断出的非法SQL语句生成报警事件。
3)统计合法SQL语句白名单库中合法SQL语句被命中频率。
也就是,待判断的SQL语句若为合法SQL语句,则其与合法SQL语句白名单库中的一个SQL语句对应。若有一个待判断SQL语句与合法SQL语句白名单库中的一个SQL语句对应,则该合法SQL语句白名单库中的SQL语句即被命中一次,通过该命中次数可了解合法SQL语句白名单库中SQL语句的访问情况,以便制定分析规则。
针对第二类型的分析参数进行第二类型分析的过程包括以下至少一项:
1)记录四元组信息,并判断所述四元组信息中是否存在非法IP和非法端口号。
其中,可通过保存有合法IP和合法端口号的白名单库来判断所述四元组信息中的IP和端口号是否合法。具体的,判断四元组中的IP和端口号是否存在与该白名单库中,若存在,则合法,否则为非法IP和非法端口号。若发现非法IP和非法端口号可产生相应的报警事件。
可以理解的是,其主要判断四元组信息中的查询来源IP和查询来源端口号是否合法。
2)通过四元组的单位时间流量判断四元组的单位时间流量是否超出设定安全流量值。若超出设定安全流量值,则产生相应的报警事件。
若第二类型的分析参数中包含采样数据包,则该第二类型分析还包括:分析所述采样数据包的内容是否符合安全标准。其中,可预置非SQL协议访问流的安全标准,若所有或指定比值的采样数据包的内容符合安全标准,则确定该非SQL协议访问流符合安全标准。否则为不符合安全标准,可产生相应的报警事件。所述的安全标准例如可涉及采样数据包的具体内容中是否包含预设的敏感信息,例如,银行卡号、身份证号、网络禁止传播的非法内容等。
对待分析数据包的分析还包括对心跳包的分析,具体的,判断当前时间距离上一次接收心跳包的时长是否超过规定时长阈值,从而确定对数据库的监视功能是否存活。若超过规定时长阈值,则可产生报警事件。例如,心跳包的设定发送间隔为1分钟,而该规定时间阈值可以为2分钟或3分钟,当在2分钟或3分钟时间内未收到心跳包,则可产生相应的报警事件。
进一步的,可以保存分析得到的数据库的安全性分析结果,以便作为后续指定相应分析规则的依据。
依据上述对本申请实施例的介绍可以看出,本申请实施例通过直接在数据库上监视数据库的访问流,因此不需要流量分光器以及汇聚设备等成本较高的专门的硬件设备,有效降低了硬件成本以及硬件扩容带来的人员成本。通过将待分析数据包发送到分布式消息队列,可有效解决容量瓶颈问题,且该分布式消息队列便于进行水平扩展,因此本申请实施例能够适用于大规模数据库集群或云计算数据库的安全性分析。
本申请提供的上述数据库安全性分析方法的各步骤的执行主体可以是同一设备,或者,该方法也可由不同设备作为执行主体。
基于上述数据库安全性分析方法同样的思路,本申请实施例还提供一种数据库安全性分析系统,该系统结构示意图如图3中所示,图3仅为本系统的一种示例,图中所示的各单元的个数并不表示实际应用中该系统所包含的各单元的个数。该系统包括:分布式消息队列30、数据库主机监控单元31、安全性分析单元32。
分布式消息队列30;用于存放待分析数据包,该分布式消息队列30可以为kafka消息队列,当然并不局限于此。
所述数据库安全性分析系统还包括:
数据库主机监控单元31,被配置在数据库主机上,用于监视数据库的访问流,基于监视的数据库的访问流解析出用于数据库安全性分析的分析参数,发送待分析数据包到分布式消息队列中,所述待分析数据包包括:所述分析参数;
安全性分析单元32,用于通过分析分布式消息队列中的待分析数据包获得数据库的安全性分析结果。
下面对上述各单元的功能做进一步详细介绍。
本实施例的数据库主机监控单元31由于被配置在数据库上(也就是布置在运行数据库的主机上),因此,其是在数据库上监视数据库的访问流,而不需要现有技术中所述的流量分光器以及汇聚设备等成本较高的专门的硬件设备,有效降低了硬件成本以及硬件扩容带来的人员成本。
该数据库主机监控单元31在基于监视的数据库的访问流解析出用于数据库安全性分析的分析参数时,包括如下两种情况:
如果监视的数据库的访问流属于SQL协议访问流,则基于监视的数据库的访问流解析出第一类型的分析参数;本申请实施例对该第一类型的分析参数的内容不做具体限制,其可以包括:SQL命令的执行相关信息(包括:SQL语句、SQL命令执行是否成功、查询结果条数、查询结果大小、查询耗时等)和数据库连接相关信息(包括:查询来源ip、查询来源端口号)。
如果监视的数据库的访问流属于非SQL协议访问流,则基于监视的数据库的访问流解析出第二类型的分析参数。
可以理解的是,在数据库主机监控单元31基于监视的数据库的访问流解析出用于数据库安全性分析的分析参数前,会首先判断所监视的数据库的访问流是否为SQL协议访问流。若是SQL协议访问流,则解析出第一类型分析参数,若为非SQL协议访问流,则解析出第二类型的分析参数。
其中,判断所监视的数据库的访问流是否为SQL协议访问流的方法本申请实施例不做具体限制,例如可以包括:通过所述访问流访问数据库的端口号(一般在访问流中会携带该端口号)来判断。例如为SQL协议配置指定端口号,则携带该指定端口号的访问流即为SQL协议访问流,否则为非SQL协议访问流。
本实施例中所述的第二类型的分析参数可以包括:访问流的四元组信息(包含访问流的源IP、源端口号、目的地IP、目的地端口号),和/或四元组的单位时间流量,还可包括采样数据包。
其中,四元组的单位时间流量可以为该四元组的每分钟的流量,当然并不局限于此。
其中,所述采样数据包是响应于四元组的单位时间流量超出设定阈值而获得的。所述阈值例如可以为100k。当四元组的单位时间流量超出设定阈值时,可从后续的该四元组的访问流中获取指定数量的采样数据包,所述指定数量例如可以为四元组的单位时间流量的1%或5%等等,当然本申请实施例并不局限于此。
通过上面的描述可以看出,基于监视的数据库的访问流解析出的分析参数包括:第一类型的分析参数(即SQL协议的分析参数)以及第二类型的分析参数(即非SQL协议的分析参数)。另外,本申请实施例的数据库主机监控单元31还可定时产生心跳包,所述心跳包是定时发送的用于通知当前监视状态的命令字。通过该心跳包可以分析出数据库上用于监视数据库的访问流的单元是否处于正常监视状态。
因此,本申请实施例中在数据库上产生的待分析数据包包括:SQL协议的分析参数和非SQL协议的分析参数中的任一种,或心跳包。
该数据库主机监控单元31发送待分析数据包到分布式消息队列时,针对SQL协议的分析参数,可实时将该SQL协议的分析参数以待分析数据包形式发送到分布式消息队列中,也就是每监视到一个SQL协议的访问流,则解析出SQL协议的分析参数,随即以待分析数据包形式发送到分布式消息队列中。针对非SQL协议的分析参数,可每间隔固定时间发送一次,例如每间隔一分钟将解析得到的非SQL协议的分析参数以待分析数据包形式发送到分布式消息队列。对于心跳包则按照预设的心跳包发送间隔发送到分布式消息队列。
在数据库主机监控单元31发送待分析数据包发送到分布式消息队列时,由于分布式消息队列包括多个消息队列,则在发送该待分析数据包前需获知需发送到哪个消息队列中。该数据库主机监控单元31的一种实施例结构示意图如图4中所示,其包括如下子单元来实现选择消息队列以及发送待分析数据包:
请求子单元311,用于向分布式消息队列的集中调度模块发送分配消息队列的请求;
对于分布式消息队列,其存在至少一个集中调度模块,通过向该集中调度模块发送分配消息队列的请求来获知需要发送到哪个消息队列中。
其中,在该集中调度模块中保存分布式消息队列的所有消息队列的列表,该集中调度模块可采用轮询式分配方法分配消息队列,例如,按照消息队列列表中消息队列的顺序依次轮流选择消息队列作为分配的消息队列。或者各消息队列实时向集中调度模块发送各消息队列的空闲缓存量,由集中调度模块根据各消息队列实时上报的空闲缓存量,为该请求分配消息队列。
本申请实施例通过集中调度模块统一分配消息队列,方便了在分布式消息队列进行水平扩展后的同步更新问题,只要更新该集中调度模块中的消息队列的列表即可,而对于数据库来说无需做任何变动。
接收子单元312,用于接收所述集中调度模块返回的包含所分配的消息队列信息的响应;在该响应消息中可包含所分配的消息队列的IP、端口号以及分区信息(一个消息队列一般配置多个分区)。
发送子单元313,用于发送待分析数据包到所分配的消息队列。具体的,可以按照响应消息中包含的消息队列的IP、端口号以及分区信息发送待分析数据包。
本申请另一实施例数据库主机监控单元31选择消息队列的方法可以为:在每个数据库中保存分布式消息队列中所有消息队列的列表(包含消息队列的IP和端口号信息),数据库主机监控单元31在发送待分析数据包时各数据库采用轮询式选择方法选择消息队列并发送待分析数据包。
本申请实施例由于将待分析数据包发送到分布式消息队列中,且该分布式消息队列具有方便水平扩展的特性,因此,解决了数据库安全性分析的容量瓶颈问题。
安全性分析单元32可采用流计算方式实时分析分布式消息队列中的待分析数据包。该安全性分析单元32可以为一种分布式流计算引擎,也就是对应分布式消息队列,安全性分析单元32也采用分布式。
具体的,由于待分析数据包包括第一类型的分析参数和第二类型的分析参数(当然还可包括心跳包),则该安全性分析单元32可如图5中所示包括:
第一分析子单元321,用于针对第一类型的分析参数进行第一类型分析,得到第一类型分析结果;
本申请实施例对第一类型的分析参数进行第一类型分析的方法不做具体限制,可以包括如下分析操作:
1)记录SQL语句。
2)判断SQL语句是否为合法的SQL语句。
其中,可通过预制的合法SQL语句白名单库来判断SQL语句是否为合法的SQL语句,若待判断的SQL语句在该合法SQL语句白名单库中,则可确定该SQL语句为合法的SQL语句,否则为非法SQL语句,针对判断出的非法SQL语句生成报警事件。
3)统计合法SQL语句白名单库中合法SQL语句被命中频率。
也就是,待判断的SQL语句若为合法SQL语句,则其与合法SQL语句白名单库中的一个SQL语句对应。若有一个待判断SQL语句与合法SQL语句白名单库中的一个SQL语句对应,则该合法SQL语句白名单库中的SQL语句即被命中一次,通过该命中次数可了解合法SQL语句白名单库中SQL语句的访问情况,以便制定分析规则。
第二分析子单元322,用于针对第二类型的分析参数进行第二类型分析,得到第二类型分析结果。
该第二分析子单元322的第二类型分析方法包括:
1)记录四元组信息,并判断所述四元组信息中是否存在非法IP和非法端口号。
其中,可通过保存有合法IP和合法端口号的白名单库来判断所述四元组信息中的IP和端口号是否合法。具体的,判断四元组中的IP和端口号是否存在与该白名单库中,若存在,则合法,否则为非法IP和非法端口号。若发现非法IP和非法端口号可产生相应的报警事件。
可以理解的是,其主要判断四元组信息中的查询来源IP和查询来源端口号是否合法。
2)通过四元组的单位时间流量判断四元组的单位时间流量是否超出设定安全流量值。若超出设定安全流量值,则产生相应的报警事件。
所述第二类型的分析参数包括:包含访问流的源IP、源端口号、目的地IP、目的地端口号的四元组信息;
所述第二类型分析包括:判断所述四元组信息中是否存在非法IP和非法端口号。
若第二类型的分析参数中包含采样数据包,则该第二类型分析还包括:分析所述采样数据包的内容是否符合安全标准。其中,可预置非SQL协议访问流的安全标准,若所有或指定比值的采样数据包的内容符合安全标准,则确定该非SQL协议访问流符合安全标准。否则为不符合安全标准,可产生相应的报警事件。所述的安全标准例如可涉及采样数据包的具体内容中是否包含预设的敏感信息,例如,银行卡号、身份证号、网络禁止传播的非法内容等。
所述安全性分析单元32还包括:
心跳包分析子单元323,用于对心跳包进行分析。具体的,判断当前时间距离上一次接收心跳包的时长是否超过规定时长阈值,以确定数据库上用于监视数据库的访问流的数据库主机监控单元31是否处于正常监视状态。若超过规定时长阈值,则可产生报警事件。例如,心跳包的设定发送间隔为1分钟,而该规定时间阈值可以为2分钟或3分钟,当在2分钟或3分钟时间内未收到心跳包,则可产生相应的报警事件。
依据上述对本申请实施例的介绍可以看出,本申请实施例通过直接在数据库上监视数据库的访问流,因此不需要流量分光器以及汇聚设备等成本较高的专门的硬件设备,有效降低了硬件成本以及硬件扩容带来的人员成本。通过将待分析数据包发送到分布式消息队列,可有效解决容量瓶颈问题,且该分布式消息队列便于进行水平扩展,因此本申请实施例能够适用于大规模数据库集群或云计算数据库的安全性分析。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (16)

1.一种数据库安全性分析方法,其特征在于,包括:
在数据库上监视数据库的访问流;
基于监视的数据库的访问流解析出用于数据库安全性分析的分析参数;
发送待分析数据包到分布式消息队列中,所述待分析数据包包括所述分析参数;
通过分析分布式消息队列中的待分析数据包获得数据库的安全性分析结果。
2.如权利要求1所述的方法,其特征在于,所述基于监视的数据库的访问流解析出用于数据库安全性分析的分析参数包括:
如果监视的数据库的访问流属于结构化查询语言(SQL)协议访问流,则基于监视的数据库的访问流解析出第一类型的分析参数;
如果监视的数据库的访问流属于非结构化查询语言(SQL)协议访问流,则基于监视的数据库的访问流解析出第二类型的分析参数。
3.如权利要求1所述的方法,其特征在于,所述发送待分析数据包到分布式消息队列中包括:
向分布式消息队列的集中调度模块发送分配消息队列的请求;
接收所述集中调度模块返回的包含所分配的消息队列信息的响应;
发送待分析数据包到所分配的消息队列。
4.如权利要求2所述的方法,其特征在于,所述通过分析分布式消息队列中的待分析数据包获得数据库的安全性分析结果包括:
针对第一类型的分析参数进行第一类型分析,得到第一类型分析结果;以及
针对第二类型的分析参数进行第二类型分析,得到第二类型分析结果。
5.如权利要求4所述的方法,其特征在于,所述第二类型的分析参数包括:包含访问流的源IP、源端口号、目的地IP、目的地端口号的四元组信息;
所述第二类型分析包括:判断所述四元组信息中是否存在非法IP和非法端口号。
6.如权利要求4所述的方法,其特征在于,所述第二类型的分析参数包括:包含访问流的源IP、源端口号、目的地IP、目的地端口号的四元组的单位时间流量;
所述第二类型分析包括:判断所述四元组的单位时间流量是否超出设定安全流量值。
7.如权利要求6所述的方法,其特征在于,所述第二类型的分析参数还包括:响应于四元组的单位时间流量超出设定阈值而获得的所述四元组的访问流中的采样数据包;
所述第二类型分析还包括:分析所述采样数据包的内容是否符合安全标准。
8.如权利要求1所述的方法,其特征在于,所述待分析数据包中还包括心跳包,所述通过分析分布式消息队列中的待分析数据包获得数据库的安全性分析结果包括:
对心跳包进行分析,判断当前时间距离接收上一个心跳包的时长是否超过规定时长阈值,以确定对数据库的监视功能是否处于正常工作状态。
9.一种数据库安全性分析系统,其特征在于,包括:数据库主机监控单元、分布式消息队列、安全性分析单元;
数据库主机监控数据库主机监控单元,被配置在数据库主机上,用于监视数据库的访问流,基于监视的数据库的访问流解析出用于数据库安全性分析的分析参数,发送待分析数据包到分布式消息队列中,所述待分析数据包包括:所述分析参数;
安全性分析单元,用于通过分析分布式消息队列中的待分析数据包获得数据库的安全性分析结果。
10.如权利要求9所述的系统,其特征在于,所述数据库主机监控单元用于:
如果监视的数据库的访问流属于结构化查询语言(SQL)协议访问流,则基于监视的数据库的访问流解析出第一类型的分析参数;
如果监视的数据库的访问流属于非结构化查询语言(SQL)协议访问流,则基于监视的数据库的访问流解析出第二类型的分析参数。
11.如权利要求9所述的系统,其特征在于,所述数据库主机监控单元包括:
请求子单元,用于向分布式消息队列的集中调度模块发送分配消息队列的请求;
接收子单元,用于接收所述集中调度模块返回的包含所分配的消息队列信息的响应;
发送子单元,用于发送待分析数据包到所分配的消息队列。
12.如权利要求10所述的系统,其特征在于,安全性分析单元包括:
第一分析子单元,用于针对第一类型的分析参数进行第一类型分析,得到第一类型分析结果;以及
第二分析子单元,用于针对第二类型的分析参数进行第二类型分析,得到第二类型分析结果。
13.如权利要求12所述的系统,其特征在于,所述第二类型的分析参数包括:包含访问流的源IP、源端口号、目的地IP、目的地端口号的四元组信息;
所述第二类型分析包括:判断所述四元组信息中是否存在非法IP和非法端口号。
14.如权利要求12所述的系统,其特征在于,所述第二类型的分析参数包括:包含访问流的源IP、源端口号、目的地IP、目的地端口号的四元组的单位时间流量;
所述第二类型的分析包括:判断所述四元组的单位时间流量是否超出设定安全流量值。
15.如权利要求14所述的系统,其特征在于,所述第二类型的分析参数还包括:响应于四元组的单位时间流量超出设定阈值而获得的所述四元组的访问流中的采样数据包;
所述第二类型的分析包括:分析所述采样数据包的内容是否符合安全标准。
16.如权利要求9所述的系统,其特征在于,所述待分析数据包中还包括心跳包,所述安全性分析单元包括:
心跳包分析子单元,用于对心跳包进行分析,判断当前时间距离接收上一个心跳包的时长是否超过规定时长阈值,以确定所述数据库主机监控单元是否处于正常监视状态。
CN201510379967.XA 2015-07-02 2015-07-02 数据库安全性分析方法及系统 Pending CN106326750A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510379967.XA CN106326750A (zh) 2015-07-02 2015-07-02 数据库安全性分析方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510379967.XA CN106326750A (zh) 2015-07-02 2015-07-02 数据库安全性分析方法及系统

Publications (1)

Publication Number Publication Date
CN106326750A true CN106326750A (zh) 2017-01-11

Family

ID=57726778

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510379967.XA Pending CN106326750A (zh) 2015-07-02 2015-07-02 数据库安全性分析方法及系统

Country Status (1)

Country Link
CN (1) CN106326750A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110278122A (zh) * 2018-03-16 2019-09-24 厦门靠谱云股份有限公司 一种云数据库流量数据采样分析方法
CN111651470A (zh) * 2019-03-04 2020-09-11 顺丰科技有限公司 统一sql执行与查询方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070118534A1 (en) * 2005-11-18 2007-05-24 Database-Brothers, Inc. Auditing database end user activity in one to multi-tier web application and local environments
CN102915374A (zh) * 2012-11-07 2013-02-06 北京搜狐新媒体信息技术有限公司 一种控制数据库资源访问的方法、装置及系统
CN104063473A (zh) * 2014-06-30 2014-09-24 江苏华大天益电力科技有限公司 一种数据库审计监测系统及其方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070118534A1 (en) * 2005-11-18 2007-05-24 Database-Brothers, Inc. Auditing database end user activity in one to multi-tier web application and local environments
CN102915374A (zh) * 2012-11-07 2013-02-06 北京搜狐新媒体信息技术有限公司 一种控制数据库资源访问的方法、装置及系统
CN104063473A (zh) * 2014-06-30 2014-09-24 江苏华大天益电力科技有限公司 一种数据库审计监测系统及其方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110278122A (zh) * 2018-03-16 2019-09-24 厦门靠谱云股份有限公司 一种云数据库流量数据采样分析方法
CN111651470A (zh) * 2019-03-04 2020-09-11 顺丰科技有限公司 统一sql执行与查询方法和系统

Similar Documents

Publication Publication Date Title
US11277446B2 (en) Event integration frameworks
US7437359B2 (en) Merging multiple log entries in accordance with merge properties and mapping properties
US10250451B1 (en) Intelligent analytic cloud provisioning
CN108197261A (zh) 一种智慧交通操作系统
US8943107B2 (en) Generating and using temporal metadata partitions
US20170142143A1 (en) Identifying notable events based on execution of correlation searches
US9294415B2 (en) Proxy application with dynamic filter updating
US20160034311A1 (en) Tracking large numbers of moving objects in an event processing system
CN108073625A (zh) 用于元数据信息管理的系统及方法
US9305016B2 (en) Efficient data extraction by a remote application
US9288617B1 (en) Mobile media communications system
US9692654B2 (en) Systems and methods for correlating derived metrics for system activity
CN107454039B (zh) 网络攻击检测系统、方法和计算机可读存储介质
US9600526B2 (en) Generating and using temporal data partition revisions
CN110213207A (zh) 一种基于日志分析的网络安全防御方法及设备
US20220286373A1 (en) Scalable real time metrics management
CN111740868B (zh) 告警数据的处理方法和装置及存储介质
US9571969B1 (en) Mobile media communications system
JP2015536504A (ja) 地理位置情報のための装置および方法
CN107491463B (zh) 数据查询的优化方法和系统
CN106326750A (zh) 数据库安全性分析方法及系统
CN114615073A (zh) 访问流量控制方法及其装置、设备、介质
CN113986947A (zh) 一种数据流转的展示方法、装置、设备及可读存储介质
CN106375351B (zh) 一种异常域名检测的方法及装置
US20150160968A1 (en) Freezing a call stack

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170111