首页> 中国专利> SQL语句的数据库操作权限检测方法与系统

SQL语句的数据库操作权限检测方法与系统

摘要

本发明公开了一种SQL语句的数据库操作权限检测方法与系统。其中,该方法包括:对当前数据库操作进行分析,确定当前数据库操作所对应的数据库操作模板,依据模板,提取当前数据库操作所对应的数据库操作摘要;并且,数据库操作摘要对应唯一的检测单元;判断系统中是否预先存储有检测单元:若否,则当前数据库操作为非法,发出报警信息;若是,则确定检测单元的状态,状态包括学习状态、激活状态和短路状态;依据检测单元的状态进行操作权限的检测。本发明基于对SQL语句的语法分析,产生数据库操作摘要,该摘要对应一个检测单元,通过对状态机的状态进行设定为“学习状态”、“激活状态”或“短路状态”,达到动态监测非授权访问的目的。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-05-31

    未缴年费专利权终止 IPC(主分类):G06F21/62 授权公告日:20130320 终止日期:20160415 申请日:20110415

    专利权的终止

  • 2015-11-04

    专利权质押合同登记的注销 IPC(主分类):G06F21/62 授权公告日:20130320 登记号:2014990000640 出质人:国都兴业信息审计系统技术(北京)有限公司 质权人:北京海淀科技企业融资担保有限公司 解除日:20150928 申请日:20110415

    专利权质押合同登记的生效、变更及注销

  • 2014-10-08

    专利权质押合同登记的生效 IPC(主分类):G06F21/62 登记号:2014990000640 登记生效日:20140807 出质人:国都兴业信息审计系统技术(北京)有限公司 质权人:北京海淀科技企业融资担保有限公司 发明名称:SQL语句的数据库操作权限检测方法与系统 授权公告日:20130320 申请日:20110415

    专利权质押合同登记的生效、变更及注销

  • 2013-03-20

    授权

    授权

  • 2011-11-02

    实质审查的生效 IPC(主分类):G06F21/22 申请日:20110415

    实质审查的生效

  • 2011-09-14

    公开

    公开

查看全部

说明书

技术领域

本发明涉及计算机的数据库安全管理技术领域,尤其涉及一种SQL语句的数据库操作权限检测方法与系统。

背景技术

数据安全管理是内容安全管理最重要的部分,对于今天几乎所有的政府部门、企事业单位的业务都是由已网络化为基础的信息系统产生和保存的、诸如一个企业的财务数据、生产数据、办公业务数据等等数据资源都是在信息系统的核心-数据管理系统中,因此对于每个单位的IT管理部门要对它担负起责任,保证其数据资源的安全性和可信性,但对于大多数用户对数据库系统采取的安全保护措施的级别还比不上操作系统和网络的安全保护措施的级别。数据库系统内数据资源所受到的相关威胁包括:

1)对数据库中的特定敏感数据进行大数据量的访问、下载;

2)内部或外部用户对数据库进行非授权的直接访问,对数据的直接修改;

3)直接对数据库应用系统数据进行非法删除,破坏关键应用数据,导致相关业务的混乱、停顿甚至直接造成经济利益损失;

4)管理员或入侵者非授权调整数据库配置,造成数据库系统异常;

5)入侵者利用系统安全漏洞或安全意识淡薄的管理员,通过赋予普通用户特殊的权限来建立系统的后门,提升数据库管理权限,对数据进行窃取、篡改和破坏;

6)恶意人员获取数据库访问帐号和密码信息,可对数据库进行非授权操作;

7)缺乏有效的技术手段,建立安全事件责任认定与跟踪机制。

以上破坏数据完整性的威胁都来自于数据库本身的安全策略的漏洞和使用方面的问题,然而对于数据库合法用户的违规操作,以及内部用户对数据资源的故意泄露或破坏等问题,对企业带来的危害会更加严重,损失也会相当巨大。

针对上述需求,目前市场上有很多基于网络或日志的数据库审计系统,它们通过人工参与设置固定的检测策略,来产生告警信息或对数据库操作进行阻断来满足数据放泄漏的需求。

发明内容

本发明的目的在于提供一种SQL语句的数据库操作权限检测方法与系统,以通过自动学习,生成对非授权的数据库操作的检测策略,自动调整数据库操作权限的检测(审计)策略。

