论文部分内容阅读
商用数据库通讯协议解析是数据库安全关键技术要求的能力中最核心的一部分,其准确度和全面度直接地关系到数据库审计系统、防火墙等产品的效果,因此,常常是恶意攻击者的主要攻击对象。数据库通讯协议解析中最根本、最核心的部分是针对数据库SQL语句请求的精确解析,包括参数化的SQL语句、嵌套SQL语句和各种长SQL语句,并通过将解析出的SQL语句与SQL注入特征库、漏洞库等进行语句模式识别,准确过滤出高危客户端操作,为数据库审计等产品提供风险拦截和实时报警的技术保障。本文基于此目的,对商用数据库通讯协议解析进行了深入的研究。本文解析了 Oracle和 Caché两种商用数据库的通讯协议,这两种数据库的通讯协议细节都是非公开的,目前主流的数据库安全产品多数采用了网络旁路部署的方式,比如数据库审计系统,并且可实现对Oracle数据库通讯协议的部分解析,但关于 Caché数据库的通讯协议解析工作几乎是空白。本文通过对网络数据抓取、分析等过程提取客户端操作信息、SQL语句和服务器返回数据。首先,截取捕获网络应用层传输的包含数据库通讯协议数据包的数据帧;然后,通过反编译JDBC以及结合分析截获到的大量数据包,得出通讯协议数据包结构和语法结构解析流程。最后,通过大量的客户端SQL语句操作,测试所总结的语法解析规则的正确性,并做改进。本文不但弥补了现有Oracle通讯协议解析的缺陷,完成了对含有参数的SQL语句、超过255字节的SQL语句的解析和服务器返回数据包的解析,还完成了对 Caché数据库通讯协议的解析。论文的主要研究工作如下:(1)详细分析了 Oracle和 Caché两种商用数据库客户端与服务器之间的通讯过程和通讯协议数据包结构。(2)依据Oracle通讯协议TNS和 Caché数据库传输SQL语句方式和服务器响应SQL命令返回的数据包结构,总结通讯协议数据包语法结构的详细解析流程。(3)设计并实现商用数据库通讯协议解析工具,通过大量实验验证协议解析流程正确性,为数据库审计、防火墙优化等提供了依据。