Audit Database

Giảng viên: Trần Thị Kim Chi

1

Nội dùng

 Giới thiệu về Audit Database  Các hoạt động của Auditi  Database Auditing Models  Application Data Auditing  Additing trong SQL  Auditing trong Oracle

2

Giới thiệu Audit

 Audit = Ai

 giám sát(Audit): giám sát và ghi lại những hoạt động đã và đang xảy trong hệ thống một cách có chọn lọc. làm gì với dữ liệu nào khi nào và bằng cách nào (Who did what to which data when and how)

là giải

trình,

gọi

trình tắt trách nhiệm tìm ra và chứng minh

 Trách nhiệm giải (Accountability): nguồn gốc các hoạt động xảy ra trong hệ thống.

trình

3

 Hoạt động giám sát nhằm phục vụ cho hoạt động giải

Giới thiệu Audit Database

tài liệu, dữ liệu, quy trình, thủ tục, hệ thống

 Audit/auditing: quá trình kiểm tra và xác nhận các

 Nhật lý giám sát (Audit log): tài liệu có chứa tất cả các hoạt động đang được giám sát được sắp xếp theo thứ tự thời gian

4

 Mục tiêu giám sát: thiết lập các quy tắc kinh doanh, điều khiển hệ thống, các quy định của chính phủ, hoặc các chính sách bảo mật

Giới thiệu Audit Database

 Data audit: giám sát lịch sử những thay đổi dữ liệu được lưu trữ trong tập tin nhật ký hoặc các bảng (table) của cơ sở dữ liệu.

động cơ sở dữ liệu

 Database auditing: giám sát lịch sử của các hoạt

 Internal auditing: kiểm tra các hoạt động được thực hiện bởi các nhân viên của tổ chức giám sát bên trong hệ thống

5

 External auditing: : kiểm tra các hoạt động được thực hiện bởi các nhân viên của tổ chức giám sát bên ngoài hệ thống

Tại sao phải Audit Database

lên các dữ liệu (schema, bảng, dòng, …)

 Trách nhiệm giải trình từ những hành động xảy ra

 Ví dụ xóa dữ liệu từ một bảng

 Thông báo nếu có người dùng không được ủy quyền nhưng lại thao tác trên dữ liệu mà đòi hỏi phải có đủ quyền truy cập (truy cập vượt quyền)

6

 Kiểm tra hành động đáng ngờ (suspiciousactivity)

Tại sao phải Audit Database

 Giám sát và ghi lại các hoạt động xảy ra nhằm phát hiện các vấn đề trong quá trình định quyền và điều khiển truy cập

pháp cải thiện hiệu suất

 Thống kê tình hình truy xuất tài nguyên để có biện

truy cập

 Ví dụ: dựa vào các trường, bảng thường hay được

7

 Chọn cách đánh chỉ mục thích hợp để tăng hiệu suất.  giám sát để thỏa các yêu cầu chính sách pháp lý (compliance): thể hiện trách nhiệm với dữ liệu của khách hàng

Các chính sách(Compliances)

thủ và các hướng dẫn cần thiết khi giám sát

 Các chính sách đưa ra các quy định cần phải tuân

 Health Insurance Portability and Accountability Act

(HIPAA)

 Sarbanes-Oxley Act  Graham-Leach-Bliley Act (GLBA)

 Một số chính sách:

thực thi

 Các chính sách thường không mô tả công nghệ cần

8

 Cần xác định yêu cầu và lựa chọn công nghệ

Khi nào và giám sát những gì?

 giám sát tại mọi thời điểm từ khi hệ thống bắt đầu hoạt

động

 Khi nào nên giám sát?

 Việc giám sát có thể làm giảm hiệu suất của hệ thống  Chỉ nên giám sát những gì cần thiết

9

 giám sát những gì?

Khi nào và giám sát những gì?

ra những hoạt động cần phải giám sát:  Hoạt động của những người dùng có quyền  Đăng nhập và đăng xuất  Những thay đổi trong các application trigger và data

trigger

 Thay đổi quyền và mô tả thông tin của người dùng  Cấu trúc dữ liệu bị thay đổi  Các truy cập đọc và ghi trên những dữ liệu nhạy cảm  Những lỗi và ngoại lệ  Nguồn gốc của những hoạt động truy cập dữ liệu  Thời gian, tên chương trình, kích thước dữ liệu, câu

10

lệnh…

 Trong chính sách Sarbanes-Oxley, phần 404 có đưa

Nội dùng

 Giới thiệu về Audit Database  Các hoạt động của Auditi  Database Auditing Models  Application Data Auditing  Additing trong SQL  Auditing trong Oracle

11

Các hoạt động của Audit

được giám sát

 Đánh giá hiệu quả và đầy đủ của các thành phần

các thành phần được giám sát

 Đảm bảo tổ chức tuân thủ chính sách, thủ tục, quy định, pháp luật, và các tiêu chuẩn của chính phủ và ngành công nghiệp

 Xác định và xem lại độ tin cậy và tính toàn vẹn của

sát

12

 Lập kế hoạch, chính sách và thủ tục thực hiện giám

Các hoạt động của Audit

giám sát

 Lưu lại tất cả các thay đổi cho các thành phần được

giám sát mới

 Cung cấp tất cả các chi tiết giám sát cho tất cả nhân

viên công ty tham gia vào việc giám sát  Xuất bản hướng dẫn và thủ tục giám sát  Các hoạt động như liên lạc giữa các công ty và các

nhóm giám sát bên ngoài

13

 Cập nhật những thông tin đã audit và các quy định

Các hoạt động của Audit

nhà phát triển, và các nhà phân tích kinh doanh

 Hoạt động như một nhà tư vấn cho các kiến trúc sư,

ứng bởi các tổ chức được giám sát

 Tổ chức và thực hiện giám sát nội bộ  Đảm bảo tất cả các mục trong hợp đồng được đáp

14

 Xác định các loại giám sát sẽ được sử dụng  Xác định các vấn đề an ninh phải được giải quyết  Tư vấn cho Vụ Pháp chế

Auditing Environment

 giám sát tài chính  kiểm tra bảo mật

 Ví dụ giám sát:

và luật pháp của chính phủ

 giám sát cũng đo lường sự phù hợp với các quy định

 Môi trường giám sát  Môi trường cơ sở dữ liệu giám sát

15

 giám sát diễn ra trong một môi trường:

Auditing Environment

Các thành phần:  Mục tiêu: một giám sát mà không có một tập hợp các mục tiêu là vô dụng  Procedure-Thủ tục: thực thi theo các bước hướng dẫn và nhiệm vụ

tài

 People: giám sát viên, nhân viên, nhà quản lý  Các đơn vị được giám liệu, quy

sát: người, trình, hệ thống

16

Auditing Environment

trường giám sát chung

 Môi trường giám sát cơ sở dữ liệu khác với môi

17

 Các biện pháp an ninh là không thể tách rời

Auditing Process-Qui trình Audit

