1. Trang chủ
  2. » Tất cả

Bài thực hành bảo mật hệ thống thông tin số 11 oracle label security (4)

7 2 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài thực hành bảo mật hệ thống thông tin số 11 Oracle Label Security (4)
Trường học University of Khoa Hoc Tu Nhien, Ho Chi Minh City
Chuyên ngành Information Security
Thể loại Thực hành
Thành phố Ho Chi Minh City
Định dạng
Số trang 7
Dung lượng 368,16 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài th c hành s 11ự ố ORACLE LABEL SECURITY (4)  Tóm t t n i dung ắ ộ � Che d u c t thông tin chính sáchấ ộ � S d ng hàm gán nhãnử ụ � Các view c a OLSủ I M t s k thu t nâng cao trong OLSộ ố ỹ ậ A Lý[.]

Trang 1

Bài th c hành s  11 ự ố

ORACLE LABEL SECURITY (4)

Che d u c t thông tin chính sách ấ ộ

S  d ng hàm gán nhãn ử ụ Các view c a OLS ủ

I M t s  k  thu t nâng cao trong OLS ộ ố ỹ ậ

A. Lý thuy t ế

1 Che d u c t thông tin nhãn d  li u ấ ộ ữ ệ

Đ  tránh vi c hi n th  c t ch a thông tin chính sách, ng ể ệ ể ị ộ ứ ườ i qu n tr  có th  thi t ả ị ể ế  

l p tùy ch n HIDE khi gán chính sách cho b ng ậ ọ ả

M t khi chính sách đã đ ộ ượ c áp d ng, tr ng thái  n/Không  n c a c t không ụ ạ Ẩ Ẩ ủ ộ  

th   đ ể ượ c   thay   đ i   tr   khi   ta   remove   chính   sách   kh i   b ng   v i   tham   s ổ ừ ỏ ả ớ ố  DROP_COLUMN b ng TRUE. Sau đó chính sách có th  đ ằ ể ượ c áp d ng l i v i ụ ạ ớ  

tr ng thái m i ạ ớ

Khi ng ườ i dùng INSERT d  li u vào b ng có tr ng thái  n c t chính sách, giá ữ ệ ả ạ ẩ ộ  

tr  c a c t ch a nhãn s  không b  yêu c u ph i insert ị ủ ộ ứ ẽ ị ầ ả

Câu l nh SELECT * s  không t  đ ng tr  v  giá tr  c a c t  n, tr  khi nó ệ ẽ ự ộ ả ề ị ủ ộ ẩ ừ  

đ ượ c truy xu t tr c ti p ấ ự ế

Câu l nh DESCRIBE cũng s  không hi n th  thông tin c t  n ệ ẽ ể ị ộ ẩ

2 Hàm gán nhãn

Có nh ng b ng d  li u l n, ta không th  ng i gán nhãn cho t ng tr ữ ả ữ ệ ớ ể ồ ừ ườ ng h p ợ   OLS cung c p cho ta m t cách gán nhãn khác. Đó là s  d ng m t hàm (function) ấ ộ ử ụ ộ  

do mình hi n th c đ  OLS s  t  đ ng gán nhãn m i khi có hàng m i đ ệ ự ể ẽ ự ộ ỗ ớ ượ c insert  

Trang 2

vào b ng d  li u đ ả ữ ệ ượ c b o v  Xem ph n th c hành đ  hi u rõ h n v  cách ả ệ ầ ự ể ể ơ ề  

th c làm vi c này ứ ệ

Hàm   gán   nhãn   s   override   2   tùy   ch n   LABEL_DEFAULT   và ẽ ọ   LABEL_UPDATE.

B. Th c hành

1 Che d u c t thông tin chính sách ấ ộ

Do trong bài lab tr ướ c, ta đã áp d ng chính sách cho b ng mà không có tùy ch n ụ ả ọ   HIDE nên trong b i lab này ta ph i remove chính sách (xóa luôn c t thông tin), ả ả ộ  

th c hi n l i đo n code gán nhãn trong bài lab tr ự ệ ạ ạ ướ c và gán l i chính sách ạ

CONN sec_admin/secadmin;

BEGIN sa_policy_admin.remove_table_policy (policy_name => 'ACCESS_LOCATIONS', schema_name => 'HR',

table_name => 'LOCATIONS', drop_column => true);

END;

/ SELECT * FROM hr.locations;

Ta nh n th y lúc này c t OLS_COLUMN v n ch a b  xóa dù Oracle báo th c ậ ấ ộ ẫ ư ị ự  

hi n   thành   công   th   t c   Lý   do   là   khi   remove   chính   sách,   ta   s   xóa   c t ệ ủ ụ ẽ ộ   OLS_COLUMN, t c là đã thay đ i b ng Locations. Do v y ta c n c p thêm ứ ổ ả ậ ầ ấ   quy n ALTER trên b ng Locations cho sec_admin đ  c t OLS_COLUMN th t ề ả ể ộ ậ  

s   b   xóa   Bây   gi   ta   gán   l i   chính   sách   trên   đ   th y   s   thay   đ i   sau   khi ự ị ờ ạ ể ấ ự ổ   sec_admin đ ượ c gán quy n ề

CONN sec_admin/secadmin;

BEGIN sa_policy_admin.apply_table_policy (policy_name => 'ACCESS_LOCATIONS', schema_name => 'HR',

table_name => 'LOCATIONS', table_options => 'NO_CONTROL');

Trang 3

/ CONN system/system;

GRANT alter ON hr.locations TO sec_admin;

CONN sec_admin/secadmin;

BEGIN sa_policy_admin.remove_table_policy (policy_name => 'ACCESS_LOCATIONS', schema_name => 'HR',

table_name => 'LOCATIONS', drop_column => true);

END;

/ SELECT * FROM hr.locations;

Ta nh n th y bây gi  c t OLS_COLUMN đã th t s  đ ậ ấ ờ ộ ậ ự ượ c xóa.

Gán l i chính sách cho b ng v i NO_CONTROL và HIDE: ạ ả ớ

CONN sec_admin/secadmin;

BEGIN sa_policy_admin.apply_table_policy (policy_name => 'ACCESS_LOCATIONS', schema_name => 'HR',

table_name => 'LOCATIONS', table_options => 'HIDE,NO_CONTROL');

END;

/

Gán l i nhãn cho d  li u trong b ng (do lúc remove đã xóa m t c t ch a thông ạ ữ ệ ả ấ ộ ứ   tin chính sách):

CONN sec_admin/secadmin;

UPDATE hr.locations SET ols_column = char_to_label ('ACCESS_LOCATIONS', 'CONF');

Trang 4

UPDATE hr.locations SET ols_column = char_to_label ('ACCESS_LOCATIONS', 'CONF::US')

WHERE country_id = 'US';

UPDATE hr.locations SET ols_column = char_to_label ('ACCESS_LOCATIONS', 'CONF::UK')

WHERE country_id = 'UK';

UPDATE hr.locations SET ols_column = char_to_label ('ACCESS_LOCATIONS', 'CONF::CA')

WHERE country_id = 'CA';

UPDATE hr.locations SET ols_column = char_to_label ('ACCESS_LOCATIONS', 'CONF:SM:UK,CA')

WHERE (country_id = 'CA' and city = 'Toronto')

or (country_id = 'UK' and city = 'Oxford');

UPDATE hr.locations SET ols_column = char_to_label ('ACCESS_LOCATIONS', 'CONF:HR:UK')

WHERE country_id = 'UK' and city = 'London';

UPDATE hr.locations SET ols_column = char_to_label ('ACCESS_LOCATIONS', 'SENS:HR,SM,FIN:CORP')

WHERE country_id = 'CH' and city = 'Geneva';

COMMIT ;

Ti p theo ta c n gán l i chính sách v i tùy ch n HIDE và READ_CONTROL: ế ầ ạ ớ ọ

Trang 5

CONN sec_admin/secadmin;

BEGIN sa_policy_admin.remove_table_policy (policy_name => 'ACCESS_LOCATIONS', schema_name => 'HR',

table_name => 'LOCATIONS');

sa_policy_admin.apply_table_policy (policy_name => 'ACCESS_LOCATIONS', schema_name => 'HR',

table_name => 'LOCATIONS', table_options =>

'HIDE,READ_CONTROL,WRITE_CONTROL,CHECK_CONTROL');

END;

/

Bây gi  ta th  truy xu t b ng Locations: ờ ử ấ ả

CONN sec_admin/secadmin;

SELECT * FROM hr.locations;

DESCRIBE hr.locations;

K t   qu   c a   dòng   code   SELECT   là   “no   rows   selected”   Ch   có   câu   l nh ế ả ủ ỉ ệ   DESCRIBE có tr  v  k t qu  Nguyên nhân là do bây gi  b ng này đã đ ả ề ế ả ờ ả ượ c b o ả  

v , ch  nh ng ng ệ ỉ ữ ườ ượ ấ i đ c c p quy n OLS c  th  m i có th  truy xu t. Ta log in ề ụ ể ớ ể ấ  

l i b ng user SKING: ạ ằ

CONN sking/sking;

SELECT * FROM hr.locations;

SELECT label_to_char (ols_column) as label, locations.*

FROM hr.locations;

Ta th y trong câu l nh SELECT th  2, ta có ch  đ nh rõ c t ols_column nên c t ấ ệ ứ ỉ ị ộ ộ   này m i xu t hi n. Trong k t qu  truy v n c a câu SELECT th  nh t không có ớ ấ ệ ế ả ấ ủ ứ ấ  

c t thông tin chính sách này ộ

Trang 6

2 Dùng hàm gán nhãn

Trong ph n th c hành này, ta s  dùng b ng Employees c a schem HR đ  minh ầ ự ẽ ả ủ ể  

h a ọ

C p các quy n c n thi t cho sec_admin trên b ng Employees: ấ ề ầ ế ả

CONN system/system;

GRANT select, insert, update, alter

ON hr.employees TO sec_admin;

GRANT create procedure TO sec_admin;

CONN lbacsys/lbacsys GRANT execute ON to_lbac_data_label

TO sec_admin WITH GRANT OPTION;

Ti p theo ta vi t m t hàm gán nhãn d a trên đi u ki n c a thông tin nhân viên: ế ế ộ ự ề ệ ủ

CONN sec_admin/secadmin;

CREATE OR REPLACE FUNCTION sec_admin.gen_emp_label (Job varchar2, Depto number, Sal number) RETURN LBACSYS.LBAC_LABEL

AS i_label varchar2(80);

BEGIN /************* Xác định level *************/

IF Sal > 17000 THEN i_label := 'SENS:';

ELSIF Sal > 10000 THEN i_label := 'CONF:';

ELSE i_label := 'PUB:';

END IF;

/************* Xác định compartment *************/

IF Job LIKE '%HR%' THEN i_label := i_label||'HR:';

ELSIF (Job LIKE '%MK%') OR (Job LIKE '%SA%') THEN i_label := i_label||'SM:';

Trang 7

ELSIF Job LIKE '%FI%' THEN i_label := i_label||'FIN:';

ELSE i_label := i_label||':';

END IF;

/************* Xác định groups *************/

i_label := i_label||'CORP';

RETURN TO_LBAC_DATA_LABEL('ACCESS_LOCATIONS',i_label); END;

/

Ta c n gán cho LBACSYS quy n th c thi trên hàm gán nhãn v a đ ầ ề ự ừ ượ ạ c t o:

CONN sec_admin/secadmin;

GRANT execute ON sec_admin.gen_emp_label TO lbacsys;

Ta ch  đ nh th  t c v a hi n th c làm hàm gán nhãn ỉ ị ủ ụ ừ ệ ự cho bảng Employees: CONN sec_admin/secadmin;

BEGIN SA_POLICY_ADMIN.APPLY_TABLE_POLICY ( policy_name => 'ACCESS_LOCATIONS', schema_name => 'HR',

table_name => 'EMPLOYEES', table_options =>

'READ_CONTROL,WRITE_CONTROL,CHECK_CONTROL', label_function => 'sec_admin.gen_emp_label

(:new.job_id,:new.department_id,:new.salary)'); END;

/

II Các view thông tin c a OLS

Các thông tin v  các chính sách c a OLS đ ề ủ ượ ư c l u trong data dictionary. Ta có  

th  xem các thông tin này thông qua các view c a OLS ể ủ

View DBA_SA_USERS: hi n th  thông tin v  t t c  các chính sách có trong ể ị ề ấ ả   CSDL.

Ngày đăng: 25/02/2023, 03:59

🧩 Sản phẩm bạn có thể quan tâm