Tải bản đầy đủ (.pdf) (115 trang)

Bài giảng Bảo mật cơ sở dữ liệu: Chương 4 - Trần Thị Kim Chi

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.07 MB, 115 trang )

ROLE BASED ACCESS
CONTROL MODELS
Điều khiển truy cập dựa trên vai trò


Đặt vấn đề
Sự phức tạp của bảo mật quản trị
 Khi hệ thống có số lượng lớn các chủ thể và các đối tượng tham gia
thì sự ủy quyền có thể trở nên cực kỳ lớn và phức tạp
 Khi hệ thống có quá nhiều người sử dụng thì các thao tác cấp
quyền và thu hồi quyền rất khó thực hiện và khó quản lý

Để giải quyết vấn đề trên người ta dùng cơ chế Role Based access
control model


Giới thiệu


Điều khiển truy cập dựa trên vai trò (Role Based Access
Control-RBAC)







Phát minh vào năm 1970
Áp dụng với hệ thống đa người dùng và đa ứng dụng trực tuyến
Còn được gọi là Điều khiển Truy cập không tùy ý


Quyền truy cập dựa trên chức năng công việc

RBAC gán các quyền cho các vai trò cụ thể trong tổ
chức. Các vai trò sau đó được gán cho người dùng


Giới thiệu


Điều khiển truy cập dựa trên vai trò (Rule Based Access
Control-RBAC)








Tự động gán vai trò cho các chủ thể dựa trên một tập quy tắc do
người giám sát xác định
Mỗi đối tượng tài nguyên chứa các thuộc tính truy cập dựa trên
quy tắc
Khi người dùng truy cập tới tài nguyên, hệ thống sẽ kiểm tra các
quy tắc của đối tượng để xác định quyền truy cập
Thường được sử dụng để quản lý truy cập ngưới dùng tới một
hoặc nhiều hệ thống


Những thay đổi trong doanh nghiệp có thể làm cho việc áp dụng

các quy tắc thay đổi


Role-Based Access Control


Ý tưởng trọng tâm của RBAC là permission (quyền
hạn) được kết hợp với role (vai trò) và user (người sử
dụng) được phân chia dựa theo các role thích hợp.



RBAC làm đơn giản việc quản lý các permission.Tạo các role
cho các chức năng công việc khác nhau trong một tổ chức và
các USER được phân các role dựa vào trách nghiệm và quyển
hạn cua ho.Những role được cấp các permission mới hoặc
hủy bỏ permission khi cần thiết.


Role-Based Access Control


Các khái niệm cơ bản:









User (Người dùng) - một con người, một máy, một quá
trình, vv
Role là một tập hợp bao gồm các quyền (permission) và
các role khác

Đối tượng tham số đặc quyền để hạn chế quyền truy cập
vào một tập hợp con của các đối tượng.
Session(phiên) là một phần quan trọng của RBAC phân
biệt nó với cơ chế group truyền thống. Session cho phép
kích hoạt một tập hợp con của role được gán cho user.
Nếu không có session thì tất cả các role của user luôn
được kích hoạt dẫn đến việc có thể vi phạm đặc quyền tối
thiếu.


Role-Based Access Control


Quyền hạn (permission): là một sự cho phép thực hiện một câu
lệnh SQL nào đó hoặc được phép truy xuất đến một đối tượng
nào đó.



Chỉ cấp cho user chính xác những quyền mà user cần đến. Việc
cấp dư thừa những quyền không cần thiết có thể gây nguy hại
cho việc bảo mật hệ thống.










Một permission có thể là một cặp object-method hay class-method
trong môi trường hướng đối tượng
Một permission cũng có thể là 1 cặp table-query hay view-query
trong ứng dụng CSDL
Permissions are assigned to roles: Permission assignment (PA): rolepermission
Users are assigned to roles: User assignment (UA): user-role


Role-Based Access Control
Có 2 loại quyền:
• Quyền hệ thống (System Privilege):
• Là quyền thực hiện một tác vụ CSDL cụ thể hoặc quyền thực hiện
một loại hành động trên tất cả những đối tượng schema của hệ
thống.


Vd: quyền ALTER SYSTEM, quyền CREATE TABLE, quyền
DELETE ANY TABLE (xóa các hàng của bất kỳ bảng nào trong
CSDL),…

• User có thể cấp 1 quyền hệ thống nếu có một trong các điều kiện
sau:
• User đã được cấp quyền hệ thống đó với tùy chọn WITH ADMIN