一方面,本发明公开了一种SQL语句的数据库操作权限检测方法,包括如下步骤:提取步骤,对当前数据库操作进行分析,确定所述当前数据库操作所对应的数据库操作模板,依据所述模板,提取所述当前数据库操作所对应的数据库操作摘要;并且,所述数据库操作摘要对应唯一的检测单元;权限判断步骤,判断系统的检测模块中,是否预先存储有所述检测单元:若否,则所述当前数据库操作为非法,发出报警信息;若是,则确定所述检测单元的状态,所述状态包括学习状态、激活状态和短路状态;依据检测单元的状态进行操作权限的检测。

上述数据库操作权限检测方法,优选所述权限判断步骤中,若所述检测单元处于短路状态,则所述当前数据库操作为合法操作。

上述数据库操作权限检测方法,优选所述权限判断步骤中,若所述检测单元处于激活状态,则判断:所述预先存储的检测单元是否包含所述当前数据库操作所对应的数据库操作模板,若是,则所述当前数据库操作为合法操作;若否,则所述当前数据库操作为非法,发出报警信息。

上述数据库操作权限检测方法,优选所述权限判断步骤中,若所述检测单元处于学习状态,则:确定所述检测单元中所有的数据库操作模板,判断所述检测单元中数据库操作模板的数量是否超过预定阈值:若是,则将所述检测单元的状态切换为短路状态,确定所述当前数据库操作为合法操作;若否,则判断学习状态的时间是否超出预定时间或学习到的操作模板裂变是否长期不更新:

若是,则将所述检测单元的状态切换为激活状态,依据所述检测单元处于激活状态进行操作权限的检测;若否,将所述当前数据库操作对应的数据库操作模板加入至所述检测单元中;同时,确定所述当前数据库操作为合法操作。

上述数据库操作权限检测方法,优选所述提取步骤中,所述数据库操作摘要为数据库操作类型与数据库对象所组成谓宾对的有序集合;其中,所述数据库操作类型表示数据库操作的方式;所述数据库对象表示数据库中的一个实体。

上述数据库操作权限检测方法,优选所述提取步骤中,所述数据库操作摘要通过如下方式获取:借助数据库日志作为解析依据,根据上下文,将SQL语句解析为数据库操作模板,依据所述数据库操作模板,获取数据库操作摘要。

另一方面,本发明公开了一种SQL语句的数据库操作权限检测系统,包括:提取模块和权限判断模块。其中,提取模块用于对当前数据库操作进行分析,确定所述当前数据库操作所对应的数据库操作模板,依据所述模板,提取所述当前数据库操作所对应的数据库操作摘要;并且,所述数据库操作摘要对应唯一的检测单元;权限判断模块用于判断系统的检测模块中,是否预先存储有所述检测单元:若否,则所述当前数据库操作为非法,发出报警信息;若是,则确定所述检测单元的状态,所述状态包括学习状态、激活状态和短路状态;依据检测单元的状态进行操作权限的检测。

上述数据库操作权限检测系统,优选所述权限判断模块中,若所述检测单元处于短路状态,则所述当前数据库操作为合法操作。

上述数据库操作权限检测系统,优选所述权限判断模块中,若所述检测单元处于激活状态,则判断:所述预先存储的检测单元是否包含所述当前数据库操作所对应的数据库操作模板,若是,则所述当前数据库操作为合法操作;若否,则所述当前数据库操作为非法,发出报警信息。

上述数据库操作权限检测系统,优选所述权限判断模块中,若所述检测单元处于学习状态,则:

确定所述检测单元中所有的数据库操作模板,判断所述检测单元中数据库操作模板的数量是否超过预定阈值:若是,则将所述检测单元的状态切换为短路状态,确定所述当前数据库操作为合法操作;若否,则判断学习状态的时间是否超出预定时间或学习到的操作模板裂变是否长期不更新:

若是,则将所述检测单元的状态切换为激活状态,依据所述检测单元处于激活状态进行操作权限的检测;若否,将所述当前数据库操作对应的数据库操作模板加入至所述检测单元中;同时,确定所述当前数据库操作为合法操作。

上述数据库操作权限检测系统,优选所述提取模块中,所述数据库操作摘要为数据库操作类型与数据库对象所组成谓宾对的有序集合;其中,所述数据库操作类型表示数据库操作的方式;所述数据库对象表示数据库中的一个实体。

