一种检测数据库篡改行为的方法,包括:接收网络访问请求;识别出数据库访问请求,提取所述数据库访问请求中的SQL语句;提取所述SQL语句的指令对象、指令类别和/或指令条件;获取预设的数据库访问规则;判断所述提取得到的指令对象、指令类别和/或指令条件是否与所述数据库访问规则匹配,若是,则判定所述网络访问请求为篡改行为。此外,还提供了一种检测数据库篡改行为的装置。上述检测数据库篡改行为的方法及装置能够提高安全性。
【技术实现步骤摘要】
检测数据库篡改行为的方法及装置
本专利技术涉及终端
,特别是涉及一种检测数据库篡改行为的方法及装置。
技术介绍
现在的web防护中,随着全球信息化进程的推进,网络风险已经成为阻碍信息化进程的一个重要因素,网络安全问题成为公众关注的焦点。其中数据库安全风险尤其受到关注,因为数据库安全直接关系到企业与用户的信息安全。数据库安全主要涉及:滥用过高权限、滥用合法权限、权限提升、SQL注入、数据泄露等。 现有技术中,在对这些问题的防御,通常依赖于数据库自身的安全机制,但现有数据库产品只有少量的安全配置方面的功能,并不能满足与业务需求相关的数据库安全防护的需求,因此造成了现有的数据库安全防护的安全性较低。
技术实现思路
基于此,有必要提供一种能够提高安全性的检测数据库篡改行为的方法。 一种检测数据库篡改行为的方法,包括: 接收网络访问请求; 识别出数据库访问请求,提取所述数据库访问请求中的SQL语句; 提取所述SQL语句的指令对象、指令类别和/或指令条件; 获取预设的数据库访问规则; 判断所述提取得到的指令对象、指令类别和/或指令条件是否与所述数据库访问规则匹配,若是,则判定所述网络访问请求为篡改行为。 在其中一个实施例中,所述识别出数据库访问请求的步骤为: 判断所述网络访问请求是否匹配预设的IP地址和/或端口号和/或数据库协议关键字,若是,则判定所述网络访问请求为数据库访问请求。 在其中一个实施例中,所述数据库访问规则包含预设的正则表达式或关键字符串; 所述判断提取得到的指令对象、指令类别和/或指令条件是否与所述数据库访问规则匹配的步骤为: 判断所述提取得到的指令对象、指令类别和/或指令条件是否与所述正则表达式或关键字符串匹配。 在其中一个实施例中,所述获取预设的数据库访问规则的步骤之前还包括: 获取所述数据库访问请求对应的用户类别; 所述获取预设的数据库访问规则的步骤还包括: 获取与所述用户类别对应的数据库访问规则。 在其中一个实施例中,所述判定所述网络访问请求为篡改行为的步骤之后还包括: 获取预设的告警地址,生成告警信息,将所述告警信息发送至所述告警地址。 此外,还有必要提供一种能够提高安全性的检测数据库篡改行为的装置。 一种检测数据库篡改行为的装置,包括: 请求拦截模块,用于接收网络访问请求; 请求识别模块,用于识别出数据库访问请求,提取所述数据库访问请求中的SQL语句; 指令提取模块,用于提取所述SQL语句的指令对象、指令类别和/或指令条件; 规则获取模块,用于获取预设的数据库访问规则; 行为判定模块,用于判断所述提取得到的指令对象、指令类别和/或指令条件是否与所述数据库访问规则匹配,若是,则判定所述网络访问请求为篡改行为。 在其中一个实施例中,所述请求识别模块还用于判断所述网络访问请求是否匹配预设的IP地址和/或端口号和/或数据库协议关键字,若是,则判定所述网络访问请求为数据库访问请求。 在其中一个实施例中,所述数据库访问规则包含预设的正则表达式或关键字符串; 所述行为判定模块还用于判断所述提取得到的指令对象、指令类别和/或指令条件是否与所述正则表达式或关键字符串匹配。 在其中一个实施例中,所述规则获取模块还用于获取所述数据库访问请求对应的用户类别,获取与所述用户类别对应的数据库访问规则。 在其中一个实施例中,所述装置还包括告警模块,用于获取预设的告警地址,生成告警信息,将所述告警信息发送至所述告警地址。 上述检测数据库篡改行为的方法及装置中,对数据库访问请求进行匹配的数据库访问规则不限于数据库产品自身所定义的规则,而是由数据库管理员创建的与实际业务相关的数据库访问规则,因此可根据业务的实际需要自定义,使得对篡改行为的检测更加适配业务需求,从而提高了安全性。 同时该方法及装置是对网络访问请求进行识别后进行检测,与数据库服务器并不关联,并不必须安装在数据库服务器上,而可将其部署于数据库服务器前端接收访问请求的web服务器或网关设备上,因此,更加提高了检测数据库篡改行为的方法及装置的适用性。 【附图说明】 图1为一个实施例中一种检测数据库篡改行为的方法的流程图; 图2为一个实施例中一种检测数据库篡改行为的方装置的结构示意图。 【具体实施方式】 为解决上述安全性不足的问题,特提出了一种检测数据库篡改行为的方法。该方法完全依赖于计算机程序,该计算机程序可运行于基于冯洛伊曼体系的计算机系统上。该计算机系统可以是数据库服务器、web服务器、数据库服务器前端接收数据库访问请求的计算机设备、网关设备或具有网关功能的网络设备等。 在本实施例中,如图1所示,该方法包括: 步骤S102:接收网络访问请求。 步骤S104:识别出数据库访问请求,提取数据库访问请求中的SQL语句。 在本实施例中,该方法可运行于web服务器机房的网关设备上,web服务器机房中的web服务器处于机房内的内网环境中,通过该网关设备与外部网络连接。终端发起的网络访问请求经该网关设备转发后抵达机房内的web服务器。 在本实施例中,可根据数据库相关协议对网络访问请求进行识别,判断网络访问请求是否匹配预设的IP地址和/或端口号和/或数据库相关协议对应的数据库协议关键字,若是,则判定网络访问请求为数据库访问请求。若网络访问请求为数据库访问请求,则根据数据库相关协议提取该SQL语句。 例如,若在web系统中,数据库服务器的ip地址为192.168.1.10,端口号为3306(以mysql数据库为例),则可将其预先配置在配置文件中。即管理员可以通过配置目标ip和/或端口,明确指定哪些目标是数据库服务器。另外,管理员亦可勾选让数据库篡改检测系统自行发现内网的数据库服务器,此时系统将根据各个数据库协议特征(如端口或具体的通信特征),识别数据库服务器。例如管理员指定目标端口 3306是数据库服务器,系统也检测到接收的网络访问请求发送至192.168.1.10主机的3306端口,则可判定为该网络访问请求为数据库访问请求。 步骤S106:提取SQL语句的指令对象、指令类别和/或指令条件。 SQL语句通常包含三要素,即指令对象、指令类别和指令条件。指令对象即为该SQL语句操作的数据库的表或视图,指令类别即为该SQL语句进行的数据库操作的类型(例如insert、delete、update、select,增删改查等操作),指令条件即为该SQL语句在执行数据库操作指令时的附加条件。 例如,若提取得到的SQL 语句为:“INSERT INTO shell'('phpcode')VALUESΓ < ? php@eval($_POST[cmd] ; ? >'),, 则INSERT即为指令类别,表示的是该SQL语句执行的是新增数据库记录的操作。 Shell和phpcode即为指令对象,即为该SQL语句的插入操作的对象是Shell数据表的phpcode字段。 ' < ? phpOeval ($_P0ST[〃cmd〃] ; ? >'即为该SQL语句操作的附加条件,表示该SQL语句对shell表操作新增的记录为〈? phpO本文档来自技高网...
【技术保护点】
一种检测数据库篡改行为的方法,包括:接收网络访问请求;识别出数据库访问请求,提取所述数据库访问请求中的SQL语句;提取所述SQL语句的指令对象、指令类别和/或指令条件;获取预设的数据库访问规则;判断所述提取得到的指令对象、指令类别和/或指令条件是否与所述数据库访问规则匹配,若是,则判定所述网络访问请求为篡改行为。
【技术特征摘要】
1.一种检测数据库篡改行为的方法,包括: 接收网络访问请求; 识别出数据库访问请求,提取所述数据库访问请求中的SQL语句; 提取所述SQL语句的指令对象、指令类别和/或指令条件; 获取预设的数据库访问规则; 判断所述提取得到的指令对象、指令类别和/或指令条件是否与所述数据库访问规则匹配,若是,则判定所述网络访问请求为篡改行为。2.根据权利要求1所述的检测数据库篡改行为的方法,其特征在于,所述识别出数据库访问请求的步骤为: 判断所述网络访问请求是否匹配预设的IP地址和/或端口号和/或数据库协议关键字,若是,则判定所述网络访问请求为数据库访问请求。3.根据权利要求1所述的检测数据库篡改行为的方法,其特征在于,所述数据库访问规则包含预设的正则表达式或关键字符串; 所述判断提取得到的指令对象、指令类别和/或指令条件是否与所述数据库访问规则匹配的步骤为: 判断所述提取得到的指令对象、指令类别和/或指令条件是否与所述正则表达式或关键字符串匹配。4.根据权利要求1所述的检测数据库篡改行为的方法,其特征在于,所述获取预设的数据库访问规则的步骤之前还包括: 获取所述数据库访问请求对应的用户类别; 所述获取预设的数据库访问规则的步骤还包括: 获取与所述用户类别对应的数据库访问规则。5.根据权利要求1所述的检测数据库篡改行为的方法,其特征在于,所述判定所述网络访问请求为篡改行为的步骤之后还包括: 获取预设的告警地址,生成...
【专利技术属性】
技术研发人员:曾加良,
申请(专利权)人:深信服网络科技深圳有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。