oracle security 03-implementing oracle database auditing

25
云和恩墨 成就所托 by 王朝阳 18516271611 [email protected] Implementing Oracle Database Auditing

Upload: zhaoyang-wang

Post on 02-Dec-2014

76 views

Category:

Documents


30 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

Implementing Oracle Database Auditing

Page 2: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

Objectives

After completing this lesson, you should be able to:• Describe DBA responsibilities for security and

auditing• Enable standard database auditing• Specify audit options • Review audit information• Maintain the audit trail

Page 3: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

Database Security

A secure system ensures the confidentiality of the data that it contains. There are several aspects of security:• Restricting access to data and services• Authenticating users• Monitoring for suspicious activity

Page 4: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

Monitoring for Compliance

Monitoring or auditing must be an integral part of your security procedures.Review the following:• Mandatory auditing• Standard database auditing• Value-based auditing• Fine-grained auditing (FGA)• SYSDBA (and SYSOPER) auditing

Page 5: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

Audit Tool Comparisons

Fixed set of data, including the SQL statement

SQL statements (INSERT, UPDATE, DELETE, and SELECT) based on content

Fine-grained auditing (FGA)

Administrator defined

Data changed by DML statements

Value-based auditing

Fixed set of dataPrivilege use including object access

Standard database auditing

What Is in the Audit Trail?

What Is Audited?Type of Audit

Page 6: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

Audittrail

Parameter file

Specify audit options.

Generate audit trail.

Standard Database Auditing

DBA Userexecutes

command.

Database

OS or XML audit trail

Audit options

Serverprocess

1

2

3

Enabledatabaseauditing.

Review auditinformation.

Maintain audittrail.

4

Page 7: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

Configuring the Audit Trail

Restart database after modifying this static initialization parameter.

ALTER SYSTEM SET AUDIT_TRAIL='XML' SCOPE=SPFILE;

Audit trail can be set to: • NONE• OS• DB• DB, EXTENDED• XML• XML, EXTENDED

Use AUDIT_TRAIL to enable database auditing.

Page 8: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

Uniform Audit Trails

DBA_AUDIT_TRAIL DBA_FGA_AUDIT_TRAIL

DBA_COMMON_AUDIT_TRAIL

EXTENDED_TIMESTAMP,PROXY_SESSIONID, GLOBAL_UID,INSTANCE_NUMBER, OS_PROCESS, TRANSACTIONID, SCN, SQL_BIND, SQL_TEXT

STATEMENTID,ENTRYID

AUDIT_TRAIL=DB, EXTENDED

Page 9: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

Specifying Audit Options

• SQL statement auditing:

• System-privilege auditing (nonfocused and focused):

• Object-privilege auditing (nonfocused and focused):

AUDIT select any table, create any trigger;

AUDIT select any table BY hr BY SESSION;

AUDIT table;

AUDIT ALL on hr.employees;

AUDIT UPDATE,DELETE on hr.employees BY ACCESS;

Page 10: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

Default Auditing

Privileges Audited by DefaultALTER ANY PROCEDUREALTER ANY TABLEALTER DATABASEALTER PROFILEALTER SYSTEMALTER USERAUDIT SYSTEMCREATE ANY JOB

CREATE ANY LIBRARYCREATE ANY PROCEDURECREATE ANY TABLECREATE EXTERNAL JOBCREATE PUBLIC DATABASE LINKCREATE SESSIONCREATE USERGRANT ANY OBJECT PRIVILEGE

GRANT ANY PRIVILEGEGRANT ANY ROLE DROP ANY PROCEDUREDROP ANY TABLEDROP PROFILEDROP USEREXEMPT ACCESS POLICY

Statements Audited by Default

SYSTEM AUDIT BY ACCESSROLE BY ACCESS

Page 11: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

Enterprise Manager Audit Page

Page 12: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

Using and Maintaining Audit Information

Disable audit options if you are not using them.

Page 13: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

Value-Based Auditing

User’s change is made.

The trigger fires. Audit record is created by the trigger.

Audit record is inserted into an audit

trail table.

A user makes a change.

Page 14: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

