Mandatory Access Control MACmức độ nhạy cảm của dữ liệu được chứa trong đối tượng cần bảo vệ và security clearance của người truy cập... Nhãn được gán cho các user và đối tượng dữ liệu
Trang 1GVHD: TS Đ ng Toàn Khánh ặ Nhóm th c hi n ự ệ
1 Lâm Th Ki u Ngân 1012022 ị ề
2 Ngô Th Ng c Th m 1012040 ị ọ ắ
Trang 21 Tổng quan
2 Kiến trúc Oracle Label Security
3 Triển khai thực hiện
4 Ưu điểm
5 Label Based Access Control (LBAC) vs Virtual
Private Database (VPD)
Trang 3 Truy cập vào dữ liệu riêng tư bất hợp pháp
ngày càng phổ biến.
phí và làm tăng tải cho người quản trị
liệu an toàn trước những xâm nhập bất hợp pháp
diện Oracle Database Defense in Dept.
Trang 5Oracle Audit Vault
Oracle Database Vault
DB Security Evaluation #19
Transparent Data Encryption
EM Configuration Scanning
Fine Grained Auditing (9i)
Secure application roles
Client Identifier / Identity propagation
Oracle Label Security
Strong authentication (PKI, Kerberos, RADIUS)
Native Network Encryption (Oracle7)
Trang 6Ba mô hình: DAC,MAC,RBAC
Discretionary Access Control (DAC)
quyết định chính sách truy cập đến đối tượng: cho ai được truy cập và được làm những hành động gì trên đối tượng
đối tượng
(role) hay từng user Một user có thể không thuộc
nhóm nào cũng có thể thuộc nhiều nhóm
Trang 7 Mandatory Access Control (MAC)
mức độ nhạy cảm của dữ liệu được chứa trong đối tượng cần bảo vệ và security clearance của người truy cập
Mối quan hệ : U<C<S<T.
Trang 8 Mandatory Access Control (MAC)
Hai luật sau định nghĩa truy cập bắt buộc:
+ Simple-Security Property (ss - property): Một User có
thể đọc một đối tượng chỉ nếu mức bảo mật của user cao hơn hoặc bằng mức bảo mật của đối tượng (Readdown).
+ * Property: Một user có thể ghi thông tin vào một đối
tượng chỉ nếu mức bảo mật của đối tượng cao hơn hoặc bằng mức bảo mật của user (Write up)
Trang 9Sự thực thi của MAC trong Oracle là cung cấp khả năng phân cấp dữ liệu theo vai trò của
người dùng với kỹ thuật dán nhãn dữ liệu, gọi là
an toàn dựa vào nhãn - OLS (Oracle Label
Security) Nhãn được gán cho các user và đối
tượng dữ liệu của hệ thống
Khả năng lưu trữ những dữ liệu nhạy cảm
chung với các dữ liệu khác trên một bảng dữ liệu nhưng vẫn đảm bảo tính bảo mật
Áp dụng các chính sách, cho phép kiểm soát một cách dễ dàng và uyển chuyển
Trang 10 Thêm một cột lưu nhãn phản ánh mức độ nhạy cảm của dòng dữ liệu
Điều khiển bằng cách so sánh các data label với user label (security clearance)
User label (security clearance) được xem như một phần
mở rộng của privileges và roles
Điều khiển truy xuất phức tạp hơn mô hình DAC
Bảo vệ dữ liệu đến mức dòng (row level)
Trang 13Điều khiển truy xuất đến dòng dữ liệu Có các tên gọi khác:
row-level security (RLS) fine-grained access control (FGAC)Được giới thiệu từ Oracle 8i
Database thực thi chính sách bảo mật để sửa đổi câu truy vấn (Policy-based query modification)
Chính sách bảo mật được tạo ra bởi các thủ tục được có sẵn
Các thủ tục này được đính kèm vào table, view, table + column (từ Oracle 10g) bằng cách gọi
đến một RDBMS package
Trang 14VPD cho phép cơ chế bảo mật truy cập được gỡ bỏ khỏi các ứng dụng và tập trung vào bên trong Oracle
Trang 15•Hạn chế truy cập bằng cách sử dụng nội dung
của dữ liệu được lưu trữ trong CSDL hoặc các biến bối cảnh được cung cấp bởi Oracle, ví dụ như tên người dùng hoặc địa chỉ IP
Added by
VPD
Trang 16USER Security
Policy
Where Table
Predicate
Package
Step 3 Step 4
Step 5
Dữ liệu truy cập qua VPD sẽ thực hiện theo 5 bước sau:
1 User phát câu lệnh SQL vào DB server
2 Bảng liên quan sẽ kích hoạt một chính sách bảo mật đã được định nghĩa trước đó
3 Chính sách bảo mật trả về một predicate
4 Câu lệnh SQL được sửa đổi lại theo chính sách bảo mật
5 Dữ liệu được bảo mật được trả về cho người sử dụng
Trang 17Tại thời điểm thực thi, Oracle tự động thay đổi câu lệnh SQL của người dùng cuối bằng cách:
• Tập hợp thông tin ngữ cảnh ứng dụng vào thời điểm ngươi dùng đăng nhập, sau đó gọi các policy function, function này trả về một
predicate, là một mệnh đề where xác định một tập riêng các hàng trong bảng
• Viết lại các truy vấn bằng cách gắn thêm
predicate cho câu lệnh SQL của người dùng Câu lệnh của người dùng:
SELECT * FROM book
Câu lệnh thực thi:
SELECT * FROM book WHERE P1
Trang 18CREATE OR REPLACE FUNCTION emp_sec
(schema IN varchar2, tab IN varchar2)
Trang 21Application context
Được sử dụng để lưu thông tin chi tiết về quyền của người dùng như:
• application name
• the user's name
• thông tin giới hạn dòng riêng biệtThiết lập bằng cách gọi dbms_session.set_context
Có thể được thiết lập khi:
• sign-on (user’s logon) bởi database trigger
• gọi dbms_session package
Trang 22Column Relevant Policies (10g)
Cho phép một chính sách không chỉ được gắn vào table hay view mà còn được gắn vào một cột riêng Khi user truy xuất đến table và cột riêng
đó, policy function sẽ được gọi và truy vấn được
sửa lại
Cung cấp thuộc tính tuỳ chọn “'Column Masking” dùng để báo cho Database trả về tất cả các dòng có liên quan theo đúng truy vấn ban đầu bằng cách bỏ qua mệnh đề where trong policy mới Tuy nhiên, policy sẽ vẫn thực thi để biết column
cell nắm ngoài policy và trả về NULL cho những
cell đó
Trang 23Column Relevant Policies
Select cust_last_name,
social_security_number
from accts;
VPD Col Relevant Policy
SOCIAL SECURITY NUMBER
381-395-9223 431-395-9332
Trang 24 Người quản trị nhãn bảo mật định nghĩa một tập nhãn cho Data và user, cùng với việc cấp quyền cho user
truy xuất đến các đối tượng đã được bảo vệ.
Một policy của OLS gồm một tên gắn liền với các label, các luật (rule) và các authorization.
Khi thực thi một câu lệnh SELECT, OLS đánh giá mỗi dòng được select để kiểm tra xem user có được truy xuất không Việc kiểm tra này dựa trên các quyền và nhãn truy xuất đã được quản trị bảo mật gán cho user.
OLS cũng có thể cấu hình để thực hiện kiểm tra bảo mật trên câu lệnh Update, Delete, Insert.
Trang 26được đáp ứng nếu user muốn truy cập
được xem như là mức độ bảo mật của nó
Compartment và Group
Trang 27 Data Labels
xếp hạng, thể hiện mức nhạy cảm của thông tin Mỗi nhãn phải có duy nhất một Level
CONFIDENTIAL (2),SENSITIVE (3),
HIGHLY SENSITIVE (4)
Trang 28- Ví dụ, compartment là các phòng ban làm việc của một
tổ chức hay một lĩnh vực như tài chính, hạt nhân
- Mỗi một nhãn có thể có không có hay có nhiều
compartmet.
VD: FINANCIAL, STRATEGIC, NUCLEAR, CHEMICAL, OPERATOR.
Trang 29 Data Labels
- Groups: cũng là một tùy chọn để giới hạn truy cập trong một level Group có ích trong việc phân cấp user Group là một cây phân cấp
công ty, các vùng miền của một nước
Trang 30 Data Labels
Tóm lại: độ nhạy cảm của nhãn là một thuộc tính
đơn với nhiều thành phần Data labels phải
chứa level, nhưng compartments và groups là tùy chọn Người quản trị phải định nghĩa thành phần của nhãn trước khi tạo nhãn
Ký tự hợp lệ cho thành phần của nhãn bao gồm
ký tự alpha, _ , khoảng trắng Lưu ý: khoảng trắng đầu và cuối là không hợp lệ
Trang 31 Mối quan hệ giữa các thành phần trong Data Labels
Trang 32Ví dụ Levels, Compartments, và groups trong các lĩnh vực
Industry Levels Copartments groups
Quốc phòng TOP_SECRET
SECRET CONFIDENTIAL UNCLASSIFIED
ALPHA DELTA SIGMA
UK NATO SPAIN
Dịch vụ tài
chính ACQUISITIONSCORPORATE
CLIENT OPERATIONS
INSURANCE EQUITIES TRUSTS COMMERCIAL_LOANS CONSUMER_LOANS
CLIENT TRUSTEE BENEFICIARY MANAGEMENT STAFF
Kinh doanh TRADE_SECRET
PROPRIETARY COMPANY_
CONFIDENTIAL PUBLIC
MARKETING FINANCIAL SALES
PERSONNEL
AJAX_CORP BILTWELL_CO ACME_INC ERSATZ_LTD
Trang 33Label syntax
LEVEL:COMPARTMENT1, ,COMPARTMENTn:GROUP1, ,GROUPn
VD:
SENSITIVE:FINANCIAL,CHEMICAL:EASTERN_REGION,WESTERN_REGION CONFIDENTIAL:FINANCIAL:VP_GRP
SENSITIVE
HIGHLY_SENSITIVE:FINANCIAL
SENSITIVE::WESTERN_REGION
Trang 35User Labels
User được gán một Level cao nhất là S -> có thể truy cập dữ liệu S, C, và U, không được truy cập vào dữ liệu HS User có Level cao có thể truy xuất đến Data Lables có level thấp hơn ngược lại là không được.
Trang 36Một user có:
• Level cao nhất và thấp nhất
• Các compartment được cấp quyền
• Các group được cấp quyền
• Một đặc tả chế độ read-only hoặc read/write cho mỗi compartment và group
Khi cấp quyền cho user, quản trị cũng quy định cụ thể session label nào sẽ được khởi tạo
Session Label là sự kết hợp đặc biệt giữa Level, các Compartment và các Group lúc thực thi User có thể thay đổi session label.
Trang 38 Khi user ghi dữ liệu mà không cần nhãn đặc biệt
thì một row label sẽ được gán tự động theo
Compartment/group của session label
thiết lập khởi tạo mặc định cho row label
Trang 39SA_SESSION Functions to Change Session and Row Labels
SA_SESSION.SET_LABEL
SA_SESSION.SET_ROW_LABEL
SA_SESSION.RESTORE_DEFAULT_LABELS
SA_SESSION.SAVE_DEFAULT_LABELS
Trang 41Security Privilege Explanation
READ Cho phép đọc dữ liệu được bảo vệ bới chính sách.
FULL Cho phép đọc và ghi dữ liệu được bảo vệ bới chính
sách.
COMPACCESS Cho phép truy cập dữ liệu có phân quyền bằng
Compartment của dòng và không phụ thuộc vào Group PROFILE_ACCESS Cho phép thay đổi Labels và đặc quyền
WRITEUP Cho phép người dùng thiết lập Level mức cao hơn
trong cùng một dòng label (chỉ áp dụng cho LABEL_UPDATE)
WRITEDOWN Cho phép người dùng thiết lập Level mức thấp hơn
trong cùng một dòng Nhưng phải lớn hơn hoặc bằng Level tối thiểu (chỉ áp dụng cho LABEL_UPDATE) WRITEACROSS Cho phép người dùng thiết lập Group và Compartment
trong cùng một dòng nhưng không thay đổi Level (chỉ
áp dụng cho LABEL_UPDATE)
Trang 42 Người quản trị định nghĩa các nhãn bằng:
gói Oracle label security
Oracle Enterprise Manager
Xây dựng chính sách bảo mật.
Áp chính sách cho các bảng
Phân giao cho user các thành phần nhãn (và đặc quyền, nếu cần thiết).
Trang 43Access mediation là cách chọn phương pháp để
OLS xác định xem một session có đủ quyền để truy cập đến dòng dữ liệu trong mỗi lần đọc hoặc ghi
Row domination là khoá để biết access mediation Khi session đã được gán đủ quyền để read hoặc
• Label của dòng dữ liệu
• Label của user session
• policy privileges dành cho user session
• Các policy enforcement opion thiết lập cho bảng
Trang 44User, labels and data
Trang 45Khi một người dùng gửi một truy vấn để đọc dữ liệu, OLS so sánh các điều khoản nhãn chính sách cấp cho user's
session so với data label trên các dòng mục tiêu dựa trên
các quy tắc sau đây:
1 session level của user >= level của dòng dữ liệu
2 Các Group của user phải chứa ít nhất 1 group trong row's data label
3 Các Compartment của user phải chứa tất cả các
Trang 47Reading down
Khi một User đã được cấp quyền mức độ bảo mật thì không đọc được bất kỳ dữ liệu nào ở mức cao hơn nó Nhưng có thể đọc được tất cả dữ liệu ở mức thấp hơn nó.
Chú ý: - Nếu một Data label là NULL hoặc không hợp lệ,
OLS sẽ từ chối truy cập đến hàng bởi vì người dùng đó
không có quyền truy xuất tới dữ liệu nhạy cảm đó.
- User có thể truy cập hoặc bị từ chối phụ thuộc vào đặc quyền của OLS (thỏa mãn DAC)
Trang 48Truy cập ghi (i.e INSERT, UPDATE, DELETE, or MERGE)
Là tập các luật đặt ra để đảm bảo rằng User không ghi vào dòng mà không được cấp quyền trong các thành phần của Data Label.
1 Level của dòng >= minimum level của user
2 Level của dòng <= session level của user
3 Các group trong session label phải chứa ít nhất 1
group trong data label của dòng
4 Các compartment trong session label phải chứa tất cả compartment trong data label của dòng.
Nếu không có group của data label thì user phải ghi lên tất
cả compartments trong data label
Kết quả của luât ghi:
User không thể ghi dữ liệu dưới minimum write level
User không thể ghi dữ liệu trên session level
Trang 501 Tổng quan
2 Kiến trúc Oracle Label Security
4 Ưu điểm
5 Lable Based Access Control (LBAC) vs Virtual
Private Database (VPD)
Trang 51- Bước 1 (Tạo chính sách OLS): Chính sách này bao gồm các nhãn (label),
quyền người dùng (user authorization), đối tượng CSDL cần bảo vệ (protected database object).
SA_SYSDBA.CREATE_POLICY
- Bước 2 (Định nghĩa các thành phần nhãn - label component):
SA_COMPONENTS.CREATE_LEVEL SA_COMPONENTS.CREATE_COMPARTMENT SA_COMPONENTS.CREATE_GROUP
- Bước 3 (Tạo các label để sử dụng):
SA_LABEL_ADMIN.CREATE_LABEL
- Bước 4 (Áp dụng chính sách an toàn trên cho các bảng hay các lược đồ):
Sau bước này, các bảng hay lược đồ quan hệ đó sẽ được add thêm một cột chứa nhãn an toàn của từng hàng.
Trang 521 Tổng quan
2 Kiến trúc Oracle Label Security
3 Triển khai thực hiện
5 Lable Based Access Control (LBAC) vs Virtual
Private Database (VPD)
Trang 53 Phân cấp dữ liệu theo vai trò của người dùng
với kỹ thuật dán nhãn dữ liệu
dễ dàng và uyển chuyển
Manager, cho phép quản lý tập trung
năng bao gồm quản lý các chính sách và phân tích nhãn dữ liệu
Trang 541 Tổng quan
2 Kiến trúc Oracle Label Security
3 Triển khai thực hiện
4 Ưu điểm
Virtual Private Database (VPD)
Trang 55Label Based Access Control vs Virtual Private Database
Criteria Virtual Private Database Oracle Label security
Cài đặt - Tạo một security context để quản
lý session
- Tạo hàm và thủ tục để quản lý việc thiết lập security context cho user
- Viết một gói phần mềm để tạo ra các predicate động dành cho việc truy suất trong mỗi table.
- Đăng ký các policy fuction / policy package với DBMS_RLS package
- Tự động hóa việt thiết lập security context bằng cách dùng
- Tạo các data label
- Tạo các label cho cây phân cấp của Group (security Level plus Groups)
- Gán các nhãn bảo mật cho user
- Gán các chính sách bảo mật cho các bảng cần bảo vệ
- Phân quyền cho các lược đồ để duy trì dữ liệu trong tất cả các đối tượng.
- Gán nhãn bảo mật tương ứng cho dữ liệu trong bảng
Trang 56Label Based Access Control vs Virtual Private Database
Criteria Virtual Private
Database Oracle Label security
Cấu trúc dữ liệu Không thay đổi Sẽ thêm vào mỗi cột trong bảng một Label
Bitmap chỉ số trên cột có Label Đổi quyền của
user Động, Dựa trên hàm Động, Dựa trên user labels
người quản lý Không Dùng Oracle Policy manager
Oracle version 8i,9i, 10g, 11g 9i,10g, 11g