上述数据库操作权限检测系统,优选所述提取模块中,所述数据库操作摘要通过如下方式获取:借助数据库日志作为解析依据,根据上下文,将SQL语句解析为数据库操作模板,依据所述数据库操作模板,获取数据库操作摘要。

与现有技术相比,本发明基于对SQL语句的语法分析,产生数据库操作摘要信息,每个数据库操作摘要信息对应一个状态机,该状态机可以理解为一个检测模块的一个单元,通过对状态机的状态进行设定为“学习状态”、“激活状态”、“短路状态”,达到动态监测非授访问的目的。

因此,本发明可以通过自动学习,生成对非授权的数据库操作的检测策略,自动调整数据库操作权限的检测(审计)策略。

附图说明

图1为本发明SQL语句的数据库操作权限检测方法实施例的步骤流程图;

图2为本发明SQL语句的数据库操作权限检测方法优选实施例的步骤流程图;

图3为检测模块、检测单元、数据库操作摘要、数据库操作模板以及SQL各个对象之间的关系;

图4为检测单元的状态示意图,包括学习状态、激活状态和短路状态;

图5为本发明SQL语句的数据库操作权限检测系统的部署方式,该检测系统部署在探针模块内;

图6为本发明SQL语句的数据库操作权限检测系统实施例的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

对于一个大型的应用系统来说,数据库操作的产生绝大多数都是由应用系统产生的,应该可以理解为应用系统产生的操作是经过授权的。如何自动判断非应用系统(或称非常规操作)就是一大难题。

SQL语句的数据库操作权限检测方法实施例

参照图1,图1为本发明SQL语句的数据库操作权限检测方法实施例的步骤流程图,包括如下步骤:

提取步骤S110,对当前数据库操作进行分析,确定所述当前数据库操作所对应的数据库操作模板,依据所述模板,提取所述当前数据库操作所对应的数据库操作摘要;并且,所述数据库操作摘要对应唯一的检测单元。

权限判断步骤S120,判断系统中是否预先存储有所述检测单元,若否,执行步骤S130A,若是,执行步骤S130B。

步骤S130A,确定当前数据库操作为非法,发出报警信息;

步骤S130B,确定所述检测单元的状态,所述状态包括学习状态、激活状态和短路状态;依据检测单元的状态进行操作权限的检测。

上述实施例通过对产生数据库操作摘要,并将该摘要对应一个检测单元(状态机),通过将状态机的状态设定为“学习状态”、“激活状态”或“短路状态”,达到动态监测非授访问的目的。

另外,需要说明的是,上述实施例对于数据库操作模板的应用是对系统的一种优化,目的是减小内存中数据库操作(SQL)的存储数量,直接应用数据库操作摘要对应数据库操作来达到类似的目的也在本发明的保护范围之内。

优选实施例

下面结合图2、图3和图4,对本发明的优选实施例进行说明。

参照图2,图2为本发明SQL语句的数据库操作权限检测方法优选实施例的步骤流程图。该SQL语句的数据库操作权限检测方法包括如下步骤:

1)借助数据库日志作为解析依据,根据上下文,将SQL语句解析为数据库操作模板,依据数据库操作模板,获取数据库操作摘要;数据库操作摘要对应唯一的检测单元。数据库操作摘要为数据库操作类型与数据库对象所组成谓宾对的有序集合;其中,所述数据库操作类型表示数据库操作的方式;所述数据库对象表示数据库中的一个实体。

2)判断系统的检测模块中,是否预先存储有上述检测单元:

若否,则所述当前数据库操作为非法,发出报警信息;

若是,则确定所述检测单元的状态,所述状态包括学习状态、激活状态和短路状态;依据检测单元的状态进行操作权限的检测。

下面对2)进行详细说明:

A)、在2)中,若检测单元处于短路状态,则所述当前数据库操作为合法操作。

B)在2)中,若检测单元处于激活状态,则判断:

预先存储的检测单元是否包含所述当前数据库操作所对应的数据库操作模板,若是,则当前数据库操作为合法操作;若否,则当前数据库操作为非法,发出报警信息。

C)在2)中,若检测单元处于学习状态,则:

确定出检测单元中所包含的数据库操作模板,判断是否满足短路条件,即这些数据库操作模板的数量是否超过预定阈值:

i)若是,则将检测单元的状态切换为短路状态,确定所述当前数据库操作为合法操作;

