Mô hình kiểm soát truy cập bắt buộc MAC và ứng dụng trong Oracle
SecurityNơi giao lưu, hỏi đáp, thảo luận, chia sẻ kiến thức, kinh nghiệm hay về bảo mật, phần mềm quản lý máy chủ (hosting) (CPanel, Plesk, ...), VPS, ...
Bài này thảo luận về mô hình kiểm soát truy cập bắt buộc (MAC) và ứng dụng của mô hình này để đảm bảo an toàn cho cơ sở dữ liệu trong hệ quản trị cơ sở dữ liệu Oracle. - Chúng ta sẽ bắt đầu từ việc giới thiệu tóm lược về mô hình kiểm soát truy cập bắt buộc MAC và thảo luận về MAC.
I. Mô hình kiểm soát truy cập bắt buộc (MAC):
- Mô hình kiểm soát truy cập bắt buộc có tên Tiếng Anh là Mandatory Access Control, viết tắt là MAC - MAC là một phương tiên để hạn chế truy cập tới các đối tượng dựa vào mức độ nhạy cảm của dữ liệu được chứa trong các đối tượng và quyền hạn ( ví dụ: sự cho phép sử dụng thông tin bí mật mật - Clearance) của các chủ thể để truy cập thông tin nhạy cảm. - Clearance là mức bảo mật để người dùng (hay phía Client) có thể truy cập thông tin. Người ta thường chia Clearance thành 4 loại: + Tối mật (Top Secret - T): Được áp dụng với thông tin mà nếu bị lộ có thể dẫn đến những thiệt hại trầm trọng với an ninh quốc gia + Tuyệt mật (Secret - S): Được áp dụng với thông tin mà nếu bị lộ có thể dẫn đến một loạt thiệt hại với an ninh quốc gia + Mật (Confidential - C): Được áp dụng với thông tin mà nếu bị lộ có thể dẫn đến thiệt hại với an ninh quốc gia. + Không phân loại (Unclassified - U): Những thông tin không gây thiệt hại Sự phân loại mức bảo mật cho thông tin tuỳ thuộc vào chính sách. Người ta sẽ sử dụng cùng các mức phân loại cho các mức Clearence thành một cặp "Kiểu - Loại". Trong đó, kiểu người dùng là một giới hạn để truy cập thông tin dựa trên sự phân loại Clearence của thông tin. Mối quan hệ trong phân loại này là: U< C < S < T. Mỗi mức bảo mật nói lên ưu thế của nó với tất cả những thứ bên dưới nó trong kiến trúc này. (Loại T có ưu thế hơn cả) - Khái niệm MAC được hình thức hoá lần đầu tiên bởi mô hình Bell và LaPadula. Mô hình này hỗ trợ MAC bằng việc xác định rõ các quyền truy cập từ các mức bảo mật kết hợp với các chủ thể và đối tượng. Hai luật sau định nghĩa truy cập bắt buộc: + Simple-Security Property (ss - property): Một chủ thể có thể đọc một đối tượng chỉ nếu mức bảo mật của chỉ thể cao hơn hoặc bằng mức bảo mật của đối tượng (cái này gọi là Readdown - Đọc xuống): Ý nghĩa:Ta thấy, nếu một người dùng ở mức an toàn - tin cậy tương ứng với "Tối mật - T" thì anh ta đọc thông tin ở mức thấp hơn ("Tuyệt mật - S ") cũng không vấn đề gì. + *.Property: Một chủ thể 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 chủ thể (cái này gọi là Write up - Ghi lên) Ý nghĩa: Ta thấy, nếu thông tin ở mức nhạy cảm thấp nếu có ghi lên mức cao thì cũng không vấn đề gì (chẳng hạn từ mật - ghi vào đối tượng tương ứng với tuyệt mật thì cũng không ảnh hưởng gì) - Chính sách MAC so sánh nhãn nhạy cảm tại nơi người dùng đang làm việc với nhãn nhạy cảm của đối tượng đang được truy cập và sẽ từ chối truy cập trừ khi chắc chắn việc kiểm tra MAC là phù hợp. MAC giả thiết rằng các nhãn bảo mật trên các chủ thể và đối tượng được gán một lần, không thể thay đổi (ngoại trừ người quản trị bảo mật). Giả thiết này là lý do để gọi MAC là bắt buộc. Với kiểm soát bắt buộc, chỉ những người quản trị mà không phải người sở hữu các tài nguyên mới có thể đưa ra quyết định xuất phát từ chính sách. Chỉ một người quản trị có thể thay đổi phân loại của một tài nguyên. [ Tham khảo và biên dịch từ : Implementation of MAC in Role - Based Security System, 2001]
Sự thực thi của MAC trong các hệ quản trị là dựa và các nhãn - label, dùng để gán cho các chủ thể và đối tượng của hệ thống. Do đó, trong Oracle gọi MAC là an toàn dựa vào nhãn - OLS (Oracle Label Security). OLS trong Oracle cho phép bảo vệ dữ liệu của các bảng đến mức hàng - mức bản ghi (row level). OLS cho phép chúng ta định nghĩa một chính sách an toàn (security policy) được thực thi bằng cách gán cho các bản ghi trong bảng bởi các nhãn an toàn. Nhãn này cũng thể hiện quyền mà một người dùng cần có để có thể đọc hay ghi dữ liệu trong các bản ghi. Khi áp dụng chính sách an toàn vào một bảng, bảng đó sẽ được bổ sung thêm một cột để chứa các nhãn an toàn gắn với từng bản ghi của bảng đó.
(Công cụ thực hiện OLS trong Oracle là Oracle Security Manager)
Cài đặt OLS Để cài đặt OLS, ta phải lựa chọn tuỳ chọn Custom trong quá trình cài đặt Oracle. Đồng thời, khi create Database phải chọn tuỳ chọn Oracle Label Security. Sau khi chọn các tuỳ chọn đó, OLS đã được hỗ trợ trong Oracle để ta có thể bảo vệ CSDL của mình dựa vào các label mà ta sẽ tạo ra. Thực thi an toàn nhãn (Label security) Cần có 5 bước để thực thi OLS:
- 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).
- Bước 2 (Định nghĩa các thành phần nhãn - label component): Mỗi một label bao gồm 3 thành phần: + Level: là thành phần bắt buộc, phân cấp, thể hiện mức nhạy cảm của thông tin + Compartment: là thành phần tuỳ chọn, không phân cấp, sử dụng để phân loại dữ liệu. Ví dụ, compartment là các phòng ban làm việc của một tổ chức + Group: cũng là một tùy chọn để giới hạn truy nhập trong một level. Group có ích trong việc phân cấp user. Ví dụ, Group có thể là các chi nhánh của một công ty, các vùng miền của một đất nước.
- Bước 3 (Tạo các label để sử dụng): Từ các label component đã định nghĩa ở bước 2, tạo một tập các nhãn dựa vào chính sách an toàn phù hợp với ứng dụng của ta.
- 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.
- Bước 5 (Gán nhãn cho các user hay các ứng dụng): Bước này thực hiện gán nhãn cho người dùng một cách phù hợp với từng người dùng. Sau đó OLS sẽ so sánh nhãn của một người dùng với nhãn dữ liệu gán cho từng hàng để đưa ra quyết định truy nhập. Một người dùng chưa được gán nhãn sẽ không thể truy nhập vào bảng đó.
Ta có thể thực thi OLS trong Oracle bằng công cụ Oracle Policy Manager. Tại đây, ta có thể tạo policy để áp dụng và các bảng và các lược đồ. Trong một Policy tạo ra, ta quan tâm đến 3 phần sau: - Labels: là nhãn ta tạo ra để gán cho các bản ghi trong table, bao gồm: + Label components (Thành phần nhãn): bao gồm Level, Compartment và Group. + Data label: là nhãn dữ liệu tạo ra từ 3 thành phần nhãn trên. - Authorizations: là phần cấp quyền cho các user để cho phép họ truy nhập và từng hàng dữ liệu như thế nào. - Protected Objects (Các đối tượng cần bảo vệ): đưa vào các bảng hay các lược đồ cần bảo vệ. Bên cạnh đó, ta có thể sử dụng thêm công cụ SQLPlus Worksheet để thực hiện OLS bằng các câu lệnh SQL.
Ví dụ áp dụng: Ta có một bảng CSDL "Nhân Sự" lưu thông tin về các nhân viên của một công ty phần mềm như sau:
ID | HoTen | DiaChi | Phong | ChucVu | ChiNhanh | Luong 01 |AA | HT | ""| Giám đốc | Miền Bắc | 5000 | 02 | BB | NB | Maketing | Trưởng phòng | Miền Nam | 3000| 03 | CC | HP | Maketing | Nhân viên | Miền Nam | 1500 | 04 | DD | HD | Lập trình |Trưởng phòng | Miền Bắc | 3500 | 05 | EE | ND | Lập trình | Nhân viên | Miền Nam | 2000 | 06 | FF | NA | Kế hoạch | Nhân viên | Miền Bắc | 2000 | 07 | GG | HT | "" | Giám đốc | Miền Nam | 5000 |
Một số quy tắc quản lý: - Tất cả các nhân viên có thể xem thông tin của các nhân viên của phòng mình. - Tất cả các trưởng phòng: có thể xem, sửa và thêm thông tin của phòng mình. - Giám đốc: có thể thực hiện tất cả các hoạt động đối với CSDL.
Level Tạo 3 level, tương ứng với 3 chức vụ: Giám đốc, trưởng phong, nhân viên: Viết tắt | Viết đủ | Giá trị số OFF | OFFICER | 7000 | (nhân viên) MGR | MANAGER | 8000 | (trưởng phòng) EXEC | EXECUTIVE | 9000 | (giám đốc)
Compartment Tạo ra 3 compartnent tương ứng với 3 phòng ban: KH, MK, LT Viết tắt | Viết đủ | Giá trị số KH | Phòng kế hoạch | 100 | MK | Phòng Maketing | 200 | LT | Phòng lập trình | 300 |
Group Tạo 3 group, tương ứng với ALL-đại diện cho cả nước, MB- là chi nhánh miền bắc, MN – chi nhánh miền nam Viết tắt | Viết đủ | Giá trị số ALL | Tổng công ty | 10 | MB | Miền bắc | 20 | MN | Miền Nam | 30 |
Sau đó, ta tạo các data label và gắn với từng hàng dữ liệu, và phân cho người dùng những nhãn thích hợp. Kết quả là: Giám đốc có thể thực hiện mọi thao tác trên CSDL, các trưởng phòng có thể xem, sửa thông tin của các nhân viên thuộc phòng họ và không thể xem thông tin của các phòng khác, các nhân viên thì chỉ có thể xem thông tin của phòng mình mà không được phép sửa đổi.
Kết luận: Như vậy sau khi áp dụng OLS, các hàng dữ liệu trong bảng và các người dùng đều được gán nhãn an toàn thích hợp. Một người dùng chỉ được xem, thực hiện những câu truy vấn nhất định trong một số các bản ghi mà họ có thể xem chứ không phải tất cả các bản ghi của CSDL. (Bàn thêm: Trong hệ quản trị cơ sở dữ liệu DB2 cũng có thể áp dụng MAC, trong ORACLE chỉ bảo vệ ở mức hàng, còn trong DB2 có thể bảo vệ mức hàng và cả mức cột )