CN111935194B - 一种数据拦截方法及装置 - Google Patents

一种数据拦截方法及装置 Download PDF

Info

Publication number
CN111935194B
CN111935194B CN202011087493.9A CN202011087493A CN111935194B CN 111935194 B CN111935194 B CN 111935194B CN 202011087493 A CN202011087493 A CN 202011087493A CN 111935194 B CN111935194 B CN 111935194B
Authority
CN
China
Prior art keywords
database
sql
client
byte
database firewall
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.)
Active
Application number
CN202011087493.9A
Other languages
English (en)
Other versions
CN111935194A (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.)
Nanjing Ecloud Technology Co ltd
Original Assignee
Nanjing Ecloud Technology 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 Nanjing Ecloud Technology Co ltd filed Critical Nanjing Ecloud Technology Co ltd
Priority to CN202011087493.9A priority Critical patent/CN111935194B/zh
Publication of CN111935194A publication Critical patent/CN111935194A/zh
Application granted granted Critical
Publication of CN111935194B publication Critical patent/CN111935194B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • 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/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • 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/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提出了一种数据拦截方法及装置,涉及数据库防火墙技术领域。方法包括:客户端向数据库防火墙发送虚拟口令,以根据虚拟口令通过数据库防火墙与内部数据库建立连接,通过虚拟口令对客户端进行初步的拦截;客户端获取初始SQL语句,并对其进行本地封包处理以生成包括原始字节以及追加字节的SQL报文;数据库防火墙对SQL报文中的原始字节以及追加字节分别进行检验;若原始字节以及追加字节均无攻击风险,则数据库防火墙将SQL报文发送至内部数据库,以保证数据库防火墙将安全的SQL报文发送至内部数据库。数据库防火墙仅需对客户端得到的风险分析结果进行检验,从而保证数据访问的安全性,同时提高数据库防火墙的拦截性能和效率。

Description