OPTION.
• User có quyền GRANT ANY PRIVILEGE.


Role-Based Access Control
Quyền đối tượng (Schema Object Privilege hoặc Object
Privilege):
• Là quyền thực hiện một hành động cụ thể trên một đối tượng schema cụ
thế.
• Vd: quyền xóa các hàng dữ liệu khỏi bảng Department.
• Có nhiều quyền đối tượng khác nhau dành cho các loại đối tượng schema
khác nhau.
• Dùng để quản lý việc truy xuất đến các đối tượng schema cụ thể nào đó.
• User có thể cấp 1 quyền đối tượng nếu có một trong các điều kiện sau:
• User có tất cả mọi quyền đối tượng trên tất cả các đối tượng thuộc
schema của mình. Vì vậy user có quyền cấp bất kỳ quyền đối tượng
trên bất kỳ đối tượng nào thuộc sở hữu của mình cho bất cứ user nào
khác.
• User có quyền GRANT ANY OBJECT PRIVILEGE. User được cấp
quyền đối tượng đó với tùy chọn WITH GRANT OPTION


Role-Based Access Control
• Vai trò (Role) là "là một tập hợp các quyền (permissions)”


Role-Based Access Control
• Role là một tập hợp bao gồm các quyền và các role khác.
• Role được gán cho các user hoặc các role khác.
• Role giúp cho việc quản trị người dùng dễ dàng và tiết kiệm

công sức hơn.
• Có một số role có sẵn do hệ thống định nghĩa(vd: DBA,
RESOURCE, CONNECT,…) nhưng đa phần các role là do
người quản trị CSDL tạo ra.
• Role không phải là một đối tượng schema (schema object) nên
không được lưu trữ trong schema của user tạo ra nó. Do vậy,
user tạo ra một role có thể bị xóa mà không ảnh hưởng đến role
đó.


Role-Based Access Control
Ví dụ,
• role là người vận hành có thể truy cập tất cả các tài
nguyên mà không thay đổi các quyền truy cập,
• role là một nhân viên bảo vệ có thể thay đổi các quyền
truy cập nhưng không được truy cập vào các tài nguyên,
• role là một kiểm toán viên có thể truy cập vào các việc
kiểm toán.
• Việc sử dụng các role mang tính quản lí này cũng có
trong các hệ thống điều khiển mạng hiện đại như
Novell’s NetWare và Microsoft Windows NT.


Role-Based Access Control
Ví dụ,


Role-Based Access Control
User có thể cấp 1 role nếu có một trong các điều kiện sau:
• User đã tạo ra role đó.

• User đã được cấp role đó với tùy chọn WITH ADMIN
OPTION.
• User có quyền GRANT ANY ROLE.


Role-Based Access Control
Role (vai trò):








Các vai trò được cấp phát dựa trên cấu trúc tổ chức với sự
nhấn mạnh đặc biệt về cấu truc bảo mật.
Các vai trò được cấp phát bởi người quản trị dựa trên các
mối quan hệ nội tại của tổ chức hoặc cá nhân. Vi dụ, một
người quản lý co thể có các giao dịch được cấp phép với
nhân viên của anh ta. Một người quản trị có thể có các giao
dịch được cấp phép trong phạm vi quản lý của mình (sao lưu,
tạo tai khoản...).
Mỗi vai trò được chỉ định rõ một hồ sơ bao gồm tất cả các
câu lệnh, giao dịch và các truy xuất hợp pháp tới thông tin.
Các vai trò được cấp quyền hạn dựa trên nguyên lý đặc
quyền tối thiểu (the principle of least privilege).


Role-Based Access Control

Role (vai trò):








Các vai trò được xác định với các nhiệm vụ khác nhau do đó
người có vai trò developer sẽ không thực hiện các nhiệm vụ
của vai tro tester.
Các vai trò được kich hoạt tĩnh hoặc động tùy thuộc vào
những sự kiện kích hoạt có liên quan (hàng đợi trợ giúp, cảnh
báo bảo mật, khởi tạo một project...).
Các vai trò chỉ có thể được chuyển giao hoặc ủy quyền khi sử
dụng một quy trình và thủ tục nghiêm ngặt.
Các vai trò được quản ly tập trung bởi một người quản trị bảo
mật hoặc trưởng dự án.


Role-Based Access Control
So sánh giữa Role (vai trò) và Group (nhóm):












