Bài giảng Bảo mật Cơ sở dữ liệu - Chương 4: Điều khiển truy cập dựa trên vai trò

Đ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 Ý 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. 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.

pdf115 trang | Chia sẻ: candy98 | Lượt xem: 1836 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Bài giảng Bảo mật Cơ sở dữ liệu - Chương 4: Điều khiển truy cập dựa trên vai trò, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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): role- permission  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 Objects Roles Procedures + Types = Permissions 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. Example: The Three Musketeers (User/Permission Association) John Tom Jim Rob Example: The Three Musketeers (RBAC) John Tom Jim Rob John Tom Jim Rob Example: The Three Musketeers (RBAC) John Tom Jim Rob John Tom Jim Rob Role-Based Access Control  RBAC không phải là giải pháp cho mọi vấn để kiểm soát truy cập. Người ta cần những dạng kiểm soát truy cập phức tạp hơn khi xử lí các tình huống mà trong đó chuỗi các thao tác cần được kiểm soát. Ví dụ, một lệnh mua cần nhiều bước trước khi đơn dặt hàng mua được phát hành.  RBAC không cố kiểm soát trực tiếp các permission cho một chuỗi các sự kiện như vậy. Các dạng khác của kiểm soát truy cập đựợc cài đặt trên bề mặt RBAC vì mục đích này.  Việc kiểm soát một chuỗi các thao tác ngoài phạm vi của RBAC, mặc dù RBAC có thể là nền móng để xây dựng những kiểm soát như thế. RBAC Reference Model  Mô hình tham chiếu RBAS: định nghĩa một tập hợp các yếu tố cơ bản RBAC (người dùng, vai trò, quyền hạn, hoạt động và đối tượng) và các mối quan hệ như các loại và các chức năng có trong mô hình.  Có hai mục đích:  Xác định nghiêm ngặt phạm vi của tính năng RBAC  Bao gồm các thiết lập các tính năng có trong tất cả các hệ thống RBAC, hệ thống phân cấp vai trò, các mối quan hệ ràng buộc tĩnh, và các mối quan hệ ràng buộc động.  Nó cung cấp một ngôn ngữ chính xác và nhất quán để xác định các đặc tả chức năng RBAC Reference Model Permissions Users Roles Operations Objects Sessions UA user_sessions (one-to-many) role_sessions (many-to-many) PA An important difference from classical models is that Subject in other models corresponds to a Session in RBAC Example: (John becomes a Musketeer) JOHN JOHN Các tiêu chuẩn RBAC do NIST đề xuất  Tiêu chuẩn RBAC này gồm hai phần chính:mô hình tham chiếu RBAC và hệ thống RBAC với đặc tả chức năng quản trị.  Mô hình tham chiếu RBAC định nghĩa tập hợp các yếu tố cơ bản RBAC và loại quan hệ,các chức năng được bao gồm trong tiêu chuẩn này  Hệ thống RBAC với đặc tả chức năng quản trị xác định các yêu cầu đối với hoạt động quản lý tạo và bảo trì danh sách phần tử và các mối quan hệ của RBAC. RBAC Reference Model  The NIST RBAC model is defined in terms of four model components .  Core RBAC  Hierarchical RBAC  Static Separation of Duty Relations  Dynamic Separation of Duty Relations  Each Component is defined by subcomponents:  Set of basic elements sets  A set of RBAC relations involving those elements sets.  A set of mapping functions that yield instances of members from one element set for a given instance from another element set. Core RBAC  Mối quan hệ nhiều – nhiều giữa các cá nhân và các đặc quyền  Session là một ánh xạ giữa một người sử dụng và một tập hợp con mới về vai trò được giao  Quan hệ User / vai trò có thể được xác định độc lập các mối quan hệ vai trò / đặc quyền  Đặc quyền hệ thống / ứng dụng phụ thuộc  Chứa kiểm soát truy cập mạnh mẽ dựa trên nhóm truyền thống USERS ROLES OPERA TIONS OBJECTS privileges (UA) User Assignment (PA) Permission Assignment Sess- ions user_sessions session_roles Core RBAC  Permissions = 2Operations x Objects  UA ⊆ Users x Roles  PA ⊆ Permissions x Roles  assigned_users: Roles  2Users  assigned_permissions: Roles  2Permissions  Op(p): set of operations associated with permission p  Ob(p): set of objects associated with permission p  user_sessions: Users  2Sessions  session_user: Sessions  Users  session_roles: Sessions  2Roles  session_roles(s) = {r | (session_user(s), r)  UA)}  avail_session_perms: Sessions  2Permissions Core RBAC  U = (User)Người dùng = Một người hoặc một tác nhân tự động.  R = (Role)Vai trò = Chức năng công việc / Danh hiệu dùng định nghĩa một cấp bậc quyền thế.  P = Quyềnn được cấp = Sự phê chuẩn một hình thức truy cập tài nguyên.  S = (Session)Phiên giao dịch = Một xếp đặt liên kết giữa U, R và P  UA = (User Assignment)Chỉ định người dùng.  PA = (Permission Assignment)Cấp phép  RH = (Role Hierarchy)Sắp xếp trật tự một phần nào theo thứ tự cấp bậc của vai trò. RH còn có thể được viết là > Core RBAC  Một người dùng có thể có nhiều vai trò.  Một vai trò có thể có thể có nhiều người dùng.  Một vai trò có thể có nhiều phép được cấp cho nó.  Một phép được cấp có thể được chỉ định cho nhiều vai trò USERS Proces s Person Intelligent Agent ROLES Developer Budget Manager Help Desk Representative An organizational job function with a clear definition of inherent responsibility and authority (permissions). Director Relation between USERS & PRMS OPERATIONS An execution of an a program specific function that’s invocated by a user. SQL  Database – Update Insert Append  Delete Locks – Open Close  Reports – Create View Print  Applications - Read Write Execute OBJECTS • OS Files or Directories • DB Columns, Rows, Tables, or Views • Printer • Disk Space • Lock Mechanisms RBAC will deal with all the objects listed in the permissions assigned to roles. An entity that contains or receives information, or has exhaustible system resources. USER Assignment A user can be assigned to one or more roles Developer USERS set ROLES set Help Desk Rep A role can be assigned to one or more users USER Assignment SUSERSxROLEUA Mapping of role r onto a set of users User.DB1 •View •Update •Append USERS set User.DB1 User.DB1 permissions object User.F1 User.F2 User.F3 ROLES set PERMISSIONS The set of permissions that each grant the approval to perform an operation on a protected object. Tập các quyền mà mỗi cấp chính thực hiện một hoạt động trên một đối tượng được bảo vệ. User.DB1 •View •Update •Append permissionsobject User.F1 •Read •Write •Execute permissionsobject Permissions Assignment A prms can be assigned to one or more roles Admin.DB1 PRMS set ROLES set A role can be assigned to one or more prms User.DB1 View Update Append Create Delete Drop Permissions Assignment SUSERSxROLEUA PRMS setROLES set User.F1 User.F2 User.F3 Admin.DB1 Mapping of role r onto a set of permissions •Read •Write •Execute •View •Update •Append •Create •Drop SQL Permission Assignments Mapping of permissions to objects PRMS set SQL DB1.table1 Objects BLD1.door2 Gives the set of objects associated with the prms Open Close View Update Append Create Drop SESSIONS The set of sessions that each user invokes. USER SQL DB1.table1 FIN1.report1 APP1.desktop SESSION SESSIONS USERS SQL User2.DB1.table1.session User2.FIN1.report1.session SESSION USER2 USER1 User2.APP1.desktop.session The mapping of user u onto a set of sessions. SESSIONS SESSION ROLES • Admin • User • Guest SQL DB1.table1.session SESSIONS Permissions available to a user in a session. DB1.ADMIN •View •Update •Append •Create •Drop SQL DB1.table1.session PRMSROLE SESSION Hierarchical RBAC  Hierarchical RBAC hỗ trợ hệ thống phân cấp vai trò. Một hệ thống phân cấp là xác định thứ tự một mối quan hệ thâm niên giữa các vai trò. Hierarchical RBAC  Quan hệ Role/role xác định thành viên sử dụng và thừa kế đặc quyền  Phản ánh cơ cấu tổ chức và chức năng của hệ thống  Hai loại phân cấp:  Hệ thống phân cấp giới hạn  Hệ thống phân cấp tổng quát USERS ROLES OPERA TIONS OBJECTS privileges (UA) User Assignment (PA) Permission Assignment Sess- ions user_sessions session_roles Role Hierarchy Hierarchal RBAC  Hệ thống phân cấp vai trò tổng quát: hỗ trợ cho một phần trong hệ thống phân cấp vai trò, bao gồm các khái niệm của thừa kế các quyền truy cập và vai trò của thành viên sử dụng trong hệ thống.  Hệ thống phân cấp vai trò giới hạn: áp đặt các gới hạn truy cập theo dạng cấu trúc cây đơn giản (ví dụ, một vai trò có thể có một hoặc nhiều ascendants (cha), nhưng chỉ được truy cập trực tiếp 1 descendant (con) duy nhất). Doctor Cardiologist “contains”“contains” “contains” Specialist “contains” Employee Dermatologist p r i v i l e g e m e m b e r s h i p NIST Secretary ITL SecretaryMEL Secretary CSD Secretary Comp Security Division a-Limited Hierarchies Added Advantages: • Người sử dụng có thể được đưa vào các cạnh của đồ thị • Vai trò của thể được xác định từ những đặc quyền của hai hoặc nhiều vai trò cấp dưới b-General Hierarchies Jill The Role Hierarchy Hierarchal RBAC Hierarchal RBAC Hierarchal RBAC General Role Hierarchies  Hỗ trợ đa thừa kế (multiple inheritance), cung cấp khả năng thừa kế đặc quyền từ hai hay nhiều vai trò nguồn và để thừa kế từ một hay nhiều vai trò của các thành viên trong hệ thống. Đa thừa kế là một thuộc tính quan trọng của mô hình RBAC. User r-w-h Guest -r- Chỉ khi tất cả các quyền của r1 cũng là quyền của r2 Chỉ khi tất cả người dùng của r1 cũng là người sử dụngr2 i.e. r1 inherits r2 Guest Role Set Power User Role Set User Role Set Admin Role Set Support Multiple Inheritance Authorized Users Mapping of a role onto a set of users in the presence of a role hierarchy Ánh xạ một vai trò vào một tập hợp các người sử dụng theo hệ thống phân cấp vai trò User.DB1 •View •Update •Append First Tier USERS setROLES set User.D