ii)若否,则判断目前是否符合激活条件,激活条件为,学习状态的时间是否超出预定时间或学习到的操作模板裂变是否长期不更新:

若是,则将检测单元的状态切换为激活状态,依据上诉检测单元处于激活状态进行操作权限的检测;

若否,将当前数据库操作对应的数据库操作模板加入至所述检测单元中;同时,确定所述当前数据库操作为合法操作。

下面,对数据库操作模板和数据库摘要进行说明。

数据库操作模板:(Oracle公司将其称为Parsed SQL,其它地方暂时未发现与此一致或接近的定义)相对于数据库操作摘要来说,数据库操作模板是对数据库操作(SQL语句)的另外一种规范化处理方式,其特点是所有的SQL语句的数据部分被替换成特殊的符号(例如问号“?”),SQL语句的SQL关键字及数据库对象被定义成统一的大写或小写格式,SQL语句的多个空白字符(“\r”“\n”“\t”)等会被统一替换成空格或其他特殊符号,从而使得只有SQL语句格式不同,SQL参数的数值不同的SQL语句具有唯一的表述。

例如:SQL语句“SELECT TABLE1.COL1 from TABLE1 whereTABLE1.ID=‘张三’”和SQL语句“SELECT TABLE1.COL1 FROMTABLE1 WHERE TABLE1.ID=‘李四’”的数据库操作模板都是“select tabl1.col1 from table1 where table1.id=?”,一个数据库操作的SQL语句一定对应唯一一个数据库操作模板,但是一个数据库操作模板可以匹配多个SQL语句。

数据库操作摘要

●数据库操作类型:表示数据库操作的方式例如SELECTUPDATE DELETE INSERT等。

●数据库对象:表示数据库中的一个实体,可以是一个表、一个视图、一个触发器等。

●数据库操作谓宾对:由一个数据库操作类型及一个操作的数据库对象组成。

●数据库操作摘要:由一个或多个数据库操作谓宾对组成。

例如:

数据库操作摘要“(SELECT,TABLE1)”包含一个数据库操作谓宾对:表示查询操作作用在数据库对象TABLE1表上;数据库操作摘要″(SELECT,TABLE1)(UPDATE,TABLE2)″包含两个个数据库操作谓宾对:表示查询操作作用在数据库对象TABLE1表上,更新操作作用在数据库对象TABLE2上.

每个数据库操作(SQL语句)只会匹配一个数据库操作摘要,但是一个数据库操作摘要可以匹配多个数据库操作(SQL语句):例如“SELECT*from TABLE1 where ID=1;”“SELECT name fromTABLE1 where ID=2;”都会匹配(SELECT,TABLE1)。

假设一个SQL语句检测模型包括一个检测模块,参照图3,图3为检测模块、检测单元、数据库操作摘要、数据库操作模板以及SQL各个对象之间的关系。具体为:

1)一个检测模块可以具有多个检测单元

2)一个检测单元对应唯一一个数据库操作摘要

3)一个检测单元对应唯一一个状态

4)一个检测单元可以对应多个数据库操作模板

5)一个数据库操作模板对应一个SQL语句,一个SQL语句只对应一个数据库操作模板。

下面结合图4,对学习状态、激活状态和短路状态进行说明。

1)学习状态

说明某个数据库操作摘要对应的检测单元在不断的收集数据库操作模板的过程当中,如果系统通过对某个数据库操作进行语法分析发现了一个新的数据库操作模板,系统会将把新的数据库操作模板放置于集合当中而不会产生告警信息。

需要说明的是,默认情况下,新的数据库操作摘要对应的检测单元处于学习状态当中。之后,通过系统的自动或人工参与可以使检测单元处于激活状态或短路状态。

2)激活状态:

说明某个数据库操作摘要对应的检测单元处于非授权访问的监测状态,如果系统发现一个数据库操作匹配一个数据库操作摘要,但是这个数据库操作的数据库操作模板不在这个检测单元的数据库操作模板作列表当中,系统会产生未授权访问的异常告警。当检测单元处于学习状态一段时间之后(系统认为匹配某个数据库操作摘要的数据库操作模板已经全部收集到)系统会将切换检测单元的状态到激活状态。

3)短路状态

