数据库内核对象入侵检测方法及系统的制作方法

文档序号:6440159
专利名称:数据库内核对象入侵检测方法及系统的制作方法
技术领域
本发明涉及信息安全技术领域。具体涉及数据库系统的内核对象入侵篡改检测, 特别是一种提高数据库系统安全的新型扫描检测方法及其系统。
背景技术
当前的数据库安全风险扫描软件主要检测数据库系统配置风险和数据库软件本身的安全漏洞。数据库配置风险就是各种权限的分配不当以及用户管理不当、弱口令等,比如某个危险的存储过程执行权限分配给了公共角色,公共角色的成员就可能利用这个存储过程来进行提权操作。这类风险可以通过用户正确配置数据库来消除。数据库软件本身的安全漏洞是指数据库开发厂商在软件开发过程中由于考虑不周使软件产生了安全漏洞,例如各种缓冲区溢出漏洞、系统对象SQL注入漏洞。这类漏洞只能靠升级数据库或给数据库打补丁来解决。但是数据库系统除了这两种风险外,还存在另外一种安全风险,就是内核对象被篡改的风险。这类风险更隐蔽,危害更大。内核对象被篡改后,能拦截或更改各类用户对数据库的操作,比如用户表里添加了一条记录,可能往入侵者的地方发送一条相同的记录,这样入侵者就可以拿到用户名和密码等信息。入侵者也能新建一个管理员权限的用户,而且数据库管理员察觉不到该用户的存在。还可以轻易的更改数据库里的信息,也可以给用户返回伪造的信息。常见的数据库安全风险扫描软件主要检测数据库系统配置风险和数据库软件本身的安全漏洞,无法检测出内核对象被篡改。常用的检测方法是通过SQL语句获取数据库的信息,然后根据返回信息判断是否存在安全风险。例如通过查询系统表,判断某个对象的使用权限是否合理。通过检查数据库系统版本号,判断是否存在数据库软件本身的安全漏洞。但这些检测方法都无从判断内核对象是否被篡改,因为它们没有区别篡改与未篡改的标准。

发明内容
本发明要解决的技术问题是,克服现有技术中的不足,提供一种数据库内核对象入侵检测方法及系统。为解决技术问题,本发明的解决方案是提供一种数据库内核对象入侵检测方法,是在安装数据库软件且初始运行时创建数据库软件的基线特征库,在后续的运行期间对数据库进行扫描和对比;所述创建基线特征库,包括以下步骤(1)安装数据库软件;(2)连接数据库,通过SQL语句获得版本信息、内核对象名称、内核对象代码、所有人信息;(3)将内核对象代码通过加密算法生成数字水印;
(4)将版本信息、内核对象名称、所有人信息和数字水印作为数据库软件的基本信息保存于基线特征库中;所述对用户数据库进行扫描和对比,包括以下步骤(1)连接数据库,通过扫描SQL语句获得版本信息、内核对象名称、内核对象代码、 所有人信息;(2)将扫描得到的内核对象代码通过同样的加密算法生成数字水印;(3)根据获得的版本信息从基线特征库里读取内核对象名称和数字水印;(4)将扫描得到的内核对象名称、数字水印与基线特征库里的内核对象名称、数字水印逐条对比,查找被篡改的内核对象;如果两者不一致,则说明内核对象被篡改;(5)生成扫描报告,将被篡改的内核对象列表提供给用户。本发明中,当所述数据库软件进行版本更新时,根据所述创建基线特征库的步骤, 创建新版本数据库的基线特征库。由于数据库有不同版本,内核可能会有变动,因此,要收集数据库系统各个版本下的特征库。本发明中,所述内核对象代码包括系统视图、系统存储过程、系统函数、触发器和系统包。 本发明中,所述生成数字水印的加密算法是MD5算法。进一步地,本发明还提供了一种实现前述方法的数据库内核对象入侵检测系统, 该系统包括用于扫描数据库以获得版本信息、内核对象名称、内核对象代码和所有人信息并对内核对象代码通过加密算法生成数字水印的扫描模块;和用于将扫描得到的水印信息和所有人信息与基线特征库中的所有人信息和水印信息进行对比并生成扫描报告的对比模块;所述扫描模块连接至数据库,所述对比模块与基线特征库和扫描模块相连。本发明的有益效果在于本发明基于基线特征库,通过基线特征库对用户数据库进行扫描检测,能够发现被篡改的数据库内核对象,并提供详细的扫描报告,使数据库管理员能及时排除数据库安
^^^ 急 ^^ ο


