Chapter 3
Access Control Discretionary Access Control
Chương 2: Access Control Bảo mật theo cơ chế Discretionary Access Control DAC
Mục tiêu:
Hiểu và mô tả được Access Control Giải thích được cơ chế bảo mật DAC Vận dụng được DAC vào trong các hệ quản trị CSDL
Nội dùng
1. Access Control 2. Discretionary Access Control 3. Vận dụng được DAC vào trong các hệ quản trị
CSDL
Access Control
1. Định nghĩa Điều khiển truy cập - Access control 2. Các bước điều khiển truy cập 3. Các vai trò trong điều khiển truy cập 4. Quá trình điều khiển truy cập 5. Các mô hình điều khiển truy cập 6. Thực thi điều khiển truy cập
Định nghĩa điều khiển truy cập Access Control
Điều khiển truy cập (Access control): đảm bảo rằng tất cả các truy cập trực tiếp đến đối tượng được ủy quyền. Access control gồm: – Bảo vệ các đối tượng (Protect objects): bảo vệ các tài nguyên hệ
thống
• ví dụ, tài nguyên bộ nhớ, tập tin, thư mục, tài nguyên phần cứng, phần mềm,
bảng, các bộ, ...
– Chủ thể (subjects): các đơn vị hoạt động yêu cầu truy cập đến tài
nguyên,
• ví dụ, người sử dụng, chủ sở hữu, chương trình, vv – Chế độ truy cập (access mode): các kiểu truy cập
• ví dụ, đọc / select, viết / cập nhật, thực thi.
object subject Access request Reference monitor
Định nghĩa điều khiển truy cập Access Control
Chức năng của access control
object
subject
reference monitor
access request
Cấp phép hoặc từ chối phê duyệt sử dụng các tài nguyên xác định cho các chủ thể Kiểm soát được các đối tượng đang hoạt động hay các đối tượng có thể bị truy cập bởi các hoạt động khác.
guard
Authorized request
Request operation
resource (e.g. files, printers)
source (e.g. users, processes)
Định nghĩa điều khiển truy cập Access Control Kiểm soát truy cập yêu cầu:
Bắt buộc phải thực hiện, không được bỏ qua Thực thi đặc quyền và cần phải biết hạn chế Thi hành chính sách tổ chức
Các thành phần kiểm soát truy cập:
Chính sách kiểm soát truy cập: quy định cụ thể thẩm quyền truy cập của một hệ thống Cơ chế điều khiển truy cập: thực hiện và thực thi chính sách
Tách các thành phần cho phép:
Xác định các yêu cầu truy cập độc lập So sánh với các chính sách khác Thực hiện cơ chế có thể thực thi một loạt các chính sách
Định nghĩa điều khiển truy cập Access Control
Ai có thể cấp quyền và thu hồi quyền truy cập:
Centralized administration (người quản trị trung tâm): nhân viên an ninh Decentralized administration (người quản trị phân cấp): hệ thống phân cấp theo quản lý Hierarchical decentralization (phân cấp theo thứ bậc): nhân viên an ninh>quản trị hệ thống phòng ban> người quản trị Windows Ownership based (quyền sở hữu): có thể cấp quyền truy cập cho những người khác truy xuất dữ liệu của mình Cooperative authorization (Ủy quyền): ủy quyền cho các chủ thể khác
Example: Access Control
Prof Alice manages access to course objects ‣ Assign access to individual (principal: Bob) ‣ Assign access to aggregate (course-students) ‣ Associate access to relation (students(course)) ‣ Assign students to project groups (student(course, project, group)) Prof Alice wants certain guarantees ‣ Students cannot modify objects written by Prof Alice ‣ Students cannot read/modify objects of other groups Prof Alice must be able to maintain access policy ‣ Ensure that individual rights do not violate guarantees ‣ However, exceptions are possible – students may distribute their results from previous assignments for an exam
Tại sao phải điều khiển truy cập
rò rỉ trái phép,…
– Cho phép nhà quản trị chính của hệ thống thay đổi việc truy
cập
Kiểm soát truy cập là một kỹ thuật cho phép người dùng hệ thống truy cập một chức năng nào đó của hệ thốngcó thể làm thay đổi dữ liệu của hệ thốngNếu không kiểm soát hệ thống sẽ không còn an toàn và không còn bảo mật Điều khiển truy cập nhằm mục đích để đạt được: – Cho phép chức năng dự phòng có thể truy cập – Đảm bảo tài sản đáp ứng tính toàn vẹn, bảo mật, ngăn chặn
Tại sao điều khiển truy cập khó
Yêu cầu truy cập hệ thống xảy ra thường xuyên Yêu cầu kiểm soát truy cập có thể thay đổi Bất cứ ai cũng có thể là một quản trị viên Vấn đề an toàn Truy cập có thể không an toàn nhưng phải tuân theo các ràng buộc của hệ thống
Các thuật ngữ về điều khiển truy cập
Trình diện – Xuất trình các ủy quyền – Ví dụ: người vận chuyển hàng xuất trình thẻ nhân viên Xác thực – Kiểm tra, xác minh các ủy quyền – Ví dụ: kiểm tra thẻ của người vận chuyển hàng Ủy quyền – Cấp thẻ để thực hiện hành động – Ví dụ: cho phép người vận chuyển hàng được chất kiện
hàng lên xe
Các thuật ngữ về điều khiển truy cập
Đối tượng – Tài nguyên cụ thể – Ví dụ: file hoặc thiết bị phần cứng Chủ thể – Người dùng hay quá trình đại diện cho một người dùng – Ví dụ: người dùng máy tính Thao tác – Hành động do chủ thể gây ra đối với một đối tượng – Ví dụ: xóa một file
Các bước điều khiển truy cập cơ bản
Các vai trò trong điều khiển truy cập
Quá trình điều khiển truy cập
Access Control Conditions
Kiểm soát phụ thuộc tên (Name) Kiểm soát dựa vào nội dùng dữ liệu (Data) Kiểm soát dựa vào thời gian (Time) Kiểm soát dựa vào ngữ cảnh (Context) Kiểm soát dựa vào lịch sử (History)
Access Control Conditions
Trong hệ CSDL, A[s,o]còn chứa các điều kiện cần thỏa để chủ thể s có thể truy cập đối tượng o
Phụ thuộc tên (name-dependent): hạn chế truy cập dựa theo tên truy cập Phụ thuộc dữ liệu (data-dependent): hạn chế truy cập dựa trên giá trị của dữ liệu truy cập Phụ thuộc thời gian (time-dependent): hạn chế truy cập dựa trên thời gian truy cập dữ liệu Phụ thuộc ngữ cảnh: hạn chế truy cập dựa trên thu thập thông tin (chứ không phải là độ nhạy của dữ liệu) mà có thể được truy cập Phụ thuộc lịch sử: hạn chế truy cập dựa trên dữ liệu truy cập trước
Access Controlled by Name
Access Controlled by Data
Phụ thuộc dữ liệu (data-dependent): hạn chế truy cập dựa trên giá trị của dữ liệu truy cập
Access control matrix shows allowed access to database fields – Subjects have attributes – Verbs dene type of access – Rules associated with objects, verb pair Subject attempts to access object – Rule for object, verb evaluated – Result controls granting, denying access Ví dụ 1: chỉ xem được thông tin của các nhân viên có salary < 1000 trong bảng Employee
Access Controlled by Time Phụ thuộc thời gian (time-dependent): hạn chế truy cập dựa trên giá trị của dữ liệu truy cập
Ví dụ 1: chỉ được truy cập bảng Employee từ 8:00 sáng đến 5:00 chiều Ví dụ 2: Subject Annie – Attributes role (artist), groups (creative) Verb paint – Default 0 (deny unless explicitly granted) Object picture – Rule:
Annie paint picture if:
‘artist’ in subject.role and ‘creative’ in subject.groups and time.hour ≥ 0 and time.hour < 5
Access Controlled by Time
Phụ thuộc thời gian (time-dependent): Ví dụ 2:
… picture …
… picture …
At 3AM, time condition met; ACM is: At 10AM, time condition not met; ACM is:
… …
e i n n a
e i n n a
paint
… …
Access Controlled by Context
Phụ thuộc ngữ cảnh: hạn chế truy cập dựa trên thu thập thông tin Ví dụ: có thể truy cập riêng từng thuộc tính name và salary trong bảng Employee, nhưng không thể truy cập cả 2 thuộc tính này cùng lúc.
Access Controlled by History
Phụ thuộc lịch sử: hạn chế truy cập dựa trên dữ liệu truy cập trước Ví dụ: chỉ xem được thuộc tính salary của các nhân viên nếu như trước đó chưa xem thuộc tính name của nhân viên.
Access Controlled by History
Name
Position Age Salary
Alice
Teacher
45
40K
Bob
Aide
20
20K
Statistical databases need to – answer queries on groups – prevent revelation of individual
Cathy
Principal
37
60K
Dilbert
Teacher
50
50K
Query-set-overlap control – Prevent an attacker to obtain
Eve
Teacher
33
50K
records
– A parameter r (=2) is used to
individual piece of information using a set of queries C
determine if a query should be answered
Access Controlled by History
Name
Position
Age
Salary
Celia
Teacher
45
40K
Leonard
Teacher
50
50K
Matt
Teacher
33
50K
Query 1: – sum_salary(position = teacher) – Answer: 140K Query 2: – sum_salary(age > 40 & position =
Name
Position Age Salary
teacher)
Celia
Teacher
45
40K
– Should not be answered as Matt’s
Leonard
Teacher
50
50K
salary can be deduced
Thực thi điều khiển truy cập
• Danh sách điều khiển truy cập (Access Control List-ACL) • Chính sách nhóm (Group Policy) • Giới hạn tài khoản
Danh sách điều khiển truy cập
• Tập các quyền gắn với một đối tượng • Xác định chủ thể nào có thể truy cập tới đối tượng và các
thao tác nào mà chủ thể thực hiện
• Hệ thống kiểm tra danh sách điều khiển truy cập đối với
mục đã được duyệt
• Khi chủ thể yêu cầu thực hiện một thao tác:
• Danh sách điều khiển truy cập thường được xem xét
trong mối liên hệ với các file của hệ điều hành
File chứa các quyền truy cập trong UNIX
Danh sách điều khiển truy cập
do ACE điều khiển
– Cờ (Flag) cho biết kiểu của ACE – Tập các cờ (Set of flags) xác định đối tượng có thể kế
thừa các quyền hay không
Mỗi một mục trong bảng danh sách điều khiển truy cập được gọi là một mục điều khiển (Access Control Element ACE) Cấu trúc ACE (trong windows) – Nhận dạng bảo mật (Access identifier) cho tài khoản người dùng hay tài khoản nhóm hoặc phiên đăng nhập – Mặt nạ truy cập (access mask) xác định quyền truy cập
Chính sách nhóm
hình tập trung cho các máy và người dùng từ xa.
– Thường được sử dụng trong các môi trường doanh nghiệp – Các thiết lập được lưu trữ trong các GPO (Group Policy
Tính năng của Microsoft Windows – Cho phép sử dụng Active Directory (AD) để quản lý và cấu
Object – chính sách cho nhóm đối tượng)
Local Group Policy – Có ít tùy chọn hơn so với Group Policy – Được sử dụng để cấu hình các thiết lập cho các hệ thống
không phải là một phần của AD
Giới hạn tài khoản
một ngày
– Cho phép chọn khối thời gian chặn đối với các truy cập
được cho phép
Giới hạn thời gian trong ngày (time of day restriction) – Giới hạn số lần người dùng đăng nhập vào hệ thống trong
– Có thể được thiết lập trên từng hệ thống riêng lẻ Hạn sử dụng tài khoản (account expiration) – Các tài khoản mồ côi (orphaned account): tài khoản vẫn
còn hoạt động sau khi một nhân viên rời khỏi tổ chức
– Tài khoản không hoạt động (domant account): không truy
cập trong một khoảng thời gian dài
– Cả hai kiểu tài khoản trên là những nguy cơ đối với bảo
mật.
Giới hạn thời gian trong ngày của hệ điều hành
Giới hạn đối với điểm truy cập không dây
Giới hạn tài khoản
lực)
Các khuyến cáo xử lý đối với tài khoản “mồ côi” và tài khoản “ngủ đông” – Thiết lập một qui trình chính thức – Chấm dứt truy cập ngay lập tức – Quản lý nhật ký (file log) Các tài khoản “mồ côi” vẫn là một vấn đề nan giải đối với các tổ chức hiện nay Account expiration (thời gian hiệu lực của tài khoản) – Thiết lập hết hạn cho một tài khoản người dùng (hết hiệu
Giới hạn tài khoản
khoản)
Password expiration (thời gian hiệu lực của mật khẩu) thiết lập khoảng thời gian mà người dùng phải thay đổi mật khẩu mới – Khác với account expiration (thời gian hiệu lực của tài
Account expiration (thời gian hiệu lực của tài khoản) có thể được thiết lập bằng số ngày mà người dùng không có bất cứ hành động truy cập nào
Các dịch vụ xác thực
• Còn gọi là máy chủ AAA nếu nó thực hiện đồng thời cả nhiệm vụ ủy quyền
(authorization) và kiểm toán (accounting)
Các kiểu xác thực và máy chủ AAA thông dụng – RADIUS – Kerberos – TACACS – LDAP
Xác thực (Authentication) – Quá trình xác minh thông tin Các dịch vụ xác thực được cung cấp trên một mạng – Máy chủ xác thực chuyên dụng
RADIUS
RADIUS (remote Authentication Dial In User Service- Bộ quay số xác thực từ xa trong dịch vụ người dùng) – Được giới thiệu vào năm 1992 – Trở thành một tiêu chuẩn công nghiệp – Phù hợp cho các ứng dụng kiểm soát dịch vụ cỡ lớn • Ví dụ như truy cập quay số tới mạng doanh nghiệp
– Hiện nay vẫn đang được sử dụng RADIUS client – Thường là một thiết bị như điểm truy cập không dây (AP) • Có nhiệm vụ gửi các thông tin về người dùng cùng với các
tham số kết nối tới máy chủ RADIUS
Xác thực RADIUS
RADIUS
mạng
– Dễ dàng theo dõi và truy vết việc sử dụng để thanh toán và lưu giữ
các số liệu thống kê mạng
Hồ sơ người dùng RADIUS được lưu trữ trong cơ sở dữ liệu trung tâm – Tất cả các máy chủ từ xa đều có thể chia sẻ thông tin Ưu điểm của dịch vụ trung tâm – Tăng cường bảo mật do chỉ có duy nhất một điểm quản lý trên
KERBEROS
Hệ thống xác thực được phát triển tại MIT – Sử dụng mã hóa và xác thực để đảm bảo tính bảo mật Thường được sử dụng cài đặt trong các thiết lập giáo dục và chính phủ Hoạt động giống như việc sử dụng giấy phép lái xe để thanh toán SEC Vé Kerberos – Chứa các thông tin liên quan tới người dùng – Người dùng trình diện vé vào mạng cho một dịch vụ – Rất khó để sao chép – Hết hiệu lực sau một vài giờ hoặc sau một ngày
TACACS
TACACS (Terminal Access Control Access Control System – Hệ thống điều khiển truy cập điều khiển truy cập thiết bị đầu cuối) Dịch vụ xác thực tương tự như RADIUS Do Cisco System phát triển Thường được sử dụng trên các thiết bị UNIX Giao tiếp bằng cách chuyển tiếp thông tin xác thực người dùng tới một máy chủ trung tâm Phiên bản hiện tại là TACACS+
So sánh giữa RADIUS và TACACS
LDAP
dùng đối với những tài nguyên đó
– Cho phép hay từ chối truy cập dựa trên thông tin lưu trữ Tiêu chuẩn cho các dịch vụ thư mục – X.500 DAP (Directory Access Protocol – Giao thức truy cập thư mục)
LDAP (Lighweight Directory Access Control System – Giao thức truy cập thư mục hạng nhẹ) Dịch vụ thư mục – CSDL được lưu trên mạng – Chứa các thông tin về người dùng và các thiết bị mạng – Lưu vết theo dõi các tài nguyên mạng và đặc quyền của người
LDAP LDAP
Là một tập con đơn giản hơn của DAP Được thiết kế để hoạt động trên bộ giao thức TCP/IP Có các chức năng đơn giản hơn Mã hóa các thành phần giao thức theo cách đơn giản hơn so với X.500 Là một giao thức mở Nhược điểm của LDAP
cách
Có thể là mục tiêu của tấn công lan truyền LDAP – Tương tự như tấn cônglan truyền SQL – Xảy ra khi dữ liệu do người dùng cung cấp không được lọc đúng
Các mô hình điều khiển truy cập Access Control Models
Bốn mô hình điều khiển truy cập chính
Điều khiển truy cập tùy ý Discretionary Access Control (DAC) Điều khiển truy cập bắt buộc Mandatory Access Control (MAC) Điều khiển truy cập dựa trên vai trò Role Based Access Control (RBAC) Điều khiển truy cập dựa trên qui tắc Rule Based Access Control - RBAC
Các mô hình điều khiển truy cập Access Control Models
Điều khiển truy cập tùy ý (Discretionary Access Control) – Cho biết chủ thể nào có thể truy cập kiểu gì đến các đối tượng
trong CSDL
– Có những nguyên tắc một chủ thể có thể tùy ý cấp quyền hay
lấy lại quyền truy cập hoặc gián tiếp đến lớp dữ liệu
trực tiếp hoặc gián tiếp đến các lớp dữ liệu
Điều khiển truy cập bắt buộc (Mandatory Access Control) – Định trước các nguyên tắc để chủ thể (thuộc 1 lớp) truy cập
Các mô hình điều khiển truy cập Access Control Models
Điều khiển truy cập dựa trên vai trò (Role Based Access Control ) – Vai trò là 1 tập các quyền. Không thực hiện cấp quyền cho từng chủ thể mà gán cho chủ thể 1 vai trò, khi đó chủ thể sẽ có tất cả các quyền thuộc về vai trò đó
Các mô hình điều khiển truy cập Access Control Models
Điều khiển truy cập dựa trên qui tắc (Rule Based Access Control ) – 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 qui 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 qui tắc thay đổi
Các mô hình điều khiển truy cập Access Control Models
Các bài tập thực hành đối với điều khiển truy cập
Thiết lập các thủ tục tối ưu để hạn chế truy cập – Có thể giúp đảm bảo an toàn cho hệ thống và dữ liệu Các ví dụ về phương pháp tối ưu – Tách nhiệm vụ (separation of duties) – Luân chuyển công việc (job rotation) – Đặc quyền tối thiểu (least privilege) – Từ chối ngầm định (implicit deny) – Các ngày nghỉ lễ bắt buộc (mandatory vacation)
Tách nhiệm vụ
Hành vi gian lận có thể bắt nguồn từ việc tin cậy vào một cá nhân và cho phép họ toàn quyền điều khiển một quá trình Yêu cầu phải có ít nhất hai người chịu trách nghiệm cho các hoạt động liên quan tới quản lý tiền Giúp hệ thống không bị xâm hại do hành vi cua một cá nhân đơn lẻ
Luân chuyển công việc
kỳ
– Các nhân viên có thể được thuyên chuyển công việc ngay trong
phòng ban của họ hoặc giữa các phòng ban với nhau
Luân chuyển công việc – Luân chuyển trách nghiệm công việc của các cá nhân theo định
Ưu điểm của việc luân chuyển công việc – Hạn chế thời gian tại vị của các cá nhân để họ không thể thao
túng các cấu hình bảo mật
– Giúp vạch trần các con đường tiềm ẩn dẫn đến gian lận
• Mỗi cá nhân có một quan điểm khác nhau và điều đó có thể giúp
phát hiện ra các lỗ hổng
– Giảm bớt căng thẳng mệt mỏi cho nhân viên
Ưu tiên nhất
được biết những gì phục vụ cho công việc
• Giới hạn truy cập tới thông tin dựa trên nguyên tắc chỉ
• Giúp giảm thiểu bề mặt tấn công thông qua việc loại bỏ
• Nên áp dụng cho người dùng và tiến trình trên hệ thống • Các tiến trình nên hoạt động ở cấp độ bảo mật tối thiểu cần
thiết để hoạt động chính xác
• Khả năng gán các mức ưu tiên cao hơn cũng rất lớn
các đặc quyền không cần thiết
Những thách thức của phương pháp Ưu tiên nhất
Từ chối ngầm
cập sẽ bị từ chối
• Nếu một điều kiện không đáp ứng rõ ràng, yêu cầu truy
• Ví dụ : bộ định tuyến mạnh từ chối các truy cập ngoại trừ
khi điều kiện phù hợp với các quy tắc giới hạn
Các kỳ nghỉ bắt buộc
che dấu hành vi gian lận của mình
• Hạn chế gian lận vì thủ phạm phải có mặt hàng ngày để
• Lên kế hoạch kiểm tra hành vi của nhân viên giữ chức vụ
nhạy cảm trong suốt thời gian nghỉ
Nội dùng
1. Access Control 2. Discretionary Access Control 3. Vận dụng được DAC vào trong các hệ quản trị
CSDL
Discretionary Access Control
1. Giới thiệu Discretionary Access Control 2. Các loại quyền trong DAC 3. Ưu và nhược điểm của DAC 4. Các mô hình của DAC
Discretionary Access Control
Điều khiển truy cập tùy ý - Discretionary Access Control (DAC) chỉ rõ những đặc quyền mà mỗi chủ thể có thể có được trên các đối tượng và trên hệ thống (object prilvilege, system privilege) Các yêu cầu truy nhập được kiểm tra, thông qua một cơ chế kiểm soát tùy ý, truy nhập được trao cho các chủ thể thỏa mãn các quy tắc cấp quyền của hệ thống. DAC được triển khai rộng rãi trong hầu hết các hệ điều hành, Sức mạnh của DAC: Tính linh hoạt: là một lý do chính tại sao nó được biết đến rộng rãi và được thực hiện trong các hệ thống điều hành chủ đạo.
Discretionary Access Control
Người dùng có thể bảo vệ những gì thuộc về mình Chủ của dữ liệu có toàn quyền trên dữ liệu đó truy cập Chủ của dữ liệu có quyền định nghĩa các loại đọc/ghi/thực thi và gán những quyền đó cho những người khác
Discretionary Access Control
Discretionary Access Control
DAC dựa vào định danh của người dùng có yêu cầu truy nhập vào các đối tượng dữ liệu (file, thư mục,…)
Cho phép chủ thể có thể cấp quyền cho chủ thể khác truy
cập các đối tượng của nó
Người sử dụng có khả năng cấp phát hoặc thu hồi quyền
truy nhập trên một số đối tượng.
Cơ chế này được gọi là tùy ý có nghĩa là:
Việc phân quyền kiểm soát dựa vào quyền sở hữu (kiểu
chính sách cấp quyền dựa vào quyền sở hữu)
Discretionary Access Control
DAC cho phép đọc thông tin từ một đối tượng và chuyển đến một đối tượng khác (đối tượng này có thể được ghi bởi 1 chủ thể)
Tạo ra sơ hở để cho tấn công Trojan sao chép thông tin từ
1 đối tượng đến 1 đối tượng khác Ví dụ: UserA là chủ sở hữu tableA, anh ta tạo ra khung nhìn ViewA từ bảng này (sao chép thông tin). UserA không cho phép UserB được đọc tableA nhưng lại vô tình gán quyền Write cho UserB trên ViewA. Như vậy, UserB có thể đọc thông tin tableA dù không đủ quyền trên bảng này.
Discretionary Access Control
Người sở hữu dữ liệu có thể cấp quyền sở hữu thông tin cho những người khác Người sở hữu dữ liệu có thể xác định kiểu truy xuất để cấp cho những người khác (read, write, copy...) Hệ thống cảnh báo hoặc giới hạn truy xuất của người dùng trong trường hợp yêu cầu truy xuất tới tài nguyên hoặc đối tượng không đáp ứng quá trình xác thực (thường là một số lần) Một phần mềm tăng cường (add-on) hoặc bổ sung (plug-in) áp dụng cho một máy khách để ngăn ngừa người dùng sao chép thông tin Người dùng không có quyền truy xuất thông tin không thể xác định được các đặc điểm của nó (kích thước, tên, đường dẫn của file...) Việc truy xuất tới thông tin được xác định dựa trên quyền hợp pháp mô tả trong danh sách kiểm soát truy xuất theo danh tính người dùng và nhóm
Một mô hình DAC thường một số đặc điểm sau đây:
Discretionary Access Control
Các thức cơ bản điều khiển truy cập của DAC trong một hệ CSDL là dựa vào 2 thao tác cơ bản:
trong Oracle và SQL Server có GRANT
Gán quyền (granting privileges): Cho phép người dùng khác được quyền truy cập lên đối tượng do mình làm chủ. Tuy nhiên, trong DAC có thể lan truyền các quyền. – Ví dụ:
OPTION, ADMIN OPTION
Thu hồi quyền (revoking privileges): thu hồi lại quyền đã gán cho người dùng khác – Ví dụ: 1 user có GRANT OPTION, anh ta có thể thu
hồi quyền đã truyền cho người khác
Discretionary Access Control Các qui tắc trao quyền
Các yêu cầu và chính sách an toàn do tổ chức đưa ra, người trao quyền có nhiệm vụ chuyển các yêu cầu này thành các quy tắc trao quyền Qui tắc trao quyền: biểu diễn đúng với môi trường phần mềm/phần cứng bảo vệ.
Các loại quyền trong DAC
Quyền ở cấp tài khoản/hệ thống (account/system level): là những quyền độc lập với các đối tượng trong hệ CSDL. Những quyền này do người quản trị hệ thống định nghĩa và gán cho mỗi người dùng Quyền ở cấp đối tượng(object level): là những quyền trên mỗi đối tượng trong hệ CSDL. Người dùng tạo ra đối tượng nào thì sẽ có tất cả các quyền trên đối tượng đó.
Các loại quyền trong DAC
Quyền ở cấp tài khoản/hệ thống: gồm có các quyền
CREATE SCHEMA: tạo lược đồ CSDL CREATE TABLE: tạo bảng dữ liệu/ quan hệ (relation) CREATE VIEW: tạo view ALTER: chỉnh sửa các schema/relation DROP: xóa relation/view MODIFY: quyền thêm/ xóa/ sửa các hàng dữ liệu (record/ tuple) SELECT: quyền thực hiện câu truy vấn thông tin trong CSDL
Các loại quyền trong DAC
Quyền ở cấp đối tượng: gồm các đối tượng dữ liệu và các loại truy cập mà người dùng được phép thực hiện trên đối tượng đó.
Các đối tượng dữ liệu này gồm: các relation hoặc view Các thao tác gồm:
INSERT: thêm dữ liệu vào relation UPDATE: cập nhật/chỉnh sửa dữ liệu trong relation DELETE: xóa dữ liệu trong relation REFERENCE: tham khảo đến dữ liệu trong relation
Một số hình an toàn tùy ý (DAC)
hình Action-Entity(Bussolati 1983), Fugini-
Mô hình ma trận truy nhập (Lampson 1971; Graham-Denning 1973, Harrision 1976) Mô hình Take-Grant(Jones 1976) Mô Martelle 1984) Mô hình của Wood 1979 như kiến trúc ANSI/SpARC để cấp quyền trong các CSDL quan hệ lược đồ - nhiều mức,…
Access Control Matrix Model (ACM)
Là mô hình bảo mật được dùng cho cả cấp hệ điều hành và cấp cơ sở dữ liệu. Mô hình được đề nghị bởi Lampson (1971), và được Graham và Denning mở rộng (1972). 1976, Harrison và các cộng sự đã trình bày mô hình ma trận truy cập một cách có hệ thống.
Access Control Matrix Model
Ma trận truy cập là ma trận giữa các chủ thể (subject), các đối tượng (object) và các quyền tương ứng giữa của chủ thể với đối tượng. Trạng thái định quyền (Authorization state)
Q = (S, O, A)
S (Subjects): là tập các chủ thể-các thực thể chủ sử dụng các nguồn tài động (active entity) nguyên của hệ thống. Ví dụ: người dùng, nhóm các người dùng (group), quá trình (process)
Access Control Matrix Model
Trạng thái định quyền
Q = (S, O, A)
O (Objects): là tập các đối tượng-các thực thể cần được bảo vệ, bao gồm các thực thể bị động (passive object) như tài nguyên hệ thống và các chủ thể file, bộ nhớ, Ví dụ: ở cấp hệ điều hành: segments, quá trình ở cấp CSDL: CSDL, quan hệ, thuộc tính, hàng, trường dữ liệu của hàng
Access Control Matrix Model
Trạng thái định quyền Q = (S, O, A) A (Access matrix): là ma trận truy cập. Hàng: các chủ thể Cột: các đối tượng Mỗi ô A[s,o]chứa các chế độ truy cập mà chủ thể s được quyền làm trên đối tượng o
Access Control Matrix Model
Access Control Matrix Model
quyền truy xuất.
– Bob và Alice chỉ có quyền thực thi file edit.exe. – Bob và Alice có quyền thực thi và quyền đọc file fun.com nhưng
chỉ có Bob có quyền ghi lên file này
Ví dụ 1: Hệ thống có hai người dùng Bob và Alice xử lý ba file, lần lượt là bill.doc, edit.exe và fun.com. Các quyền truy xuất trên các file này có thể được mô tả như sau: – Bob có quyền đọc hoặc ghi file bill.doc trong khi Alice không có
Access Control Matrix Model
Tại A[p,f]= “rwo”, cho thấy tiến trình p là chủ sở hữu dữ liệu f đồng thời có đủ quyền đọc và viết f. A[p,q]=”w” cho thấy tiến trình p có thể gửi tin (viết) cho tiến trình q, còn q có quyền nhận tin (đọc) từ p vì A[q,p] = “r”. Mỗi tiến trình có đầy đủ quyền đối với chính mình (“rwxo”)
Ví dụ 2: Hãy xem xét một thiết bị tính toán đơn giản có một tiểu hệ điều hành, trong đó chỉ có 2 chủ thể là tiến trình p và q và 2 tệp dữ liệu f và g. Các quyền có thể là đọc (Read), viết sửa (Write), gọi thực hiện (eXecute), ghi thêm (Append) và làm chủ (Own).
Access Control Matrix Model
Ví dụ 2: The UNIX system defines the rights “read”, “write”, and “execute”. When a process accesses a file, these terms mean what one would expect. When a process accesses a directory, “read” means to be able to list the contents of the directory; “write” means to be able to create, rename, or delete files or subdirectories in that directory; and “execute” means to be able to access files or subdirectories in that directory. When a process accesses another process, “read” means to be able to receive signals, “write” means to be able to send signals, and “execute” means to be able to execute the process as a subprocess.
Access Control Matrix Model
Ví dụ 2:
Access Control Matrix for System
Processes: p, q Files: f , g Rights (quyền): r , w, x, a, o – Rights are merely symbols; interpretation depends on system – Example: on UNIX, r means \read" for le and \list" for directory
Access Control Matrix for Program
Procedures inc_ctr , dec_ctr , manage Variable: counter Rights: +, - , x, call
Access Control Matrix for Database
Access control matrix shows allowed access to database fields – Subjects: have attributes – Verbs: dene type of access – Rules associated with objects, verb pair Subject attempts to access object – Rule for object, verb evaluated – Result controls granting, denying access
Access Control Matrix for Database
paint: `artist' in subject.role and
`creative' in subject.groups and time.hour 0 and time.hour < 5
Subject annie: attributes role (artist), groups (creative) Verb paint: default 0 (deny unless explicitly granted) Object picture: Rule is
Access Control by Boolean Expression Evaluation
Sử dụng một ma trận kiểm soát truy cập để kiểm soát truy cập lĩnh vực trong một cơ sở dữ liệu Value (giá trị) được xác định bởi các biểu thức Boolean Object (Đối tượng) là các record và field; Subject: các chủ thể được ủy quyền để người sử dụng truy cập vào cơ sở dữ liệu Các loại truy cập: Insert, Update, Delete, Select,… Mỗi quy tắc tương ứng với một chức năng. Bất cứ khi nào một đối tượng cố gắng truy cập một đối tượng sử dụng quyền (verb) r, nếu biểu thức Boolean kết hợp với r là đúng thì được phép truy cập, ngược lại không được phép truy cập
Access Control by Boolean Expression Evaluation
The Access Restriction Facility (ARF) defines subjects as having attributes such as a name, a level, a role, membership in groups, and access to programs
Access Control by Boolean Expression Evaluation
Verbs have a default rule
“closed”: access denied unless explicitly granted (0) “open”: access granted unless explicitly denied (1)
Access Control by Boolean Expression Evaluation
Associated with each object is a set of verbs, and each (object, verb) pair has an associated rule
Access Control by Boolean Expression Evaluation
Các giải pháp cài đặt ACM
– Phân rã theo dòng (Theo khả năng)-Capability Lists: gồm một chủ thể và nhiều đối tượng. Xác định chủ thể có thể truy cập đến những đối tượng nào.
– ACT (Access Control Triples): tức là danh sách các bộ ba (chủ thể, đối tượng, quyền truy nhập) được lưu trong một cấu trúc bảng – Cách tiếp cận khác sử dụng các khái niệm riêng như Lock và key.
Cài đặt trực tiếp một ma trận như ACM lại là không thể vì nó vừa quá lớn, tốn quá nhiều bộ nhớ, bộ nhớ đã được cấp phát nhưng không sử dụng => lãng phí Các giải pháp để cài đặt ACM một cách khả thi: – Phân rã theo cột (Theo danh sách truy xuất) -Access Control Lists: gồm một đối tượng và nhiều chủ thể. Xác định những chủ thể nào có thể truy cập đến đối tượng này
Các giải pháp cài đặt ACM Danh sách điều khiển truy xuất ACL: – Phân rã theo cột: tạo nên đối tượng quản lý là các danh sách điều khiển truy nhập (access control list: ACL). Các ACL sẽ được gắn vào các đối tượng tài nguyên (object), cung cấp danh sách các NSD và quyền có thể truy nhập đến đối tượng
– ACL cụ thể sẽ phải đưa ra các câu trả lời và biện pháp cài
đặt chi tiết cho các vấn đề sau:
• Ai được phép cập nhật lên ACL của mỗi đối tượng tài nguyên? • Những loại sửa đổi cập nhật nào là được phép? • Nếu có những đặc quyền truy nhập (permission) có mâu thuẫn
với nhau thì giải quyết như thế nào?
• Giải quyết ra sao cho thủ tục rút phép (revocation)?
Các giải pháp cài đặt ACM Danh sách điều khiển truy xuất ACL:
ACL cho bill.doc Bob: read, write ACL cho edit.exe Bob: execute; Alice: execute ACL cho fun.com Bob: execute, read, write; Alice: execute, read
Các giải pháp cài đặt ACM
Khả năng của Alice: edit.exe: execute; fun.com: execute, read Khả năng của Bob: bill.doc: read, write; edit.exe: execute; fun.com: execute, read, write
Danh sách khả năng (năng lực: – Phân rã theo dòng: tạo nên các danh sách khả năng (capability list: CL), được gắn với các chủ thể (NSD), cung cấp danh sách các tài nguyên mà chủ thể có thể sử dụng với quyền truy nhập cụ thể tương ứng.
Cách hiện thực mô hình ma trận truy cập
Các giải pháp cài đặt ACM
– Cách tiếp cận khác sử dụng các khái niệm riêng như Lock và key: các tài nguyên có cấu trúc điều khiển gọi là lock mà chủ thể nào muốn sử dụng thì phải có key tương ứng (cũng là một thông tin điều khiển). Cách tiếp cận này phối hợp cả hai kiểu sử dụng ACL (danh sách truy nhập) và CL (danh sách năng lực).
Các giải pháp để cài đặt ACM một cách khả thi: – ACT (Access Control Triples): tức là danh sách các bộ ba (chủ thể, đối tượng, quyền truy nhập) được lưu trong một cấu trúc bảng; nó chính là biểu diễn rút gọn của ma trận toàn thể bằng cách triệt tiêu toàn bộ các ô dữ liệu trống.
Các giải pháp cài đặt ACM
Ba cách làm này đều cùng biểu diễn chung một trạng thái của một hệ thống truy nhập với hai chủ thể là Sam và Joe và hai đối tượng tài nguyên là File 1 và File 2
Ví dụ 1: Một ma trận nhỏ có thể được biểu diễn theo cả 3 cách - dùng ACL, CL và ACT
Các giải pháp cài đặt ACM
Ví dụ 2:
Các giải pháp cài đặt ACM
Ví dụ 2:
Các giải pháp cài đặt ACM Bài tập : Hệ thống có 3 người dùng:
Alice: tạo ra file 1 John: tạo ra file 2 Sally: tạo ra file 3 Một file có ba quyền là Đọc(R), Ghi(W), Thực thi(E) Các người dùng cấp quyền trên các file cho các người dùng khác: Alice cấp quyền đọc, ghi cho John trên file 1 và chỉ quyền đọc trên file này cho Sally. John cấp quyền đọc, thực thi trên file 2 cho Alice. Sally cấp quyền đọc, thực thi trên file 3 cho Alice và quyền đọc, thực thi trên file này. Vẽ ma trận truy cập, danh sách khả năng, danh sách điều khiển truy cập.
Các giải pháp cài đặt ACM
Cách hiện thực mô hình: – S{(O,A)}: danh sách khả năng (capability list -CL)
• Alice {(file X, {read, delete}), (file Y, {update})}
– O{(S,A)}: danh sách điều khiển truy cập(access
• File X{(Alice, {read, delete}), (Bob, {read})}
Ưu điểm và khuyết điểm: – CL: khi cần tìm các chủ thể có thể truy cập đến một đối
control list -ACL)
tượng oduyệt tất cả danh sách
– ACL: ngược lại
Các giải pháp cài đặt ACM
Bài tập:
Cho bảng dữ liệu. Vẽ ma trận truy cập, danh sách khả năng, danh sách điều khiển truy cập.
Một số hình an toàn tùy ý (DAC)
hình Action-Entity(Bussolati 1983), Fugini-
Mô hình ma trận truy nhập (Lampson 1971; Graham-Denning 1973, Harrision 1976) Mô hình Take-Grant(Jones 1976) Mô Martelle 1984) Mô hình của Wood 1979 như kiến trúc ANSI/SpARC để cấp quyền trong các CSDL quan hệ lược đồ - nhiều mức,…
Mô hình Take-Grant(Jones 1976)
Johns và các cộng sự đề nghị mô hình Take-Grant năm 1976 Sử dụng các cấu trúc hình học để biểu diễn mối quan hệ về quyền giữa các chủ thể với đối tượng, giữa chủ thể với chủ thể và giữa đối tượng với đối tượng. Có thể được xem là một dạng mở rộng của mô hình ma trận truy cập
Mô hình Take-Grant(Jones 1976)
Trạng thái định quyền:
S: tập các chủ thể (người dùng, quá trình, chương trình) O:tập các đối tượng bị động (file, bộ nhớ, CSDL, bảng, hàng, trường dữ liệu) V = S U O: tập các đỉnh, S ∩ O = Ф E: tập các cung được đánh nhãn
G = (S, O, E)
Mô hình Take-Grant(Jones 1976)
Thao tác Take và Grant
take(d, s, x, y): chủ thể s lấy quyền d trên đối tượng/chủ thể y từ đối tượng/chủ thể x
Mô hình Take-Grant(Jones 1976)
Thao tác Take và Grant
grant(d, s, x, y): chủ thể s gán quyền d trên đối tượng/chủ thể y cho đối tượng/chủ thể x
Mô hình Take-Grant(Jones 1976)
take, grant, create,
– removep(s, x): chủ thể s bị thu hồi quyền p trên đối
tượng/chủ thể x
Các loại quyền truy cập: read, write, take, grant – read, write: không làm thay đổi trạng thái định quyền – take, grant: làm thay đổi trạng thái định quyền Các loại thao tác truyền quyền: remove – take, grant: lấy và gán quyền – create(s, x): chủ thể s tạo đối tượng/chủ thể x. Khi đó cung nối giữa s và x sẽ được đánh nhãn p (possess: sở hữu)
Mô hình Take-Grant(Jones 1976)
Khuyết điểm của mô hìnhTake-Grant: Không có tính chọn lọc của các quyền quản lý: Tất cả các quyền của s đều có thể bị truyền đi nếu s sở hữu quyền GRANT Tất cả các quyền của o/s đều có thể bị lấy đi(truyền đi) nếu có một quyền TAKE trên nó. Không quản lý được sự lan truyền quyền Tính không cục bộ: nếu s có quyền GRANT trên o thì s có thể truyền bất kỳ quyền gì của mình cho o. Như vậy không kiểm soát được tập quyền có thể có trên o. Khả năng lan truyền ngược của dòng di chuyển quyền
Mô hình Take-Grant(Jones 1976)
Mô hình Take-Grant(Jones 1976)
Khuyết điểm của mô hìnhTake-Grant: Không có tính chọn lọc của các quyền quản lý: Tất cả các quyền của s đều có thể bị truyền đi nếu s sở hữu quyền GRANT Tất cả các quyền của o/s đều có thể bị lấy đi(truyền đi) nếu có một quyền TAKE trên nó. Không quản lý được sự lan truyền quyền Tính không cục bộ: nếu s có quyền GRANT trên o thì s có thể truyền bất kỳ quyền gì của mình cho o. Như vậy không kiểm soát được tập quyền có thể có trên o. Khả năng lan truyền ngược của dòng di chuyển quyền
Một số hình an toàn tùy ý (DAC)
Mô hình ma trận truy nhập (Lampson 1971; Graham-Denning 1973, Harrision 1976) Mô hình Take-Grant(Jones 1976) Mô hình Action-Entity(Bussolati 1983), Fugini- Martelle 1984) Mô hình của Wood 1979 như kiến trúc ANSI/SpARC để cấp quyền trong các CSDL quan hệ lược đồ - nhiều mức,…
DAC trong các hệ QTCSDL thông dụng
1. Điều khiển dữ liệu với SQL 2. DAC và điều khiển dòng thông tin
Điều khiển dữ liệu với SQL
Hai câu lệnh cơ bản: – GRANT – REVOKE Dựa trên 3 đối tượng chính trong CSDL: – Người dùng – Các đối tượng CSDL – Các quyền: lấy dữ liệu (SELECT), chỉnh sửa (INSERT, UPDATE, DELETE), và tham khảo (REFERENCE)
DAC ở các HQT CSDL thương mại
Tất cà các HQT CSDL thương mại đều cài đặt DAC. Các mô hình cấp quyền theo cơ chế DAC hiện tại đều dựa tre6nn mô hình System R. System R: do Griffiths và Wade phát triển vào năm 1976, là một trong những mô hình ra đời đầu tiên cho hệ quản trị CSDL quan hệ. System R: dựa trên nguyên lý ủy quyền quản trị cho người sở hữu
System R
Các đối tượng được quản lý trong mô hình là table và view Các phương thức truy cập (privilege) là select, insert, update, delete, drop, index (chỉ cho table), alter (chỉ cho table). Hỗ trợ làm việc trên group, không hỗ trợ role. Dùng câu lệnh GRANT để cấp quyền, có tùy chọn GRANT OPTION
System R
Sự ủy quyền được thể hiện thông qua GRANT OPTION, nếu cấp quyền cho 1 user bằng câu lệnh có GRANT OPTION thì user đó ngoài việc có thể thực hiện quyền được cấp, còn có thể cấp quyền đó cho 1 user khác. 1 user chỉ có thể cấp quyền trên 1 quan hệ cho trước nếu user đó là người sở hữu quan hệ hoặc user đó được người khác cấp quyền với câu lệnh có tùy chọn là GRANT OPTION.
Điều khiển dữ liệu với SQL
GRANT: truyền những quyền trên các đối tượng dữ liệu của mình cho những người dùng khác
GRANT
REVOKE: lấy lại (hủy bỏ) những quyền trên các đối tượng dữ liệu của mình từ những người dùng khác
REVOKE
ON
Điều khiển dữ liệu với SQL
Trong SQL, những quyền sau đây có thể được gán cho một quan hệ R
SELECT: truy xuất/đọc dữ liệu trong R. MODIFY: chỉnh sửa dữ liệu trong R INSERT, UPDATE, DELETE INSERT và UPDATE có thể bị giới hạn trên một số thuộc tính nào đó (thay vì nguyên cả hàng) REFERENCE: tham khảo đến R (khóa ngoại) REFERENCE cũng có thể bị giới hạn trên một số thuộc tính nào đó
Câu lệnh GRANT
GRANT PrivilegeList ALL[ PRIVILEGES] ON Relation|View TO UserList | PUBLIC [WITH GRANT OPTION]
Câu lệnh GRANT – Ví dụ
A: GRANT select, insert ON NHANVIEN TO B WITH GRANT OPTION; A: GRANT select ON NHANVIEN TO C WITH GRANT OPTION; B: GRANT select, insert ON NHANVIEN TO C; C có quyền select (từ A và B) và quyền insert (từ B). C có thể cấp quyền select cho các user khác, nhưng C không thể cấp quyền insert.
Câu lệnh GRANT
Với từng user, hệ thống ghi nhận lại : - A : tập hợp các quyền mà user sở hữu. - B: tập hợp các quyền mà user có thể ủy quyền cho
Khi 1 user thi hành câu lệnh GRANT, hệ thống sẽ - Tìm phần giao của tập B với tập quyền trong câu lệnh . - Nếu phần giao lá rỗng, thì câu lệnh không được thi
người khác.
hành.
Câu lệnh GRANT- Ví dụ
A: GRANT select, insert ON NHANVIEN TO C WITH GRANT OPTION; A: GRANT select ON NHANVIEN TO B WITH GRANT OPTION; A: GRANT insert ON NHANVIEN TO B; C: GRANT update ON NHANVIEN TO D WITH GRANT OPTION; B: GRANT select, insert ON NHANVIEN TO D;
Câu lệnh GRANT- Ví dụ • Trong ví dụ trên, hãy cho biết : - Câu lệnh nào được thực thi hoàn toàn? - Câu lệnh nào không được thực thi? - Câu lệnh nào thực thi một phần? TRẢ LỜI :
Câu lệnh GRANT Sự lan truyền quyền với GRANT
Người dùng A là chủ của quan hệ R. Người dùng A có thể gán một quyền D trên R cho người dùng B với GRANT OPTION hoặc không. Nếu trong câu lệnh gán có GRANT OPTION, điều này có nghĩa là B được phép gán quyền D trên R cho những người dùng khác. B lại gán quyền D trên R cho một người dùng khác là C và cũng với GRANT OPTION Chủ của quan hệ R(người dùng A) có thể không biết về sự lan truyền của quyền D trên R cho những người dùng khác
Câu lệnh GRANT Sự lan truyền quyền với GRANT
Nếu người dùng A thu hồi lại quyền D đã gán cho người dùng B thì tất cả những quyền D lan truyền bắt đầu từ B phải bị hệ thống tự động thu hồi lại
Câu lệnh GRANT
(trựctiếp) cho tối đa i= 2 người dùng khác
Giới hạn sự lan truyền quyền Giới hạn sự lan truyền quyền theo chiều ngang: – A1 gán quyền D cho A2 – Và muốn A2 chỉ có thể gán
Câu lệnh GRANT
Câu lệnh REVOKE
REVOKE REVOKE: lấy lại (hủy bỏ) những quyền trên các đối
tượng dữ liệu của mình từ những người dùng khác REVOKE: lấy lại (hủy bỏ) những quyền trên các đối
tượng dữ liệu của mình từ những người dùng khác • Câu lệnh này dùng để thu hồi quyền đã cấp
• User chỉ có thể thu hồi quyền đã cấp
• User không thể chỉ thu hồi grant option
• Một người chỉ có thể bị thu hồi quyền truy xuất p khi tất cả
những người cấp quyền p cho họ đều thu hồi quyền p lại A: GRANT select ON NHANVIEN TO C WITH GRANT OPTION; GRANT OPTION; A: GRANT select ON NHANVIEN TO C WITH GRANT OPTION; GRANT OPTION; Thu hồi đệ qui (recursive revocation): khi người dùng A
thu hồi quyền truy xuất trên bảng của một người B thì tất
cả các quyền mà B đã gán cho người khác đều bị thu hồi Thu hồi quyền đệ qui sẽ phá vỡ quyền truy xuất mà đối
tượng bị thu hồi quyền đã cấp
Thực tế khi 1 user A thay đổi công việc hay vị trí thì chỉ
muốn lấy lại quyền truy xuất của A mà không muốn lấy lại
các quyền truy xuất mà A đã cấp Thu hồi quyền đệ qui trong System R dựa vào nhãn thời
gian mỗi lần cấp quyền truy xuất cho người dùng.
Một biến thể của cách tiếp cận này là không dực vào nhãn
thời gian, mục đích là để tránh thu hồi quyền dây truyền.
Khi đó, nếu C bị B thu hồi quyền và C lại có quyền tường
đương do người khác cấp (mặc dù cấp sau đó) thì quyền
mà C cấp cho người khác vẫn được giữ. Thu hồi quyền không dây chuyền (Noncascading revoke):
Khi A thu hồi quyền truy xuất trên B thì tất cả các quyền
truy xuất mà B đã cấp cho chủ thể khác được thay bằng A
đã cấp cho những chủ thể này. Thu hồi quyền không dây chuyền (Noncascading revoke):
Chú ý: Bởi vì B được cấp quyền truy xuất trên đối tượng từ nhiều
chủ thể (khác A) nếu không phải tất cả các quyền mà B cấp
đều thay bằng A cấp. Và A được xem là người cấp thay
cho B khi B sử dụng quyền A đã cấp cho mình cấp cho
những chủ thể khác.
A sẽ là người cấp các quyền mà B đã cấp sau khi nhận
quyền đó từ A có chỉ định WITH GRANT OPTION. Với
những quyền B đã được cấp bởi C#A, đến lượt B cấp cho
người khác thì B vẫn là người cấp các quyền này. Thu hồi quyền không dây chuyền (Noncascading revoke):
Lưu ý rằng với quyền mà H cấp cho L, sau khi thu hồi
quyền, không được thay I như là người cấp vì quyền này
được cấp trước khi I cấp quyền cho H Thu hồi quyền không dây chuyền (Noncascading revoke):
Lưu ý rằng với quyền mà H cấp cho L, sau khi thu hồi
quyền, không được thay I như là người cấp vì quyền này
được cấp trước khi I cấp quyền cho H View và sự phân quyền dựa trên nội dung Trong các RDBMS, view là một cơ chế thup72ng được
dùng để hỗ trợ việc điều khiển truy cập trên nối dung
Dùng các vị từ (predicate) để giới hạn nội dung dữ liệu cần
cấp quyền.
Chỉ những bộ của quan hệ thõa mãn vị từ được xem là các
đối tượng để cấp quyền View và sự phân quyền dựa trên nội dung muốn cấp cho chủ thể S – Cấp cho S các quyền trên View Việc điều khiển truy cập dựa trên nội dung trong các
RDBMS được thực hiện như sau:
– Định nghĩa 1 view dùng các vị từ để chọn ra các dòng dữ liệu View và sự phân quyền dựa trên nội dung Ví dụ 1: giả sử ta muốn cấp quyền cho user B truy cập chỉ
những nhân viên có lương ít hơn 20000: CREATE VIEW V_NHANVIEN AS
SELECT * FROM NHANVIEN
WHERE LUONG <20000
GRANT Select ON V_NHANVIEN TO B; View và sự phân quyền dựa trên nội dung A: CREATE VIEW V1 (MANV, TONGTIEN)
AS SELECT MANV, LUONG+THUONG
FROM NHANVIEN WHERE CONGVIEC =‘Lap Trinh’
Thao tác update không được định nghĩa trên trường TONGTIEN
của View nên A sẽ không thể có quyền Update trên field này Người tạo view: view define
Quyền mà view define có trên view phụ thuộc vào:
– Ngữ nghĩa của view hay các quan hệ cơ sở dùng để tạo view
– Quyền mà view define có trên các bảng cơ sở
Quyền Alter và index không thể áp dụng cho view, nên
view definer không bao giờ có quyền này trên view Điều khiển truy cập tùy quyền bằng VIEW (quan hệ ảo) Ví dụ 2: người dùng A là chủ của quan hệ R. A muốn gán
cho người dùng B quyền truy xuất trên R nhưng chỉ muốn
cho B xem một số thuộc tính nhất định. A có thể tạo view
V của R chỉ chứa những thuộc tính đó và sau đó gán cho B
quyền SELECT trên V
Tương tự, nếu A muốn giới hạn B chỉ được xem một số
hàng trong quan hệ R thì A có thể tạo view V’ chỉ chứa
những hàng đó trong R và sau đó gán quyền truy xuất trên
V’ cho B Ví dụ : Nhà quản trị CSDL (Database administrator -DBA) tạo 4
người dùng: A1, A2, A3, A4
DBA gán cho A1 quyền tạo các quan hệ GRANT CREATE TAB TO A1; DBA tạo ra schema EXAMPLE và cho phép A1 các quyền
thao tác trên đó. CREATE SCHEMA EXAMPLE AUTHORIZATIONA1; Ví dụ: A1 có thể tạo ra các quan hệ trong schema EXAMPLE.
A1 tạo ra 2 quan hệ EMPLOYEE và DEPARTMENT
A1 là chủ của 2 quan hệ EMPLOYEE và DEPARTMENT
nên A1 có tất cả các quyền trên 2 quan hệ này Ví dụ: A1 muốn gán cho A2 quyền INSERT và DELETE trên cả
hai quan hệ trên, nhưng không cho phép A2 có thể truyền
các quyền này cho những người dùng khác
GRANTINSERT, DELETE ON
EMPLOYEE, DEPARTMENT TO A2;
Và A1 muốn cho phép A3 truy vấn thông tin từ cả 2 quan
hệ, đồng thời có thể truyền quyền SELECT cho những
người dùng khác
GRANT SELECTON EMPLOYEE, DEPARTMENT
TO A3 WITH GRANT OPTION; Ví dụ: A3 có thể gán quyền SELECT trên quan hệ EMPLOYEE
cho A4: GRANT SELECT ON EMPLOYEE TO A4; A4 không thể truyền quyền SELECT cho người dùng khác
vì không có GRANT OPTION Ví dụ: Sau đó, A1 quyết định thu hồi lại quyền SELECT trên quan
hệ EMPLOYEE của A3 REVOKE SELECT ON EMPLOYEEFROM A3; Hệ quản trị CSDL (Database Management System –
DBMS) cũng phải tự động thu hồi lại quyền SELECT trên
quan hệ EMPLOYEE của A4. Bởi vì A3 gán cho A4 quyền
này mà bây giờ A3 không còn quyền này nữa. Ví dụ 3: Giả sử A1 muốn gán lại cho A3 quyền truy vấn có giới hạn
trên quan hệ EMPLOYEE và cho phép A3 lan truyền
quyền này.
A3 chỉ có thể xem các thuộc tính NAME, BDATE và
ADDRESS của những hàng có giá trị DNO = 5.
A1 tạo view A3EMPLOYEE như sau: CREATE VIEW A3EMPLOYEEAS
SELECT NAME, BDATE, ADDRESS
FROM EMPLOYEE
WHERE DNO = 5; Ví dụ 3: Sau khi tạo view, A1 có thể gán quyền SELECT trên view
A3 EMPLOYEE cho A3: GRANT SELECT ON A3 EMPLOYEE TO A3
WITH GRANT OPTION; Sau cùng, A1 muốn cho phép A4 chỉ cập nhật thuộc tính
SALARY của quan hệ EMPLOYEE; GRANT UPDATEON EMPLOYEE(SALARY) TO A4; thông qua bước này – Kết quả sẽ dựa trên vị trí của câu truy vấn và vị từ định nghĩa trên view – B: Select * from V_NHANVIEN where CONGVIEC=‘Lap trinh’
Câu truy vấn sau bước view compositon:
– Select * from NHANVIEN where LUONG<2000 AND CONGVIEC=‘Lap trinh’ Parsing
Catalog lookup
Authorization checking
View Composition
– Truy vấn trên view sẽ được chuyển thành truy vấn trên bảng cơ sở Query optimization tương ứng với các thao tác có thể thực hiện trên view NHANVIEN; – CREATE VIEW V2(MANV, LUONG, NAM) AS SELECT MANV, LUONG*12 FROM NHANVIEN; – D có thể thực hiện tất cả các quyền trên V1 như là các quyền mà D có trên quan hệ NHANVIEN đó là Select, Insert, Update – Tuy nhiên, D chỉ có thể thực hiện trên V2 quyền Select và Update trên cột MANV Ví dụ: Xét quan hệ NHANVIEN và giả sử A là người tạo
nên quan hệ NHANVIEN
– A: GRANT Select, Insert, Update ON NHANVIEN to D;
– D: CREATE VIEW V1 AS SELECT MANV, LUONG FROM A: GRANT Select ON NHANVIEN TO D WITH
GRANT OPTION;
A: GRANT Update, Insert ON NHANVIEN TO D;
D: CREATE VIEW V4 AS Select Manv, luong FROM
NHANVIEN;
Quyền của D trên V4 sẽ là:
– Select with GRANT OPTION;
– Update, Insert without GRANT OPTION; không có quyền truy xuất nhận quyền này từ chủ thể khác. – Ví dụ: z không được quyền truy xuất trên đối tượng o, nhưng trường hợp hệ thống sử dụng chính sách phân chia quyền quản trị
thì chủ thể có quyền truy xuất trên o vô tình cấp quyền cho x.
Người ta đã đưa ra quyền phủ định để giải quyết vấn đề
ràng buộc này Khi chủ thể truy xuất đến 1 đối tượng dữ liệu, hệ thống
kiểm tra trong danh sách quyền mà chủ thể được truy xuất ,
nếu không có thì truy xuất bị từ chối
– Hạn chế: việc thiếu quyền truy xuất không ngăn cấm chủ thể sẽ Thường người ta giải quyết xung đột bằng cách ưu tiên
quyền phủ định thu hồi lại – Có thể chặn quyền truy cập của chủ thể trong một thời gian bằng cách gán quyền phủ định và sau đó thu hồi lại. lệnh GRANT) – Ta có thể thu hồi lại quyền phủ định (quyền đã cấm dùng câu lênh DENY) Câu lệnh REVOKE giống lênh DENY ở chỗ không cho
thực hiện điều gì đó
Câu lênh REVOKE khác lệnh DENY ở chỗ REVOKE sẽ
thu lại quyền đã cấp, còn DENY sẽ cấm một chủ thể (hay
1 vai trò) thực hiện 1 quyền gì đó trong tương lại. Dùng câu lệnh REVOKE:
– Ta có thể thu hồi lại quyền khẳng định (quyền đã cấp dùng chỉ được phép truy cập dữ liệu vào khoảng từ 9am đến 1pm ngày
1/1/2015 Thực tế người dùng chỉ được phép truy cập dữ liệu trong
một khoảng thời gian nhất định
Cần phải có 1 cơ chế hỗ trợ việc truy xuất trong khoảng
thời gian cho trước.
– Ví dụ: cơ chế chỉ cho phép những người làm việc bán thời gian không đảm bảo rằng chính sách này thực thi Trong hầu hết các HQT CSDK chính sách này thường
triển khai ở chương trình ứng dụng
– Hạn chế: khi xác nhận và thay đổi chính sách điều khiển truy cập, Mô hình điều khiển truy cập dựa vào thời gian được đề
xuất để giải quyết vấn đề này. không cần người quản trị thu hồi
Chu kỳ sử dụng quyền truy xuất:
– Quyền truy xuất theo chu kỳ có thể là quyền khẳng định hay quyền phủ định. Nếu trong cùng một khoảng thời gian mà người
dùng vừa có quyền khẳng định vừa có quyền phủ định trên cùng
1 đối tượng và cùng phương thức truy cập thì ưu tiên cho quyền
phủ định Thời gian hiệu lực:
– Mỗi quyền truy xuất đều có khoảng thời gian hiệu lực
– Khi hết thời gian hiệu lực quyền truy xuất tự động bị thu hồi mà thời gian – Qui tắc cho phép suy ra quyền truy xuất mới dựa vào sự tồn tại
hay không tồn tại của quyền truy xuất khác trong khoảng thời
gian xác định – Bằng cách sử dụng quy tắc suy diễn đã đáp ứng được yêu cầu bảo vệ dữ liệu một cách ngắn gọn và rõ ràng – Ví dụ: Nếu 2 người cùng làm chung 1 dự án thì phải cùng quyền truy xuất trên các đối tượng Cơ chế suy diễn dựa vào quy tắc suy diễn
– Quy tắc suy diễn biểu thị ràng buộc của các quyền truy xuất theo trên đối tượng o1 Quyền truy xuất được định nghĩa là 1 bộ gồm 5 thuộc tính
auth = (s,o,m,pn,g)
Trong đó:
– S(chủ thể), g (người gán), U(danh sách người dùng)
– mM (phương thức truy cập)
– oO (đối tượng)
– pn {+, -}(quyền khẳng định, quyền phủ định)
Ví dụ:
– (B,o1, read, +, C): C gán quyền cho B có thể reac đối tượng o1
– (B, o1, write, -, C): C không cho phép B được gán quyền write Quyền truy xuất theo chu kỳ bộ ba ([begin, end], P, auth)
Trong đó:
– Begin là ngày bắt đầu
– End là ngày kết thúc vá lớn hơn ngày bắt đầu
– P là biểu thức chu kỳ
– Auth là quyền truy xuất
Quyền truy xuất theo chu kỳ thể hiện quyền truy xuất có
hiệu lực torng chu kỳ P với ngày sử dụng quyền lớn hơn
hay bằng tb (ngày bắt đầu) và nhỏ hơn hay bằng te (ngày
kết thức)
– Ví dụ 2: A1 ={1/1/15, ], Mondays, (A, o1, read, +, B)) quyền truy
xuất này được B gán, thể hiện A có quyền read trên đối tượng o1
vào các ngày thứ hai bắt đầu từ ngày 1/1/15 – Lúc này bắt đầu từ ngày 1/1/156 thì A vừa có quyền khẳng định
vừa có quyền phủ định trên cùng đối tượng o1 và cùng phương
thức read – Hiện tượng xung đột được giải quyết bằng cách ưu tiên quyền phủ định – Do đó trong khoảng thời gian [1/1/15, 31/12/15] thì A vẫn có quyền read trên đối tượng o1 vào ngày thứ 2, tuy nhiên từ ngày
1/1/16 thì A không được gán quyền read trên đối tượng na2uy
vào các ngày làm việc kể cả thứ 2 Khi sử dụng quyền phủ định thì có thể dẫn đến hiện tượng
xung đột
Ví dụ:
– Giả sử có thêm quyền truy xuất A2=([1/1/16,], Working days, [A,
o1, read, -, B)) được gán cùng quyền truy xuất A1 =([1/1/15, ]],
Mondays, (A, o1, read, +, B)) được read trên đối tượng này Qui tắc suy diễn được định nghĩa là bộ ba ([begin, end], P,
A Khuyết điểm của DAC: cho phép dòng thông tin từ đối
tượng này truyền sang đối tượng khác bằng cách đọc thông
tin lên từ một đối tượng rồi ghi thông tin đó xuống đối
tượng khác
Ví dụ: Bob không được phép xem file A, nên anh ta nhờ
Alice (đồng lõa với Bob) copy nội dùng của file A sang file
B (Bob có thể xem được file B)
Giả sử các người dùng đều đáng tin cậy và không làm việc
như trên thì cũng có thể một Trojan Horses sẽ làm việc sao
chép thông tin từ đối tượng này sang đối tượng khác. Mô hình ít hạn chế nhất
Mọi đối tượng đều có một chủ sở hữu
Chủ sở hữu có toàn quyền điều khiển đối với đối tượng của
họ
Chủ sở hữu có thể cấp quyền đối với đối tượng của mình
cho một chủ thể khác
Được sử dụng trên các hệ điều hành như Microsoft
Windows và hầu hết các hệ điều hành UNIX
Dễ dàng thực hiện, hệ thống linh hoạt • Việc cấp quyền có thể không chính xác Khó quản lý việc gán / thu hồi quyền Phụ thuộc vào quyết định của người dùng để thiết lập
cấp độ bảo mật phù hợp trình mà chủ thể thực thi
Dễ bị lộ thông tin Quyền của chủ thể sẽ được “thừa kế” bởi các chương Trojan là một vấn đề đặc biệt của DAC
Kiểm soát an toàn không tốtCâu lệnh REVOKE
REVOKE PrivilegeList | ALL[PRIVILEGES]
ON Relation | View
FROM UserList | PUBLIC
Câu lệnh REVOKE
A: GRANT select ON NHANVIEN TO B WITH
C: GRANT insert ON NHANVIEN TO D;
B: GRANT select ON NHANVIEN TO D;
C: REVOKE select ON NHANVIEN FROM D
Sau câu lệnh này thì D vẫn có quyền SELECT trên bảng NHANVIEN
vì B vẫn chưa thu hồi quyền SELECT của D
Câu lệnh REVOKE
A: GRANT select ON NHANVIEN TO B WITH
C: GRANT insert ON NHANVIEN TO D;
B: GRANT select ON NHANVIEN TO D;
C: REVOKE select ON NHANVIEN FROM D
Sau câu lệnh này thì D vẫn có quyền SELECT trên bảng NHANVIEN
vì B vẫn chưa thu hồi quyền SELECT của D
Câu lệnh REVOKE
Câu lệnh REVOKE
Câu lệnh REVOKE
Câu lệnh REVOKE
Câu lệnh REVOKE
Câu lệnh REVOKE
Câu lệnh REVOKE
Câu lệnh REVOKE
Câu lệnh REVOKE
Câu lệnh REVOKE
Điều khiển truy cập bằng VIEW
Điều khiển truy cập bằng VIEW
Điều khiển truy cập bằng VIEW
Điều khiển truy cập bằng VIEW
Điều khiển truy cập bằng VIEW
Điều khiển truy cập bằng VIEW
Điều khiển truy cập bằng VIEW
Điều khiển truy cập bằng VIEW
Điều khiển truy cập bằng VIEW
Điều khiển truy cập bằng VIEW
Điều khiển truy cập bằng VIEW
Điều khiển truy cập bằng VIEW
Các bước xử lý truy vấn
Các bước xử lý truy vấn
Nhận xét:
Vì việc kiểm tra quyền được thực hiện trước bước View
compositon nên quyền được kiểm tra sẽ dựa trên View chứ không
dựa trên các bảng cơ sở dùng định nghĩa view
View hữu ích khi cấp quyền trên các cột: chỉ cần tạo view gồm các
cột mà ta muốn cấp quyền
View còn hữu ích trong việc cấp quyền trên dữ liệu thống kê (dữ
liệu sinh ra từ các hàm SUM, AVG,..)
Chủ thể truy cập có thể cấp quyền truy cập hay thu hồi trên view
tương tự như trên bảng dữ liệu
Người dùng muốn tạo View thì phải có quyền Select trên bảng dữ
liệu
Nếu người tạo View bị thu hồi quyền (hay cấp quyền trên bảng) thì
cũng bị thu hồi quyền (hay cấp quyền) trên view và thu hồi những
người dùng khác được người này cấp quyền
Phân quyền trên View
Để xác định quyền mà view definer có trên view, hệ thống
phải:
– Tìm giao tập quyền mà view definer có trên quan hệ cơ sở tới tập quyền
Phân quyền trên View
Hoàn toàn có thể cấp quyền trên View
Quyền mà user có thể cấp là những quyền mà user có with
grant option trên các quan hệ cơ sở
Ví dụ: user D không thể cấp bất cứ quyền gì trên view V1
và view V2 mà D đã định nghĩa vì D không được chỉ định
With Grant Option khi D cấp quyền
Phân quyền trên View
Xét các câu lênh sau:
DAC – Quyền khẳng định và Phủ định
System R và hầu hết các HQT dùng chính sách đóng
– Với chính sách đóng, thiếu quyền truy xuất đồng nghĩa với việc
DAC – Quyền khẳng định và Phủ định
Quyền khẳng định: danh sách quyền truy xuất được sử
dụng
Quyền phủ định: danh sách quyền truy xuất không được sử
dụng
Tuy nhiên sử dụng quyền khẳng định và quyền phủ định thì
gây nên xung đột
– Ví dụ: A có quyền WRITE trên bảng NHANVIEN. A không được
READ trên PHONGBAN, A không được WRITE trên thuộc tính
LUONG của NHANVIEN
DAC – Quyền khẳng định và Phủ định
Quyền khẳng định được thực hiện như là chặn quyền
Khi chủ thể bị gán quyền phủ định trên đối tượng thì quyền
khắng định trên đối tượng mà họ có trước đó bị chặn lại
Nếu sau này chủ thể được rút quyền phủ định thì họ có thể
sử dụng lại quyền khẳng định của mình trước đó;
Ưu điểm:
– Nếu vô tình gán quyền phủ định cho người dùng thì có thể
DAC – Quyền khẳng định và Phủ định
Thu hồi quyền đã cấp hoặc cấp quyền đã cấm
DAC – Ràng buộc ngữ cảnh
DAC – Ràng buộc ngữ cảnh
DAC – Ràng buộc ngữ cảnh
DAC – Ràng buộc ngữ cảnh
DAC – Ràng buộc ngữ cảnh
DAC – Ràng buộc ngữ cảnh
DAC – Ràng buộc ngữ cảnh
DAC và điều khiển dòng thông tin
DAC và điều khiển dòng thông tin
Ví dụ Trojan Horses:
DAC và điều khiển dòng thông tin
Ví dụ Trojan Horses:
DAC và điều khiển dòng thông tin
Ví dụ Trojan Horses:
Ưu điểm của điều khiển truy cập DAC
Nhược điểm của điều khiển truy cập DAC