thông số kỹ thuật của nó

 Đảm bảo chất lượng (QA):  Đảm bảo hệ thống là không lỗi và hoạt động theo

18

 Quá trình giám sát: đảm bảo rằng hệ thống đang làm việc và tuân thủ các chính sách, quy định và pháp luật

Auditing Process-Qui trình Audit

suất hoạt động vào những thời điểm khác nhau

 Thực hiện giám sát: quan sát nếu có suy giảm hiệu

19

 giám sát quá trình dòng chảy:  Vòng đời phát triển hệ thống  Quá trình giám sát:  Hiểu được mục tiêu  Rà soát, xác minh và xác nhận hệ thống  Dẫn chứng kết quả

Auditing Process-Qui trình Audit

20

Auditing Process-Qui trình Audit

21

Quy trình giám sát

22

 Quy trình giám sát do NIST đưa ra

Auditing Objectives

 Cho phép giải trình những hành động hiện tại tham gia vào một schema, bảng, dòng riêng biệt, hay một nội dùng cụ thể nào đó.  Ngăn cản user khỏi hành động không thích hợp dựa trên trách

nhiệm phải giải trình đó.

 Điều tra các hoạt động đáng ngờ. Ví dụ, nếu một user không được phép đang xóa dữ liệu từ một bảng nào đó thì người quản trị bảo mật sẽ ghi lại tất cả những kết nối CDSL và tất cả những hành động xóa các dòng từ bảng trong CSDL dù thành công hay không thành công.

 Thông báo cho người giám sát rằng có user bất hợp phát đang thao tác hay xóa dữ liệu hay user có nhiều quyền hệ thống hơn sự cho phép.

23

 Giám sát và thu thập dữ liệu về các hoạt động CSDL cụ thể. Ví dụ, người quản trị CSDL có thể thu thập thống kê về thông tin các bảng đang được update, hay bao nhiêu users cùng trung cập vào thời điểm cực đỉnh.

Auditing Objectives

10 mục tiêu giám sát cơ sở dữ liệu:  Data integrity  Application users and roles  Data confidentiality  Access control  Data changes  Data structure changes  Database or application availability  Change control  Physical access  Auditing reports

24

Các vấn đề với giám sát

giám sát bên ngoài

 giám sát là công cụ, không phải là mục tiêu  Nên sử dụng kết hợp giữa giám sát bên trong và

 Lưu trữ và bảo mật thông tin audit log  Tự động hóa và giám sát hoạt động giám sát  Kích thước của các audit log lớn, cần sử dụng các công cụ kho dữ liệu (data warehouse) và khai phá dữ liệu (data mining) để quản lý và phân tích dữ liệu audit log

25

 Vấn đề tính riêng tư trong audit log

Các yêu cầu của giám sát trong CSDL

ngoài CSDL

 Có khả năng hoạt động độc lập, cho phép theo dõi và ghi nhận lại tất cả các hoạt động trong hệ thống kể cả những hoạt động của người quản trị hệ thống.  Có khả năng lưu trữ audit log một cách an toàn bên

 Có khả năng thu thập và kết hợp các hoat động xảy ra ở nhiều loại DBMS (Database management systems) khác nhau.

SQL ứng với mỗi DBMS

26

 Không phụ thuộc vào DBMS và cú pháp câu lệnh

Các yêu cầu của giám sát trong CSDL

chỉnh sửa hoặc xóa dữ liệu trong audit log.

 Có khả năng ngăn chặn người quản trị hệ thống

27

 Có khả năng đưa ra những cảnh báo kịp thời cho người quản trị hệ thống khi có những bất thường xảy ra trong hệ thống

Các phương pháp giám sát

28

 giám sát bằng application server log  giám sát mức ứng dụng(Application audit)  giám sát bằng trigger  giám sát bằng câu lệnh(command)

Các đối tượng cần giám sát

29

 Các hoạt động đăng nhập/đăng xuất trong CSDL  Username  Client IP mà đăng nhập không thành công  Chương trình(source program)  Thời gian đăng nhập và đăng xuất  giám sát nguồn gốc truy cập CSDL  Địa chỉ IP và host name được dùng để kết nối CSDL  Chương trình nào kết nối CSDL

Các đối tượng cần giám sát

việc  Các truy cập CSDL ngoài giờ làm việc đều đáng nghi

ngờ

 Cần ghi lại mọi truy cập CSDL ngoài giờ làm việc trừ

những thao tác đã được định giờ

 giám sát các hoạt động truy cập CSDL ngoài giờ làm

liệu (Data Definition Language –DDL)  Rất quan trọng vì trong nhiều trường hợp DDL có thể

được dùng để phá hoại hệ thống

30

 Được quy định trong chính sách HIPAA  Phương pháp: dùng chức năng built-in của DBMS, sử dụng hệ thống giám sát bên ngoài, so sánh snapshot của lược đồ(shema) theo thời gian

 giám sát các thao tác thuộc ngôn ngữ định nghĩa dữ

Các đối tượng cần giám sát

 Các lỗi như đăng nhập thất bại, SQL Injection dấu hiệu của sự tấn công  Các ứng dụng có thể chứa lỗi và gây ra lỗi: ví dụ sinh

ra những câu SQL sai cú pháp  Có thể bị lợi dụng để tấn công  Sửa lỗi ứng dụng

 Các lỗi trong thao tác với CSDL

stored procedure  Kẻ tấn công có thể giấu những đoạn mã độc hại vào

trigger hay stored procedure

31

 giám sát trên sự thay đổi mã nguồn của trigger và

Các đối tượng cần giám sát

các thuộc tính bảo mật khác  Việc giám sát này là bắt buộc: tấn công vượt quyền  Các thông tin cần chú ý:

 Thêm/Xóa trên User/Login/Role  Thay đổi quyền của Role  Thay đổi quyền hoặc role của người dùng  Thay đổi password

32

 giám sát trên sự thay đổi quyền của người dùng và

Các đối tượng cần giám sát

 Ghi nhận thay đổi giữa giá trị cũ và giá trị mới trong mỗi thao tác thuộc ngôn ngữ thao tác dữ liệu(Data Manipulation Language –DML)

 Cần lọc dữ liệu nào quan trọng mới giám sát vì dữ liệu lớn (vídụ: CSDL có 100 bảng với

giám sát sẽ rất khoảng1 triệu transaction/ngày…)  giám sát sự thay đổi của audit log

 Audit log cần được bảo vệ và không cho phép thay đổi  Phương pháp: sử dụng các chức năng built-in của

CSDL hoặc một hệ thống giám sát bên ngoài khác

33

 giám sát sự thay đổi của các dữ liệu nhạy cảm

Nội dùng

 Giới thiệu về Audit Database  Các hoạt động của Auditi  Database Auditing Models  Application Data Auditing  Additing trong SQL  Auditing trong Oracle

34

Các mô hình giám sát-Auditing Models

35

Simple Auditing Model 1