一种数据拦截方法及装置
技术领域
本发明涉及数据库防火墙技术领域,具体而言,涉及一种数据拦截方法及装置。
背景技术
随着大量企业接入互联网,经常出现一些大型的企业内部数据库的用户数据大量外泄等等诸如此类的严重的数据被窃取的事件发生,仅依靠数据账号和密码的管理早已难以适应数据库的安全防护,一旦账号被窃取,外部黑客窃取数据库中数据如入无人之境。目前为了防范这种如探囊取物般的数据窃取行为,人们设计出了数据库防火墙。但面对数据量如此庞大的时代,数据库防火墙的性能显然不足以满足人们的需求,且目前仅通过数据库防火墙的简单拦截也无法保证数据访问的安全。
发明内容
本发明的目的在于提供一种数据拦截方法及装置,用以改善现有技术中数据库防火墙性能不足且安全性不高的问题。
第一方面,本申请实施例提供一种数据拦截方法,方法包括:客户端向数据库防火墙发送虚拟口令,以根据虚拟口令通过数据库防火墙与内部数据库建立连接;客户端获取初始SQL语句,并对初始SQL语句进行本地封包处理以生成SQL报文;其中,SQL报文包括原始字节以及追加字节;客户端将SQL报文发送至数据库防火墙;数据库防火墙对SQL报文中的原始字节以及追加字节分别进行检验;若原始字节以及追加字节均无攻击风险,则数据库防火墙将SQL报文发送至内部数据库。
上述实现过程中,数据库防火墙通过客户端发送的虚拟口令对客户端进行初步的拦截,当虚拟口令正确时才成功使客户端通过数据库防火墙与内部数据库之间建立连接。后建立连接后的数据访问过程中,客户端先对初始SQL语句进行封包处理以得到SQL报文,数据库防火墙再判断SQL报文中的原始字节以及追加字节是否均无攻击风险,以保证数据库防火墙将安全的SQL报文发送至内部数据库。数据库防火墙通过虚拟口令以及SQL报文检验精准的保证内部数据库的访问安全,在该过程中,数据库防火墙仅需对SQL报文进行检验处理,而客户端则承担了初始SQL语句风险分析以及封包处理的工作,在实现对风险访问数据的拦截的同时,还减小了数据库防火墙的压力,提高了数据拦截的性能和效率。
在本发明的一些实施例中,客户端向数据库防火墙发送虚拟口令,以根据虚拟口令通过数据库防火墙与内部数据库建立连接的步骤,包括:管理端根据客户端的设备标识生成特征码,并生成与客户端匹配的虚拟口令;客户端向数据库防火墙发送虚拟口令;数据库防火墙判断用户账户口令列表与客户端对应的预存口令与虚拟口令是否一致;若一致,则数据库防火墙与内部数据库之间建立连接,以使客户端通过数据库防火墙与内部数据库建立连接。
上述实现过程中,数据库防火墙通过客户端发送的虚拟口令对客户端进行初步的拦截,若数据库防火墙接受到的虚拟口令在用户账户口令列表中不存在,或该虚拟口令对应的客户端其与用户账户口令列表中的预存口令所对应的客户端不一致,则可以拒绝该客户端发送的与内部数据库建立数据访问连接的请求,从而初步保证内部数据库的数据安全。
在本发明的一些实施例中,客户端获取初始SQL语句,并对初始SQL语句进行本地封包处理以生成SQL报文的步骤,包括:客户端的数据库协议处理模块对初始SQL语句处理得到原始字节;数据库协议处理模块根据SQL注入特征库中的鉴别函数生成追加字节;将追加字节追加在原始字节后,以生成SQL报文。
上述实现过程中,客户端在获取到初始SQL语句后,对初始SQL语句进行改造并生成SQL报文,减少数据库防火墙的SQL分析压力,实现提高数据拦截的性能。同时,还通过对初始SQL语句的处理以提高数据访问的安全性。
在本发明的一些实施例中,数据库防火墙对SQL报文中的原始字节以及追加字节分别进行检验的步骤包括:数据库防火墙从SQL报文中解析出原始字节以及追加字节;数据库防火墙判断追加字节是否为注入攻击,若是,则将客户端加入拦截黑名单;若追加字节不是注入攻击,则数据库防火墙判断原始字节是否存在于白名单列表中;若原始字节不存在于白名单列表中,则数据库防火墙将客户端加入拦截黑名单,并断开其与客户端之间的连接。
上述实现过程中,原始字节是根据客户端的初始SQL语句获取,原始字节的检验可以通过在白名单列表中查找的方式,确认其安全性。而追加字节为数据库协议处理模块根据SQL注入特征库中的鉴别函数生成,其能够表示注入攻击分析结果,因此在对追加字节进行检验时,可以直接判断出该SQL报文是否为非法的攻击性报文。根据对原始字节以及追加字节的双重检验,可以准确的判断出SQL报文的安全性,从而保证了内部数据库的安全。
在本发明的一些实施例中,数据库防火墙判断原始字节是否存在于白名单列表中的步骤之前,还包括:数据库防火墙获取所有的SQL语句;根据每个SQL语句生成对应的原始字节,并将每个SQL语句以及其对应的原始字节写入白名单列表中。
在本发明的一些实施例中,若原始字节以及追加字节均无攻击风险,则在数据库防火墙将SQL报文发送至内部数据库的步骤之前,还包括:从SQL报文中的SQL语句提取特征词;判断特征词是否存在于访问权限白名单中,若存在,则执行数据库防火墙将SQL报文发送至内部数据库的步骤;若特征词不存在于访问权限白名单中,则判断特征词是否属于越权操作,若特征词不属于越权操作,则将其写入访问权限白名单中,执行数据库防火墙将SQL报文发送至内部数据库的步骤。
第二方面,本申请实施例提供一种数据拦截装置,装置包括:连接建立模块,用于控制客户端向数据库防火墙发送虚拟口令,以根据虚拟口令通过数据库防火墙与内部数据库建立连接;SQL报文生成模块,用于控制客户端获取初始SQL语句,并对初始SQL语句进行本地封包处理以生成SQL报文;其中,SQL报文包括原始字节以及追加字节;SQL报文发送模块,用于控制客户端将SQL报文发送至数据库防火墙;检验模块,用于控制数据库防火墙对SQL报文中的原始字节以及追加字节分别进行检验;访问模块,用于若原始字节以及追加字节均无攻击风险,则数据库防火墙将SQL报文发送至内部数据库。
在本发明的一些实施例中,连接建立模块包括:口令生成单元,用于控制管理端根据客户端的设备标识生成特征码,并生成与客户端匹配的虚拟口令;口令发送单元,用于控制客户端向数据库防火墙发送虚拟口令;口令验证单元,用于控制数据库防火墙判断用户账户口令列表与客户端对应的预存口令与虚拟口令是否一致;连接建立单元,用于若一致,则数据库防火墙与内部数据库之间建立连接,以使客户端通过数据库防火墙与内部数据库建立连接。
在本发明的一些实施例中,SQL报文生成模块包括:原始字节获取单元,用于控制客户端的数据库协议处理模块对初始SQL语句处理得到原始字节;追加字节获取单元,用于控制数据库协议处理模块根据SQL注入特征库中的鉴别函数生成追加字节;SQL报文生成单元,用于控制将追加字节追加在原始字节后,以生成SQL报文。
在本发明的一些实施例中,检验模块包括:解析单元,用于控制数据库防火墙从SQL报文中解析出原始字节以及追加字节;追加字节判断单元,用于控制数据库防火墙判断追加字节是否为注入攻击,若是,则将客户端加入拦截黑名单;白名单判断单元,用于若追加字节不是注入攻击,则数据库防火墙判断原始字节是否存在于白名单列表中;拦截单元,用于控制若原始字节不存在于白名单列表中,则数据库防火墙将客户端加入拦截黑名单,并断开其与客户端之间的连接。
在本发明的一些实施例中,检验模块还包括:SQL语句获取单元,用于控制数据库防火墙获取所有的SQL语句;白名单列表更新单元,用于根据每个SQL语句生成对应的原始字节,并将每个SQL语句以及其对应的原始字节写入白名单列表中。
在本发明的一些实施例中,若原始字节以及追加字节均无攻击风险,则该装置还包括:特征词提取模块,用于从SQL报文中的SQL语句提取特征词;第一判断模块,用于判断特征词是否存在于访问权限白名单中,若存在,则执行数据库防火墙将SQL报文发送至内部数据库的步骤;第二判断模块,用于若特征词不存在于访问权限白名单中,则判断特征词是否属于越权操作,若特征词不属于越权操作,则将其写入访问权限白名单中,执行数据库防火墙将SQL报文发送至内部数据库的步骤。
第三方面,本申请实施例提供一种电子设备,其包括存储器,用于存储一个或多个程序;处理器。当一个或多个程序被处理器执行时,实现如上述第一方面中任一项的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面中任一项的方法。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的一种数据拦截方法的流程图;
图2为本发明实施例提供的一种数据拦截装置的结构框图;
图3为本发明实施例提供的一种电子设备的结构框图。
图标:100-数据拦截装置;110-连接建立模块;120-SQL报文生成模块;130- SQL报文发送模块;140-检验模块;150-访问模块;101-存储器;102-处理器;103-通信接口。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的各个实施例及实施例中的各个特征可以相互组合。
在介绍本申请提供的数据拦截方法之前,先简单介绍该方法所涉及的客户端、数据库防火墙、内部数据库等。客户端一般也被称为用户端,为客户提供本地服务,如智能手机、平板电脑、台式电脑等终端设备。数据库防火墙一般串联部署在内部数据库之前,数据库防火墙可以解决数据库应用侧和运维侧两方面的安全问题,是一款基于数据库协议分析与控制技术的数据库安全防护系统。
请参看图1,图1为本发明实施例提供的一种数据拦截方法的流程图,该数据拦截方法包括以下步骤:
步骤S110:客户端向数据库防火墙发送虚拟口令,以根据虚拟口令通过数据库防火墙与内部数据库建立连接。
在本发明的一些实施例中,客户端在向数据库防火墙发送虚拟口令之前,可以先使管理端根据客户端的设备标识生成特征码,然后生成与客户端匹配的虚拟口令。然后客户端获取到管理端生成的虚拟口令,并向数据库防火墙发送该虚拟口令。接着,数据库防火墙判断用户账户口令列表与客户端对应的预存口令与虚拟口令是否一致,若一致,则表明该虚拟口令正确,数据库防火墙与内部数据库之间建立连接,以使客户端通过数据库防火墙与内部数据库建立连接。
其中,管理端根据客户端的设备标识生成特征码时,可以根据客户端的终端设备以及协议版本生成,虚拟口令则可以根据该特征码生成。当客户端的协议版本出现变动后,会出现生成的虚拟口令与用户账户口令列表中的预存口令不一致的情况,则该客户端无法通过数据库防火墙与内部数据库建立连接,从而保证了内部数据库的访问安全。数据库防火墙通过客户端发送的虚拟口令对客户端进行初步的拦截,若数据库防火墙接受到的虚拟口令在用户账户口令列表中不存在,或该虚拟口令对应的客户端其与用户账户口令列表中的预存口令所对应的客户端不一致,则可以拒绝该客户端发送的与内部数据库建立数据访问连接的请求,从而初步保证内部数据库的数据安全。通过虚拟口令登录账户的管理方式,每个客户端都有唯一的设备标识,而根据设备表示生成的特征码也是唯一的,因此,即使用户自己设定的账号密码等信息被窃取后,也无法通过其他终端连接到内部数据库,从而实现一个用户一个口令的强安全管理,保证了内部数据库的安全。
步骤S120:客户端获取初始SQL语句,并对初始SQL语句进行本地封包处理以生成SQL报文;其中,SQL报文包括原始字节以及追加字节。
客户端在对初始SQL语句进行本地封包处理时,主要要对初始SQL语句进行风险分析,若发现有注入攻击风险,则生成可以表示注入攻击风险的追加字节,若无注入攻击风险,则生成可以表示无注入攻击风险的追加字节。便于数据库防火墙根据SQL报文中的追加字节对注入攻击风险进行检验。
在客户端获取初始SQL语句,并对初始SQL语句进行本地封包处理以生成SQL报文时,客户端的数据库协议处理模块可以先对初始SQL语句处理得到原始字节,然后数据库协议处理模块根据SQL注入特征库中的鉴别函数生成追加字节。最后将追加字节追加在原始字节后,以生成SQL报文。客户端在获取到初始SQL语句后,对初始SQL语句进行改造并生成SQL报文,减少数据库防火墙的SQL分析压力,实现提高数据拦截的性能。同时,还通过对初始SQL语句的处理以提高数据访问的安全性。
步骤S130:客户端将SQL报文发送至数据库防火墙。
步骤S140:数据库防火墙对SQL报文中的原始字节以及追加字节分别进行检验。
在本发明的一些实施例中,数据库防火墙对SQL报文中的原始字节以及追加字节分别进行检验时,数据库防火墙先从SQL报文中解析出原始字节以及追加字节;然后数据库防火墙判断追加字节是否为注入攻击,若是,则将客户端加入拦截黑名单;若追加字节不是注入攻击,则数据库防火墙判断原始字节是否存在于白名单列表中,若原始字节不存在于白名单列表中,则数据库防火墙将客户端加入拦截黑名单,并断开其与客户端之间的连接。
上述实现过程中,原始字节是根据客户端的初始SQL语句获取,原始字节的检验可以通过在白名单列表中查找的方式,确认其安全性。而追加字节为数据库协议处理模块根据SQL注入特征库中的鉴别函数生成,其能够表示注入攻击分析结果,因此在对追加字节进行检验时,可以直接判断出该SQL报文是否为非法的攻击性报文。根据对原始字节以及追加字节的双重检验,可以准确的判断出SQL报文的安全性,从而保证了内部数据库的安全。
若原始字节以及追加字节均无攻击风险,则执行步骤S150:数据库防火墙将SQL报文发送至内部数据库。
上述实现过程中,数据库防火墙通过客户端发送的虚拟口令对客户端进行初步的拦截,当虚拟口令正确时才成功使客户端通过数据库防火墙与内部数据库之间建立连接。后建立连接后的数据访问过程中,客户端先对初始SQL语句进行封包处理以得到SQL报文,数据库防火墙再判断SQL报文中的原始字节以及追加字节是否均无攻击风险,以保证数据库防火墙将安全的SQL报文发送至内部数据库。数据库防火墙通过虚拟口令以及SQL报文检验精准的保证内部数据库的访问安全,在该过程中,数据库防火墙仅需对SQL报文进行检验处理,而客户端则承担了初始SQL语句风险分析以及封包处理的工作,在实现对风险访问数据的拦截的同时,还减小了数据库防火墙的压力,提高了数据拦截的性能和效率。
例如,客户端发起SQL操作后,客户端可以获取到初始SQL语句,客户端的数据库协议处理模块会对当前获取到的初始SQL语句生成8字节的原始字节key,同时调用SQL注入特征库的鉴别函数生成一个2字节的追加字节。可以将该2字节的追加字节追加在8字节的原始字节key之后,构造成一个新的SQL报文,并将其发送到数据库防火墙。
数据库防火墙收到SQL报文后,从SQL报文中解析出8字节的原始字节以及2字节的追加字节。然后,先处理表示注入攻击风险的2字节追加字节,如果发现有注入攻击风险,则保存当前SQL报文和客户端的信息,并将该客户端设置为黑户并加入拦截黑名单中,同时阻断该客户端发起的任何数据库操作。若该2字节追加字节没有注入攻击风险,为非注入攻击,则可以继续查找白名单列表,并判断8个字节的原始字节是否存在于白名单列表之中,如果存在,则说明其为安全的数据访问行为,则可以放行其进入内部数据库进行访问。若8个字节的原始字节不存在于白名单列表之中,则直接将其拦截下,并保存当前SQL报文和客户端的信息。此外,管理平台可以查看被拦截的SQL报文以及客户端的信息。
其中,数据库防火墙在判断原始字节是否存在于白名单列表中的步骤之前,可以通过不同的方式获取该白名单列表,例如,可以通过人为添加的方式,也可以通过训练的方式获取白名单列表。如,以训练的方式获取白名单列表,数据库防火墙先获取所有的SQL语句,然后根据每个SQL语句生成对应的原始字节,并将每个SQL语句以及其对应的原始字节写入白名单列表中。
具体地,数据库防火墙对访问的SQL语句中提取SQL词根,并生成唯一的原始字节key,然后将原始字节key以及其对应的客户端存入白名单hash表中,当对所有的SQL语句分析完毕后,数据库防火墙完成训练过程,并得到白名单列表。数据库防火墙在开启过滤模式后,可以直接根据白名单列表将不符合白名单列表的原始字节拦截下。
在数据库防火墙对SQL报文中的原始字节以及追加字节分别进行检验,且检验原始字节以及追加字节均无攻击风险后,还可以对SQL报文中SQL语句的访问权限进行判定,例如,SQL语句的访问权限,诸如访问一些系统表、非普通登录用户可操作的表等等越权操作等。通过对越权访问的操作均需要拦截,以防止灾难性操作,从而保证系统的安全,同时,还大大的提高了防火墙的处理效率。
在本发明的一些实施例中,若原始字节以及追加字节均无攻击风险,则在数据库防火墙将SQL报文发送至内部数据库的步骤之前,可以先从SQL报文中的SQL语句提取特征词,并判断特征词是否存在于访问权限白名单中,若存在,则执行数据库防火墙将SQL报文发送至内部数据库的步骤;若特征词不存在于访问权限白名单中,则判断特征词是否属于越权操作,若特征词不属于越权操作,则将其写入访问权限白名单中,执行数据库防火墙将SQL报文发送至内部数据库的步骤。其中,若特征词存在于访问权限白名单中,则说明其无越权行文的风险,则可以直接将该SQL报文发送至内部数据库中。而若该特征词没有存在于访问权限白名单中,则该特征词可能为第一次发起访问行为产生的,因此,可以先判断该特征词是否属于越权操作,若不属于,则可以将其加入访问权限白名单中,在下次进行访问时,在判断出其存在于访问权限白名单中后可以直接对其进行放行,以便于提高防火墙处理性能和效率。
基于同样的思路,可以理解地,若判断出该特征词属于越权操作,还可以将其加入访问权限黑名单中,在下次访问过程中,可以直接判断其是否存在于访问权限黑名单中,若存在,则可直接将其拦截下,以实现高效且安全的操作。
基于同样的发明构思,本发明还提出一种数据拦截装置100,请参看图2,图2为本发明实施例提供的一种数据拦截装置的结构框图。该数据拦截装置100包括:
连接建立模块110,用于控制客户端向数据库防火墙发送虚拟口令,以根据虚拟口令通过数据库防火墙与内部数据库建立连接;
SQL报文生成模块120,用于控制客户端获取初始SQL语句,并对初始SQL语句进行本地封包处理以生成SQL报文;其中,SQL报文包括原始字节以及追加字节;
SQL报文发送模块130,用于控制客户端将SQL报文发送至数据库防火墙;
检验模块140,用于控制数据库防火墙对SQL报文中的原始字节以及追加字节分别进行检验;
访问模块150,用于若原始字节以及追加字节均无攻击风险,则数据库防火墙将SQL报文发送至内部数据库。
在本发明的一些实施例中,连接建立模块110包括:
口令生成单元,用于控制管理端根据客户端的设备标识生成特征码,并生成与客户端匹配的虚拟口令;
口令发送单元,用于控制客户端向数据库防火墙发送虚拟口令;
口令验证单元,用于控制数据库防火墙判断用户账户口令列表与客户端对应的预存口令与虚拟口令是否一致;
连接建立单元,用于若一致,则数据库防火墙与内部数据库之间建立连接,以使客户端通过数据库防火墙与内部数据库建立连接。
在本发明的一些实施例中,SQL报文生成模块120包括:
原始字节获取单元,用于控制客户端的数据库协议处理模块对初始SQL语句处理得到原始字节;
追加字节获取单元,用于控制数据库协议处理模块根据SQL注入特征库中的鉴别函数生成追加字节;
SQL报文生成单元,用于控制将追加字节追加在原始字节后,以生成SQL报文。
在本发明的一些实施例中,检验模块140包括:
解析单元,用于控制数据库防火墙从SQL报文中解析出原始字节以及追加字节;
追加字节判断单元,用于控制数据库防火墙判断追加字节是否为注入攻击,若是,则将客户端加入拦截黑名单;
白名单判断单元,用于若追加字节不是注入攻击,则数据库防火墙判断原始字节是否存在于白名单列表中;
拦截单元,用于控制若原始字节不存在于白名单列表中,则数据库防火墙将客户端加入拦截黑名单,并断开其与客户端之间的连接。
在本发明的一些实施例中,检验模块140还包括:
SQL语句获取单元,用于控制数据库防火墙获取所有的SQL语句;
白名单列表更新单元,用于根据每个SQL语句生成对应的原始字节,并将每个SQL语句以及其对应的原始字节写入白名单列表中。
在本发明的一些实施例中,若原始字节以及追加字节均无攻击风险,则该装置还包括:
特征词提取模块,用于从SQL报文中的SQL语句提取特征词;
第一判断模块,用于判断特征词是否存在于访问权限白名单中,若存在,则执行数据库防火墙将SQL报文发送至内部数据库的步骤;
第二判断模块,用于若特征词不存在于访问权限白名单中,则判断特征词是否属于越权操作,若特征词不属于越权操作,则将其写入访问权限白名单中,执行数据库防火墙将SQL报文发送至内部数据库的步骤。
请参阅图3,图3为本申请实施例提供的电子设备的一种示意性结构框图。电子设备包括存储器101、处理器102和通信接口103,该存储器101、处理器102和通信接口103相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器101可用于存储软件程序及模块,如本申请实施例所提供的数据拦截装置100对应的程序指令/模块,处理器102通过执行存储在存储器101内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口103可用于与其他节点设备进行信令或数据的通信。
其中,存储器101可以是但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
处理器102可以是一种集成电路芯片,具有信号处理能力。该处理器102可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可以理解,图3所示的结构仅为示意,电子设备还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。图3中所示的各组件可以采用硬件、软件或其组合实现。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
综上,本申请实施例提供的一种数据拦截方法及装置,方法包括:客户端向数据库防火墙发送虚拟口令,以根据虚拟口令通过数据库防火墙与内部数据库建立连接;客户端获取初始SQL语句,并对初始SQL语句进行本地封包处理以生成SQL报文;其中,SQL报文包括原始字节以及追加字节;客户端将SQL报文发送至数据库防火墙;数据库防火墙对SQL报文中的原始字节以及追加字节分别进行检验;若原始字节以及追加字节均无攻击风险,则数据库防火墙将SQL报文发送至内部数据库。数据库防火墙通过客户端发送的虚拟口令对客户端进行初步的拦截,当虚拟口令正确时才成功使客户端通过数据库防火墙与内部数据库之间建立连接。后建立连接后的数据访问过程中,客户端先对初始SQL语句进行封包处理以得到SQL报文,数据库防火墙再判断SQL报文中的原始字节以及追加字节是否均无攻击风险,以保证数据库防火墙将安全的SQL报文发送至内部数据库。数据库防火墙通过虚拟口令以及SQL报文检验精准的保证内部数据库的访问安全,在该过程中,数据库防火墙仅需对SQL报文进行检验处理,而客户端则承担了初始SQL语句风险分析以及封包处理的工作,在实现对风险访问数据的拦截的同时,还减小了数据库防火墙的压力,提高了数据拦截的性能和效率。
以上仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

