Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 14 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
14
Dung lượng
261,95 KB
Nội dung
Bảo Mật Hệ Thống Thông Tin Lab Bài thực hành số ORACLE LABEL SECURITY (2) Tóm tắt nội dung: Các thành phần nhãn Oracle Label Security Nhãn liệu (data label) I Các thành phần nhãn liệu A Lý thuyết Nhãn liệu (data label) Như biết, mô hình MAC bảo vệ liệu cách quy định hệ thống biểu diễn mức độ quan trọng, bí mật cho đối tượng liệu theo cấp bậc từ cao xuống thấp Ví dụ, cơng ty phân loại mức độ bí mật thành cấp với mức độ bảo mật giảm dần: TOP SECRET (tối mật), SECRET (bí mật), CONFIDENTIAL (chỉ lưu hành nội bộ), PUBLIC (công khai) Trong OLS, Oracle sử dụng nhãn liệu (data label) để phân lớp liệu theo mức độ nhạy cảm số tiêu chí khác Nói cách khác, nhãn liệu chứa thông tin mức độ nhạy cảm liệu số tiêu chí cộng thêm mà người dùng phải đáp ứng để truy xuất đến liệu Nhãn liệu thuộc tính đơn gồm loại thành phần: level, compartment, group Nếu sách áp dụng cho bảng, hàng bảng gán nhãn liệu (data label) để biểu diễn mức độ bảo mật hàng liệu Giá trị nhãn lưu cột chứa thông tin sách (cột tự động tạo thêm sách áp dụng cho bảng) Các thành phần nhãn a Level Mỗi nhãn có level biểu thị độ nhạy cảm liệu OLS cho phép tối đa 10,000 level sách Đối với level, ta cần định nghĩa dạng số dạng chuỗi cho VD: Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM Bảo Mật Hệ Thống Thông Tin Lab Dạng số Dạng chuỗi dài Dạng chuỗi ngắn 40 30 20 10 HIGHLY_SENSITIVE SENSITIVE CONFIDENTIAL PUBLIC HS S C P Dạng số (numeric form): dạng số level có giả trị khoảng 09999 Level có giá trị cao độ nhạy cảm tăng Trong VD trên, Highly_sensitive có độ nhạy cảm cao User nên tránh sử dụng chuỗi liên tiếp giá trị để biểu diễn cho level nhãn để tránh tình trạng có level thêm vào phải định nghĩa lại toàn level Dạng chuỗi dài (long form): chứa tối đa 80 ký tự, cho biết tên đầy đủ level Dạng chuỗi ngắn (short form): chứa tối đa 30 ký tự, dạng rút gọn tên level Mỗi cần tham khảo đến level ta sử dụng tên rút gọn b Compartment Mỗi nhãn có nhiều khơng có compartment OLS cho phép tối đa 10,000 compartment sách Compartment giúp cho việc phân loại liệu theo lĩnh vực, chuyên ngành, dự án,…chứ phân cấp mức độ nhạy cảm liệu Nghĩa ta có liệu thuộc compartment C1 C2, có nghĩa liệu thuộc lĩnh vực khác C1 C2 nghĩa liệu thuộc C1 nhạy cảm liệu thuộc C2 (hay ngược lại) Đối với compartment, ta cần định nghĩa dạng số dạng chuỗi VD: Dạng số Dạng chuỗi dài Dạng chuỗi ngắn 85 65 45 FINANCIAL CHEMICAL OPERATIONAL FINCL CHEM OP Dạng số (numeric form): dạng số compartment có giả trị khoảng 0-9999 Nó khơng liên quan đến số level Giá trị dùng để quy định thứ tự hiển thị compartment label Đối với VD trên, ta có nhãn dạng sau: S:OP,CHEM,FINCL (do OP có giá trị nhỏ nên hiển thị trước nhất) Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM Bảo Mật Hệ Thống Thông Tin Lab Dạng chuỗi dài (long form): tối đa 80 ký tự, tên đầy đủ compartment Dạng chuỗi ngắn (short form): tối đa 30 ký tự, dạng rút gọn tên compartmet Khi cần tham khảo đến compartment ta sử dụng tên rút gọn c Group Mỗi nhãn có nhiều khơng có group OLS cho phép tối đa 10,000 group sách Group giúp xác định tổ chức, quan, phận sở hữu quản lý liệu (thơng thường thể cấu cơng ty) Do group có cấu trúc phân cấp Một group thuộc group cha có nhiều group Dữ liệu thuộc group xem thuộc group cha VD: Dạng số Dạng chuỗi dài 1000 1100 1200 1300 1310 WESTERN_REGION WR_SALES WR_HUMAN_RESOURCES WR_FINANCE WR_ACCOUNTS_PAYABLE WR_ACCOUNTS_RECEIVABL E 1320 Dạng chuỗi ngắn WR WR_SAL WR_HR WR_FIN WR_AP Group cha WR WR WR WR_FIN WR_AR WR_FIN Dạng số (numeric form): dạng số group có giả trị khoảng 09999 Nó khơng liên quan đến số level Giá trị dùng để quy định thứ tự hiển thị group label Đối với VD trên, ta có nhãn dạng sau: S:CHEM:WR,WR_HR (WR có giá trị nhỏ WR_HR nên hiển thị trước) Dạng chuỗi dài (long form): chứa tối đa 80 ký tự, cho biết tên group Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM Bảo Mật Hệ Thống Thông Tin Lab Dạng chuỗi ngắn (short form): chứa tối đa 30 ký tự, dạng rút gọn tên group Mỗi cần tham khảo đến group ta sử dụng tên rút gọn B Thực hành Tạo level Ở phần ta tạo thành phần level cho sách ACCESS_LOCATIONS mà ta tạo lab “Oracle Label Security (1)” Ta quy định sách ACCESS_LOCATIONS ta có level (theo thứ tự mức độ bảo mật giảm dần): SENSITIVE, CONFIDENTIAL, PUBLIC Ta dùng procedure SA_COMPONENTS.CREATE_LEVEL để tạo level: CONN sec_admin/secadmin; BEGIN sa_components.create_level (policy_name => 'ACCESS_LOCATIONS', long_name => 'PUBLIC', short_name => 'PUB', level_num => 1000); END; / EXECUTE sa_components.create_level ('ACCESS_LOCATIONS',2000,'CONF','CONFIDENTIAL'); EXECUTE sa_components.create_level ('ACCESS_LOCATIONS',3000,'SENS','SENSITIVE'); Đoạn code cho ta thấy cách khác để thực thi procedure Người đọc cần ý cách chọn số cho level Để thay đổi đầy đủ tên rút gọn level, ta dùng thủ tục SA_COMPONENTS.ALTER_LEVEL Nếu level dùng nhãn liệu đó, ta thay đổi tên đầy đủ khơng thể thay đổi tên rút gọn Trong trường hợp, ta thay đổi số đại diện level CONN sec_admin/secadmin; Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM Bảo Mật Hệ Thống Thông Tin Lab EXECUTE sa_components.create_level ('ACCESS_LOCATIONS',4000,'HS','HIGHLY SECRET'); BEGIN sa_components.alter_level (policy_name => 'ACCESS_LOCATIONS', level_num => 4000, new_short_name => 'TS', new_long_name => 'TOP SECRET'); END; / BEGIN sa_components.alter_level (policy_name => 'ACCESS_LOCATIONS', short_name => 'TS', new_long_name => 'TOP SENSITIVE'); END; / Để xóa level ta dùng thủ tục SA_COMPONENTS.DROP_LEVEL Nếu level sử dụng nhãn liệu nào, ta khơng thể xóa CONN sec_admin/secadmin; BEGIN sa_components.drop_level (policy_name => 'ACCESS_LOCATIONS', short_name => 'TS'); END; / Tạo compartment Giả sử có compartment là: Finance, Sales & Marketing, Human Resources Để tạo compartment dùng procedure SA_COMPONENTS.CREATE_COMPARTMENT: CONN sec_admin/secadmin; Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM Bảo Mật Hệ Thống Thông Tin Lab BEGIN sa_components.create_compartment (policy_name => 'ACCESS_LOCATIONS', long_name => 'SALES_MARKETING', short_name => 'SM', comp_num => 2000); END; / EXECUTE sa_components.create_compartment ('ACCESS_LOCATIONS',3000,'FIN','FINANCE'); EXECUTE sa_components.create_compartment ('ACCESS_LOCATIONS',1000,'HR','HUMAN RESOURCES'); Để thay đổi đầy đủ tên rút gọn compartment, ta dùng thủ tục SA_COMPONENTS.ALTER_COMPARTMENT Các điều kiện việc thay đổi thuộc tính compartment giống level CONN sec_admin/secadmin; EXECUTE sa_components.create_compartment ('ACCESS_LOCATIONS',4000,'PR','PUBLIC RELATIONS'); BEGIN sa_components.alter_compartment (policy_name => 'ACCESS_LOCATIONS', comp_num => 4000, new_short_name => 'PU', new_long_name => 'PURCHASING'); END; / BEGIN sa_components.alter_compartment (policy_name => 'ACCESS_LOCATIONS', short_name => 'PU', new_long_name => 'PURCHASE'); END; / Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM Bảo Mật Hệ Thống Thông Tin Lab Để xóa compartment ta dùng thủ tục SA_COMPONENTS.DROP_ COMPARTMENT Nếu compartment sử dụng nhãn liệu nào, ta xóa CONN sec_admin/secadmin; BEGIN sa_components.drop_compartment (policy_name => 'ACCESS_LOCATIONS', short_name => 'PU'); END; / Tạo group Chính sách có group cấp cao Corporate (CORP) tương ứng với cấp độ tồn cơng ty Cơng ty có chi nhánh hoạt động nước: Mỹ (American United States), Anh (United Kingdom) Canada Ứng với khu vực ta tạo group cho group CORP Ta dùng procedure SA_COMPONENTS.CREATE_GROUP để tạo group: CONN sec_admin/secadmin; BEGIN sa_components.create_group (policy_name => 'ACCESS_LOCATIONS', long_name => 'CORPORATE', short_name => 'CORP', group_num => 10, parent_name => NULL); END; / EXECUTE SA_COMPONENTS.CREATE_GROUP ('ACCESS_LOCATIONS',30,'US','UNITED STATES','CORP'); EXECUTE SA_COMPONENTS.CREATE_GROUP ('ACCESS_LOCATIONS',50,'UK','UNITED KINGDOM','CORP'); EXECUTE SA_COMPONENTS.CREATE_GROUP ('ACCESS_LOCATIONS',70,'CA','CANADA','CORP'); Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM Bảo Mật Hệ Thống Thông Tin Lab Để thay đổi đầy đủ tên rút gọn group, ta dùng thủ tục SA_COMPONENTS.ALTER_GROUP Các điều kiện việc thay đổi thuộc tính group giống level CONN sec_admin/secadmin; EXECUTE sa_components.create_group ('ACCESS_LOCATIONS',90,'FR','FRANCE','CORP'); BEGIN sa_components.alter_group (policy_name => 'ACCESS_LOCATIONS', group_num => 90, new_short_name => 'RFR', new_long_name => 'REPUBLIC FRANCE'); END; / BEGIN sa_components.alter_group (policy_name => 'ACCESS_LOCATIONS', short_name => 'RFR', new_long_name => 'PURCHASE'); END; / Để xóa group ta dùng thủ tục SA_COMPONENTS.DROP_GROUP Nếu group sử dụng nhãn liệu nào, ta khơng thể xóa CONN sec_admin/secadmin; BEGIN sa_components.drop_group (policy_name => 'ACCESS_LOCATIONS', short_name => 'RFR'); END; / Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM Bảo Mật Hệ Thống Thông Tin Lab II Chi tiết nhãn liệu A Lý thuyết Cú pháp nhãn liệu Hình sau minh họa quan hệ thành phần nhãn: Một nhãn liệu có cú pháp sau: LEVEL : COMPARTMENT1, , COMPARTMENTn : GROUP1, , GROUPn Chuỗi ký tự mơ tả nhãn chứa tối đa 4000 ký tự, bao gồm ký tự số, ký tự chữ, khoảng trắng, dấu gạch (_) Các nhãn không phân biệt chữ hoa, chữ thường Tuy nhiên chuỗi lưu trữ data dictionary hiển thị dạng chữ hoa Dấu hai chấm (“:”) dùng để phân cách loại thành phần VD: SENSITIVE HIGHLY_SENSITIVE:FINANCIAL SENSITIVE::WESTERN_REGION CONFIDENTIAL:FINANCIAL:VP_GRP SENSITIVE:FINANCIAL,CHEMICAL:EASTERN_REGION,WESTERN_REGION Hình sau ví dụ minh họa cho việc kết hợp level, compartment, group để phân loại liệu tổ chức: Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM Bảo Mật Hệ Thống Thông Tin Lab Không phải tổ hợp thành phần hình thành nên nhãn hợp lệ Ta định nghĩa nhãn có tổ hợp thành phần mà ta có nhu cầu sử dụng thật thực tế Sử dụng package SA_COMPONENTS để định nghĩa thành phần nhãn Sử dụng package SA_LABEL_ADMIN để tạo quản lý nhãn Label Tag Khi nhãn liệu tạo, Oracle tự động tạo cho nhãn số đại diện gọi label tag Mỗi label tag xác định nhãn tồn nhãn tất sách có sở liệu Nói cách khác, sở liệu, khơng có label tag (cùng sách khác sách) có giá trị giống Giá trị label tag khơng có tính chất so sánh số đại diện cho level Đây số thật lưu vào cột chứa thông tin nhãn sách bảng bảo vệ Ngồi hình thức tạo tự động, Oracle cho phép ta tự định nghĩa giá trị tag cho nhãn nhằm mục đích dễ quản lý, xếp, so sánh xử lý trình quản trị Trong ví dụ bên dưới, ta quy định nhãn có level “highly_sensivitve” (H) có tag bắt đầu số 4, “sensitive” (S) có tag bắt đầu số 3,… Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM 10 Bảo Mật Hệ Thống Thông Tin Lab Label Tag Nhãn liệu 10000 20000 P C 21000 21100 30000 C:FNCL C:FNCL,OP S 31110 40000 S:OP:WR HS 42000 HS:OP B Thực hành Các bước ta vừa làm phần I tương ứng với bước quy trình thực OLS Ở phần ta thực bước 3: tạo nhãn thật cần dùng từ thành phần Để tạo nhãn ta dùng thủ tục SA_LABEL_ADMIN.CREATE_LABEL Khi sử dụng thủ tục để tạo nhãn, ta phải tự định label tag (là số nguyên có tối đa chữ số) cho nhãn tạo CONN sec_admin/secadmin; BEGIN sa_label_admin.create_label (policy_name => 'ACCESS_LOCATIONS', label_tag => 10000, label_value => 'PUB'); END; / EXECUTE sa_label_admin.create_label ('ACCESS_LOCATIONS',20000,'CONF'); EXECUTE sa_label_admin.create_label ('ACCESS_LOCATIONS',20010,'CONF::US'); EXECUTE sa_label_admin.create_label ('ACCESS_LOCATIONS',20020,'CONF::UK'); EXECUTE sa_label_admin.create_label ('ACCESS_LOCATIONS',20030,'CONF::CA'); Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM 11 Bảo Mật Hệ Thống Thông Tin Lab EXECUTE sa_label_admin.create_label ('ACCESS_LOCATIONS',21020,'CONF:HR:UK'); EXECUTE sa_label_admin.create_label ('ACCESS_LOCATIONS',22040,'CONF:SM:UK,CA'); EXECUTE sa_label_admin.create_label ('ACCESS_LOCATIONS',34000,'SENS:SM,FIN'); EXECUTE sa_label_admin.create_label ('ACCESS_LOCATIONS',39090,'SENS:HR,SM,FIN:CORP'); Thông thường, xây dựng sách, ta nên xây dựng hệ thống quy ước đặt label tag để tiện lợi việc quản lý Trong đoạn code trên, ta quy ước chữ số biểu diễn level (1 PUB, CONF, SENS), chữ số biểu diễn compartment (00 cho biết khơng có compartment), chữ số cuối biểu diễn group (00 cho biết group) (Lưu ý phần thực hành tạo số nhãn để minh họa, không tạo hết tất nhãn cần thiết.) Để thay đổi nhãn, ta dùng thủ tục SA_LABEL_ADMIN.ALTER_LABEL Ta thay đổi giá trị nhãn thay đổi giá trị label tag Do vậy, độ nhạy cảm liệu thay đổi mà không cần phải cập nhật lại bảng chứa liệu đó, bảng lưu label tag không lưu giá trị nhãn CONN sec_admin/secadmin; EXECUTE sa_label_admin.create_label ('ACCESS_LOCATIONS',30000,'SENS'); EXECUTE sa_label_admin.create_label ('ACCESS_LOCATIONS',30090,'SENS::CORP'); BEGIN sa_label_admin.alter_label (policy_name => 'ACCESS_LOCATIONS', label_tag => 30000, new_label_value => 'SENS:SM'); sa_label_admin.alter_label Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM 12 Bảo Mật Hệ Thống Thông Tin Lab (policy_name => 'ACCESS_LOCATIONS', label_value => 'SENS:SM', new_label_value => 'SENS:HR'); END; / Ta xóa nhãn thủ tục SA_LABEL_ADMIN.DROP_LABEL: BEGIN sa_label_admin.drop_label (policy_name => 'ACCESS_LOCATIONS', label_value => 'SENS:HR'); END; / BEGIN sa_label_admin.drop_label (policy_name => 'ACCESS_LOCATIONS', label_tag => 30090); END; / III Bài tập Tạo thành phần nhãn cho sách region_policy (trong tập Lab 8): Level: level 1, level 2, level Compartment: MANAGEMENT, EMPLOYEE Group: REGION NORTH, REGION SOUTH, REGION EAST, REGION WEST Tạo bảng CUSTOMERS để áp dụng sách Sau insert liệu vào customers ( id NUMBER(10) NOT NULL, cust_type VARCHAR2(10), first_name VARCHAR2(30), last_name VARCHAR2(30), region VARCHAR2(5), credit NUMBER(10,2), CONSTRAINT customer_pk PRIMARY KEY (id)); Vùng giá trị số cột: Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM 13 Bảo Mật Hệ Thống Thông Tin Lab cust_type : silver, gold, platinum region: north, west, east, south credit: học viên cần nhập liệu đủ cho trường hợp tương ứng với khoảng giá trị >2000, từ 500 đến 2000, < 500 Bảng liệu sử dụng cho lab 10 Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM 14 ... Bách Khoa TP.HCM Bảo Mật Hệ Thống Thông Tin Lab Không phải tổ hợp thành phần hình thành nên nhãn hợp lệ Ta định nghĩa nhãn có tổ hợp thành phần mà ta có nhu cầu sử dụng thật thực tế Sử dụng... ''ACCESS_LOCATIONS'', label_ tag => 30000, new _label_ value => ''SENS:SM''); sa _label_ admin.alter _label Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM 12 Bảo Mật Hệ Thống Thông Tin Lab... “highly_sensivitve” (H) có tag bắt đầu số 4, “sensitive” (S) có tag bắt đầu số 3,… Chương Trình Đào Tạo Từ Xa KH & KT Máy Tính – Đại học Bách Khoa TP.HCM 10 Bảo Mật Hệ Thống Thông Tin Lab Label Tag Nhãn liệu 10000