mô hình giám sát

 Dễ hiểu và phát triển  Các đơn vị đăng ký giám sát trong các kho lưu trữ

xuất

 Điều khiển cột:

 Giữ chỗ cho dữ liệu được chèn tự động khi

một bản ghi được tạo hay cập nhật

36

 Theo dõi các hoạt động theo thứ tự thời gian  Đối tượng: người sử dụng, bảng, hoặc cột  Hoạt động: DML giao dịch hoặc đăng nhập và đăng

Simple Auditing Model 1

37

Simple Auditing Model 1

38

Simple Auditing Model 2

lượng dữ liệu được lưu trữ

 Chỉ lưu trữ các giá trị cột thay đổi  Có một cơ chế lọc và lưu trữ dữ liệu làm giảm số

hiện trên dữ liệu

 Không đăng ký một hành động đã được thực

bảng

39

 Rất lý tưởng cho giám sát một hoặc hai cột của một

Simple Auditing Model 2

40

Advanced Auditing Model

41

 Được gọi là “advanced" vì tính linh hoạt của nó  Phức tạp hơn  Đăng ký tất cả các thực thể: mức độ giám sát tốt hơn  Có thể điều khiển người dùng, hành động, bảng, cột

Advanced Auditing Model

42

Advanced Auditing Model

43

Historical Data Model

tài chính

44

 Được sử dụng khi lưu trữ của cả hàng được yêu cầu  Thường được sử dụng trong hầu hết các ứng dụng

Auditing Applications Actions Model

45

Nội dùng

 Giới thiệu về Audit Database  Các hoạt động của Auditi  Database Auditing Models  Application Data Auditing  Additing trong SQL  Auditing trong Oracle

46

Application Data Auditing

Mục tiêu:  Hiểu được sự khác biệt giữa các audit kiến trúc,

giám sát hành động và thay đổi

47

 Tạo và thực hiện trigger trong Oracle  Tạo và thực hiện trigger trong SQL Server

DML Action Auditing Architecture

 cấp hàng  mức độ cột

 Ngôn ngữ thao tác dữ liệu (DML): các công ty sử dụng kiến trúc, giám sát cho những thay đổi DML  Thay đổi DML có thể được thực hiện ở hai cấp độ:

48

 Fine-grained auditing (FGA)

DML Action Auditing Architecture

49

DML Action Auditing Architecture

50

giám sát trong SQL Server

 SQL Server Triggers  Implementation of an Historical Model with SQL

Server

51

SQL Server Triggers

 CREATE TRIGGER DDL statement: creates

a trigger

 Trigger condition:

 Prevents a trigger from firing  UPDATE() and COLUMNS_UPDATE()

functions  Logical tables:

 DELETED contains original data  INSERTED contains new data

52

SQL Server Triggers

 Restrictions—Transact-SQL statements not

allowed:  ALTER and CREATE DATABASE  DISK INIT and DISK RESIZE  DROP DATABASE and LOAD DATABASE  LOAD LOG  RECONFIGURE  RESTORE DATABASE  RESTORE LOG

53

Implementation of an Historical Model with SQL Server  Create a history table:

 Same structure as original table  HISTORY_ID column

 Create a trigger: inserts original row into the

HISTORY table

54

Auditing Server Activity with Microsoft SQL Server 2000  Way to track and log activity for each SQL

Server occurrence

 Must be a member of the sysadmin fixed

server role

 Two types of auditing for server events:

 Auditing  C2 auditing

 Auditing affects performance and can be

costly

55

Implementing SQL Profiler

 User interface for auditing events  For each event you can audit:  Date and time of the event  User who caused the event to occur  Type of event  Success or failure of the event  Origin of the request  Name of the object accessed  Text SQL statement

56

Implementing SQL Profiler (continued)

57

Security Auditing with SQL Server

 Steps for setting security auditing level:

 Open Enterprise Manager  Expand the appropriate SQL Server group  Right-click on the desired server  Click Properties  On the security tab, select the desired security

level

58

Security Auditing with SQL Server (continued)

59

Security Auditing with SQL Server (continued)  Auditable events:  ADD DB USER  ADD LOGIN TO SERVER ROLE  ADD MEMBER TO DB ROLE  ADD ROLE  APP ROLE CHANGE PASSWORD  BACKUP/RESTORE  CHANGE AUDIT

60

Security Auditing with SQL Server (continued)  Auditable events (continued):

 DBCC  LOGIN  LOGOUT  LOGIN CHANGE PASSWORD  LOGIN CHANGE PROPERTY  LOGIN FAILED  Login GDR (GRANT, DENY, REVOKE)

61

Security Auditing with SQL Server (continued)  Auditable events (continued):  Object Derived Permissions  Object GDR  Object Permissions  Server Start and Stop  Statement GDR  Statement Permission

62

Security Auditing with SQL Server (continued)

63

Security Auditing with SQL Server (continued)  New trace information:  A name for the trace  The server you want to audit  The base template to start with  Where to save the audit data, either to a file or

to a database table

 A stop time, if you don’t want the trace to run

indefinitely

64

Security Auditing with SQL Server (continued)

65

Security Auditing with SQL Server (continued)

66

Security Auditing with SQL Server (continued)  Steps to add Login Change Password event

 Expand the Security Audit node under

Available event classes

 Click Audit Login Change Password Event  Click the Add button

67

Security Auditing with SQL Server (continued)

68

Data Definition Auditing

 Audit DDL statements:

 Object:Created  Object:Deleted  Will audit all CREATE and DROP statements

69

Data Definition Auditing (continued)

70

Database Auditing with SQL Server

71

Database Errors Auditing with SQL Server

72

Nội dùng

 Giới thiệu về Audit Database  Các hoạt động của Auditi  Database Auditing Models  Application Data Auditing  Additing trong SQL  Auditing trong Oracle

73

giám sát trong Oracle

74

 Giới thiệu  Các loại giám sát  Các công cụ giám sát trong Oracle  Kết luận

Giới thiệu giám sát trong Oracle

công

 Oracle giám sát các người dùng:  giám sát các truy cập thành công hoặc không thành

cả các người dùng

 giám sát 1 người dùng, 1 nhóm người dùng hoặc tất

cấp truy cập (access level).

 giám sát ở cấp phiên làm việc(session level) hoặc

75

 giám sát sẽ làm giảm hiệu suất của hệ thống  Chỉ nên giám sát những gì cần thiết

Giới thiệu giám sát trong Oracle

hành (OS) để tiết kiếm tài nguyên củaCSDL

 Dữ liệu giám sát nên được ghi trên file của hệ điều

76

 Các tham số khởi tạo AUDIT_TRAIL trong init.ora

Các loại giám sát trong Oracle

77

 Statement Auditing  Privilege Auditing  Schema Object Auditing  Fine-grained auditing

Statement auditing

câu lệnh trên từng đối tượng

 Statement auditing:giám sát những lệnh hoặc nhóm

