CN107463842A - 基于数据库协议的sql注入审计或防护方法及装置 - Google Patents

基于数据库协议的sql注入审计或防护方法及装置 Download PDF

Info

Publication number
CN107463842A
CN107463842A CN201710732238.7A CN201710732238A CN107463842A CN 107463842 A CN107463842 A CN 107463842A CN 201710732238 A CN201710732238 A CN 201710732238A CN 107463842 A CN107463842 A CN 107463842A
Authority
CN
China
Prior art keywords
packet
byte
database
response
database server
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.)
Granted
Application number
CN201710732238.7A
Other languages
English (en)
Other versions
CN107463842B (zh
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.)
DBAPPSecurity Co Ltd
Original Assignee
DBAPPSecurity Co 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 DBAPPSecurity Co Ltd filed Critical DBAPPSecurity Co Ltd
Priority to CN201710732238.7A priority Critical patent/CN107463842B/zh
Publication of CN107463842A publication Critical patent/CN107463842A/zh
Application granted granted Critical
Publication of CN107463842B publication Critical patent/CN107463842B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

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

Abstract

本发明提供了一种基于数据库协议的SQL注入审计或防护方法及装置,涉及信息安全技术领域,该方法包括获取数据库服务器根据预设数据库协议发送的数据包,其中,数据包为响应客户端请求信息的数据包;根据预设数据库协议的数据格式对数据包进行分析,以确定数据库服务器对请求信息的响应结果;基于响应结果,确定SQL注入导致的对数据库服务器进行访问的危险访问接口,以便对访问危险访问接口的访问请求进行阻止。本发明缓解了传统的SQL注入的审计和防护方法中存在的误报率较高的技术问题。

Description