在此状态下如果系统发现一个数据库操作匹配此数据库摘要并且数据库操作摘要对应的检测单元处于短路状态,系统会“放过”这个数据库操作,并且不触发告警信息(无论这个数据库操作是否在在这个数据库操作摘要所对应的数据库操作模板列表当中)。系统会在一个数据库操作摘要状态机处于学习状态并且数据库操作摘要对应的数据库操模板作列表足够大(超过某个阀值)的时候,将数据库操作摘要对应的检测单元切换到短路状态。短路状态对于动态产生的SQL语句(匹配数据库操作摘要,但是每次真实的数据库操作模板都不相同)情况下的授权数据库访问匹配具有很大意义。

该实施例具有如下优点:

(1)动态建立检测策略。

(2)理论上可以做到零人工干预。

(3)由于数据库操作摘要能够表述出权限等业务意义,其作为策略的主体标识具有更好的可读性。

(4)由于数据库操作摘要的结构化特性,可以很容易的是系统具有针对性的功能扩展能力(比如人为定义某个数据库操作摘要或数据库操作摘要的片段)。

SQL语句的数据库操作权限检测系统实施例

参照图5,图示拓扑结构以旁路的方式监听数据库客户端的网络流量,解析还原SQL语句,记录数据库操作及其他相关属性。图中,包括审计服务器51、探针52、网络设备53和数据库54。SQL语句的数据库操作权限检测系统位于探针模块52中。

参照图6,图6为SQL语句的数据库操作权限检测系统实施例的结构框图。包括:提取模块60和权限判断模块62。其中,

提取模块60用于对当前数据库操作进行分析,确定所述当前数据库操作所对应的数据库操作模板,依据所述模板,提取所述当前数据库操作所对应的数据库操作摘要;并且,所述数据库操作摘要对应唯一的检测单元。权限判断模块62用于判断系统的检测模块中,是否预先存储有所述检测单元:若否,则所述当前数据库操作为非法,发出报警信息;若是,则确定所述检测单元的状态,所述状态包括学习状态、激活状态和短路状态;依据检测单元的状态进行操作权限的检测。

上述实施例通过对产生数据库操作摘要,并将该摘要对应一个检测单元(状态机),通过将状态机的状态设定为“学习状态”、“激活状态”或“短路状态”,达到动态监测非授访问的目的。

另外,需要说明的是,上述实施例对于数据库操作模板的应用是对系统的一种优化,目的是减小内存中数据库操作(SQL)的存储数量,直接应用数据库操作摘要对应数据库操作来达到类似的目的也在本发明的保护范围之内。

下面,对上述实施例做进一步的说明。

上述实施例中,权限判断模块62中,若所述检测单元处于短路状态,则所述当前数据库操作为合法操作。

上述实施例中,权限判断模块62中,若所述检测单元处于激活状态,则判断:所述预先存储的检测单元是否包含所述当前数据库操作所对应的数据库操作模板,若是,则所述当前数据库操作为合法操作;若否,则所述当前数据库操作为非法,发出报警信息。

上述实施例中,权限判断模块62中,若所述检测单元处于学习状态,则:确检测单元中所有的数据库操作模板的数量,判断所述检测单元中数据库操作模板的数量是否超过预定阈值:

i)若是,则将所述检测单元的状态切换为短路状态,确定所述当前数据库操作为合法操作;

ii)若否,则判断学习状态的时间是否超出预定时间或学习到的操作模板裂变是否长期不更新:

若是,则将所述检测单元的状态切换为激活状态,依据所述检测单元处于激活状态进行操作权限的检测;

若否,将所述当前数据库操作对应的数据库操作模板加入至所述检测单元中;同时,确定所述当前数据库操作为合法操作。

另外,数据库操作摘要为数据库操作类型与数据库对象所组成谓宾对的有序集合;其中,所述数据库操作类型表示数据库操作的方式;所述数据库对象表示数据库中的一个实体。该数据库操作摘要可以通过如下方式获取:借助数据库日志作为解析依据,根据上下文,将SQL语句解析为数据库操作模板,依据所述数据库操作模板,获取数据库操作摘要。

另外,需要说明的是,SQL语句的数据库操作权限检测系统实施例的原理与SQL语句的数据库操作权限检测方法相同,相关之处互相参照即可,本发明在此不再赘述。

以上对本发明所提供的一种SQL语句的数据库操作权限检测方法与系统进行详细介绍,本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号