các câu lệnh CREATE và DROP TABLE.

 Câu lệnh DML: Ví dụ AUDIT SELECT TABLE giám sát tất cả câu lệnh SELECT trên bảng và trên view  Có thể giám sát trên mọi người dùng hoặc trên 1

nhóm người dùng cụ thể hoặc trên Role

78

 Câu lệnh DDL: Ví dụ AUDIT TABLE giám sát tất cả

Privilege auditing

 Privilege auditing: giám sát những quyền hệ

thống  AUDIT SELECT ANY TABLE sẽ giám sát mọi lệnh được tạo ra từ những người dùng sử dụng quyền SELECT ANY TABLE

 Trường hợp cả statement và privilege cùng được

giám sát thì chỉ 1 audit record được tạo ra.

79

auditing  Statement auditing: AUDIT TABLE CREATE, ALTER, DROP (TABLE) đều được giám sát  Privilege auditing: AUDIT CREATE TABLE chỉ giám sát câu lệnh CREATE (TABLE)

 Privilege auditing có độ tập trung hơn statement

Schema Object Auditing

thể, ví dụ AUDIT SELECT ON employees. (Rất được chú trọng). Schema object auditing luôn áp dụng cho tất cả các user.

 Kiểm tra câu lệnh cụ thể trên đối tượng schema cụ

 Table  View  Procedure  Trigger  Function  Package  Privilege auditing có độ ưu tiên thấp hơn các schema

80

object auditing

 Giám sát trên những đối tượng củaSchema:

Schema Object Auditing

Ví dụ:  Thực hiện giám sát câu lệnh SELECT trên Employee

AUDIT SELECTON Employee;

 Tạo view Emp_Name và giám sát câu lệnh SELECT

CREATE VIEW Emp_NameAS SELECT EName FROM Employee; AUDIT SELECTON Emp_Name;

81

 Thực hiện câu lệnh truy vấn trên view Emp_Name SELECT * FROM Employee_Name;

Fine-grained Auditing

nội dung của dữ liệu đó.

 Kiểm tra dữ liệu truy xuất và các hoạt động dựa trên

82

 Ví dụ: Sử dụng DBMS_FGA, người quản trị bảo mật tạo ra một chính sách kiểm tra trên một bảng. Nếu bất kì dòng nào trả về từ câu lệnh DML thỏa điều kiện kiểm tra thì một mục về sự kiện kiểm tra sẽ được chèn vào trong audit trail.

Các công cụ giám sát trong Oracle

83

 Standard Auditing  Fine-Grained Auditing

Standard Auditing Kích hoạt Standard Auditing  Bất cứ database user hợp pháp nào cũng có thể thiết lập lựa chọn giám sát đối với câu lệnh, quyền và đối tượng bất cứ khi nào. Tuy nhiên hệ CSDL Oracle không sinh thông tin audit cho Standart database audit trail trừ khi CSDL giám sát được kích hoạt. Người quản trị bảo mật thường có trách nhiệm điều khiển việc giám sát này.

84

Standard Auditing Kích hoạt Standard Auditing  Auditing là chức năng mặc định trong Oracle server. Các tham số khởi tạo ban đầu ảnh hưởng đến hành vi của nó có thể được xem bằng cách sử dụng câu lệnh. SQL> SHOW PARAMETER AUDIT NAME TYPE VALUE -------- ---------------------- -------------------- audit_file_dest string C:\ORACLEXE\APP\ORACLE\

ADMIN\XE\ADUMP

85

audit_sys_operations boolean FALSE audit_trail string NONE

Standard Auditing  Chức năng Audit mặc định bị bất hoạt, nhưng có thể kích hoạt nó bằng cách thiết lập giá trị cho tham số AUDIT_TRAIL