基于数据库协议的SQL注入审计或防护方法及装置
技术领域
本发明涉及信息安全技术领域,尤其是涉及一种基于数据库协议的SQL注入审计或防护方法及装置。
背景技术
所谓SQL(Structured Query Language)注入,较为常见的一种情况是在Web表单中插入SQL语句,SQL注入常被用来攻击服务器以达到窃取信息或控制系统的目的。
关于SQL注入的审计技术,根据审计过程是否需要应用程序的执行,主要存在两类:第一类是静态代码审计,主要是通过扫描函数列表,实现对整个代码的循环遍历分析,以达到发现SQL注入的目的;第二类是动态代码审计,主要是在应用程序动态执行的过程中,通过监控用户输入变量的传递过程是否异常,来达到发现SQL注入的目的。而各种防火墙中通常构造各种关于SQL注入的正则表达式,然后通过正则表达式来匹配HTTP协议中出现的数据包,如果HTTP数据包与任意一条正则表达式实现了正则匹配,那么就将客户端访问服务器的连接拦截,已达到防止SQL注入造成的危险。
上述SQL注入的审计技术,分别存在下列问题:(1)静态代码审计技术扫描出来的可疑风险点列表往往很大,需要大量的人工分析,误报率非常高。(2)动态代码审计技术由于用户的输入变量经过各种逻辑处理,往往虽然经过危险函数但最后结果并不异常,因而也会有很多误报。(3)用正则表达式进行正则匹配的方法中,为了保证不对正常的正则业务造成影响,正则表达式构造的会较宽松一些,因而,入侵者也很容易绕过正则表达式的正则匹配,因而也存在较高的误报率。
针对上述传统的SQL注入的审计和防护方法中存在的误报率较高的技术问题,现有技术中缺乏有效的解决办法。
发明内容
有鉴于此,本发明的目的在于提供一种基于数据库协议的SQL注入审计或防护方法及装置,以缓解述传统的SQL注入的审计和防护方法中存在的误报率较高的技术问题。
第一方面,本发明实施例提供了一种基于数据库协议的SQL注入审计或防护方法,应用于客户端,包括:
获取数据库服务器根据预设数据库协议发送的数据包,其中,所述数据包为响应所述客户端请求信息的数据包;
根据所述预设数据库协议的数据格式对所述数据包进行分析,以确定所述数据库服务器对所述请求信息的响应结果;
基于所述响应结果,确定SQL注入导致的对所述数据库服务器进行访问的危险访问接口,以便对访问所述危险访问接口的访问请求进行阻止。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述获取数据库服务器根据预设数据库协议发送的数据包,包括:
从所述客户端的驱动层获取数据库服务器根据所述预设数据库协议发送的数据包;或者,
通过预设插件获取数据库服务器根据所述预设数据库协议发送的数据包,其中,所述预设插件为预先安装在所述客户端,且被设置于获取所述数据库服务器传送的数据包的插件。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,根据所述预设数据库协议的数据格式对所述数据包进行分析,包括:
根据所述预设数据库协议的数据格式,确定第一字节位置,其中,所述第一字节位置用于存储所述数据库服务器的响应结果;
从所述数据包中提取处于所述第一字节位置的第一目标字节;
根据所述第一目标字节的数值,确定所述数据库服务器的响应结果。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,基于所述响应结果,确定SQL注入导致的对所述数据库服务器进行访问的危险访问接口,包括:
在所述响应结果为响应错误的情况下,根据所述预设数据库协议的数据格式,确定第二字节位置,其中,所述第二字节位置用于存储所述响应错误的错误类型,其中,所述错误类型包括正常错误和异常错误;
从所述数据包中提取处于所述第二字节位置的第二目标字节;
根据所述第二目标字节的数值,确定所述响应错误的错误类型;
在所述错误类型为异常错误的情况下,确定所述危险访问接口。
结合第一方面的第三种可能得实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,在所述错误类型为异常错误的情况下,确定所述危险访问接口,包括:
调用预设代码审计程序,其中,所述预设代码审计程序为在所述客户端运行时自动进行代码审计的程序;
通过所述预设代码审计程序,追溯所述SQL注入的SQL语句,以根据所述SQL语句确定所述危险访问接口。
结合第一方面的第三种可能得实施方式,本发明实施例提供了第一方面的第五种可能的实施方式,其中,在根据所述第二目标字节的数值,确定所述响应错误的错误类型为正常错误的情况下,所述方法还包括:
将所述第二字节位置的字节数值更新为第三数值,其中,所述第三数值用于表示所述响应结果为响应正确。
结合第一方面的第三种可能得实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,其中,在根据所述第二目标字节的数值,确定所述响应错误的错误类型为正常错误的情况下,所述方法还包括:
更新所述第二字节位置的字节数值的表示意义,以使所述客户端对所述第二字节位置的字节数值表示的响应结果识别为响应正确。
第二方面,本发明实施例还提供一种基于数据库协议的SQL注入审计或防护装置,包括:
获取模块,用于获取数据库服务器根据预设数据库协议发送的数据包,其中,所述数据包为响应所述客户端请求信息的数据包;
分析模块,用于根据所述预设数据库协议的数据格式对所述数据包进行分析,以确定所述数据库服务器对所述请求信息的响应结果;
确定模块,用于基于所述响应结果,确定SQL注入导致的对所述数据库服务器进行访问的危险访问接口,以便对访问所述危险访问接口的访问请求进行阻止。
本发明实施例带来了以下有益效果:获取数据库服务器根据预设数据库协议发送的数据包,其中,数据包为响应客户端请求信息的数据包;根据预设数据库协议的数据格式对数据包进行分析,以确定数据库服务器对请求信息的响应结果,上述响应结果中包含了响应是否正确或响应错误的错误类型;基于响应结果,确定SQL注入导致的对所述数据库服务器进行访问的危险访问接口,具体在响应错误的错误类型为异常错误的情况下,针对访问危险访问接口的访问请求进行阻止,从而缓解了传统的SQL注入的审计和防护方法中存在的误报率较高的技术问题。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的一种基于数据库协议的SQL注入审计或防护方法的流程图;
图2为本发明实施例一提供的另一种基于数据库协议的SQL注入审计或防护方法的流程图;
图3为本发明实施例二提供的一种基于数据库协议的SQL注入审计或防护装置的示意图;
图4为本发明实施例二提供的确定模块的示意图。
图标:100-获取模块;200-分析模块;300-确定模块;301-第一确定单元;302-提取单元;303-第二确定单元;304-第三确定单元;305-第一更新单元;306-第二更新单元。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
关于SQL注入的审计和防护方法,包括:静态代码审计、动态代码审计以及用正则表达式进行正则匹配进行审计,然而,这些方法都存在误报率较高的技术问题。基于此,本发明实施例提供的一种基于数据库协议的SQL注入审计或防护方法及装置,可以缓解述传统的SQL注入的审计和防护方法中存在的误报率较高的技术问题。
实施例一
本发明实施例提供的一种基于数据库协议的SQL注入审计或防护方法,如图1所示,包括:
步骤S102,获取数据库服务器根据预设数据库协议发送的数据包,其中,数据包为响应客户端请求信息的数据包;
步骤S104,根据预设数据库协议的数据格式对数据包进行分析,以确定数据库服务器对请求信息的响应结果;
步骤S106,基于响应结果,确定SQL注入导致的对数据库服务器进行访问的危险访问接口,以便对访问危险访问接口的访问请求进行阻止。
需要说明的是,各种数据库服务器都有预设的用于传输网络数据的数据库协议。上述数据库服务器对请求信息的响应结果,表示数据库执行的正确与否。
此外,分析每一条数据库协议数据包,如果数据库协议数据包中出现了报错数据包,就极有可能是入侵者发现了客户端的SQL注入漏洞造成的。因为不管一个测试人员还是一个黑客,在发现SQL注入漏洞的测试过程中基本都会触发一次以上的数据库执行错误,这个错误信息在应用程序上基本是不显示的,而且数据库系统也不会记录这个执行错误,数据库能够配置的错误日志只能记录数据库中启动、停止或者配置错误等错误信息;但是,数据库协议数据包却能够监控这个错误信息。因而,在不改动任何客户端程序的前提下,我们可以利用上述特征,监控所有的数据库报错信息,以便确认人为造成的SQL注入漏洞。
在本发明实施例中,获取数据库服务器根据预设数据库协议发送的数据包,其中,数据包为响应客户端请求信息的数据包;根据预设数据库协议的数据格式对数据包进行分析,以确定数据库服务器对请求信息的响应结果,上述响应结果中包含了响应是否正确或响应错误的错误类型;基于响应结果,具体在响应错误的错误类型为异常错误的情况下,确定SQL注入导致的对所述数据库服务器进行访问的危险访问接口,准确对访问危险访问接口的访问请求进行阻止,从而缓解了传统的SQL注入的审计和防护方法中存在的误报率较高的技术问题。
本发明实施例中的基于数据库协议的SQL注入审计或防护方法,既可以用在数据库审计方面,也可以用在web防火墙上,来监控或审计SQL注入漏洞。
本发明实施例的一个可选实施方式中,获取数据库服务器根据预设数据库协议发送的数据包,包括:
从客户端的驱动层获取数据库服务器根据预设数据库协议发送的数据包;或者,
通过预设插件获取数据库服务器根据预设数据库协议发送的数据包,其中,预设插件为预先安装在客户端,且被设置于获取数据库服务器传送的数据包的插件。
需要说明的是,上述两种方法只是获取数据包的两种可选方式,本发明实施例中的获取数据包的可选方法并不限于这两种方法。
本发明实施例的另一个可选实施方式中,如图2所示,根据预设数据库协议的数据格式对数据包进行分析,包括:
步骤S201,根据预设数据库协议的数据格式,确定第一字节位置,其中,第一字节位置用于存储数据库服务器的响应结果;
步骤S202,从数据包中提取处于第一字节位置的第一目标字节;
步骤S203,根据第一目标字节的数值,确定数据库服务器的响应结果,确定出相应结果是否为正确响应。
具体地,当客户端发起认证请求或命令请求之类的请求信息后,服务器会返回相应的响应结果给客户端,以对请求信息进行响应。响应结果包括响应报文,响应报文为服务器对请求信息的执行结果。
客户端在收到响应报文后,需要首先检查第一字节位置的数值,来区分响应报文的类型。假设数据库服务器为mysql,响应报文的第四个字节即上述的第一字节位置,具体地,当第4个字节为0x00,则代表数据库服务器对客户端的请求信息执行正确,数据库服务器返回OK响应报文,响应报文的类型为正确响应报文;当第4个字节为0xFF(0xFF为错误标志字节),则代表数据库服务器对客户端的请求信息执行出错,数据库服务器返回Error报文响应报文的类型为错误响应报文。
本发明实施例的另一个可选实施方式中,如图2所示,基于响应结果,确定SQL注入导致的对数据库服务器进行访问的危险访问接口,包括:
步骤S204,在响应结果为响应错误的情况下,根据预设数据库协议的数据格式,确定第二字节位置,其中,第二字节位置用于存储响应错误的错误类型,其中,错误类型包括正常错误和异常错误;在在响应结果为响应正确的情况下,返回执行上述步骤S102。
步骤S205,从数据包中提取处于第二字节位置的第二目标字节;
步骤S206,根据第二目标字节的数值,确定响应错误的错误类型,确定响应错误的错误的错误类型是否为正常错误;
步骤S207,在错误类型不为正常错误,而为异常错误的情况下,确定危险访问接口。
具体地,而错误响应报文中,在错误标志字节0xFF之后紧接着的字节位置为第二字节位置,第二字节位置的第二目标字节的数值表示的信息为:错误编号、服务器状态标志和服务器消息,从这些信息中可以确定出响应错误的错误类型。
本发明实施例的另一个可选实施方式中,在错误类型为异常错误的情况下,确定危险访问接口,包括:
调用预设代码审计程序,其中,预设代码审计程序为在客户端运行时自动进行代码审计的程序;
通过预设代码审计程序,追溯SQL注入的SQL语句,以根据SQL语句确定危险访问接口。
具体地,预设代码审计程序可以追溯代码层里面SQL注入的SQL语句,根据SQL语句确定危险访问接口,在访问接口处直接拦截客户端的连接或者封锁攻击者IP。
需要说明的是,一般正常程序自身正常工作状态下不会出现数据库执行报错,那么,监控中的数据库报错信息就能够确认是人为造成的SQL注入漏洞。然而,会有偶然的异常情况,即,客户端自身正常工作状态下,数据库服务器发送的数据包也会出现数据库执行报错,为了减少此类报错给SQL注入漏洞报错造成的误报现象,可以采用步骤S208,更新步骤。
本发明实施例的另一个可选实施方式中给出了更新步骤S208的一种执行方法,即,在根据第二目标字节的数值,确定响应错误的错误类型为正常错误的情况下,基于数据库协议的SQL注入审计或防护方法还包括:
步骤S208,将第二字节位置的字节数值更新为第三数值,其中,第三数值用于表示响应结果为响应正确。
具体地,可以是通过管理员来修改客户端程序代码,在客户端将第二字节位置的字节数值更新为第三数值,客户端的管理员不会接受到报错现象。
本发明实施例的另一个可选实施方式中给出了更新步骤S208的另一种执行方法,具体地,在根据第二目标字节的数值,确定响应错误的错误类型为正常错误的情况下,基于数据库协议的SQL注入审计或防护方法还包括:
步骤S208,更新第二字节位置的字节数值的表示意义,以使客户端对第二字节位置的字节数值表示的响应结果识别为响应正确。
具体地,可以是对第二字节位置的字节数值加入客户端报错程序中的白名单,使客户端对第二字节位置的字节数值表示的响应结果识别为响应正确。
需要强调的是,本发明实施例中的基于数据库协议的SQL注入审计或防护反复执行,则客户端程序代码被不断的修正后,或者,客户端报错程序中的白名单列表健壮后,则错误响应报文为SQL注入漏洞导致的概率可以大大提高,从而进一步降低SQL注入的审计和防护方法的误报率。具体地,本发明实施例中,即,步骤S207执行完后执行步骤S102,步骤S208执行完后执行步骤S102。
实施例二
本发明实施例提供的一种基于数据库协议的SQL注入审计或防护装置,如图3所示,包括:
获取模块100,用于获取数据库服务器根据预设数据库协议发送的数据包,其中,数据包为响应客户端请求信息的数据包;
分析模块200,用于根据预设数据库协议的数据格式对数据包进行分析,以确定数据库服务器对请求信息的响应结果;
确定模块300,用于基于响应结果,确定SQL注入导致的对数据库服务器进行访问的危险访问接口,以便对访问危险访问接口的访问请求进行阻止。
在本发明实施例中,获取模块100获取数据库服务器根据预设数据库协议发送的数据包,其中,数据包为响应客户端请求信息的数据包;分析模块200根据预设数据库协议的数据格式对数据包进行分析,以确定数据库服务器对请求信息的响应结果,上述响应结果中包含了响应是否正确或响应错误的错误类型;确定模块300基于响应结果,具体在响应错误的错误类型为异常错误的情况下,确定SQL注入导致的对所述数据库服务器进行访问的危险访问接口,准确对访问危险访问接口的访问请求进行阻止,从而缓解了传统的SQL注入的审计和防护方法中存在的误报率较高的技术问题。
本发明实施例的另一个可选实施方式中,获取模块100用于:
从客户端的驱动层获取数据库服务器根据预设数据库协议发送的数据包;或者,
通过预设插件获取数据库服务器根据预设数据库协议发送的数据包,其中,预设插件为预先安装在客户端,且被设置于获取数据库服务器传送的数据包的插件。
本发明实施例的另一个可选实施方式中,分析模块200用于:
根据预设数据库协议的数据格式,确定第一字节位置,其中,第一字节位置用于存储数据库服务器的响应结果;
从数据包中提取处于第一字节位置的第一目标字节;
根据第一目标字节的数值,确定数据库服务器的响应结果。
本发明实施例的另一个可选实施方式中,如图4所示,确定模块300包括:
第一确定单元301,用于在响应结果为响应错误的情况下,根据预设数据库协议的数据格式,确定第二字节位置,其中,第二字节位置用于存储响应错误的错误类型,其中,错误类型包括正常错误和异常错误;
提取单元302,用于从数据包中提取处于第二字节位置的第二目标字节;
第二确定单元303,用于根据第二目标字节的数值,确定响应错误的错误类型;
第三确定单元304,用于在错误类型为异常错误的情况下,确定危险访问接口。
本发明实施例的另一个可选实施方式中,第三确定单元304用于:
调用预设代码审计程序,其中,预设代码审计程序为在客户端运行时自动进行代码审计的程序;
通过预设代码审计程序,追溯SQL注入的SQL语句,以根据SQL语句确定危险访问接口。
本发明实施例的另一个可选实施方式中,如图4所示,确定模块300还包括:
第一更新单元305,用于在根据第二目标字节的数值,确定响应错误的错误类型为正常错误的情况下,将第二字节位置的字节数值更新为第三数值,其中,第三数值用于表示响应结果为响应正确。
本发明实施例的另一个可选实施方式中,如图4所示,确定模块300还包括:
第二更新单元306,用于在根据第二目标字节的数值,确定响应错误的错误类型为正常错误的情况下,更新第二字节位置的字节数值的表示意义,以使客户端对第二字节位置的字节数值表示的响应结果识别为响应正确。
本发明实施例所提供的基于数据库协议的SQL注入审计或防护方法及装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种基于数据库协议的SQL注入审计或防护方法,其特征在于,应用于客户端,包括:
获取数据库服务器根据预设数据库协议发送的数据包,其中,所述数据包为响应所述客户端请求信息的数据包;
根据所述预设数据库协议的数据格式对所述数据包进行分析,以确定所述数据库服务器对所述请求信息的响应结果;
基于所述响应结果,确定SQL注入导致的对所述数据库服务器进行访问的危险访问接口,以便对访问所述危险访问接口的访问请求进行阻止。
2.根据权利要求1所述的方法,其特征在于,所述获取数据库服务器根据预设数据库协议发送的数据包,包括:
从所述客户端的驱动层获取数据库服务器根据所述预设数据库协议发送的数据包;或者,
通过预设插件获取数据库服务器根据所述预设数据库协议发送的数据包,其中,所述预设插件为预先安装在所述客户端,且被设置于获取所述数据库服务器传送的数据包的插件。
3.根据权利要求1所述的方法,其特征在于,根据所述预设数据库协议的数据格式对所述数据包进行分析,包括:
根据所述预设数据库协议的数据格式,确定第一字节位置,其中,所述第一字节位置用于存储所述数据库服务器的响应结果;
从所述数据包中提取处于所述第一字节位置的第一目标字节;
根据所述第一目标字节的数值,确定所述数据库服务器的响应结果。
4.根据权利要求1所述的方法,其特征在于,基于所述响应结果,确定SQL注入导致的对所述数据库服务器进行访问的危险访问接口,包括:
在所述响应结果为响应错误的情况下,根据所述预设数据库协议的数据格式,确定第二字节位置,其中,所述第二字节位置用于存储所述响应错误的错误类型,其中,所述错误类型包括正常错误和异常错误;
从所述数据包中提取处于所述第二字节位置的第二目标字节;
根据所述第二目标字节的数值,确定所述响应错误的错误类型;
在所述错误类型为异常错误的情况下,确定所述危险访问接口。
5.根据权利要求4所述的方法,其特征在于,在所述错误类型为异常错误的情况下,确定所述危险访问接口,包括:
调用预设代码审计程序,其中,所述预设代码审计程序为在所述客户端运行时自动进行代码审计的程序;
通过所述预设代码审计程序,追溯所述SQL注入的SQL语句,以根据所述SQL语句确定所述危险访问接口。
6.根据权利要求4所述的方法,其特征在于,在根据所述第二目标字节的数值,确定所述响应错误的错误类型为正常错误的情况下,所述方法还包括:
将所述第二字节位置的字节数值更新为第三数值,其中,所述第三数值用于表示所述响应结果为响应正确。
7.根据权利要求4所述的方法,其特征在于,在根据所述第二目标字节的数值,确定所述响应错误的错误类型为正常错误的情况下,所述方法还包括:
更新所述第二字节位置的字节数值的表示意义,以使所述客户端对所述第二字节位置的字节数值表示的响应结果识别为响应正确。
8.一种基于数据库协议的SQL注入审计或防护装置,其特征在于,应用于客户端,包括:
获取模块,用于获取数据库服务器根据预设数据库协议发送的数据包,其中,所述数据包为响应所述客户端请求信息的数据包;
分析模块,用于根据所述预设数据库协议的数据格式对所述数据包进行分析,以确定所述数据库服务器对所述请求信息的响应结果;
确定模块,用于基于所述响应结果,确定SQL注入导致的对所述数据库服务器进行访问的危险访问接口,以便对访问所述危险访问接口的访问请求进行阻止。
9.根据权利要求8所述的装置,其特征在于,所述获取模块用于:
从所述客户端的驱动层获取数据库服务器根据所述预设数据库协议发送的数据包;或者,
通过预设插件获取数据库服务器根据所述预设数据库协议发送的数据包,其中,所述预设插件为预先安装在所述客户端,且被设置于获取所述数据库服务器传送的数据包的插件。
10.根据权利要求8所述的装置,其特征在于,所述分析模块用于:
根据所述预设数据库协议的数据格式,确定第一字节位置,其中,所述第一字节位置用于存储所述数据库服务器的响应结果;
从所述数据包中提取处于所述第一字节位置的第一目标字节;
根据所述第一目标字节的数值,确定所述数据库服务器的响应结果。
CN201710732238.7A 2017-08-23 2017-08-23 基于数据库协议的sql注入审计或防护方法及装置 Active CN107463842B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710732238.7A CN107463842B (zh) 2017-08-23 2017-08-23 基于数据库协议的sql注入审计或防护方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710732238.7A CN107463842B (zh) 2017-08-23 2017-08-23 基于数据库协议的sql注入审计或防护方法及装置

