openplanning

Kiểm soát chuẩn hệ thống database Oracle (Audit Standard)

  1. Giới thiệu về kiểm soát hệ thống Oracle
  2. Kích hoạt chế độ kiểm soát chuẩn
  3. Thiết lập Audit với tham số DB
  4. Thiết lập Audit với tham số DB,EXTENDED
  5. Thiết lập Audit với tham số XML
  6. Thiết lập Audit với tham số XML,EXTENDED
  7. Xem các tham số liên quan
Chú ý: Bạn đang xem tài liệu nâng cao về cơ sở dữ liệu ORACLE. Nó sử dụng cho những người làm việc cao cấp kiểm soát hệ thống Database Oracle.

Tài liệu được biên soạn dưới dạng thô, và sẽ được chỉnh sửa tốt hơn trong thời gian tới.

1. Giới thiệu về kiểm soát hệ thống Oracle

Kiểm soát (Auditing) là giám sát và ghi lại (monitoring and recording) các hành động đã được cấu hình trong database. Bao gồm các hành động từ cả hai loại người dùng (user) database usernondatabase user.
Nonedatabase Users:
Nondatabase Users: Đây là các người dùng của một ứng dụng nào đó. Ứng dụng này sử dụng cơ sở dữ liệu Oracle, và vì vậy họ có thể thực thi các hành động đối với cơ sở dữ liệu. Các người dùng này cần được nhận dạng trong cơ sở dữ liệu sử dụng thuộc tính CLIENT_IDENTIFIER. Việc kiểm soát các người dùng này phức tạp hơn so với việc kiểm soát các người dùng của cơ sở dữ liệu (Database users).
Kiểm soát (Auditing) là một công việc cần thiết và quan trọng với người quản trị cơ sở dữ liệu. Nó là một công cụ hiệu quả chống lại các việc làm sai trái. Và luôn được thực hiện đầu tiên trong bất kỳ sáng kiến nào về an ninh trong Oracle.
Ngoài ra còn một số lý do khác cần kiểm soát:
  • Kiểm soát viên kiểm soát người dùng sử dụng đặc quyền tiếp cận các đối tượng nhạy cảm.
  • Kiểm soát lần theo vết (Audit Trail) ngăn chặn rất hiệu quả người dùng thực hiện những điều sai trái.
  • Audit Trail là việc làm bắt buộc nếu bạn phải điều tra để tìm hiểu vấn đề gì thực hiện sai trái.
  • Audit Trail cảnh báo bạn các hoạt động đáng ngờ, bạn có thể thực hiện phân tích những gì bạn chưa rõ.
  • Audit Trail là rất quan trọng khi định nghĩa điều khiển việc truy nhập, đặc biệt trong các ứng dụng hiện có.
  • Rất khó xác định "chính sách kiểm soát việc truy cập" sẽ không phá vỡ quy trình nghiệp vụ, trừ khi bạn biết tình trạng hiện tại và họ đang làm những gì.
Audit Trail (Kiểm soát lần theo dấu vết)
  • Các hành động kiểm soát tạo ra một Audit Trail, bao gồm các bản ghi cho phép tìm những gì đã được thực hiện trong cơ sở dữ liệu.
  • Căn cứ vào đó để biết những gì các user đã làm, và những đặc quyền nào đã sử dụng…
  • Đối với mỗi bản ghi có các thông tin quan trọng như:
    • Ai đã thực hiện
    • Thực hiện ở đâu (Schema nào hay Object nào)
    • Thực hiện khi nào.
    • Thực hiện như thế nào (Các câu lệnh SQL nào được thực hiện).
    • Cũng như các thông tin hữu ích khác trong việc điều tra giám sát.

2. Kích hoạt chế độ kiểm soát chuẩn