Claims (8)

1.一种数据拦截方法,其特征在于,所述方法包括:
客户端向数据库防火墙发送虚拟口令,以根据所述虚拟口令通过所述数据库防火墙与内部数据库建立连接;
所述客户端获取初始SQL语句,并对所述初始SQL语句进行本地封包处理以生成SQL报文;其中,所述SQL报文包括原始字节以及追加字节;
所述客户端将所述SQL报文发送至所述数据库防火墙;
所述数据库防火墙对所述SQL报文中的所述原始字节以及所述追加字节分别进行检验;
若所述原始字节以及所述追加字节均无攻击风险,则所述数据库防火墙将所述SQL报文发送至所述内部数据库;
其中,对所述初始SQL语句进行本地封包处理以生成SQL报文的步骤包括:
对所述初始SQL语句进行风险分析;
若发现所述初始SQL语句有注入攻击风险,则生成表示注入攻击风险的追加字节;
若所述初始SQL语句无注入攻击风险,则生成表示无注入攻击风险的追加字节;
其中,客户端向数据库防火墙发送虚拟口令,以根据所述虚拟口令通过所述数据库防火墙与内部数据库建立连接的步骤,包括:
管理端根据客户端的设备标识生成特征码,并生成与所述客户端匹配的虚拟口令;
所述客户端向所述数据库防火墙发送所述虚拟口令;
所述数据库防火墙判断用户账户口令列表与所述客户端对应的预存口令与所述虚拟口令是否一致;
若一致,则所述数据库防火墙与所述内部数据库之间建立连接,以使所述客户端通过所述数据库防火墙与所述内部数据库建立连接。
2.根据权利要求1所述的方法,其特征在于,所述客户端获取初始SQL语句,并对所述初始SQL语句进行本地封包处理以生成SQL报文的步骤,包括:
所述客户端的数据库协议处理模块对所述初始SQL语句处理得到原始字节;
所述数据库协议处理模块根据SQL注入特征库中的鉴别函数生成追加字节;
将所述追加字节追加在所述原始字节后,以生成SQL报文。
3.根据权利要求1所述的方法,其特征在于,所述数据库防火墙对所述SQL报文中的所述原始字节以及所述追加字节分别进行检验的步骤包括:
所述数据库防火墙从所述SQL报文中解析出所述原始字节以及所述追加字节;
所述数据库防火墙判断所述追加字节是否为注入攻击,若是,则将所述客户端加入拦截黑名单;
若所述追加字节不是注入攻击,则所述数据库防火墙判断所述原始字节是否存在于白名单列表中;
若所述原始字节不存在于所述白名单列表中,则所述数据库防火墙将所述客户端加入所述拦截黑名单,并断开其与所述客户端之间的连接。
4.根据权利要求3所述的方法,其特征在于,所述数据库防火墙判断所述原始字节是否存在于白名单列表中的步骤之前,还包括:
所述数据库防火墙获取所有的SQL语句;
根据每个SQL语句生成对应的原始字节,并将每个SQL语句以及其对应的原始字节写入白名单列表中。
5.根据权利要求1所述的方法,其特征在于,若所述原始字节以及所述追加字节均无攻击风险,则在所述数据库防火墙将所述SQL报文发送至所述内部数据库的步骤之前,还包括:
从所述SQL报文中的SQL语句提取特征词;
判断所述特征词是否存在于访问权限白名单中,若存在,则执行所述数据库防火墙将所述SQL报文发送至所述内部数据库的步骤;
若所述特征词不存在于所述访问权限白名单中,则判断所述特征词是否属于越权操作,若所述特征词不属于越权操作,则将其写入所述访问权限白名单中,执行所述数据库防火墙将所述SQL报文发送至所述内部数据库的步骤。
6.一种数据拦截装置,其特征在于,所述装置包括:
连接建立模块,用于控制客户端向数据库防火墙发送虚拟口令,以根据所述虚拟口令通过所述数据库防火墙与内部数据库建立连接;
SQL报文生成模块,用于控制所述客户端获取初始SQL语句,并对所述初始SQL语句进行本地封包处理以生成SQL报文;其中,所述SQL报文包括原始字节以及追加字节;
SQL报文发送模块,用于控制所述客户端将所述SQL报文发送至所述数据库防火墙;
检验模块,用于控制所述数据库防火墙对所述SQL报文中的所述原始字节以及所述追加字节分别进行检验;
访问模块,用于若所述原始字节以及所述追加字节均无攻击风险,则所述数据库防火墙将所述SQL报文发送至所述内部数据库;
其中,所述SQL报文生成模块还用于对所述初始SQL语句进行风险分析;还用于若发现所述初始SQL语句有注入攻击风险,则生成表示注入攻击风险的追加字节;还用于若所述初始SQL语句无注入攻击风险,则生成表示无注入攻击风险的追加字节;
其中,所述连接建立模块包括:
口令生成单元,用于控制管理端根据客户端的设备标识生成特征码,并生成与所述客户端匹配的虚拟口令;
口令发送单元,用于控制所述客户端向所述数据库防火墙发送所述虚拟口令;
口令验证单元,用于控制所述数据库防火墙判断用户账户口令列表与所述客户端对应的预存口令与所述虚拟口令是否一致;
连接建立单元,用于若一致,则所述数据库防火墙与所述内部数据库之间建立连接,以使所述客户端通过所述数据库防火墙与所述内部数据库建立连接。
7.一种电子设备,其特征在于,包括:
存储器,用于存储一个或多个程序;
处理器;
当所述一个或多个程序被所述处理器执行时,实现如权利要求1-5中任一项所述的方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-5中任一项所述的方法。
CN202011087493.9A 2020-10-13 2020-10-13 一种数据拦截方法及装置 Active CN111935194B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011087493.9A CN111935194B (zh) 2020-10-13 2020-10-13 一种数据拦截方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011087493.9A CN111935194B (zh) 2020-10-13 2020-10-13 一种数据拦截方法及装置