Publications (2)

Publication Number Publication Date
CN107463842A true CN107463842A (zh) 2017-12-12
CN107463842B CN107463842B (zh) 2020-04-07

Family

ID=60550427

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710732238.7A Active CN107463842B (zh) 2017-08-23 2017-08-23 基于数据库协议的sql注入审计或防护方法及装置

Country Status (1)

Country Link
CN (1) CN107463842B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117235107A (zh) * 2023-11-10 2023-12-15 恒生电子股份有限公司 数据访问处理方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101853289A (zh) * 2010-05-26 2010-10-06 杭州华三通信技术有限公司 一种数据库审计方法和设备
CN103488797A (zh) * 2013-10-14 2014-01-01 德讯科技股份有限公司 一种基于mysql数据库的sql信息采集审计系统
CN105183866A (zh) * 2015-09-15 2015-12-23 上海上讯信息技术股份有限公司 用于在数据库审计中解析协议参数的方法和设备
CN106357696A (zh) * 2016-11-14 2017-01-25 北京神州绿盟信息安全科技股份有限公司 一种sql注入攻击检测方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101853289A (zh) * 2010-05-26 2010-10-06 杭州华三通信技术有限公司 一种数据库审计方法和设备
CN103488797A (zh) * 2013-10-14 2014-01-01 德讯科技股份有限公司 一种基于mysql数据库的sql信息采集审计系统
CN105183866A (zh) * 2015-09-15 2015-12-23 上海上讯信息技术股份有限公司 用于在数据库审计中解析协议参数的方法和设备
CN106357696A (zh) * 2016-11-14 2017-01-25 北京神州绿盟信息安全科技股份有限公司 一种sql注入攻击检测方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117235107A (zh) * 2023-11-10 2023-12-15 恒生电子股份有限公司 数据访问处理方法、装置、电子设备及存储介质
CN117235107B (zh) * 2023-11-10 2024-01-26 恒生电子股份有限公司 数据访问处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN107463842B (zh) 2020-04-07