Standard Audit (Kiểm soát chuẩn) là cơ sở kiểm soát toàn diện và đầy đủ nhất trong cơ sở dữ liệu Oracle. Nó cho phép kiểm soát hành động (Action), loại hành động, đối tượng, đặc quyền (Privilege), user truy cập..
Có 2 giai đoạn liên quan đến sử dụng Standard Audit.
  • Kích hoạt cơ chế kiểm soát (Audit).
  • Xác định các chuyên mục (category) cần kiểm soát, tức là xác định các hành động nào sẽ được ghi lại dấu vết (Tạo ra Audit Trail).
Để kích hoạt chế độ kiểm soát cơ sở dữ liệu, bạn cần truy cập vào Oracle với user có đặc quyền sysdba.
sys/<password> as sysdba
Các dấu vết kiểm soát (Audit trail) có thể là một bảng dữ liệu hoặc 1 tập tin trên hệ điều hành. Nếu kiểm soát viên không có đặc quyền (privilege) DBA, tốt nhất nên lưu trữ các thông tin kiểm soát trên các tập tin. Có 4 cách để thiết lập cách thức lưu trữ "các dấu vết kiểm soát".
Tham số
Giải thích
DB
Dấu vết được lưu trữ trong bảng AUD$, chỉ chứa lệnh (statement) không phải văn bản đầy đủ.
DB,EXTENDED
Dấu vết được lưu trữ trong bảng AUD$, văn bản đầy đủ (Giá trị các biến (variable) đối với mỗi bản ghi..)
XML
Dấu vết được lưu trữ trên tập tin của hệ điều hành, theo định dạng XML, nội dung giống tham số DB.
XML,EXTENDED
Dấu vết được lưu trữ trên tập tin của hệ điều hành, theo định dạng XML, nội dung giống tham số DB,EXTENDED.

3. Thiết lập Audit với tham số DB

Trước hết, bạn cần kích hoạt chế độ kiểm soát với tham số là DB (audit_trail = DB), thực hiện các lệnh dưới đây:
* SQLPLUS *
alter system set audit_trail=db scope=spfile;

shutdown immediate;

startup
Trong ví dụ này chúng ta sẽ thực hiện kiểm soát (audit) bảng cho Scott.EMP, với tham số DB, điều đó có nghĩa là các "dấu vết kiểm soát" (audit trail) sẽ được lưu trữ trong cơ sở dữ liệu (Cụ thể là lưu trữ vào bảng AUD$).
Audit all on scott.emp by access;
Sử dụng một user khác để thể thực hiện một vài hành động trên bảng Scott.EMP, chẳng hạn update. Các hành động này sẽ được lưu lại trên bảng AUD$.
-- Test

update scott.EMP set sal=sal*0.95 where job='MANAGER';
Truy vấn (query):
column username format a9
column owner format a5
column obj_name format a10
column action_name format a11
column sql_text format a40

-- Query view DBA_AUDIT_TRAIL:
select username, owner, obj_name,
       action_name, sql_text from dba_audit_trail;

4. Thiết lập Audit với tham số DB,EXTENDED

Thiết lập chế độ kiểm soát với tham số audit_trail = DB,EXTENDED.
alter system set audit_trail=db,extended scope=spfile;

shutdown immediate;

startup
Thực hiện hành động update trên bảng Scott.EMP:
Audit all on scott.emp by access;
Sử dụng một user khác để thực hiện một hành động nào đó trên bảng Scott.EMP:
-- Update

update scott.EMP set sal=sal + 10 where job='MANAGER';
column username format a9
column owner format a5
column obj_name format a10
column action_name format a11
column sql_text format a40

-- Query view DBA_AUDIT_TRAIL:
select username, owner, obj_name,
       action_name, sql_text from dba_audit_trail;

5. Thiết lập Audit với tham số XML

Sử dụng tham số audit_trail = xml các "dấu vết kiểm soát (audit trail)" sẽ được lưu trữ vào các tập tin có định dạng XML.
alter system set audit_trail=xml scope = spfile;

shutdown immediate;