Publications (2)

Publication Number Publication Date
CN111935194A CN111935194A (zh) 2020-11-13
CN111935194B true CN111935194B (zh) 2020-12-25

Family

ID=73334383

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011087493.9A Active CN111935194B (zh) 2020-10-13 2020-10-13 一种数据拦截方法及装置

Country Status (1)

Country Link
CN (1) CN111935194B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112668023A (zh) * 2020-12-29 2021-04-16 北京天融信网络安全技术有限公司 一种数据库操作的安全检测方法、装置及操作系统
CN112804261A (zh) * 2021-03-19 2021-05-14 北京安华金和科技有限公司 一种数据转发控制方法、装置、存储介质及电子装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102722667A (zh) * 2012-03-07 2012-10-10 甘肃省电力公司信息通信公司 基于虚拟数据库和虚拟补丁的数据库安全防护系统和方法
CN107222494A (zh) * 2017-06-28 2017-09-29 上海红阵信息科技有限公司 一种sql注入攻击防御组件及方法
US20190104152A1 (en) * 2017-09-29 2019-04-04 Paypal, Inc. Blind injection attack mitigation
CN110149212A (zh) * 2019-05-31 2019-08-20 杭州安恒信息技术股份有限公司 一种数据库安全加固方法、装置及电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102722667A (zh) * 2012-03-07 2012-10-10 甘肃省电力公司信息通信公司 基于虚拟数据库和虚拟补丁的数据库安全防护系统和方法
CN107222494A (zh) * 2017-06-28 2017-09-29 上海红阵信息科技有限公司 一种sql注入攻击防御组件及方法
US20190104152A1 (en) * 2017-09-29 2019-04-04 Paypal, Inc. Blind injection attack mitigation
CN110149212A (zh) * 2019-05-31 2019-08-20 杭州安恒信息技术股份有限公司 一种数据库安全加固方法、装置及电子设备

