[发明专利]旁路式解析和还原TNS协议中SQL命令的方法有效
申请号: | 201210261746.9 | 申请日: | 2012-07-26 |
公开(公告)号: | CN102801714A | 公开(公告)日: | 2012-11-28 |
发明(设计)人: | 徐明;孔飞;郑宁;张海平;徐建 | 申请(专利权)人: | 杭州电子科技大学 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L12/56;H04L29/08 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 杜军 |
地址: | 310018 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 旁路 解析 还原 tns 协议 sql 命令 方法 | ||
技术领域
本发明属于网络信息安全与计算机应用技术领域,涉及一种旁路式解析和还原TNS协议中SQL命令的方法。
背景技术
随着信息时代的到来,计算机和数字设备使用数量的逐年增加,数据库系统大量使用,尤其是适合大型应用的Oracle数据库。
oracle是殷墟出土的甲骨文(oracle bone inscriptions)的英文翻译的第一个单词,在英语里是“神谕”的意思。Oracle是世界领先的信息管理软件开发商,因其复杂的关系数据库产品而闻名。Oracle数据库产品为财富排行榜上的前1000家公司所采用,许多大型网站也选用了Oracle系统。因Oracle系统可移植性好、使用方便、功能强,适用于各类应用环境,其市场占有率一直处于领先地位。
数据库安全是信息安全的底线。用户对于Oracle的操作直接关系到数据库的安全,所以对用户数据库业务进行在线审计、行为回溯和风险控制有着十分重要的意义。
ORACLE客户端和服务端通讯采用的协议是TNS协议(Transparence Network Substrate,透明网络底层)。对使用TCP/IP协议传输的TNS数据包进行旁路监听,处理之后就可以得到每位用户的SQL操作命令。
发明内容
本发明针对现有技术的不足,提供了一种旁路式解析和还原TNS协议中SQL命令的方法。
实现发明的技术方案:一种旁路式解析和还原TNS协议中SQL命令的方法,采用旁路获取网络中客户端对Oracle数据库服务器发送的请求数据包,并其进行过滤、缓存和解析,最后还原出客户端完整的SQL命令。
步骤(1)利用开源库libpcap或winpcap中的函数pcap_findalldevs( )获取并输出所有网络设备接口号、名称和描述信息。
步骤(2)从步骤(1)中输出的所有网络设备接口号中选择需要捕获的网络设备接口号作为指定的数据捕获网络设备接口。
步骤(3)设置device参数为指定打开的网络设备接口名称,捕获数据的最大字节数参数snaplen为65535(可以保证捕获不同数据链路层的数据),网络设备接口工作模式参数promisc为1(即混杂模式),超时时间参数为1000毫秒,准备好函数出错返回NULL时用于传递错误消息的参数ebuf,调用libpcap或winpcap中的函数pcap_open_live( ),打开步骤(2)中指定的数据捕获网络设备接口,使其处于混杂模式捕获其连接网络的所有数据,并将函数pcap_open_live( )的返回值保存到变量adhandle中。
步骤(4)以变量adhandle为输入参数,调用libpcap或winpcap中的函数pcap_datalink( )判断捕获数据的数据链路层类型,若函数pcap_datalink( )的返回值为DLT_EN10MB,则捕获的数据链路层类型为以太网,进入步骤(5),否则结束。
步骤(5)设置包过滤参数packet_filte为“TCP”,优化参数optimize为1,网络掩码参数netmask为数据捕获网络设备接口所在网络的掩码,调用libpcap或winpcap中的函数pcap_compile()和pcap_setfilter(),编译包过滤表达式“TCP”进入驱动程序并设置使其起作用。
步骤(6)设置回调函数参数为自定义的packet_handler()函数,调用libpcap或winpcap中的pcap_loop( )函数,开始循环捕获网络数据帧,根据包过滤表达式对每个数据帧调用回调函数packet_handler()解析出其中的SQL语句。
回调函数packet_handler()的处理步骤包括:
步骤(1)根据以太帧格式,将指向以太帧指针加上14个字节偏移得到指向IP数据包头结构指针值,将其保存到变量ipHeader中。
步骤(2)根据IP协议数据包格式,读取ipHeader结构中第4-7个bit的首部长度字段值ipHeaderLen(默认值为5),计算出IP头部长度为ipHeaderLen×4字节(默认值为20字节)。
步骤(3)根据IP协议数据包格式,将指向IP数据包头结构指针加上IP数据包头长度(即ipHeaderLen×4)个字节偏移,得到指向TCP数据包头结构指针值,将其保存到变量TCPHeader中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210261746.9/2.html,转载请声明来源钻瓜专利网。