CN107992766A - 一种基于SQLServer数据库的多语句审计和控制方法 - Google Patents
一种基于SQLServer数据库的多语句审计和控制方法 Download PDFInfo
- Publication number
- CN107992766A CN107992766A CN201711222413.4A CN201711222413A CN107992766A CN 107992766 A CN107992766 A CN 107992766A CN 201711222413 A CN201711222413 A CN 201711222413A CN 107992766 A CN107992766 A CN 107992766A
- Authority
- CN
- China
- Prior art keywords
- sentence
- statement
- multiple statement
- fractionation
- wall scroll
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于SQLServer数据库的多语句审计和控制方法,其技术特点是:从网络层获取SQLServer数据库的TDS协议包,对通信协议进行解析,产生多语句整体的文本信息;对多语句进行SQL语法解析,语法解析时生成固定抽象语法树结构;进行多语句拆分并将拆分后的语句参数内容拼回语句,产生完整的单条语句;根据单条语句的语法解析结果,进行规则校验,规则校验的结果存在每个单条语句上,直到每条语句都拆分并校验完为止;对每条语句的校验结果进行比较,取所有命中规则的语句中规则优先级最高的结果。本发明设计合理,具有拆分准确、控制准确率高、力度更细等特点,可广泛应用于数据库审计或数据库防火墙等网络安全产品中。
Description
技术领域
本发明属于数据库安全技术领域,尤其是一种基于SQLServer数据库的多语句审计和控制方法。
背景技术
随着数据库应用越来越广泛,对数据库的安全性能也提出了越来越高的要求。数据库审计产品、数据库防火墙产品以及数据库运维类产品对于SQLServer多语句如何实现准确的记录与控制,显得尤为重要。多语句就是客户端同时执行2条及以上语句,多条语句会在一个TDS(SQLServer的协议类型)的协议包发送给数据库,数据库会根据语法解析进行拆分和返回相应的应答信息。对于数据库审计产品来说,最主要的就是记录语句和评估该语句是否有风险(敏感操作、SQL注入等),因此,如何将TDS协议中的语句进行合理准确的拆分是目前迫切需要解决的问题。
发明内容
本发明的目地在于克服现有技术的不足,提出一种设计合理、拆分准确、安全性高的基于SQLServer数据库的多语句审计和控制方法。
本发明解决其技术问题是采取以下技术方案实现的:
一种基于SQLServer数据库的多语句审计和控制方法,包括以下步骤:
步骤1:从网络层获取SQLServer数据库的TDS协议包,对通信协议进行解析,产生多语句整体的文本信息;
步骤2:对多语句进行SQL语法解析,语法解析时生成固定抽象语法树结构;
步骤3:对生成的固定抽象语法树结构进行分析,进行多语句拆分,将拆分后的语句参数内容拼回语句,产生完整的单条语句;
步骤4:根据单条语句的语法解析结果,进行规则校验,规则校验的结果存在每个单条语句上,直到每条语句都拆分并校验完为止;
步骤5:对每条语句的校验结果进行比较,取所有命中规则的语句中规则优先级最高的结果。
所述步骤3进行多语句拆分的具体方法为:对多语句整体进行格式化,将语句分成语句模板和语句参数,该语句模板为多语句整体,该语句参数也是语句整体按照语句从左到右的所有参数;通过语法解析将多语句模板进行拆分,拆分时,格式化的参数还是按照顺序整体在一起;按照语法解析后的单条语句模板按照从左到右的顺序及个数将格式化产生的语句参数整体按照每条语句的个数及顺序分开,从而产生独立的单语句。
本发明的优点和积极效果是:
本发明设计合理,其采用SQL语法解析的多语句拆分技术,拆分后对应单条语句进行操作、表和where条件等控制,解决了同时发送多条语句时,数据库审计产品或数据库防火墙产品记录的多条语句罗列在一起,没有合理的拆分的问题,对于语句的控制能够分配到单条语句的操作和对象上。对于语句的控制准确率更高,力度更细。可广泛应用于数据库审计或数据库防火墙等网络安全产品中。
附图说明
图1是本发明的处理流程图;
图2是多语句审计的简单模型。
具体实施方式
以下结合附图对本发明实施例做进一步详述。
一种基于SQLServer数据库的多语句审计和控制方法,如图1所示,包括以下步骤:
步骤1:从网络层获取SQLServer数据库的TDS协议包,对通信协议进行解析,产生多语句整体的文本信息。
步骤2:对多语句进行SQL语法解析,语法解析时生成固定AST(抽象语法树)结构。
步骤3:对生成的固定AST结构进行分析,进行多语句拆分,将拆分后的语句参数等内容拼回语句,产生完整的单条语句。
在本步骤中,进行多语句拆分的具体方法为:
对多语句整体进行格式化,将语句分成语句模板和语句参数,此时的语句模板为多语句整体,参数也是语句整体按照语句从左到右的所有参数。通过语法解析将多语句模板进行拆分,但格式化的参数还是按照顺序整体在一起。此时通过参数拆分即按照语法解析后的单条语句模板按照从左到右的顺序及个数将格式化产生的语句参数整体按照每条语句的个数及顺序分开,此时产生独立的单语句。
步骤4:根据单条语句的语法解析结果,进行操作、对象、where、or等操作的规则校验,校验的结果会存在每个单条语句上;直到每条语句都拆分并校验完为止。
步骤5:最后对每条语句的校验结果进行比较,原则是取所有命中规则的语句中规则优先级最高的结果。
本发明进行多语句审计和控制采用如下基本原则:
多语句审计:根据多语句执行的结果进行语句的记录,如果语句中存在影响SQL语句解析的错误,数据库会返回一个语句错误的信息,此时要记录多语句整体。如果某条语句报错但不存在语法错误,比如表不存在,此时不会影响后续语句的继续执行,所以此时已单条语句记录。还有种情况就是前边的语句正常返回结果后续报错,对于这种情况是正常返回的语句记录单语句,报错后边的语句都不记录,而是记录一条多语句整体。如图2所示
多语句控制:如果有某条语句为拦截或者阻断,则记录多语句整体,规则动作为拦截或阻断。
需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。
Claims (2)
1.一种基于SQLServer数据库的多语句审计和控制方法,其特征在于包括以下步骤:
步骤1:从网络层获取SQLServer数据库的TDS协议包,对通信协议进行解析,产生多语句整体的文本信息;
步骤2:对多语句进行SQL语法解析,语法解析时生成固定抽象语法树结构;
步骤3:对生成的固定抽象语法树结构进行分析,进行多语句拆分,将拆分后的语句参数内容拼回语句,产生完整的单条语句;
步骤4:根据单条语句的语法解析结果,进行规则校验,规则校验的结果存在每个单条语句上,直到每条语句都拆分并校验完为止;
步骤5:对每条语句的校验结果进行比较,取所有命中规则的语句中规则优先级最高的结果。
2.根据权利要求1所述的一种基于SQLServer数据库的多语句审计和控制方法,其特征在于:所述步骤3进行多语句拆分的具体方法为:对多语句整体进行格式化,将语句分成语句模板和语句参数,该语句模板为多语句整体,该语句参数也是语句整体按照语句从左到右的所有参数;通过语法解析将多语句模板进行拆分,拆分时,格式化的参数还是按照顺序整体在一起;按照语法解析后的单条语句模板按照从左到右的顺序及个数将格式化产生的语句参数整体按照每条语句的个数及顺序分开,从而产生独立的单语句。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711222413.4A CN107992766A (zh) | 2017-11-29 | 2017-11-29 | 一种基于SQLServer数据库的多语句审计和控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711222413.4A CN107992766A (zh) | 2017-11-29 | 2017-11-29 | 一种基于SQLServer数据库的多语句审计和控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107992766A true CN107992766A (zh) | 2018-05-04 |
Family
ID=62034031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711222413.4A Pending CN107992766A (zh) | 2017-11-29 | 2017-11-29 | 一种基于SQLServer数据库的多语句审计和控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107992766A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110581823A (zh) * | 2018-06-07 | 2019-12-17 | 中国科学院声学研究所 | 一种非公开数据库协议请求数据包的解析方法 |
CN113190236A (zh) * | 2021-05-27 | 2021-07-30 | 中国工商银行股份有限公司 | Hql脚本校验方法及装置 |
CN113641702A (zh) * | 2021-10-18 | 2021-11-12 | 北京安华金和科技有限公司 | 一种语句审计后与数据库客户端交互处理方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156740A (zh) * | 2011-04-15 | 2011-08-17 | 国都兴业信息审计系统技术(北京)有限公司 | Sql语句的处理方法及系统 |
CN103475727A (zh) * | 2013-09-18 | 2013-12-25 | 浪潮电子信息产业股份有限公司 | 一种基于桥模式的数据库审计方法 |
CN104063473A (zh) * | 2014-06-30 | 2014-09-24 | 江苏华大天益电力科技有限公司 | 一种数据库审计监测系统及其方法 |
CN107292167A (zh) * | 2017-06-27 | 2017-10-24 | 北京计算机技术及应用研究所 | 基于精简语法树的sql语句安全检测方法 |
-
2017
- 2017-11-29 CN CN201711222413.4A patent/CN107992766A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156740A (zh) * | 2011-04-15 | 2011-08-17 | 国都兴业信息审计系统技术(北京)有限公司 | Sql语句的处理方法及系统 |
CN103475727A (zh) * | 2013-09-18 | 2013-12-25 | 浪潮电子信息产业股份有限公司 | 一种基于桥模式的数据库审计方法 |
CN104063473A (zh) * | 2014-06-30 | 2014-09-24 | 江苏华大天益电力科技有限公司 | 一种数据库审计监测系统及其方法 |
CN107292167A (zh) * | 2017-06-27 | 2017-10-24 | 北京计算机技术及应用研究所 | 基于精简语法树的sql语句安全检测方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110581823A (zh) * | 2018-06-07 | 2019-12-17 | 中国科学院声学研究所 | 一种非公开数据库协议请求数据包的解析方法 |
CN110581823B (zh) * | 2018-06-07 | 2020-12-22 | 中国科学院声学研究所 | 一种非公开数据库协议请求数据包的解析方法 |
CN113190236A (zh) * | 2021-05-27 | 2021-07-30 | 中国工商银行股份有限公司 | Hql脚本校验方法及装置 |
CN113190236B (zh) * | 2021-05-27 | 2024-02-02 | 中国工商银行股份有限公司 | Hql脚本校验方法及装置 |
CN113641702A (zh) * | 2021-10-18 | 2021-11-12 | 北京安华金和科技有限公司 | 一种语句审计后与数据库客户端交互处理方法和装置 |
CN113641702B (zh) * | 2021-10-18 | 2022-02-22 | 北京安华金和科技有限公司 | 一种语句审计后与数据库客户端交互处理方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11514032B2 (en) | Splitting a query into native query operations and post-processing operations | |
CN104182405B (zh) | 一种连接查询方法及装置 | |
EP2244418B1 (en) | Database security monitoring method, device and system | |
AU2005202442B2 (en) | System and method for auditing a network | |
CN107992766A (zh) | 一种基于SQLServer数据库的多语句审计和控制方法 | |
US10261967B2 (en) | Data extraction | |
CN106547729B (zh) | 一种数据报表的动态生成方法及系统 | |
CN104573024B (zh) | 一种复杂网络体系下异构安全日志信息的自适应提取方法及系统 | |
CN110427188B (zh) | 单测断言程序的配置方法、装置、设备及存储介质 | |
CN109033410A (zh) | 一种基于正则与字符串切割的sql解析方法 | |
CN104572474B (zh) | 一种基于动态切片的轻量级错误定位技术实现方法 | |
US11347620B2 (en) | Parsing hierarchical session log data for search and analytics | |
CN110555039A (zh) | 数据查询控制方法、存储介质、设备及系统 | |
US8666731B2 (en) | Method, a computer program and apparatus for processing a computer message | |
US20060015934A1 (en) | Method and apparatus for automatic risk assessment of a firewall configuration | |
KR100906454B1 (ko) | 데이터베이스 로그 정보 관리 장치 및 방법 | |
KR101890805B1 (ko) | 머신 러닝 기반 실시간 비정형 로그 처리 방법 및 이를 사용한 서버 | |
CN105574246B (zh) | 版图的ip模块合成方法 | |
CN102902798A (zh) | 一种针对Informix数据库的SQL信息采集和审计方法及其系统 | |
US20070033178A1 (en) | Quality of service feedback for technology-neutral data reporting | |
CN109635027A (zh) | 一种数据库访问结果集探测的实现方法 | |
CN108491227A (zh) | 一种基于lua和redis的安全配置系统及方法 | |
CN109408525A (zh) | 一种农业数据库sql语句安全检测方法及系统 | |
US11544081B2 (en) | Job execution integration to customized database | |
CN105183620A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180504 |
|
WD01 | Invention patent application deemed withdrawn after publication |