Also Published As

Publication number Publication date
CN111935194A (zh) 2020-11-13

Similar Documents

Publication Publication Date Title
US10848505B2 (en) Cyberattack behavior detection method and apparatus
CN111433770B (zh) 用于用户认证的方法和装置以及计算机可读介质
US20230412399A1 (en) Database Multi-Authentication Method and System, Terminal, and Storage Medium
CN113315637B (zh) 安全认证方法、装置及存储介质
CN111935194B (zh) 一种数据拦截方法及装置
CN110795174A (zh) 一种应用程序接口调用方法、装置、设备及可读存储介质
CN111382422B (zh) 在非法访问用户数据的威胁下更改账户记录的密码的系统和方法
CN111581616A (zh) 一种多端登录控制的方法及装置
CN117527400A (zh) 一种登录认证方法、装置、电子设备及存储介质
CN113239372A (zh) 数据库访问控制方法及系统
CN116055067B (zh) 一种弱口令检测的方法、装置、电子设备及介质
CN115208669B (zh) 一种基于区块链技术的分布式身份认证方法及系统
US9027096B2 (en) Method and device for enhancing security of user security model
CN115001839A (zh) 基于互联网大数据的信息安全防护系统及方法
US11363020B2 (en) Method, device and storage medium for forwarding messages
CN111935122B (zh) 数据的安全处理方法及装置
CN110807181A (zh) 企业内部数据库登录验证方法、装置及系统
WO2018166365A1 (zh) 一种记录网站访问日志的方法和装置
CN112800463B (zh) 信息处理方法、装置及系统
CN112615815B (zh) 基于令牌的用户权限管理方法
WO2024120113A1 (zh) 云应用访问控制方法、装置及计算机可读存储介质
CN115733674A (zh) 安全加固的方法、装置、电子设备、可读存储介质
CN114826746A (zh) 一种云平台身份认证方法、装置以及介质
CN116756717A (zh) 信息保护方法、装置、设备及介质
CN116975839A (zh) 基于struts2组件的资源共享方法、设备及介质

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
GR01 Patent grant
GR01 Patent grant