图1是数据库内核对象入侵检测系统工作原理图。图2是数据库内核对象入侵检测系统创建基线特征库的工作流程图。图3是数据库内核对象入侵检测系统扫描检测过程工作流程图。
具体实施例方式首先需要说明的是,本发明涉及数据库技术,是计算机技术在信息安全技术领域的一种应用。在本发明的实现过程中,会涉及到多个软件功能模块的应用。申请人认为,如在仔细阅读申请文件、准确理解本发明的实现原理和发明目的以后,在结合现有公知技术的情况下,本领域技术人员完全可以运用其掌握的软件编程技能实现本发明。前述软件功能模块包括但不限于基线特征库、扫描模块、对比模块等,凡本发明申请文件提及的均属此范畴,申请人不再一一列举。本发明的实现原理是
首先创建基线特征库,然后是对运行使用期间的数据库进行扫描和检测。基线特征库收集了不同版本的内核对象名称和水印。扫描模块负责扫描数据库,并处理扫描到的内核对象信息;然后,由对比模块根据基线特征库进行对比,判断被扫描的数据库有没有被篡改。如发现篡改,就在扫描报告里列出被篡改的内核对象清单,并提出修补建议。以下是数据库内核对象入侵检测系统典型的实施案例假设要对一个0RACLE10G数据库进行内核对象篡改扫描检测。首先要创建好0RACLE10G的基线特征库,基线特征库里包含数据库版本信息、内核对象名称、所有人信息,以及由内核对象代码加密得到的数字水印四个字段。安装数据库内核对象入侵检测系统,输入待扫描数据库的IP、端口、SID、用户名和密码,连接数据库。连接成功后执行扫描和对比操作。扫描和对比操作的过程主要执行以下步骤(1)通过扫描SQL语句获得版本信息、内核对象名称、内核对象代码、所有人信息;(2)将扫描得到的内核对象代码通过同样的加密算法生成数字水印;(3)根据获得的版本信息从基线特征库里读取内核对象名称和数字水印;(4)将扫描得到的内核对象名称、数字水印与基线特征库里的内核对象名称、数字水印逐条对比,查找被篡改的内核对象;如果两者不一致,则说明内核对象被篡改;(5)生成扫描报告,将被篡改的内核对象列表提供给用户。扫描和对比完成后,根据扫描报告就可以发现数据库哪些内核对象被篡改,数据库管理员根据被篡改的内核对象列表修复数据库系统。
权利要求
1.一种数据库内核对象入侵检测方法,其特征在于,在安装数据库软件且初始运行时创建数据库软件的基线特征库,在后续的运行期间对数据库进行扫描和对比;所述创建基线特征库,包括以下步骤(1)安装数据库软件;(2)连接数据库,通过SQL语句获得版本信息、内核对象名称、内核对象代码、所有人信息;(3)将内核对象代码通过加密算法生成数字水印;(4)将版本信息、内核对象名称、所有人信息和数字水印作为数据库软件的基本信息保存于基线特征库中;所述对用户数据库进行扫描和对比,包括以下步骤(1)连接数据库,通过扫描SQL语句获得版本信息、内核对象名称、内核对象代码、所有人信息;(2)将扫描得到的内核对象代码通过同样的加密算法生成数字水印;(3)根据获得的版本信息从基线特征库里读取内核对象名称和数字水印;(4)将扫描得到的内核对象名称、数字水印与基线特征库里的内核对象名称、数字水印逐条对比,查找被篡改的内核对象;如果两者不一致,则说明内核对象被篡改;(5)生成扫描报告,将被篡改的内核对象列表提供给用户。
2.根据权利要求1所述的方法,其特征在于,当所述数据库软件进行版本更新时,根据所述创建基线特征库的步骤,创建新版本数据库的基线特征库。
3.根据权利要求1所述的方法,其特征在于,所述内核对象代码包括系统视图、系统存储过程、系统函数、触发器和系统包。
4.根据权利要求1所述的方法,其特征在于,所述生成数字水印的加密算法是MD5算法。
5.一种实现权利要求1所述方法的数据库内核对象入侵检测系统,其特征在于,该系统包括用于扫描数据库以获得版本信息、内核对象名称、内核对象代码和所有人信息并对内核对象代码通过加密算法生成数字水印的扫描模块;和用于将扫描得到的水印信息和所有人信息与基线特征库中的所有人信息和水印信息进行对比并生成扫描报告的对比模块;所述扫描模块连接至数据库,所述对比模块与基线特征库和扫描模块相连。
全文摘要
本发明涉及信息安全技术领域,旨在提供一种数据库内核对象入侵检测方法及系统。该方法是根据数据库在各种环境下的初始内核对象生成不同的基线特征库,扫描时通过基线特征库判断当前数据库系统内核是否遭到入侵篡改,并给出相应的扫描报告,提醒数据库管理员及时修复被入侵篡改的数据库系统。该系统包括扫描模块和对比模块;扫描模块连接至数据库,对比模块与基线特征库和扫描模块相连。本发明基于基线特征库,通过基线特征库对用户数据库进行扫描检测,能够发现被篡改的数据库内核对象,并提供详细的扫描报告,使数据库管理员能及时排除数据库安全隐患。
文档编号G06F21/00GK102521536SQ20111040102
公开日2012年6月27日 申请日期2011年12月6日 优先权日2011年12月6日
发明者刘海卫, 王宁初, 范渊 申请人:杭州安恒信息技术有限公司
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1