Group thường đựợc xem như một tập hợp những user chứ
không phải là một tập hợp các permission.
Một role một mặt vừa là một tập hợp các user mặt khác lại là
một tập hợp các permission. Role đóng vai trò trung gian để
kết nối hai tập hợp này lại với nhau.
Vai trò có thể được kích hoạt và vô hiệu hoá, các nhóm thì
không
Các nhóm có thể được sử dụng để ngăn chặn truy cập với
thẩm quyền tiêu cực.
Vai trò có thể được vô hiệu hoá cho đặc quyền tối thiểu
Có thể dễ dàng liệt kê các quyền mà một vai trò có, nhưng
nhóm thì không


Role-Based Access Control
So sánh giữa Role (vai trò) và Group (nhóm):








Vai trò đang liên kết với một chức năng, các nhóm
không nhất thiết

Vai trò tạo thành một hệ thống phân cấp, các nhóm thì
không
Xác định một user cụ thể thuộc group nào hoặc xác
định tất cả các thành viên của một group cụ thể là khá
dễ dàng.
Việc xác định thành viên của nhóm thường dễ hơn việc
xác định permission của nhóm.


Role-Based Access Control
RBAC là một cơ chế kiểm soát truy cập :


Mô tả chính sách kiểm soát truy cập phức tạp.



Làm giảm sai sót trong quản lý.



Giảm chi phí quản lý.


Role-Based Access Control


Chính sách điều khiển truy cập được thể
hiện trong các thành phần khác nhau của
RBAC như





Mối quan hệ giữa Role-Permission
Mối quan hệ giữa User - Role
Mối quan hệ giữa Role - Role


Role-Based Access Control
Mối quan hệ giữa Role-Permission
 Một role tương ứng với một quyền permission để làm
một nhiệm vụ cụ thể,
 ví dụ Jane Doe có năng lực để điều hành một số bộ
phận nhưng chỉ được phân công điều hành một bộ
phận.
Mối quan hệ giữa User - Role
 Các role phản ánh cho các nhiệm vụ được phân công
cụ thể được luân phiên giữa nhiều user,
 ví dụ công việc của một bác sỹ nội khoa hay một quản lí
ca.


Role-Based Access Control
Mối quan hệ giữa Role - Role
 Ví dụ, hai role có thể đươc lập sao cho loại trừ nhau do
đó cùng một user không đựơc phép thực hiện cả hai
role.
 Các role cũng có thể có quan hệ kế thừa, theo đó một
role kế thừa các permission được gắn cho role khác.

 Những mối quan hệ role – role này có thể được sử
dụng để làm cho các chính sách bảo mật bao gồm sự
tách rời các công việc và sự ủy thác của người có thẩm
quyền


Role-Based Access Control


Sự phức tạp của quản
trị được giảm thông
qua:






Phân công người sử
dụng vai trò
Phân quyền cho các vai
trò
Tổ chức vai trò thành
một hệ thống

Users
Roles

Procedures
+

Types
=
Permissions

Objects


Role-Based Access Control


RBAC là một chính sách trung lập, nó trực tiếp
hỗ trợ ba nguyên tắc bảo mật nổi tiếng:


đặc quyền ít nhất - Least Privilege



sự tách biệt các nhiệm vụ - Separation of duties



trừu tượng hóa dữ liệu.- Data Abstraction


Role-Based Access Control









Nguyên tắc đặc quyền ít nhất đựợc hỗ trợ vì RBAC được định
dạng do đó chỉ những permission mà nhiệm vụ do các thành viên
của role quản lí đó cần mới được phân cho role đó.
Sự tách biệt các nhiệm vụ đạt được bằng cách đảm bảo những
role có quan hệ loại trừ lẫn nhau phải đựơc sử dụng tới để hoàn
thành một công việc nhạy cảm như yêu cầu một nhân viên kế toán
và một quản lí kế toán tham gia vào phát hành một tấm Sec.
Trừu tượng hóa dữ liệu được hỗ trợ bằng các permission trừu
tượng như credit (bên có) và debit (bên nợ) cho một tài khoản, chứ
không phải là các permission đọc, viết, quản lí thường đựợc hệ
điều hành cung cấp.
Tuy nhiên, RBAC không cho phép ứng dụng các nguyên lý này.
Nhân viên bảo mật có thể định dạng được RBAC do đó nó vi phạm
những nguyên lí này. Ngoài ra, mức độ trừu tuợng hóa dữ liệu đựợc
hỗ trợ sẽ do các chi tiết bổ sung quyết định.


×