CN112187763A - 使用安全网关对OracleTNS协议SQL执行进行审计和阻断方法和系统 - Google Patents

使用安全网关对OracleTNS协议SQL执行进行审计和阻断方法和系统 Download PDF

Info

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
Application number
CN202011003220.1A
Other languages
English (en)
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.)
Beijing Jingan Yun Xin Technology Co ltd
Original Assignee
Beijing Jingan Yun Xin 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 Beijing Jingan Yun Xin Technology Co ltd filed Critical Beijing Jingan Yun Xin Technology Co ltd
Priority to CN202011003220.1A priority Critical patent/CN112187763A/zh
Publication of CN112187763A publication Critical patent/CN112187763A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • 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
    • H04L63/0227Filtering policies
    • H04L63/0245Filtering 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

使用安全网关对OracleTNS协议SQL执行进行审计和阻断方法 和系统
技术领域
本发明涉及计算机数据库访问控制领域,尤其涉及一种用安全网关对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包结构
Figure BDA0002695034350000071
116b包结构
Figure BDA0002695034350000072
035e包结构
Figure BDA0002695034350000073
以上对本申请实施例所提供的一种使用安全网关对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执行进行审计和阻断的方法。
CN202011003220.1A 2020-09-22 2020-09-22 使用安全网关对OracleTNS协议SQL执行进行审计和阻断方法和系统 Pending CN112187763A (zh)

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)

* Cited by examiner, † Cited by third party
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 山东华软金盾软件股份有限公司 一种对数据库非法操作进行阻断的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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