xml,extended }

 AUDIT_TRAIL = { none | os | db | db,extended | xml |

giám sát được sẽ được lưu trong database audit trail (SYS.AUD$).

 Trong đó:  none or false – chức năng giám sát bị bất hoạt.  db or true – Bật chức năng giám sát và các bản ghi

sát được sẽ được lưu như file OS có định dạng XML.86

 xml- Bật chức năng giám sát với các bản ghi giám

Standard Auditing  os- Bật chức năng giám sát với các bản ghi giám sát

được ghi vào operating system audit trail.

hoạt hay bất hoạt giám sát các hoạt động của những user kết nối vào hệ thống với quyền SYSDBA hay SYSOPER, bao gồm user SYS. Khi đó tất cả các bản ghi giám sát được ghi vào OS audit trail.

 Tham số AUDIT_SYS_OPERATIONS dùng để kích

87

 Tham số AUDIT_FILE_DEST đặc tả đường dẫn cho audit trail khi các lựa chọn OS, XML, EXTENDED được sử dụng. Nó cũng là vị trí lưu các bản ghi giám sát khi tham số AUDIT_SYS_OPERATIONS = true

Standard Auditing Để kích hoạt chức năng giám sát, làm theo các bước sau  SQL> ALTER SYSTEM SET audit_trail=db SCOPE=SPFILE;  System altered.  SQL> SHUTDOWN  Database closed.  Database dismounted.  ORACLE instance shut down.  SQL> STARTUP  ORACLE instance started.  Database mounted.  Database opened.  SQL>

88

Standard Auditing Kích hoạt lựa chọn Standard Auditing  Để sử dụng lệnh AUDIT thiết lập lựa chọn về câu lệnh thiết phải có quyền AUDIT và quyền thì bạn nhất SYSTEM. Còn để thiết lập các lựa chọn giám sát đối tượng bạn phải làm chủ đối tượng bị giám sát hay có quyền AUDIT ANY.

 BY SESSION/ BY ACCESS

89

 Lệnh AUDIT thiết lập lựa chọn giám sát câu lệnh và quyền có thể bao gồm mệnh đề BY để cụ thể danh sách những user hay application proxy để giới hạn tầm vực của câu lệnh và lựa chọn giám sát quyền.

Standard Auditing Kích hoạt lựa chọn Standard Auditing  BY SESSION:  Ghi một bản ghi đơn cho tất cả các câu lệnh SQL cùng loại thực thi trên cùng những đối tượng schema trong cùng một session. Tuy nhiên nếu sử dụng operating system trail cho theo dấu giám sát (khi đó tham số AUDIT_FILE_DEST được gán giá trị OS), thì CSDL sẽ viết nhiều mục vào file theo dấu ngay cả khi bạn sử dụng mệnh đề BY SESSION.

90

Standard Auditing Kích hoạt lựa chọn Standard Auditing BY ACCESS:  Ghi một bản ghi cho mỗi lần truy xuất. Nếu đặc tả lựa chọn câu lệnh hay quyền hệ thống mà giám sát câu lệnh DDL thì CSDL sẽ tự động giám sát theo BY ACCESS không quan tâm bạn sử dụng mệnh đề BY SESSION hay BY ACCESS. Ngoài ra thì nếu không đặc tả thì BY SESSION là mặc định.

 WHENEVER

SUCCESSFUL/ WHENEVER

NOT

SUCCESSFUL

91

 WHENEVER SUCCESSFUL giám sát những lệnh thành công.  WHENEVER NOT SUCCESSFUL giám sát những lệnh thất bại hay kết quả lỗi. Nếu loại bỏ hai mệnh đề này thì Oracle cũng sẽ ghi lại sự giám sát không quan tâm câu lệnh có thành công hay không.

Standard Auditing Bất hoạt lựa chọn Standard Auditing  Câu lệnh NOAUDIT để tắt các lựa chọn giám sát của

Oracle 10G.

 Mệnh đề WHENEVER để tắt các giám sát đối với các câu lệnh được thực hiện thành công hay không thành công. Nếu không sử dụng mệnh đề đó thì chức năng giám sát sẽ tắt cả đối với trường hợp thành công hay thất bại.

trong câu lệnh NOAUDIT.

92

 Mệnh đề BY SESSION/BY ACCESS không được hỗ trợ

Standard Auditing Điều khiển sự phát triển và kích cỡ của Standard Audit Trail  Nếu audit trail đầy dẫn tới không một bản ghi giám sát nào được ghi thêm vào thì những câu lệnh AUDIT không thể thực thi thành công cho tới khi audit trail trống trở lại. Do đó, người quản trị bảo mật phải điều khiển sự phát triển và kích cỡ của audit trail.

93

Standard Auditing Điều khiển sự phát triển và kích cỡ của Standard Audit Trail  Khi chức năng giám sát được kích hoạt và các bản ghi giám sát được sinh ra thì dung lượng của audit trail phụ thuộc hai yếu tố:

dụng phương pháp:

94

 Số lựa chọn giám sát được sử dụng.  Tần số thực hiện các câu lệnh được giám sát.  Để điều khiển sự phát triển của audit trail, bạn có thể sử

 Kích hoạt và bất hoạt giám sát CSDL. Nếu nó được kích hoạt thì các bản ghi giám sát được sinh ra và lưu trữ trong audit trail. Nếu nó bất hoạt thì các bản ghi sẽ không được sinh ra.

Standard Auditing Điều khiển sự phát triển và kích cỡ của Standard Audit Trail  Chọn lọc kĩ những lựa chọn giám sát được kích hoạt. Nếu nhiều lựa chọn giám sát được kích hoạt thì những bản ghi giám sát không cần thiết có thể làm đầy audit trail.

thể được thực hiện bằng hai cách khác nhau:  Nhà quản trị bảo mật làm chủ tất cả các đối tượng và quyền hệ

thống AUDIT ANY không bị cấp cho bất kì một user nào khác.

95

 Tất cả các đối tượng chứa trong những schema mà không tương ứng với database user thực sự (user đó không được cấp quyền CREATE SESSION) và người quản trị bảo mật là user duy nhất có quyền AUDIT ANY.

 Quản lí chặt khả năng giám sát đối tượng. Điều đó có

 Xóa một số bản ghi trong audit trail để vừa giải phóng

Standard Auditing Điều khiển sự phát triển và kích cỡ của Standard Audit Trail  Ví dụ:

Xóa toàn bộ bản ghi trong audit trail: DELETE FROM SYS.AUD$; Xóa toàn bộ bản ghi được sinh ra do kết quả của việc giám sát bảng emp: DELETE FROM SYS.AUD$

WHERE obj$name = ‘EMP’;

96

 Chú ý: Chỉ có user SYS (user có quyền DELETE ANY TABLE), hay user được SYS gán quyền DELETE trên SYS.AUD$ mới có thể thực hiện những câu lệnh trên.

Cú pháp câu lệnh giám sát

audit::=

Audit {statement_option| privilege_option} [by user] [by {session|access}] [whenever {successful | unsuccessful}]

phần bắt buộc, và các phần khác thì không bắt buộc. 97

 Trong đó, statement_option và privilege_option là

Cú pháp câu lệnh giám sát

sql_statement_clause::=

quyền hệ thống và câu lệnh để giám sát hơn là nêu chung qua các role hoặc shortcuts.

98

 Chú ý: Oracle khuyên rằng nên đặc tả lựa chọn

Cú pháp câu lệnh giám sát

auditing_by_clause::=

99

 Giám sát chỉ những câu lệnh SQL gọi bởi những user cụ thể. Nếu không sử dụng mệnh đề này thì Oracle sẽ giám sát câu lệnh của tất cả user.

Cú pháp câu lệnh giám sát

schema_object_clause::=

schema.

 Giám sát các hoạt động trên những đối tượng

 Object_option: đặc tả hoạt động cụ thể cho việc giám sát. Ví dụ như ALTER, COMMENT, AUDIT, DELETE, EXECUTE, GRANT, INSERT, READ,…

100

options cho các loại đối tượng.

 ALL: là một shortcut tương ứng với tất cả các object

Cú pháp câu lệnh giám sát

auditing_on_clause::=

biệt được giám sát.

101

 auditing_on_clause: đặc tả đối tượng schema riêng

Cú pháp câu lệnh giám sát

auditing_on_clause::=

 ON DEFAULT: thiết lập những lựa chọn đối tượng cụ thể trở thành những lựa chọn đối tượng mặc định cho những đối tượng được tạo ra sau đó. Sau khi thiết lập những lựa chọn giám sát mặc định, bất kì đối tượng nào được tạo ra sau đó thì được giám sát tự động với những lựa chọn đó. Những lựa chọn giám sát mặc định cho một view luôn là sự kết hợp của lựa chọn giám sát cho bảng cơ sở của view đó. Có thể xem lựa chọn giám sát mặc định hiện tại bằng cách truy vấn ALL_DEF_AUDIT_OPTS.

102

 Khi thay đổi lựa chọn giám sát mặc định, lựa chọn giám sát cho những đối tượng được tạo lúc trước vẫn giữ nguyên. Bạn có thể thay đổi lựa chọn giám sát cho đối tượng đã tồn tại chỉ bằng đặt tả đối tượng trong mệnh đề ON của câu lệnh AUDIT.

Cú pháp câu lệnh giám sát

noaudit::=

103

Fine-grained Auditing (FGA)

 Fine-grained auditing (FGA) đặt ra nhiều điều kiện giám sát chi tiết hơn. Ta không cần phải thiết lập thông số cho AUDIT_TRAIL để kích hoạt chức năng này, mà chỉ cần tạo ra các chính sách FGA rồi áp dụng chúng trên các hoạt động hay các đối tượng cụ thể mà ta muốn giám sát.

 Những bản ghi của FGA sẽ lưu trong bảng SYS.FGA_LOG$ và được truy cập thông qua view DBA_FGA_AUDIT_TRAIL.

104

 Cơ chế này trong cơ sở dữ liệu ngăn chặn người dùng khỏi việc cố gắng tìm cách truy vấn vòng để không bị giám sát.

Fine-grained Auditing (FGA)

Ưu thế của Fine-grained Auditing so với Trigger:  Fine-grained auditing thỏa mãn những nhu cầu bằng cách cung cấp sự hiệu quả vượt lên trên phương pháp trigger. Trigger phải gánh chịu quá trình gọi hàm PL/SQL khi mỗi hàng được xử lí và tạo ra một bản ghi audit chỉ khi một cột thích hợp bị thay đổi bởi một câu lệnh DML.

105

 Mặt khác, một chính sách fine-grainned auditing không phải gánh chịu chi phí cho mỗi hàng. Nó chỉ giám sát một lần cho mỗi chính sách. Cụ thể, nó sẽ giám sát khi một cột thích hợp cụ thể bị tác động bởi một loại lệnh DML xác định, hoặc bị thay đổi bởi câu lệnh hoặc nằm trong tiêu chuẩn chọn lọc của nó

Fine-grained Auditing (FGA)

Chính sách trong Fine-grained Auditing:  Chính sách FGA có thể theo dõi việc truy xuất dữ liệu dựa trên nội dung của dữ liệu đó. Sử dụng chính sách, ta có thể chỉ rõ cột nào và điều kiện khi nào ta mới cần phải ghi lại việc truy xuất đó. Ta cũng có thể cung cấp thêm tên hàm mà ta muốn thực thi khi một sự kiện giám sát xảy ra. Hàm đó có thể nhắc nhở hoặc báo động cho người quản trị hay xử lí lỗi và các bất thường.

106

Fine-grained Auditing (FGA)

Hàm xử lí sự kiện:  Trong chính sách FGA có thể xác định điều kiện khi nào ta truy xuất dữ liệu sẽ gây ra một trigger giám sát. Những chính sách đó có thể sử dụng các xử lí sự kiện uyển chuyển để nhắc nhỏ nhà quản trị khi sự kiện trigger xảy ra.

107

 Ví dụ, một công ty có thể cho phép nhân viên HR truy cập thông tin về lương mà không bị giám sát, nhưng khi làm việc với số lương lớn hơn $500k thì sẽ bị giám sát. Khi đó việc đó xảy ra hệ thống sẽ cảnh báo cho nhà quản trị.

Fine-grained Auditing (FGA)

Hàm xử lí sự kiện:  Cơ chế thực hiện cảnh báo đó được thực hiện nhờ vào một

hàm:

PROCEDURE fname(

object_schema VARCHAR2, object_name VARCHAR2, policy_name VARCHAR2)

AS ...  Trong đó:

 fname: tên của thủ tục  object_schema: tên của schema chứa bảng bị giám sát.  object_name: tên của bảng bị giám sát.  policy_name: tên của chính sách

108

Fine-grained Auditing (FGA)

liên quan trong Fine-grained

Hàm và các cột Auditng:  Để hiện thực thêm uyển chuyển, ta có thể thêm vào các hàm tự định nghĩa để đưa ra điều kiện cho chính sách và xác định cột nào cần được giám sát (cột liên quan) để tinh lọc chính sách giám sát. Ví dụ, hàm đó có thể tạo ra một bản ghi giám sát chỉ khi mức lương lớn hơn $250k bị truy cập.

109

 Chỉ rõ cột liên quan có thể giúp giảm các trường hợp sai cũng như là các bản ghi không cần thiết, bởi vì việc giám sát chỉ cần được thực hiện khi một cột cụ thể được tham khảo đến trong câu truy vấn.

Fine-grained Auditing (FGA)

liên quan trong Fine-grained

Hàm và các cột Auditng:  Ví dụ, một công ty có thể chỉ mong muốn ghi lại sự truy cập thông tin về lương khi tên của nhân viên cũng bị truy cập, bởi vì nếu chỉ xem thông tin về lương không mà không biết tên người sở hửu số lương đó cũng vô nghĩa. Ta cũng có thể chỉ rõ rằng việc giám sát chỉ xảy ra khi tất cả các cột liên quan điều được tham khảo đến, hoặc chỉ một trong các cột liên quan được tham khảo.

110

 Trong trường hợp nhiều hơn một cột liên quan được chỉ định, Oracle Database sẽ sinh ra một bản ghi giám sát nếu câu lênh SQL tham khảo đến bất kì cột nào trong những cột được giám sát đó.

Fine-grained Auditing (FGA)

liên quan trong Fine-grained

111

Hàm và các cột Auditng:  Điều kiện giám sát NULL:  Để đảm báo việc giám sát các hành động cụ thể (statement_types) ảnh hưởng tới những cột được chỉ định rõ (audit_column), đặc tả điều kiện giám sát (audit_condition) là NULL, điều đó được hiểu như là một điều kiện đúng. Dạng điều kiện cũ “1=1” không còn được sử dụng như trong Oracle 9i vì nó không có được kết quả mong muốn một cách đáng tin cậy. NULL sẽ vẫn tạo ra được sự giám sát kể cả khi không có dòng nào được xử lí, do đó tất cả mọi hoạt động trên cột liên quan (audit_column) với chính sách đó đều được ghi lại.

Fine-grained Auditing (FGA)

liên quan trong Fine-grained

Hàm và các cột Auditng: Lưu ý:  Sử dụng chuỗi rỗng không tương đương với giá trị

NULL và sẽ dẫn đến sự giám sát đáng tin cậy.  Nếu NULL hoặc không có điều kiện giám sát nào

được đặc tả, thì bất kì hành động nào tác động lên một bảng thỏa chính sách đó đều khiến cho một bản ghi giám sát được tạo ra, dù cho có không có dòng nào được trả về từ câu truy vấn.

112

Gói DBMS_FGA trong Oracle

 Gói DBMS_FGA cung cấp chức năng bảo mật FGA. Để có thể quản lý các chính sách giám sát, ta cần phải có quyền thực thi trên DBMS_FGA (EXCUTE ON DBMS_FGA)

113

 Thủ tục ADD_POLICY  Thủ tục này dùng để tạo ra các chính sách giám sát. Số chính sách giám sát tối đa trên một bảng hoặc view là 256.

Gói DBMS_FGA trong Oracle

Cú pháp

114

DBMS_FGA.ADD_POLICY( object_schema VARCHAR2, object_name VARCHAR2, policy_name VARCHAR2, audit_condition VARCHAR2, audit_column VARCHAR2, handler_schema VARCHAR2, handler_module VARCHAR2, enable BOOLEAN, statement_types VARCHAR2, audit_trail BINARY_INTEGER IN DEFAULT, audit_column_opts BINARY_INTEGER IN DEFAULT);

Gói DBMS_FGA trong Oracle

115

Gói DBMS_FGA trong Oracle

116

Gói DBMS_FGA trong Oracle

 audit_trail => DBMS_FGA.DB : bản ghi giám sát sẽ được ghi vào bảng SYS.FGA_LOG$ của cơ sở dữ liệu và loại bỏ cột SQL Text và SQL Bind.

 audit_trail => DBMS_FGA.DB+EXTENDED : bản ghi giám

sát sẽ được ghi vào bảng SYS.FGA_LOG$ của cơ sở dữ liệu và có thêm hai SQL Text và SQL Bind.

 audit_trail => DBMS_FGA.XML: bản ghi giám sát sẽ được ghi vào file XML, file này được lưu trong hệ điều hành và không chứa hai cột SQL Text và SQL Bind.

 audit_trail => DBMS_FGA.XML+EXTENDED: bản ghi giám

sát sẽ được ghi vào file XML, file này được lưu trong hệ điều hành và chứa hai cột SQL Text và SQL Bind.  Các thông số của audit_trail nằm trong view

117

ALL_AUDIT_POLICIES.

 Chú ý về tham số audit_trail:

Gói DBMS_FGA trong Oracle

Thủ tục DISABLE_POLICY  Thủ tục này để bất hoạt một chính sách giám sát.  Cú pháp

DBMS_FGA.DISABLE_POLICY( object_schema VARCHAR2, object_name VARCHAR2, policy_name VARCHAR2 );

118

Gói DBMS_FGA trong Oracle

Thủ tục DISABLE_POLICY  Tham số:

Tên

Mô tả

object_schema

Tên của schema chứa đối tượng bị giám sát

object_name

Tên của đối tượng bị giám sát

policy_name

Tên của chính sách.

119

Gói DBMS_FGA trong Oracle

Thủ tục ENABLE_POLICY  Thủ tục này cho phép kích hoạt một chính sách giám

sát.

120

 Cú pháp  DBMS_FGA.ENABLE_POLICY(  object_schema VARCHAR2,  object_name VARCHAR2,  policy_name VARCHAR2,  enable BOOLEAN);

Gói DBMS_FGA trong Oracle

Thủ tục ENABLE_POLICY  Tham số

Tên

Mô tả

object_schema

Tên của schema chứa đối tượng bị giám sát.

object_name

Tên của đối tượng bị giám sát.

policy_name

Tên của chính sách

enable

TRUE là giá trị mặc định.

121

Gói DBMS_FGA trong Oracle

Thủ tục DROP_POLICY  Thủ tục này để loại bỏ một chính sách giám sát.  Cú pháp  DBMS_FGA.DROP_POLICY(  object_schema VARCHAR2,  object_name VARCHAR2,  policy_name VARCHAR2 );

122

Gói DBMS_FGA trong Oracle

Thủ tục DROP_POLICY  Tham số:

Tên

Mô tả

object_schema

Tên của schema chứa đối tượng bị giám sát.

object_name

Tên của đối tượng bị giám sát.

policy_name

Tên của chính sách.

123

Fine-Grained Auditing –FGA

124

Ví dụ: Audit trên cột EMP.SAL BEGIN DBMS_FGA.add_policy ( object_schema=> 'AUDIT_TEST', object_name=> 'EMP', policy_name=> 'SALARY_AUDIT', audit_condition=> 'SAL > 50000', audit_column=> 'SAL', statement_types=>'SELECT, INSERT, UPDATE, DELETE' ); END;

DML Action Auditing with Oracle  Record data changes on the table:

 Name of the person making the change  Date of the change  Time of the change

 Before or after value of the columns are not

recorded

125

DML Action Auditing with Oracle (continued)

126

DML Action Auditing with Oracle (continued)

 Steps:

 Use any user other than SYSTEM or SYS; with

privileges to create tables, sequences, and triggers

 Create the auditing table  Create a sequence object  Create the trigger that will record DML

operations

 Test your implementation

127

History Auditing Model Implementation Using Oracle  Historical data auditing is simple to

implement; main components are TRIGGER objects and TABLE objects

 Keeps record of:

 Date and time the copy of the record was

captured

 Type of operation applied to the record

128

History Auditing Model Implementation Using Oracle (continued)

 Steps:

 Use any user other than SYSTEM or SYS; with privileges to create tables, sequences, and triggers

 Create history table  Create the trigger to track changes and record

all the values of the columns

 Test your implementation

129

DML Auditing Using Repository with Oracle (Simple 1)  Simple Auditing Model 1  Flag users, tables, or columns for auditing  Requires less database administrative skills:

 Application administrators can do it  User interface is built in top of the repository

 Auditing flags are flexible  Does not record before or after column

values; only registers type of DML operations

130

DML Auditing Using Repository with Oracle (Simple 1) (continued)

131

DML Auditing Using Repository with Oracle (Simple 1) (continued)  Steps:

 Use any user other than SYSTEM or SYS  Create triggers  Create sequence object  Build tables to use for applications  Populate application tables

132

DML Auditing Using Repository with Oracle (Simple 1) (continued)  Steps (continued):

 Populate auditing repository with metadata  Create the stored package to be used with the

trigger

 Create triggers for application tables  Test your implementation

133

DML Auditing Using Repository with Oracle (Simple 2)  Simple Auditing Model 2: requires a higher

level of expertise in PL/SQL

 Stores two types of data:

 Audit data: value before or after a DML

statement

 Audit table: name of the tables to be audited

134

DML Auditing Using Repository with Oracle (Simple 2) (continued)

135

DML Auditing Using Repository with Oracle (Simple 2) (continued)  Steps:

 Use any user other than SYSTEM or SYS; with privileges to create tables, and triggers

 Create the auditing repository  Establish a foreign key in AUDIT_DATA table

referencing AUDIT_TABLE table

 Create a sequence object  Create the application schema

136

DML Auditing Using Repository with Oracle (Simple 2) (continued)  Steps (continued):

 Add data to tables  A stored PL/SQL package will be used for

auditing within the triggers

 Create triggers for audited tables  Add auditing metadata  Test your implementation

137

Auditing Application Errors with Oracle  Application errors must be recorded for

further analysis

 Business requirements mandate to keep an

audit trail of all application errors

 Materials:

 Repository consisting of one table  Methodology for your application

138

Auditing Application Errors with Oracle (continued)  Steps:

 Select any user other than SYSTEM or SYS;

with privileges to create tables, and procedures

 Populate tables  Create the ERROR table  Create a stored package to perform the

UPDATE statement

 Test your implementation: perform and update

using the CREATE package

139

Oracle PL/SQL Procedure Authorization  Oracle PL/SQL stored procedures are the mainstay of implementing business rules

 Security modes:

 Invoker rights: procedure is executed using

security credentials of the caller

 Definer rights: procedure is executed using

security credentials of the owner

140

Oracle PL/SQL Procedure Authorization (continued)  Steps:

 Create a new user  Select a user with CREATE TABLE and

PROCEDURE privileges

 Populate tables  Create stored procedure to select rows in a

table

 Grant EXECUTE privileges on new procedure  Log on as the new user and query the table  Execute procedure

141

giám sát bằng trigger

các sự kiện của hệ thống xảy ra  Khởi động hoặc tắt CSDL  Đăng nhập hoặc đăng xuất  Tạo, chỉnh sửa hoặc xóa các đối tượng của lược đồ

 System trigger: Trigger được tự động thực thi khi có

lại các thay đổi ở cấp

 Trigger trên các câu lệnh Update, Delete, Insert  Các trigger CSDL có thể ghi hàng và cột của bảng dữ liệu

 Các truy cập đọc(SELECT) không thể được ghi

lại

bằng các trigger CSDL thông thường

142

 Trigger CSDL:

Oracle Triggers

143

Oracle Triggers

 CREATE TRIGGER  Executed in a specific order:

 STATEMENT LEVEL triggers before COLUMN

LEVEL triggers

 BEFORE triggers before AFTER triggers  USER_TRIGGERS data dictionary view: all

triggers created on a table

 A table can have unlimited triggers: do not

overuse them

144

Oracle Triggers

145

Kết quả giám sát

 Kết quả trả về trong bảng Sys.Aud$  View: dba_audit_trail

 Trường hợp Statement,Privilege,Schema Object

 Kết quả trả về trong bảng fga_log$  View: dba_fga_audit_trail

 Trường hợp Fine-GrainedAudit

 Lưu thành file XML trong thư mục $Oracle\orcl\adump

146

 Trường hợplưu file OS

Creating DDL Triggers with Oracle

 Audit program provides:

 Audit trail for all activities  Opportunity for using process controls

 Database activities statements (in addition to

DML):  Data Definition Language (DDL)  Data Control Language  Database events  SQL statements audit trail

147

Creating DDL Triggers with Oracle (continued)  Use CREATE TRIGGER:

 DDL statements  Database events

148

Example of LOGON and LOGOFF Database Events

 Steps:

 Log on as SYSTEM  Create the APP_AUDIT_LOGINS table  Create two triggers:

 One that fires after the logon event  One that fires before the logoff event

 Log on as DBSEC; disconnect after a few

minutes

 Log on as SYSTEM to check the auditing table

149

DDL Event Example

 Steps:

 Log on as SYSTEM  Create a trigger that fires before an ALTER

statement is completed

 Log on as DBSEC and alter a table

 Pseudocolumns:

 ora_dict_obj_name  ora_dict_obj_owner  ora_sysevent

150

Auditing Code with Oracle

 Steps:

 Log on as DBSEC  Create an auditing table  Create a table and populate it with two records  Create a trigger to track code  Update the new table  Look at the contents of the APP_AUDIT_SQLS table

151

Auditing Database Activities with Oracle

 Oracle provides mechanisms for auditing all:

 Who creates or modifies the structure  Who is granting privileges to whom

 Two types of activities based on the type of

SQL command statement used:  Defined by DDL (Data Definition Language)  Defined by DCL (Data Control Language)

152

Auditing DDL Activities

 Use a SQL-based AUDIT command  Verify auditing is on:

 Check the AUDIT_TRAIL parameter  Values:  DB  DB_EXTENDED  OS  NONE

153

Auditing DDL Activities (continued)

154

DDL Activities Example 1

 Steps:

 Use any user other than SYS or SYSTEM to

create a table

 Add three rows into the table  Log on as SYSTEM or SYS to enable auditing:

For ALTER and DELETE

 Log in as DBSEC:  Delete a row  Modify the structure of the table

155

DDL Activities Example 1 (continued)  Steps (continued):

 Check the audit records  Log in as SYSTEM and view the

DBA_AUDIT_TRAIL table  Turn off the auditing option  Check the content of the

DBA_AUDIT_OBJECT to see auditing metadata

156

DDL Activities Example 1 (continued)

157

DDL Activities Example 1 (continued)

158

DDL Activities Example 2

 Steps:

 Log in as SYSTEM or SYS to enable auditing for the TABLE statement; ALTER, CREATE, and DROP TABLE statements

 Log on as DBSEC and create a table, then drop

the table

 Log on as SYSTEM; view the content of

DBA_AUDIT_TRAIL

 Turn off auditing for the TABLE statement

159

DCL Activities Example

 Steps:

 Log on as SYSTEM or SYS and issue an

AUDIT statement

 Log on as DBSEC and grant SELECT and

UPDATE to SYSTEM

 Log on as SYSTEM and display the contents

of DBA_AUDIT_TRAIL

 Review audit data dictionary

160

DCL Activities Example (continued)

161

Example of Auditing User Activities  Steps:

 Log on as SYSTEM or SYS, to issue an audit

statement

 Log on as DBSEC and create a temporary

table

 Go back to SYSTEM to view the contents of

DBA_AUDIT_TRAIL

162

Audit Trail File Destination

 Steps:

 Modify the initialization parameter file,

INIT.ORA; set parameter AUDIT_TRAIL to the value OS

 Create a folder/directory  Set AUDIT_FILE_DEST to the new directory  Shut down and restart the database  Connect as DBSEC

163

Oracle Alert Log

 Audits database activities:

 Errors:

 Errors related to physical structure are recorded

in the Alert log

 Monitor errors every five to ten minutes; can be

done using a Windows or UNIX script

 Syntactical errors are not recorded

 Startup and shutdown

 Date and time of each occurrence

164

Oracle Alert Log (continued)

165

Oracle Alert Log (continued)

 Database activities (continued):

 Modified initialization parameters, each time a

database is started

 Checkpoints: configure Oracle to record

checkpoint time

 Archiving: view the timing for all redo log sequences, as well as archiving times

 Physical database changes

166

Oracle Alert Log (continued)

167

Các lưu ý với AUD$

và làm cho CSDL không thể hoạt động được

 Số record trong AUD$ phụ thuộc vào 2 yếu tố: số giám sát được bật lên và tần suất thực thi của các thao tác được giám sát

 Kiểm soát kích thước và sự phát triển của AUDIT_TRAIL  AUD$ nằm trong SYSTEM tablespace  Tấn công kiểu DOS có thể làm đầySYSTEM tablespace,

168

lớn

 Giảipháp:  giám sát có chọn lọc  Lưu file audit trên file OS  Di chuyển các record trongAUD$ ra ngoài nếu AUD$ quá

Bảo vệ AUDIT TRAIL

Sys.Aud$ cho những người dùng tin cậy

 Chỉ cấp quyền DELETE ANY TABLE hoặc DELETE trên

 giám sát chính Sys.Aud$

AUDITINSERT UPDATE DELETE ONsys.aud$ BYACCESS;

169

Kết luận

quan trọng đảm bảo sự an toàn cho hệ thống

 Thực hiện và duy trì việc giám sát là một trong các bước

đề

 giám sát nhiều sẽ làm giảm hiệu suất của hệ thống nên

cần có chính sách giám sát hợp lý:

 giám sát giúp phát hiện vấn đề chứ không giải quyết vấn

hiện vấn đề

170

 Chọn lọc các đối tượng và sự kiện cần giám sát  Bảo vệ dữ liệu giám sát  Quản lý kích thước của audit log  Phân tích dữ liệu giám sát thường xuyên để sớm phát

Thank you!

171