startup
Các tập tin Audit thường nằm trong thư mục adump. Tuy nhiên để biết chính xác, bạn có thể sử dụng lệnh sau để kiểm tra tên thư mục chứa các tập tin Audit.
show parameter audit_file_dest;
db12c_ora_2328_20171107022919280000831625.xml
<?xml version="1.0" encoding="UTF-8"?>
  <Audit xmlns="http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_2.xsd"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_2.xsd">
   <Version>11.2</Version>
<AuditRecord><Audit_Type>8</Audit_Type><EntryId>1</EntryId><Extended_Timestamp>2017-11-06T19:29:19.280000Z</Extended_Timestamp><DB_User>/</DB_User><OS_User>tran-pc\tran</OS_User><Userhost>WORKGROUP\TRAN-PC</Userhost><OS_Process>1848:2328</OS_Process><Terminal>TRAN-PC</Terminal><Instance_Number>0</Instance_Number><Returncode>0</Returncode><OSPrivilege>SYSDBA</OSPrivilege><DBID>1409002769</DBID>
<Sql_Text>CONNECT</Sql_Text>
</AuditRecord>
<AuditRecord><Audit_Type>4</Audit_Type><Session_Id>4294967295</Session_Id><StatementId>1</StatementId><EntryId>2</EntryId><Extended_Timestamp>2017-11-06T19:29:34.903000Z</Extended_Timestamp><DB_User>/</DB_User><Ext_Name>tran-pc\tran</Ext_Name><OS_User>tran-pc\tran</OS_User><Userhost>WORKGROUP\TRAN-PC</Userhost><OS_Process>1848:2328</OS_Process><Terminal>TRAN-PC</Terminal><Instance_Number>0</Instance_Number><Returncode>0</Returncode><OSPrivilege>SYSDBA</OSPrivilege><DBID>1409002769</DBID>
<Sql_Text>ALTER DATABASE OPEN</Sql_Text>
</AuditRecord>

6. Thiết lập Audit với tham số XML,EXTENDED

Khi bạn thiết lập kiểm soát với tham số Audit_trail = xml,extended, kết quả thu được giống với sử dụng tham số Audit_trail = xml, tuy nhiên trong các tập tin XML sẽ có thêm thông tin về các lệnh (statement) đã được thực thi.
alter system set audit_trail=os scope=spfile;

shutdown immediate;

startup
db12c_ora_3956_20171108021424022000979538.xml
<?xml version="1.0" encoding="UTF-8"?>
  <Audit xmlns="http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_2.xsd"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_2.xsd">
   <Version>11.2</Version>
<AuditRecord><Audit_Type>1</Audit_Type><Session_Id>1350961</Session_Id><StatementId>13</StatementId><EntryId>1</EntryId><Extended_Timestamp>2017-11-07T19:14:24.025000Z</Extended_Timestamp><DB_User>SCOTT</DB_User><OS_User>tran-pc\tran</OS_User><Userhost>WORKGROUP\TRAN-PC</Userhost><OS_Process>1856:3956</OS_Process><Terminal>TRAN-PC</Terminal><Instance_Number>0</Instance_Number><Object_Schema>SCOTT</Object_Schema><Object_Name>EMP</Object_Name><Action>6</Action><TransactionId>030017001E0E0000</TransactionId><Returncode>0</Returncode><Scn>17925302</Scn><DBID>1409002769</DBID>
<Sql_Text>Update Emp set Sal = Sal + 10 where job = &apos;MANAGER&apos;
</Sql_Text>
</AuditRecord>

7. Xem các tham số liên quan

Khi chế độ kiểm soát đã được thiết lập cho cơ sở dữ liệu. Bạn có thể kiểm tra tham số đang được sử dụng.
-- Xem tất cả các tham số trong cơ sở dữ liệu

show parameter
show parameter audit_trail;
Kiểm tra tên thư mục chứa các tập tin Audit sẽ được tạo ra.
show parameter audit_file_dest;
Tên thư mục chứa các tập tin Audit được lưu trữ trong tập tin spfile<SID>.ora.
Thay đổi thư mục chứa các tập tin Audit:
alter system set audit_file_dest='C:\newdir' SCOPE=SPFILE;