CN106657145B - 一种基于通信协议和sql语法的数据库自动发现方法 - Google Patents
一种基于通信协议和sql语法的数据库自动发现方法 Download PDFInfo
- Publication number
- CN106657145B CN106657145B CN201710048509.7A CN201710048509A CN106657145B CN 106657145 B CN106657145 B CN 106657145B CN 201710048509 A CN201710048509 A CN 201710048509A CN 106657145 B CN106657145 B CN 106657145B
- Authority
- CN
- China
- Prior art keywords
- database
- port
- method based
- communication protocol
- information
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2445—Data retrieval commands; View definitions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0245—Filtering by information in the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Abstract
本发明涉及一种基于通信协议和SQL语法的数据库自动发现方法,其技术特点是包括以下步骤:获取网络中的数据包,使用filter过滤掉已确认为数据库的ip,port对;检测数据包使用的协议是否是TCP协议,并检测是否是syn+ack包;检查IP,port对是否已缓存达到设定的阀值;过滤数据包内容并填充发现标志位;通过计算唯一key值快速查找到对应的数据库信息结构体;更新key值对应的数据库信息结构体;如果填充完整,则更新到filter中。本发明根据数据库通讯过程中使用的特征协议对网络中的数据库进行识别,提高了数据库发现的效率;再通过校验对应数据库使用的确切协议,提高了发现的准确率,简化了用户的操作,可广泛应用于数据库审计或数据库防火墙等网络安全产品中。
Description
技术领域
本发明属于数据库安全技术领域,尤其是一种基于通信协议和SQL语法的数据库自动发现方法。
背景技术
目前,数据库应用已深入到各个领域,但随之而来产生了数据的安全问题以及数据库访问的安全问题。各种应用系统的数据库中大量数据的安全问题、敏感数据的防窃取和防篡改问题,越来越引起人们的高度重视。现有的数据库审计或数据库防火墙产品,在使用过程中,通常需要用户进行手动操作,添加数据库信息的步骤,其处理速度慢、准确率低。
发明内容
本发明的目的在于克服现有技术的不足,提供一种设计合理、发现速度快且准确率高的基于通信协议和SQL语法的数据库自动发现方法。
本发明解决现有的技术问题是采取以下技术方案实现的:
一种基于通信协议和SQL语法的数据库自动发现方法,包括以下步骤:
步骤1:获取网络中的数据包,使用filter过滤掉已确认为数据库的ip,port对;
步骤2:检测数据包使用的协议是否是TCP协议,并检测是否是syn+ack包,是则执行步骤3;
步骤3:检查IP,port对是否已缓存达到设定的阀值,是则执行步骤4,否则缓存该ip,port对;
步骤4:过滤数据包内容,根据数据库通信中的关键字信息,填充发现标志位;
步骤5:对于识别出来的数据库,通过计算唯一key值,快速查找到对应的数据库信息结构体;
步骤6:通过识别的信息更新此key值对应的数据库信息结构体;
步骤7:检查是否有新的IP、port对信息填充完整,如果填充完整,则更新到filter中。
在填充完整之后,不再检查此key值对应的数据库信息结构体,并将结构体中的is_full值赋为1,然后更新过滤信息的filter,降低检索的压力。
所述获取网络中的数据包是使用libpcap库实现的。
所述步骤2是通过解析源ip,port对和目标ip,port对实现的。
所述的阀值为10。
所述关键字信息包括INESERT、DELETE、UPDATE、SELECT、Oracle、WIN_NT64、ZHS16GBK和MICROSOFT SQL_SEVER。
所述数据库信息结构体包含:数据库的类型、客户端的IP和port、服务器端的IP和port、客户端和服务器的操作系统类型及位数、数据库的字符集、信息是否获取完全的标志位。
所述步骤5中计算唯一key值是通过客户端的IP和port、服务器端的IP和port计算得到的。
本发明的优点和积极效果是:
1、本发明根据数据库相互通讯过程中使用的特征协议对网络中的数据库进行识别并对网络通信协议和SQL语句进行过滤,提高了数据库发现的效率;再通过校验对应数据库使用的确切协议,提高了发现的准确率。
2、本发明能够将自动识别出的数据库供用户进行选择,或者直接添加到产品的被保护数据库列表中,能够发现网络中存在的数据库,用户在使用数据库审计或数据库防火墙产品的时候,不再需要手动添加相关数据库的信息,简化了用户的操作,可广泛应用于数据库审计或数据库防火墙等网络安全产品中。
附图说明
图1是本发明的处理流程图;
图2是本发明实施例的协议模型的结构示意图;
图3是本发明实施例的IP报头的结构示意图;
图4是过滤数据包内容及填充发现标志位的流程图;
图5是更新key值对应的数据库信息结构体的流程图。
具体实施方式
以下结合附图对本发明实施例做进一步详述:
一种基于通信协议和SQL语法的数据库自动发现方法,如图1所示,包括以下步骤:
步骤1:获取网络中的数据包,并使用filter过滤掉已确认为数据库的ip,port对。
在本步骤中,获取网卡上的数据包可以使用libpcap库来实现,并将已确认的数据库添加到filter中。使用filter过滤数据包的方式可以加快检测的效率。在正常情况下,不再处理相同的数据ip,port对,可以第二次对检测进行加速。
步骤2:检测数据包使用的协议是否是TCP协议,并检测是否是syn+ack包,是则执行步骤3。
本步骤通过解析源ip,port对和目标ip,port对判断数据包使用的协议是否是TCP协议。
以如图2所示的协议模型为例进行说明:数据包的前三段分别为:MAC段、IP段、TCP段,其长度分别是14、20、20字节,分别存放MAC包头、IP包头、TCP包头;其中TCP数据位于第3段,TCP段中保存有数据段的长度。
如图3给出了IP段的结构示意图。判断是否是TCP协议,可以校验IP段的第10字节,如果该字段的值为6,则表示接下来的第三段是TCP协议。使用TCP协议三次握手的第二阶段(syn+ack)可以避免大量只有syn包的情况下造成巨大的处理压力。
步骤3:检查IP,port对是否已缓存达到设定的阀值,是则执行步骤4,否则缓存该ip,port对。
在本实施例中,阀值设置为10,如果未达到阀值,则缓存该ip,port对。缓存该ip,port对的一定量的包之后才进行处理,可以增加检测的数据包的准确性,表示此网络中真实存在此ip,port对,减少判断错误的概率,增加发现的准确率。
步骤4:过滤数据包内容,根据数据库通信中的关键字信息,填充发现标志位。
如图4所示,在数据库的通信包中,某些字段只会出现在对应数据库的通信包中,通过过滤数据包中的关键字信息,标记为对应的数据库。同样通过过滤SELECT、MICROSOFTSQL SERVER、WIN_NT64、ZHS16GBK等关键字来识别sql语句、数据库种类、操作系统、字符集等信息。
步骤5:对于识别出来的数据库,通过计算唯一key值,快速查找到对应的数据库信息结构体。
数据库信息结构体包含:数据库的类型,客户端的IP、port,服务器的IP、port;客户端和服务器的操作系统类型、位数,数据库的字符集;信息是否获取完全的标志位;由IP、port计算出的唯一的key值等。
key的计算方式如下:
src_ip&=0xffff;
dst_ip&=0xffff;
(src_ip<<48)|(src_port<<32)|(dst_ip<<16)|dst_port
上述程序指令中,src_ip、dst_ip分别表示客户端和服务器端的IP地址,src_port、dst_port分别表示客户端和服务器端的端口。
通过以上方法计算出一个u_int64类型的key值作为此结构体的唯一标识,用于快速查找和遍历。
步骤6:通过识别的信息更新此key值对应的数据库信息结构体。
如图5,根据过滤出的信息,将此key值对应的数据库信息结构体填充完整。在步骤4,过滤数据包的数据时,会将对应的发现标志位标记,在此步骤对这些标志进行一一验证,并更新数据库信息结构体。
步骤7:检查是否有新的IP、port对信息填充完整;如果填充完整,则更新到filter中。
在填充完整之后,不再检查此key值对应的数据库信息结构体,并将结构体中的is_full值赋为1,然后更新过滤信息的filter,降低检索的压力。
需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。
Claims (7)
1.一种基于通信协议和SQL语法的数据库自动发现方法,其特征在于包括以下步骤:
步骤1:获取网络中的数据包,使用filter过滤掉已确认为数据库的IP,port对;
步骤2:检测数据包使用的协议是否是TCP协议,并且是否是syn+ack包,如都符合则执行步骤3,否则重新执行步骤1;
步骤3:检查IP,port对的缓存次数是否已达到设定的阈值,是则执行步骤4,否则缓存该IP,port对,并重新执行步骤1;
步骤4:过滤数据包内容,根据数据库的通信包中的关键字信息,标记为对应的数据库,填充发现标志位;
步骤5:对于识别出来的数据库,通过计算唯一key值,快速查找到对应的数据库信息结构体;
步骤6:通过获取的服务器操作系统类型、服务器操作系统位数、客户端操作系统类型、客户端操作系统位数和服务器字符集类型,更新此key值对应的数据库信息结构体;
步骤7:检查是否有新的IP,port对信息填充完整,如果填充完整,则更新到filter中,否则重新执行步骤1;
在填充完整之后,不再检查此key值对应的数据库信息结构体,并将结构体中的信息是否获取完全的标志位is_full值赋为1,然后更新过滤信息的filter,降低检索的压力。
2.根据权利要求1所述的一种基于通信协议和SQL语法的数据库自动发现方法,其特征在于:所述获取网络中的数据包是使用libpcap库实现的。
3.根据权利要求1所述的一种基于通信协议和SQL语法的数据库自动发现方法,其特征在于:所述步骤2是通过解析源IP,port对和目标IP,port对实现的。
4.根据权利要求1所述的一种基于通信协议和SQL语法的数据库自动发现方法,其特征在于:所述的阈值为10。
5.根据权利要求1所述的一种基于通信协议和SQL语法的数据库自动发现方法,其特征在于:所述关键字信息包括INSERT、DELETE、UPDATE、SELECT、Oracle、WIN_NT64、ZHS16GBK和MICROSOFT SQL_SEVER。
6.根据权利要求1所述的一种基于通信协议和SQL语法的数据库自动发现方法,其特征在于:所述数据库信息结构体包含:数据库的类型、客户端的IP和port、服务器端的IP和port、客户端和服务器的操作系统类型及位数、数据库的字符集、信息是否获取完全的标志位。
7.根据权利要求1所述的一种基于通信协议和SQL语法的数据库自动发现方法,其特征在于:所述步骤5中计算唯一key值是通过客户端的IP和port、服务器端的IP和port计算得到的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710048509.7A CN106657145B (zh) | 2017-01-23 | 2017-01-23 | 一种基于通信协议和sql语法的数据库自动发现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710048509.7A CN106657145B (zh) | 2017-01-23 | 2017-01-23 | 一种基于通信协议和sql语法的数据库自动发现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106657145A CN106657145A (zh) | 2017-05-10 |
CN106657145B true CN106657145B (zh) | 2019-07-05 |
Family
ID=58841050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710048509.7A Active CN106657145B (zh) | 2017-01-23 | 2017-01-23 | 一种基于通信协议和sql语法的数据库自动发现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106657145B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107302529A (zh) * | 2017-06-14 | 2017-10-27 | 苏州海加网络科技股份有限公司 | 基于场景感知的数据库安全审计系统及方法 |
CN112148704A (zh) * | 2019-06-27 | 2020-12-29 | 山东华软金盾软件股份有限公司 | 一种数据库自动发现系统及方法 |
CN112187938B (zh) * | 2020-09-30 | 2023-01-10 | 国网智能科技股份有限公司 | 一种变电站全景监控数据层次化组态处理方法及系统 |
CN113094124A (zh) * | 2021-03-31 | 2021-07-09 | 北京星阑科技有限公司 | 一种基于Sqlite3的操作系统信息处理方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102253975A (zh) * | 2011-06-16 | 2011-11-23 | 上海博康智能网络科技有限公司 | 一种数据库自动转换系统及方法 |
CN102890720A (zh) * | 2012-10-16 | 2013-01-23 | 南京通达海信息技术有限公司 | 数据库检查维护方法 |
CN103488715A (zh) * | 2013-09-11 | 2014-01-01 | 北京思特奇信息技术股份有限公司 | 一种基于全局设置的预解析管理方法及系统 |
CN104301343A (zh) * | 2013-07-17 | 2015-01-21 | 腾讯科技(深圳)有限公司 | 一种数据库更新方法及相关设备、系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150127687A1 (en) * | 2013-11-04 | 2015-05-07 | Roger Graves | System and methods for creating and modifying a hierarchial data structure |
US9639568B2 (en) * | 2014-05-01 | 2017-05-02 | Aktiebolaget Skf | Systems and methods for improved data structure storage |
-
2017
- 2017-01-23 CN CN201710048509.7A patent/CN106657145B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102253975A (zh) * | 2011-06-16 | 2011-11-23 | 上海博康智能网络科技有限公司 | 一种数据库自动转换系统及方法 |
CN102890720A (zh) * | 2012-10-16 | 2013-01-23 | 南京通达海信息技术有限公司 | 数据库检查维护方法 |
CN104301343A (zh) * | 2013-07-17 | 2015-01-21 | 腾讯科技(深圳)有限公司 | 一种数据库更新方法及相关设备、系统 |
CN103488715A (zh) * | 2013-09-11 | 2014-01-01 | 北京思特奇信息技术股份有限公司 | 一种基于全局设置的预解析管理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106657145A (zh) | 2017-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106657145B (zh) | 一种基于通信协议和sql语法的数据库自动发现方法 | |
US7831822B2 (en) | Real-time stateful packet inspection method and apparatus | |
CN101267313B (zh) | 泛洪攻击检测方法及检测装置 | |
US8813220B2 (en) | Methods and systems for internet protocol (IP) packet header collection and storage | |
EP3135018B1 (en) | Policy-based payload delivery for transport protocols | |
CN106656922A (zh) | 一种基于流量分析的网络攻击防护方法和装置 | |
CN105577496B (zh) | 一种家庭网关利用云平台识别接入设备类型的系统 | |
US7995496B2 (en) | Methods and systems for internet protocol (IP) traffic conversation detection and storage | |
CN101399710B (zh) | 一种协议格式异常检测方法及系统 | |
CN107786545A (zh) | 一种网络攻击行为检测方法及终端设备 | |
US8762515B2 (en) | Methods and systems for collection, tracking, and display of near real time multicast data | |
CN103281213A (zh) | 一种网络流量内容提取和分析检索方法 | |
CN106878262A (zh) | 报文检测方法及装置、建立云端威胁情报库的方法及装置 | |
CN107438025A (zh) | 通信网关、无人机通信装置、无人机地面监控系统和方法 | |
CN105491018B (zh) | 一种基于dpi技术的网络数据安全性分析方法 | |
CN113285916B (zh) | 智能制造系统异常流量检测方法及检测装置 | |
CN111835777A (zh) | 一种异常流量检测方法、装置、设备及介质 | |
CN105407096A (zh) | 基于流管理的报文数据检测方法 | |
CN101902461B (zh) | 一种数据流内容过滤的方法及装置 | |
US10805435B2 (en) | Method of processing data stream, computer program product and classifier for processing data stream | |
CN107979567A (zh) | 一种基于协议分析的异常检测系统及方法 | |
CN106911649A (zh) | 一种检测网络攻击的方法和装置 | |
CN105991509A (zh) | 会话处理方法及装置 | |
CN104104675A (zh) | Internet控制报文协议伪装捕获与分析技术 | |
CN111988343B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |