Bài thực hành Bảo mật hệ thống thông tin số 10: Oracle Label Security (3) có nội dung trình bày về các loại nhãn người dùng, các quyền đặc biệt trên chính sách, các điều kiện áp dụng chính sách, áp dụng chính sách cho bảng,... Mời các bạn cùng tham khảo chi tiết nội dung tài liệu.
Trang 1Bài th c hành s 10 ự ố
ORACLE LABEL SECURITY (3)
Tóm t t n i dung: ắ ộ
Các lo i nhãn ngạ ười dùng
Các quy n đ c bi t trên chính sáchề ặ ệ
B4: Gán chính sách trên cho các table ho c schema mà b n mu n b oặ ạ ố ả
v ệ
B5: Gán các gi i h n quy n, các nhãn ngớ ạ ề ười dùng ho c các quy n truyặ ề
xu t đ c bi t cho nh ng ngấ ặ ệ ữ ười dùng liên quan
Th t c a 2 bứ ự ủ ước trên nh v y là h p lý, vì trong OLS, khi m t chính sáchư ậ ợ ộ
được ch đ nh b o v cho m t b ng/schema, k t th i đi m đó b t k ngỉ ị ả ệ ộ ả ể ừ ờ ể ấ ỳ ười dùng nào cũng không th truy xu t vào b ng/schema đó tr khi để ấ ả ừ ược gán cho các nhãn
ng ườ i dùng (user label) thích h p ho c đợ ặ ược c p nh ng quy n đ c bi t đ i v iấ ữ ề ặ ệ ố ớ chính sách đó
Tuy nhiên, đ hi u để ể ược tác d ng c a các tùy ch n áp d ng chính sách bụ ủ ọ ụ ở ướ c
4, ta c n ph i hi u v các ràng bu c đ i v i ngầ ả ể ề ộ ố ớ ười dùng khi truy xu t các b ng vàấ ả schema được b o v Do v y, đ vi c tìm hi u v OLS đả ệ ậ ể ệ ể ề ược d dàng h n, trong bàiễ ơ lab này s t m hoán đ i th t tìm hi u và th c hi n c a bẽ ạ ổ ứ ự ể ự ệ ủ ước 4 và bước 5. Khi đã
Trang 2hi u và bi t cách hi n th c m t chính sách OLS, các b n hãy th c hi n các bể ế ệ ự ộ ạ ự ệ ướ ctheo đúng th t c a nó đ đ m b o tính b o m t và toàn v n cho d li u .ứ ự ủ ể ả ả ả ậ ẹ ữ ệ
Trang 31 Nhãn người dùng (user label)
T i m i th i đi m, m i ngạ ỗ ờ ể ỗ ười dùng đ u có m t nhãn g i là ề ộ ọ nhãn ng ườ i dùng
(user lable). Nhãn này có tác d ng cho bi t m c đ tin c y c a ng i dùng đ iụ ế ứ ộ ậ ủ ườ ố
v i nh ng d li u đớ ữ ữ ệ ược chính sách đó b o v Nhãn ngả ệ ười dùng cũng g m cácồ thành ph n gi ng nh nhãn d li u. Khi m t ngầ ố ư ữ ệ ộ ười dùng truy xu t trên b ngấ ả
được b o v , nhãn ngả ệ ười dùng s đẽ ược so sánh v i nhãn d li u c a m i dòngớ ữ ệ ủ ỗ trong b ng đ quy t đ nh nh ng dòng nào ngả ể ế ị ữ ười dùng đó có th truy xu t để ấ ượ c.Hình bên dưới minh h a m i quan h tọ ố ệ ương ng c a ứ ủ user label và data label.
Các nhãn th hi n các quy n truy xu t (user authorization) đ ể ệ ề ấ ượ c gán cho các user. Các nhãn th hi n m c đ nh y c m c a d li u (data sensitivity) đ ể ệ ứ ộ ạ ả ủ ữ ệ ượ c gán cho d li u. Đ có th truy xu t đ ữ ệ ể ể ấ ượ c d li u, 2 lo i nhãn này ph i t ữ ệ ạ ả ươ ng
thích v i nhau (access mediation) ớ
OLS cung c p cho chúng ta 2 cách th c đ qu n lý các ấ ứ ể ả user label: gán c thụ ể
t ng thành ph n c a nhãn cho user ho c gán nguyên nhãn cho user. Trong cácừ ầ ủ ặ
ph n sau s trình bày k h n v 2 cách qu n lý này.ầ ẽ ỹ ơ ề ả
Dù s d ng hình th c qu n lý nào, m i ngử ụ ứ ả ỗ ười dùng cũng có m t ộ t p xác th c ậ ự quy n ề ( set of authorizations) đ l u gi thông tin v quy n h n truy xu t đ iể ư ữ ề ề ạ ấ ố
v i nh ng d li u đớ ữ ữ ệ ược chính sách đó b o v T p xác th c quy n g m có:ả ệ ậ ự ề ồ
Level cao nh t ấ ( User Max Level) c a ng i dùng trong các tác v readủ ườ ụ
và write
Level th p nh t ấ ấ ( User Min Level) c a ng i dùng trong các tác vủ ườ ụ write. User Min Level ph i th p h n ho c b ng User Max Level.ả ấ ơ ặ ằ
Trang 4 T p các compartment ậ được truy xu t.ấ
T p các group ậ được truy xu t.ấ(Đ i v i m i compartment và group có l u kèm thông tin quy n truy xu tố ớ ỗ ư ề ấ
được phép là quy n “ề ch đ cỉ ọ ” (readonly) hay quy n “ề đ cvi tọ ế ” (read write))
V i t p xác th c quy n, ta có th hình thành nên nhi u t h p các thành ph nớ ậ ự ề ể ề ổ ợ ầ
c a nhãn. Do v y m i ngủ ậ ỗ ười dùng có th có nhi u user label khác nhau nh ngể ề ư
v n n m trong gi i h n c a t p xác th c quy n. ẫ ằ ớ ạ ủ ậ ự ề
Session label:
Session label là m t user label mà ngộ ười dùng s d ng đ truy xu t dử ụ ể ấ ữ
li u trong m t session làm vi c. Session label có th là m t t h p b t k cácệ ộ ệ ể ộ ổ ợ ấ ỳ thành ph n n m trong gi i h n t p xác th c quy n c a user đó.ầ ằ ớ ạ ậ ự ề ủ
Người qu n tr có th mô t session label m c đ nh cho ngả ị ể ả ặ ị ười dùng khi thi t l p t p xác th c quy n cho ngế ậ ậ ự ề ười dùng đó
B n thân ngả ười dùng có th thay đ i session label c a mình thành m tể ổ ủ ộ nhãn b t k v i đi u ki n là nhãn m i n m trong gi i h n xác th c quy nấ ỳ ớ ề ệ ớ ằ ớ ạ ự ề
c a h ủ ọ
Row label:
Khi m t hàng m i độ ớ ược insert vào m t b ng đang độ ả ược b o v , c n cóả ệ ầ
m t nhãn d li u (data label) độ ữ ệ ược ch đ nh cho hàng d li u m i đó. Ho cỉ ị ữ ệ ớ ặ khi m t hàng độ ược update, nhãn d li u c a hàng đó cũng có th b thay đ i.ữ ệ ủ ể ị ổ
Nh ng nhãn d li u trong các trữ ữ ệ ường h p v a nói trên có th đợ ừ ở ể ượ cgán cho dòng d li u tữ ệ ương ng theo m t trong nh ng cách sau:ứ ộ ữ
Người update/insert hàng d li u ch đ nh m t cách tữ ệ ỉ ị ộ ường mình ngay khi
th c hi n tác v update/insert đó.ự ệ ụ
Hàm gán nhãn (labeling function) c a b ng đó t sinh nhãn theo nh ngủ ả ự ữ
đi u ki n đề ệ ược hi n th c trong function tệ ự ương ng.ứ
B ng giá tr m c đ nh do ngằ ị ặ ị ười qu n tr quy đ nh khi gán quy n h nả ị ị ề ạ truy xu t cho ngấ ười dùng đó
B ng giá tr c a session label c a ngằ ị ủ ủ ười dùng đó
Trang 5 Tùy ng c nh và trữ ả ường h p mà giá tr nhãn m i thêm vào s r i vàoợ ị ớ ẽ ơ
trường h p nào trong các trợ ường h p k trên.ợ ể
Row label là t dùng đ ch nh ng nhãn đ c áp d ng cho các hàng dừ ể ỉ ữ ượ ụ ữ
li u khi hàng đó đệ ược update ho c insert.ặ
Khi insert/update, người dùng có th mô t tể ả ường minh row label cho dòng d li u m i đữ ệ ớ ược update/insert, v i đi u ki n row label ph i th a ớ ề ệ ả ỏ đ ngồ
th iờ các đi u ki n sau: ề ệ
Level th p h n ho c b ng max level c a ngấ ơ ặ ằ ủ ười dùng đó
Level cao h n ho c b ng min level c a ngơ ặ ằ ủ ười dùng đó
Ch đỉ ược ch a các compartment xu t hi n trong session label hi n t iứ ấ ệ ệ ạ
c a ngủ ười dùng đó và người dùng có quy n ề vi t (write) ế trên các compartment đó
Ch đỉ ược ch a các group xu t hi n trong session label hi n t i c aứ ấ ệ ệ ạ ủ
người dùng đó và người dùng có quy n ề vi t (write) ế trên các group đó
2 Qu n lý ngả ười dùng theo t ng lo i thành ph n c a nhãn ừ ạ ầ ủ
Đ gán quy n theo cách này ta c n ch đ nh ra c th các ể ề ầ ỉ ị ụ ể level, compartment, group mà m t user có th truy xu t.ộ ể ấ
Đ d hi u ph n này, ngể ễ ể ầ ườ ọi h c c n nh l i quy t c qu n lý truy xu t c aầ ớ ạ ắ ả ấ ủ
OLS mà ta đã nêu lên trong bài Lab 8 – Oracle Label Security (1): “no read up
no write up limited write down”
Qu n lý các level ả : g m có 4 thông s :ồ ố
max_level: level cao nh t mà ngấ ười dùng có quy n đ c và vi t. Vì quyề ọ ế
t c qu n lý đòi h i “ắ ả ỏ no read up – no write up” (không được đ c và vi t lênọ ế
nh ng d li u có đ b o m t cao h n đ tin c y c a user) nên ữ ữ ệ ộ ả ậ ơ ộ ậ ủ max level
chính là “gi i h n trên” cho vi c truy xu t (đ c và vi t) c a ngớ ạ ệ ấ ọ ế ủ ười dùng
min_level: level th p nh t mà ngấ ấ ười dùng có quy n write. Vì quy t cề ắ
qu n lý yêu c u “limited write down” (ch vi t lên nh ng d li u có đ b oả ầ ỉ ế ữ ữ ệ ộ ả
m t th p h n đ tin c y c a ngậ ấ ơ ộ ậ ủ ười dùng m t m c gi i h n nào đó) nênở ộ ứ ớ ạ
min level chính là “gi i h n dớ ạ ưới” cho tác v vi t c a ngụ ế ủ ười dùng. “Gi i h nớ ạ
dưới” cho tác v đ c chính là level th p nh t mà chính sách đó quy đ nh.ụ ọ ấ ấ ị
Trang 6 def_level: level cho session label m c đ nh c a ngặ ị ủ ười dùng (ph i th aả ỏ
min level <= default level <= max level). N u ngế ười qu n tr b o m t khôngả ị ả ậ
mô t thông s này thì ả ố default level s là ẽ max level.
row_level: level cho row label m c đ nh c a ngặ ị ủ ười dùng, dùng đ gánể nhãn cho d li u mà user đó t o khi truy xu t b ng đữ ệ ạ ấ ả ược b o v b i chínhả ệ ở sách (ph i th a ả ỏ min level <= row level <= max level). N u ngế ười qu n trả ị
b o m t không mô ta thông s này thì ả ậ ố default row level s là ẽ default level.
Compartment : G m có 4 thông s chính:ồ ố
read_comps: danh sách các compartment mà người dùng được quy nề
đ c.ọ
write_comps: danh sách các compartment mà người dùng được quy nề
vi t (danh sách này ph i là t p con c a danh sách ế ả ậ ủ read_comps).
def_comps: danh sách các compartment cho session label m c đ nh c aặ ị ủ
người dùng đó (danh sách này ph i là t p con c a danh sách read_comps).ả ậ ủ
row_comps: danh sách các compartment cho row label m c đ nh c aặ ị ủ
người dùng, dùng đ gán nhãn cho d li u mà ngể ữ ệ ười dùng đó t o khi truyạ
xu t b ng đấ ả ược b o v b i chính sách (danh sách này ph i là t p con c aả ệ ở ả ậ ủ danh sách read_comps và write_comps)
Group : G m có 4 thông s chính:ồ ố
read_groups: danh sách các groups mà người dùng được quy n đ c.ề ọ
write_ groups: danh sách các groups mà người dùng được quy n vi tề ế (danh sách này ph i là t p con c a danh sách read_ groups).ả ậ ủ
def_ groups: danh sách các groups cho session label m c đ nh c a ngặ ị ủ ườ idùng đó (danh sách này ph i là t p con c a danh sách read_ groups).ả ậ ủ
row_ groups: danh sách các groups cho row label m c đ nh c a ngặ ị ủ ườ idùng đó, dùng đ gán nhãn cho d li u mà ngể ữ ệ ười dùng đó t o ra khi truy xu tạ ấ
b ng đả ược b o v b i chính sách (danh sách này ph i là t p con c a danhả ệ ở ả ậ ủ sách read_ groups và write_ groups)
L u ýư : n u ngế ười dùng có quy n đ c trên m t group thì đ ng th i cũng cóề ọ ộ ồ ờ quy n đ c trên t t c các group con (tr c ti p và gián ti p) c a group đó. Tề ọ ấ ả ự ế ế ủ ươ ng
Trang 7t đ i v i quy n vi t cũng v y. Hình bên dự ố ớ ề ế ậ ưới minh h a cho vi c th a k quy nọ ệ ừ ế ề
đ c và vi t trên các group. Trong hình, ngọ ế ười dùng có quy n đ c trên groupề ọ WESTERN_REGION nên cũng có quy n đ c trên t t c các group con còn l i.ề ọ ấ ả ạ Bên c nh đó, ngạ ười dùng ch đỉ ượ ấc c p quy n vi t trên group WR_FINANCE nênề ế
ch có quy n vi t trên group này và 2 group con c a nó ch không có quy n vi tỉ ề ế ủ ứ ề ế trên các group WR_SALES, WR_HUMAN_RESOURCES, WESTERN_REGION
3 Qu n lý ngả ười dùng thông qua các nhãn
Đ ti n l i h n, OLS cũng cho phép ngể ệ ợ ơ ười qu n tr thi t l p t p xác th cả ị ế ậ ậ ự quy n cho ngề ười dùng thông qua vi c gán các nhãn thay vì ph i ch đ nh t ngệ ả ỉ ị ừ thành ph n riêng.ầ
Các lo i nhãn c n mô t :ạ ầ ả
max_read_label: nhãn th hi n m c truy xu t cao nh t đ i v i tác v đ c.ể ệ ứ ấ ấ ố ớ ụ ọ
Nó bao g m level cao nh t (ồ ấ max_level) cho tác v đ c, t t c cácụ ọ ấ ả compartment và group mà người dùng được phép đ c (ọ read_comps và read_groups). Đây là nhãn mà người qu n tr ả ị b t bu cắ ộ ph i gán cho ngả ườ idùng n u ch n cách qu n lý quy n truy xu t c a ngế ọ ả ề ấ ủ ười dùng thông qua nhãn
max_write_label: nhãn th hi n m c truy xu t cao nh t đ i v i quy n vi t.ể ệ ứ ấ ấ ố ớ ề ế
Nó bao g m level cao nh t (ồ ấ max_level) cho tác v vi t, t t c cácụ ế ấ ả compartment và group mà người dùng được phép vi t (ế write_comps và write_groups). N u ngế ười qu n tr không thi t l p giá tr cho lo i nhãn này,ả ị ế ậ ị ạ
nó s l y giá tr b ng giá tr c a ẽ ấ ị ằ ị ủ max_read_label.
Trang 8 min_write_label: nhãn th hi n m c truy xu t th p nh t đ i v i tác v đ c.ể ệ ứ ấ ấ ấ ố ớ ụ ọ Nhãn này ch ch a level th p nh t (ỉ ứ ấ ấ min_level) c a ngủ ười dùng đó, không ch aứ
b t k compartment và group nào.ấ ỳ
def_read_label: là session label m c đ nh cho các tác v đ c c a ngặ ị ụ ọ ủ ười dùng.
Nó là t p con c a ậ ủ max_read_label. N u ngế ười qu n tr không thi t l p giá trả ị ế ậ ị cho lo i nhãn này, nó s l y giá tr b ng giá tr c a ạ ẽ ấ ị ằ ị ủ max_read_label.
def_write_label: là session label m c đ nh cho tác v write c a ngặ ị ụ ủ ười dùng.
Nó là t p con c a ậ ủ def_read_label (có level b ng level c a ằ ủ def_read_label;
ch a t t c các compartment và group mà ngứ ấ ả ười dùng có quy n vi t trongề ế
def_read_label). Giá tr c a nhãn này s đị ủ ẽ ược tính m t cáchộ t đ ng ự ộ b iở OLS t giá tr c a ừ ị ủ def_read_label. Nói cách khác, người qu n tr s không môả ị ẽ
t giá tr cho nhãn này.ả ị
row_label: nhãn m c đ nh dùng đ gán nhãn cho các dòng d li u mà user t oặ ị ể ữ ệ ạ
ra trong b ng đả ược chính sách b o v Nhãn này là t p con c aả ệ ậ ủ
max_write_label và def_read_label. N u ngế ười qu n tr không thi t l p giá trả ị ế ậ ị cho lo i nhãn này, nó s l y giá tr b ng giá tr c a ạ ẽ ấ ị ằ ị ủ def_write_label.
L u ý ư : do def_write_label là nhãn đ c tính t đ ng t ượ ự ộ ừ def_read_label, ngườ i
qu n tr không c n ph i thao tác trên nó nên trong các tài li u hả ị ầ ả ệ ướng d n c aẫ ủ
Oracle def_read_label thường được g i là ọ def_label. K t các ph n sau, bài th cể ừ ầ ự hành c a chúng ta cũng s áp d ng cách g i nh v y.ủ ẽ ụ ọ ư ậ
4 Gi i thu t b o m t c a OLS đ i v i tác v đ cả ậ ả ậ ủ ố ớ ụ ọ
Trang 9Hình trên mô t m t cách rõ ràng cách th c mà OLS so sánh nhãn d li u vàả ộ ứ ữ ệ nhãn người dùng t i th i đi m đó (session label) đ quy t đ nh xem ngạ ờ ể ể ế ị ười dùng
có quy n đ c dòng d li u đó hay không.ề ọ ữ ệ
Trong OLS, tác v đ c tụ ọ ương đương v i l nh SELECT.ớ ệ
Nói m t cách ng n g n, ngộ ắ ọ ười dùng ch có th đ c đỉ ể ọ ược d li u khi th a đ ngữ ệ ỏ ồ
th i các đi u ki n sau:ờ ề ệ
Level c a session label cao h n ho c b ng level c a d li u.ủ ơ ặ ằ ủ ữ ệ
Session label có ch a ít nh t m t group n m trong các group c a dataứ ấ ộ ằ ủ label ho c có ch a group cha c a ít nh t m t group n m trong data label.ặ ứ ủ ấ ộ ằ
Session label có ch a t t c các compartment xu t hi n trong data label.ứ ấ ả ấ ệ
5 Gi i thu t b o m t c a OLS đ i v i tác v vi tả ậ ả ậ ủ ố ớ ụ ế
Hình trên mô t m t cách rõ ràng cách th c mà OLS so sánh nhãn d li u vàả ộ ứ ữ ệ nhãn người dùng đ quy t đ nh xem ngể ế ị ười dùng có quy n vi t dòng d li u đóề ế ữ ệ hay không
Trong OLS, tác v vi t tụ ế ương đương v i m t trong các l nh: UPDATE,ớ ộ ệ INSERT, DELETE
Nói m t cách ng n g n, ngộ ắ ọ ười dùng ch có th vi t đỉ ể ế ược d li u khi đ ng th iữ ệ ồ ờ
th a 2 đi u ki n sau:ỏ ề ệ
Trang 10 Đi u ki n v level: Level c a data label ph i th p h n ho c b ng levelề ệ ề ủ ả ấ ơ ặ ằ
c a session label hi n t i c a user và cao h n ho c b ng min_level c aủ ệ ạ ủ ơ ặ ằ ủ
N u data label có ch a group: session label ph i có quy n vi t trên ít nh tế ứ ả ề ế ấ
m t group trong data label ho c có quy n vi t trên group cha c a ít nh tộ ặ ề ế ủ ấ
m t group trong data label. Bên c nh đó, session label cũng ph i ch a t tộ ạ ả ứ ấ
c các compartment xu t hi n trong data label (t c là có quy n đ c trênả ấ ệ ứ ề ọ
t t c các compartment c a data label, còn quy n write có ho c không cóấ ả ủ ề ặ cũng được)
6 Các quy n đ c bi t trong OLSề ặ ệ
Vì m t s lý do đ c bi t, m t ngộ ố ặ ệ ộ ười dùng có th để ược c p nh ng quy n đ cấ ữ ề ặ
bi t trong OLS đ th c hi n m t s tác v chuyên bi t ho c truy xu t đ n dệ ể ự ệ ộ ố ụ ệ ặ ấ ế ữ
li u n m ngoài gi i h n truy xu t đệ ằ ớ ạ ấ ược quy đ nh trong t p xác th c quy n c aị ậ ự ề ủ
người dùng đó
Các quy n đ c bi t đề ặ ệ ược OLS đ nh nghĩa g m có 2 nhóm: quy n truy xu t đ cị ồ ề ấ ặ
bi t (Special Access Privilege), quy n đ c bi t trên row label (Special Row Labelệ ề ặ ệ Privilege)
Quy n truy xu t đ c bi t ề ấ ặ ệ :
READ: cho phép người có quy n xem (SELECT) t t c các d li u do chínhề ấ ả ữ ệ sách này b o v , ngay c khi ngả ệ ả ười này không được gán b t c t p xác th cấ ứ ậ ự quy n nào. ề
FULL: cho phép người có quy n vi t và xem t t c các d li u do chính sáchề ế ấ ả ữ ệ này b o v ả ệ
COMPACCESS: quy n COMPACCESS cho phép ngề ười dùng truy xu t dấ ữ
li u d a trên các compartment c a nhãn d li u, không quan tâm đ n cácệ ự ủ ữ ệ ế