Similar Documents

Publication Publication Date Title
CN107196895B (zh) 网络攻击溯源实现方法及装置
CN112787992B (zh) 一种敏感数据的检测与防护的方法、装置、设备和介质
CN103634786B (zh) 一种无线网络的安全检测和修复的方法与系统
CN101588247B (zh) 用于检测服务器的漏洞的系统和方法
CN110472414A (zh) 系统漏洞的检测方法、装置、终端设备及介质
CN108664793B (zh) 一种检测漏洞的方法和装置
CN103368957B (zh) 对网页访问行为进行处理的方法及系统、客户端、服务器
CN103701795A (zh) 拒绝服务攻击的攻击源的识别方法和装置
CN104519018A (zh) 一种防止针对服务器的恶意请求的方法、装置和系统
CN104509034A (zh) 模式合并以识别恶意行为
CN104125197A (zh) 一种安全基线系统及其实现安全检查的方法
CN103577750A (zh) 隐私权限管理方法和装置
CN103701794A (zh) 拒绝服务攻击的识别方法和装置
US20210160273A1 (en) Method for calculating risk for industrial control system and apparatus using the same
CN108259202A (zh) 一种ca监测预警方法和ca监测预警系统
TW202046206A (zh) 異常帳戶的檢測方法及裝置
WO2016138400A1 (en) System and methods for computer network security involving user confirmation of network connections
CN102045319A (zh) Sql注入攻击检测方法及其装置
CN103685293A (zh) 拒绝服务攻击的防护方法和装置
CN108959923B (zh) 综合安全感知方法、装置、计算机设备和存储介质
CN108282446A (zh) 识别扫描器的方法及设备
CN116232875B (zh) 一种远程办公方法、装置、设备和介质
CN107463842A (zh) 基于数据库协议的sql注入审计或防护方法及装置
CN104104666B (zh) 一种探测云端服务异常的方法和装置
CN104618176A (zh) 网站安全检测方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 310000 No. 188 Lianhui Street, Xixing Street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Hangzhou Annan information technology Limited by Share Ltd

Address before: Zhejiang Zhongcai Building No. 68 Binjiang District road Hangzhou City, Zhejiang Province, the 310051 and 15 layer

Applicant before: Dbappsecurity Co.,ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant