CN112187763A - 使用安全网关对OracleTNS协议SQL执行进行审计和阻断方法和系统 - Google Patents
使用安全网关对OracleTNS协议SQL执行进行审计和阻断方法和系统 Download PDFInfo
- Publication number
- CN112187763A CN112187763A CN202011003220.1A CN202011003220A CN112187763A CN 112187763 A CN112187763 A CN 112187763A CN 202011003220 A CN202011003220 A CN 202011003220A CN 112187763 A CN112187763 A CN 112187763A
- Authority
- CN
- China
- Prior art keywords
- command
- data array
- byte
- data
- bits
- 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
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000000903 blocking effect Effects 0.000 title claims abstract description 21
- 230000010365 information processing Effects 0.000 claims description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及计算机数据库访问控制领域,尤其涉及一种用安全网关对Oracle TNS协议SQL执行进行审计和阻断的方法。所述方法具体包括以下步骤:获取数据包,并对所述数据包进行解析处理,处理后得到data数组;对处理后的所述data数组进行位数判断;对得到的data数组类型判断,根据的判断结果进行命令解析;或根据的判断结果进行1169包解析或进行116b包解析,解析完成,再进行命令解析。本发明方法能够区分32位客户端与64位客户端,并兼容oracle11g,12c各版本,且能兼顾不同客户端种类,适应sqlplus,Navicat,jdbc等多种客户端。
Description
技术领域
本发明涉及计算机数据库访问控制领域,尤其涉及一种用安全网关对Oracle TNS协议SQL执行进行审计和阻断和系统。
背景技术
现有技术方案对TNS分析不区分客户端位数和服务端位数,会造成在不同客户端(64位客户端以及Oracle JDBC客户端)和服务器的情况下无法正确获取sql的情况。对SQL执行的情况分析不全,只能分析0x035e和0x1169类型的命令包,对0x116b包没有分析方案。
1.由于Oracle持续升级现有方案在0racle12c 64位下已经不能正确进行解析
2.现有方案没有阐明包之间的包含和逻辑关系,无法建立统一的处理逻辑。
发明内容
本发明公开了一种使用安全网关对Oracle TNS协议SQL执行进行审计和阻断的方法,以解决现有技术的上述以及其他潜在问题中任一问题。
本发明的技术方案是:一种使用安全网关对Oracle TNS协议SQL执行进行审计和阻断的方法,所述方法具体包括以下步骤:
S1)获取数据包,并对所述数据包进行解析处理,处理后得到data数组;
S2)对S1)处理后的所述data数组进行位数判断;
S3)对S1)得到的所述data数组类型判断,根据判断结果执行S4)、S5)或S6);
S4)根据S3)的判断结果进行命令解析;
S5)根据S3)的判断结果进行1169包解析,解析完成后执行S4);
S6)根据S3)的判断结果进行116b包解析,解析完成后执行S4)。
进一步,所述处理具体为:将取数据包的头部2个长度字节去除,剩下的数据称为data数组。
进一步,所述S2)的具体步骤为:
S2.1)分别检查data数组的第3,第9和第10字节,如果所述第3,第9和第10字节的内容分别是6,3,0x73则进入S2.2),否则结束;
S2.2)检查data数组的第12个字节,如果字节的内容是0xfe,则客户端为是64位,否则为32位。
进一步,所述S3)的具体步骤为:
S3.1)先分别检查data数组的第3,第9和第10字节的内容,
S3.2)如果所述字节内部分别是6,3和0x5e,则设置命令指针头为data数组的第9字节,则执行S4),
如果所述字节内容分别是6,11和0x69,则执行S5),
如果所述字节内容分别是6,11和0x6b,则执行S6)。
进一步,所述S4)具体步骤为:
S4.1)命令偏移量计算:
如果客户端是64位,则命令起始位置为:命令指针头向后移动152位,
如果客户端是32位,则命令起始位置为:命令指针头向后移动54位;
S4.2)命令解析:
当命令长度<64字节时,直接获取字符串长度,读取后续命令;
当命令长度>64字节时,循环数组中每个字符串元素,直到数组结尾0x00。进一步,所述S5)具体步骤为:
如果客户端是64位,则探测data数组的[28]和data数组[29]的内容是否为0x03和0x5e,若是则设命令指针头为data数组的第28字节,否则设置命令指针头为data数组的第32字节,返回执行S4)。
进一步,所述S5)具体步骤为:
设置命令指针头为data数组的第24字节,返回执行S4)。
本发明的另一目的是提供一种使用安全网关对Oracle TNS协议SQL执行进行审计和阻断系统,所述系统包括:
获取模块:用于将获取数据包,并对将获取数据进行解析处理;
位数判断模块:用于对预处理后的数据包进行版本识别;
类型判断模块:用于对预处理后的数据包进行类型判断;
命令分析模块,用于计算命令的偏移量,根据偏移量进行命令解析;
1169包解析模块,用于根据类型进行1169包解析;
116b包解析模块,用于根据类型进行116b包解析。
一种实现上述的使用安全网关对Oracle TNS协议SQL执行进行审计和阻断的方法的信息处理终端。
一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述的使用安全网关对Oracle TNS协议SQL执行进行审计和阻断的方法。
本发明的有意效果是:由于采用上述技术方案,本发明方法能够的区分32位客户端与64位客户端,并兼容oracle11g,12c各版本,现有在64位客户端情况下无法正确识别用户名;且能兼顾不同客户端种类,适应sqlplus,Navicat,jdbc等多种客户端。
附图说明
图1为本发明一种使用安全网关对Oracle TNS协议SQL执行进行审计和阻断的方法的流程图。
图2为本发明一种使用安全网关对Oracle TNS协议SQL执行进行审计和阻断系统的逻辑框图。
具体实施方式
下面结合具体实施例和附图对本发明的技术方案做进一步说明。
如图1所示,本发明一种使用安全网关对Oracle TNS协议SQL执行进行审计和阻断的方法,所述方法具体包括以下步骤:
S1)获取数据包,并对所述数据包进行解析处理,处理后得到data数组;
S2)对S1)处理后的所述data数组进行位数判断;
S3)对S1)得到的所述data数组类型判断,根据判断结果执行S4)、S5)或S6);
S4)根据S3)的判断结果进行命令解析;
S5)根据S3)的判断结果进行1169包解析,解析完成后执行S4);
S6)根据S3)的判断结果进行116b包解析,解析完成后执行S4)。
所述处理具体为:将取数据包的头部2个长度字节去除,剩下的数据称为data数组。
所述S2)的具体步骤为:
S2.1)分别检查data数组的第3,第9和第10字节,如果所述第3,第9和第10字节的内容分别是6,3,0x73则进入S2.2),否则结束;
S2.2)检查data数组的第12个字节,如果字节的内容是0xfe,则客户端为是64位,否则为32位。
所述S3)的具体步骤为:
S3.1)先分别检查data数组的第3,第9和第10字节的内容,
S3.2)如果所述字节内部分别是6,3和0x5e,则设置命令指针头为data数组的第9字节,则执行S4),
如果所述字节内容分别是6,11和0x69,则执行S5),
如果所述字节内容分别是6,11和0x6b,则执行S6)。
所述S4)具体步骤为:
S4.1)命令偏移量计算:
如果客户端是64位,则命令起始位置为:命令指针头向后移动152位,
如果客户端是32位,则命令起始位置为:命令指针头向后移动54位;
S4.2)命令解析:
当命令长度<64字节时,直接获取字符串长度,读取后续命令;
当命令长度>64字节时,循环数组中每个字符串元素,直到数组结尾0x00。所述S5)中的1169包解析具体步骤为:
如果客户端是64位,则探测data数组的[28]和data数组[29]的内容是否为0x03和0x5e,若是则设命令指针头为data数组的第28字节,否则设置命令指针头为data数组的第32字节,返回执行S4)。
所述S5)中116b包解析具体步骤为:
设置命令指针头为data数组的第24字节,返回执行S4)。
如图2所示,本发明一种使用安全网关对Oracle TNS协议SQL执行进行审计和阻断系统,所述系统包括:
获取模块:用于将获取数据包,并对将获取数据进行解析处理;
位数判断模块:用于对预处理后的数据包进行版本识别;
类型判断模块:用于对预处理后的数据包进行类型判断;
命令分析模块,用于计算命令的偏移量,根据偏移量进行命令解析;
1169包解析模块,用于根据类型进行1169包解析;
116b包解析模块,用于根据类型进行116b包解析。
一种实现上述的使用安全网关对Oracle TNS协议SQL执行进行审计和阻断的方法的信息处理终端。
一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述的使用安全网关对Oracle TNS协议SQL执行进行审计和阻断的方法。实施例:
一种使用安全网关对Oracle TNS协议SQL执行进行审计和阻断的方法,具体包括以下步骤:
1.基础处理
对TNS包进行解析,除去头部2个长度字节,对剩下的数据称为data数组,对该数据进行进一步处理。
2.客户端位数检查
分别检查data数组第3,9,10个字节,如果分别是6,3,0x73则进入客户端版本检查步骤,则检查data数组第12个字节,如果是0xfe,则客户端为是64位,否则为32位。设置局部变量bool is64Bit保存检查结果,如果为64位则此变量为true,否则为false
3.包类型检查
4.命令分析
(1)命令偏移量计算
若为64bit,则命令起始位置(commandPos)为_035eHeaderPos+152
若为32bit,则命令起始位置(commandPos)为_035eHeaderPos+54
(2)命令解析
命令有两种情况,当命令长度较短时(<64字节),则命令为1字节长度后续命令字符串。否则命令为多个最大64字节的字符串组成的数组,前序0xfe数组标志,每个数组元素为1字节长度后续命令字符串,结尾为0.
第一种情况可直接获取字符串长度,读取后续命令
int commandLen=data[commandPos]
command=data.sub(commandPos+1,commandLen)
第二种情况需要循环数组中每个字符串元素,直到数组结尾0x00
int i=commandPos+1
while(data[i]~=0)do
int commandLen=data[i]
string c=data.sub(i+1,commandLen)
command=command+c
i=i+1+commandLen
end
5. 1169包解析:
如果是64bit客户端,则探测data[28]和data[29]是否为0x03 0x5e,若是则设置_035eHeaderPos=28,否则_035eHeaderPos=32
如果是32bit客户端,则探测data[21]和data[22]是否为0x03 0x5e,若是则设置_035eHeaderPos=21,否则_035eHeaderPos=25
进入步骤4命令解析
6. 116b包解析:
设置_035eHeaderPos=24
进入步骤4命令解析,如下表所示:
1169包结构
116b包结构
035e包结构
以上对本申请实施例所提供的一种使用安全网关对Oracle TNS协议SQL执行进行审计和阻断方法及系统,进行了详细介绍。以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
如在说明书及权利要求书当中使用了某些词汇来指称特定组件,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求书当中所提及的“包含”、“包括”为一开放式用语,故应解释成“包含/包括但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求书所界定者为准。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
上述说明示出并描述了本申请的若干优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述申请构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求书的保护范围内。
Claims (10)
1.一种使用安全网关对Oracle TNS协议SQL执行进行审计和阻断的方法,其特征在于,所述方法具体包括以下步骤:
S1)获取数据包,并对所述数据包进行解析处理,处理后得到data数组;
S2)对S1)处理后的所述data数组进行位数判断,备用;
S3)对S1)得到的所述data数组类型判断,根据判断结果选择执行S4)、S5)或S6);
S4)根据S2和S3)的判断结果进行命令解析;
S5)根据S3)的判断结果进行1169包解析,解析完成后,返回执行S4);
S6)根据S3)的判断结果进行116b包解析,解析完成后,返回执行S4)。
2.根据权利要求1所述的方法,其特征在于,所述处理具体为:将数据包的头部2个长度字节去除,剩下的数据为data数组。
3.根据权利要求2所述的方法,其特征在于,所述S2)的具体步骤为:
S2.1)分别检查data数组的第3,第9和第10字节,如果所述第3,第9和第10字节的内容分别是6,3,0x73则进入S2.2),否则结束;
S2.2)检查data数组的第12个字节,如果字节的内容是0xfe,则客户端为是64位,否则为32位。
4.根据权利要求3所述的方法,其特征在于,所述S3)的具体步骤为:
S3.1)先分别检查data数组的第3,第9和第10字节的内容,
S3.2)如果所述字节内部分别是6,3和0x5e,则设置命令指针头为data数组的第9字节,则执行S4),
如果所述字节内容分别是6,11和0x69,则执行S5),
如果所述字节内容分别是6,11和0x6b,则执行S6)。
5.根据权利要求4所述的方法,其特征在于,所述S4)具体步骤为:
S4.1)命令偏移量计算:
如果客户端是64位,则命令起始位置为:命令指针头向后移动152位,
如果客户端是32位,则命令起始位置为:命令指针头向后移动54位;
S4.2)命令解析:
当命令长度≤64字节时,直接获取字符串长度,读取后续命令;
当命令长度>64字节时,循环数组中每个字符串元素,直到数组结尾0x00。
6.根据权利要求4所述的方法,其特征在于,所述S5)中的1169包解析具体步骤为:
如果客户端是64位,则探测data数组的[28]和data数组[29]的内容是否为0x03和0x5e,若是则设命令指针头为data数组的第28字节,否则设置命令指针头为data数组的第32字节,返回执行S4)。
7.根据权利要求4所述的方法,其特征在于,所述S5)中的116b包解析具体步骤为:
设置命令指针头为data数组的第24字节,返回执行S4)。
8.一种使用安全网关对Oracle TNS协议SQL执行进行审计和阻断系统,其特征在于,所述系统包括:
获取模块:用于将获取数据包,并对数据包进行解析处理;
位数判断模块:用于对数据包进行版本识别;
类型判断模块:用于对的数据包进行类型判断;
命令分析模块,用于计算命令的偏移量,根据偏移量进行命令解析;
1169包解析模块,用于根据类型进行1169包解析;
116b包解析模块,用于根据类型进行116b包解析。
9.一种实现如权利要求1-7任一项所述的使用安全网关对Oracle TNS协议SQL执行进行审计和阻断的方法的信息处理终端。
10.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-7任意一项所述的使用安全网关对Oracle TNS协议SQL执行进行审计和阻断的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011003220.1A CN112187763A (zh) | 2020-09-22 | 2020-09-22 | 使用安全网关对OracleTNS协议SQL执行进行审计和阻断方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011003220.1A CN112187763A (zh) | 2020-09-22 | 2020-09-22 | 使用安全网关对OracleTNS协议SQL执行进行审计和阻断方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112187763A true CN112187763A (zh) | 2021-01-05 |
Family
ID=73955755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011003220.1A Pending CN112187763A (zh) | 2020-09-22 | 2020-09-22 | 使用安全网关对OracleTNS协议SQL执行进行审计和阻断方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112187763A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107038208A (zh) * | 2017-02-20 | 2017-08-11 | 北京交通大学 | 解析和还原tns协议314版本中sql命令和参数的方法 |
CN108629201A (zh) * | 2018-04-24 | 2018-10-09 | 山东华软金盾软件股份有限公司 | 一种对数据库非法操作进行阻断的方法 |
-
2020
- 2020-09-22 CN CN202011003220.1A patent/CN112187763A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107038208A (zh) * | 2017-02-20 | 2017-08-11 | 北京交通大学 | 解析和还原tns协议314版本中sql命令和参数的方法 |
CN108629201A (zh) * | 2018-04-24 | 2018-10-09 | 山东华软金盾软件股份有限公司 | 一种对数据库非法操作进行阻断的方法 |
Non-Patent Citations (3)
Title |
---|
YIZHU2000: "Oracle TNS 314协议分析:三、连接认证流程与包分析", 《HTTPS://BLOG.CSDN.NET/YIZHU2000/ARTICLE/DETAILS/106010693》 * |
YIZHU2000: "Oracle TNS 314协议分析:四、SQL执行流程与包分析", 《HTTPS://BLOG.CSDN.NET/YIZHU2000/ARTICLE/DETAILS/106035934》 * |
侯方杰等: "Oracle通信TNS协议中请求报文的解析", 《计算机系统应用》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10394686B2 (en) | Static feature extraction from structured files | |
US7299282B2 (en) | State processor for pattern matching in a network monitor device | |
US7146643B2 (en) | Intrusion detection accelerator | |
US20040083466A1 (en) | Hardware parser accelerator | |
US8245212B2 (en) | Building call tree branches and utilizing break points | |
US7801719B2 (en) | Processor-based system analysis automation | |
US20040221275A1 (en) | Apparatus and method for modifying a kernel module to run on multiple kernel versions | |
US20040093347A1 (en) | Mechanism for comparing content in data structures | |
CN111884876A (zh) | 一种网络协议的协议类型检测方法、装置、设备及介质 | |
CN111818035B (zh) | 一种基于api网关的权限验证的方法及设备 | |
CN106850231A (zh) | 一种保护接口安全的方法、服务端及系统、一种客户端 | |
CN107423171A (zh) | 基于pcie标准的插槽式功能扩展卡的检测方法及装置 | |
CN111209326B (zh) | 数据查询方法、装置、电子设备和存储介质 | |
CN112187763A (zh) | 使用安全网关对OracleTNS协议SQL执行进行审计和阻断方法和系统 | |
US9871807B2 (en) | Generic protocol decoder for generic application-level protocol signatures | |
US20080115016A1 (en) | System and method for analyzing unknown file format to perform software security test | |
US20160126976A1 (en) | Methods, systems, and computer readable media for optimized message decoding | |
KR100924519B1 (ko) | 소프트웨어 보안 테스팅을 수행하기 위한 알려지지 않은파일 포맷 분석 시스템 및 방법 | |
CN115357895A (zh) | 基于iast快速定位json框架中污点数据位置的方法及系统 | |
US20080092037A1 (en) | Validation of XML content in a streaming fashion | |
CN113590133A (zh) | 安卓系统注入检测方法、装置、设备以及计算机存储介质 | |
CN112165478A (zh) | 使用安全网关对OracleTNS协议登录用户名进行获取方法及系统 | |
CN117272392B (zh) | 用于终端的数据安全保护与备份控制方法和系统 | |
Kilic et al. | Security Testing over Encrypted Channels on the ARM Platform | |
CN109522712B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210105 |
|
RJ01 | Rejection of invention patent application after publication |