Bài th c hành s 13ự ố FINEGRAINED AUDITING Tóm t t n i dung ắ ộ � Gi i thi u v Finegrained Auditingớ ệ ề � Các chính sách Finegrained Auditing � S d ng gói DBMS FGA trong Oracleử ụ I Finegrained[.]
Trang 1Bài th c hành s 13 ự ố
FINEGRAINED AUDITING
Gi i thi u v Finegrained Auditingớ ệ ề Các chính sách Finegrained Auditing
S d ng gói DBMS_FGA trong Oracleử ụ
I Finegrained Auditing
1. Gi i thi u:ớ ệ
Nh đã đư ược gi i thi u Lab 12, Standard Auditing c a Oracle có tính c uớ ệ ở ủ ấ hình cao. B n ghi d u (audit trail) c a nó cung c p m t t p c đ nh các s ki nả ấ ủ ấ ộ ậ ố ị ự ệ
mà giám sát các quy n, các đ i tề ố ượng ho c có câu SQL đặ ượ ử ục s d ng bao g mồ
nh ng thông tin v môi trữ ề ường và k t qu câu truy v n. T m v c c a standardế ả ấ ầ ự ủ auditing cũng có th để ược m r ng b ng cách s d ng trigger và cung c pở ộ ằ ử ụ ấ thêm nh ng thông tin ph Tuy nhiên 2 tiêu chí c a auditing không th th cữ ụ ủ ể ự
hi n b i standard auditing: t i thi u nh ng giám sát không c n thi t, và ch raệ ở ố ể ữ ầ ế ỉ
nh ng truy c p gây h i.ữ ậ ạ
Finegrained auditing (FGA) có th th a mãn nh ng nhu c u đó. V i FGA, ta cóể ỏ ữ ầ ớ
th đ 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. 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. Nh ng b n ghiỏ ệ ố ắ ấ ể ị ữ ả
Trang 2c a FGA s l u trong b ng SYS.FGA_LOG$ và đủ ẽ ư ả ược truy c p thông qua viewậ DBA_FGA_AUDIT_TRAIL
2. Ưu th c a Finegrained Auditing so v i Trigger:ế ủ ớ
Finegrained 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.ợ ị ổ ở ộ ệ
M t khác, m t chính sách finegrainned 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ó ặ ị ổ ở ệ ặ ằ ẩ ọ ọ ủ
3. Chính sách trong Finegrained 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
4. 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. 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 ệ ả ệ ố ẽ ả ả ị
C ch th c hi n c nh báo đó đơ ế ự ệ ả ược th c hi n nh vào m t hàm:ự ệ ờ ộ
PROCEDURE fname(
Trang 3object_schema VARCHAR2, object_name VARCHAR2, policy_name VARCHAR2)
AS
Trang 4 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ủ
5. Hàm và các c t liên quan trong Finegrained 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.ớ ơ ị ậ
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. 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.ả
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 đó
6. Đ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ế ả ố ộ ậ ẽ ẫ ạ
Trang 5ra đượ ự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.ạ
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.ấ
II 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)
1. 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.ộ ả ặ
Cú pháp
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,
Trang 6audit_column_opts BINARY_INTEGER IN DEFAULT);
Tham số
Trang 7Tên Mô tả M c đ nhặ ị
object_schema Tên c a schema ch a đ i tủ ứ ố ượng b giám sát (N u NULLị ế
thì h th ng s l y schema c a user hi n t i)ệ ố ẽ ấ ủ ệ ạ
NULL
object_name Tên c a object b giám sát.ủ ị
policy_name Tên c a chính sách, tên này ph i duy nh tủ ả ấ
audit_condition Đi u ki n đ hàm đó đề ệ ể ược giám sát. NULL có nghĩa là
hàng nào cũng s b giám ẽ ị
NULL
audit_column Nh ng c t liên quan s đữ ộ ẽ ược ki m tra m i khi truy c p.ể ỗ ậ
Chúng bao g m nh ng c t n. Giá tr m c đ nh NULLồ ữ ộ ẩ ị ặ ị nghĩa là giám sát s x y ra n u b t kì c t nào trong nh ngẽ ả ế ấ ộ ữ
c t liên quan đó b truy c p ho c nh hộ ị ậ ặ ả ưởng
NULL
handler_schema Schema ch a hàm x lí s kiên. M c đ nh NULL s l yứ ử ự ặ ị ẽ ấ
schema c a user hi n t i.ủ ệ ạ
NULL
handler_module Tên hàm x lí s ki n. Hàm này đử ự ệ ược g i ch sau khi hàngọ ỉ
đ u tiên mà th a đi u ki n giám sát trong câu truy v nầ ỏ ề ệ ấ
được x lí. N u hàm này b l i v i m t ngo i l nào đóử ế ị ỗ ớ ộ ạ ệ thì câu l nh SQL b giám sát s cũng không th th c thiệ ị ẽ ể ự
được
NULL
enable Giá tr này b ng TRUE có nghĩa là chính sách này đị ằ ượ c
kích ho t.ạ
TRUE
statement_types Ki u câu l nh SQL mà chính sách này áp d ng vào:ể ệ ụ
INSERT, UPDATE, DELETE, hay ch làỉ SELECT
SELECT
audit_trail
N i ghi l i các b n ghi giám sátơ ạ ả DB+EXTENDE
D audit_column_opt
s
Câu l nh b giám sát khi câu truy v n tham kh o t i m tệ ị ấ ả ớ ộ trong nh ng c t đữ ộ ược ch ra trong tham s audit_columnỉ ố hay ph i tham kh o t i t t c các c t đả ả ớ ấ ả ộ ược ch ra trongỉ đó
ANY_COLUM NS