Fine-Grained Auditing

• Monitors data access on the basis of content• Audits SELECT, INSERT, UPDATE, DELETE, and MERGE

• Can be linked to one or more columns in a table or view

• May execute a procedure• Is administered with the DBMS_FGA package

employees

Policy: AUDIT_EMPS_SALARY

SELECT name, salaryFROM employeesWHEREdepartment_id = 10;

Page 15: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

FGA Policy

• Defines:– Audit criteria– Audit action

• Is created with DBMS_FGA .ADD_POLICY

dbms_fga.add_policy (object_schema => 'HR',object_name => 'EMPLOYEES',policy_name => 'audit_emps_salary',audit_condition=> 'department_id=10',audit_column => 'SALARY,COMMISSION_PCT',handler_schema => 'secure',handler_module => 'log_emps_salary',enable => TRUE,statement_types => 'SELECT,UPDATE');

SELECT name, job_idFROM employeesWHERE

department_id = 20;

SELECT name, salaryFROM employeesWHERE

department_id = 10;

SECURE.LOG_ EMPS_SALARY

employees

Not audited

Page 16: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

Audited DML Statement: Considerations

• Records are audited if the FGA predicate is satisfied and the relevant columns are referenced.

• DELETE statements are audited regardless of columns specified.

• MERGE statements are audited with the underlying INSERT, UPDATE, and DELETEgenerated statements.

UPDATE hr.employeesSET salary = 1000WHERE commission_pct = .2;

UPDATE hr.employeesSET salary = 1000WHERE employee_id = 200;

Not audited because none of the records involved are for department 10.

Page 17: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

FGA Guidelines

• To audit all rows, use a null audit condition.• To audit all columns, use a null audit column.• Policy names must be unique.• The audited table or view must already exist when you

create the policy.• If the audit condition syntax is invalid, an

ORA-28112 error is raised when the audited object is accessed.

• If the audited column does not exist in the table, no rows are audited.

• If the event handler does not exist, no error is returned and the audit record is still created.

Page 18: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

Data Dictionary Views

All FGA policies for objects in the current user schema

USER_AUDIT_POLICIES

All FGA policies in the databaseDBA_AUDIT_POLICIES

All FGA policies for objects that the current user can access

ALL_AUDIT_POLICIES

All FGA eventsDBA_FGA_AUDIT_TRAIL

DescriptionView Name

Page 19: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

SYSDBA Auditing

Users with SYSDBA or SYSOPER privileges can connect when the database is closed.• Audit trail must be stored outside the database.• Connections as SYSDBA or SYSOPER are always

audited.• You can enable additional auditing of SYSDBA or

SYSOPER actions with AUDIT_SYS_OPERATIONS.• You can control the audit trail with AUDIT_FILE_DEST.

Page 20: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

Maintaining the Audit Trail

The audit trail should be maintained with the followingbest-practice guidelines:• Review and store old records.• Prevent storage problems.• Avoid loss of records.

Page 21: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

Oracle Audit Vault

• Consolidate and secure audit data

– Oracle 9i Release 2 and higher

– SQL Server 2000, 2005– IBM DB2 UDB 8.5 & 9.2– Sybase ASE 12.5 - 15.0 – Secure and scalable– Cleanup of source Oracle

audit data• Centralized reporting

– Updated reports interface using widely popular Oracle Application Express

– Standard reports for compliance

– New custom reports• Alert on security threats

– Detect and alert on security relevant events

Oracle Database

IBM DB2

Microsoft SQL Server

Sybase ASE

Page 22: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

Quiz

Standard database auditing captures the before and after changes of a DML transaction.1. True2. False

Page 23: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

Quiz

Auditing of SYSDBA and SYSOPER actions is enabled by default.1. True2. False

Page 24: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

Summary

In this lesson, you should have learned how to:• Describe DBA responsibilities for security and

auditing• Enable standard database auditing• Specify audit options • Review audit information• Maintain the audit trail

Page 25: Oracle security 03-implementing oracle database auditing

云和恩墨 成就所托 by 王朝阳 18516271611 [email protected]

Q&A