Bài giảng Bảo mật cơ sở dữ liệu - Chương 3: Bảo mật theo cơ chế MAC cung cấp cho người học các kiến thức: Giới thiệu về điều khiển truy cập bắt buộc, mô hình điều khiển truy cập bắt buộc, MAC trong các hệ QTCSDL thông dụng, Case study - Oracle Label Security Multi-Level security. Mời các bạn cùng tham khảo.
Trang 1Bảo mật theo cơ chế MAC
Mandatory Access Control Models
Trang 2Nội dung
1 Giới thiệu về điểu khiển truy cập bắt buộc
2 Mô hình điểu khiển truy cập bắt buộc
3 MAC trong các hệ QTCSDL thông dụng
4 Case study: Oracle Label Security Multi-Level
security
Trang 3Vấn đề: DAC và Trojan Horse
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ôngtin 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ệcnhư trên thì cũng có thể một Trojan Horses sẽ làm việc saochép thông tin từ đối tượng này sang đối tượng khác
Trang 4DAC và điều khiển dòng thông tin
Ví dụ Trojan Horses:
Trang 5DAC và điều khiển dòng thông tin
Ví dụ Trojan Horses:
Trang 6DAC và điều khiển dòng thông tin
Ví dụ Trojan Horses:
Trang 7DAC và điều khiển dòng thông tin
Ví dụ Trojan Horses:
Trang 8DAC và điều khiển dòng thông tin
Ví dụ Trojan Horses:
Trang 9Giới thiệu Mandatory Access Control MAC
-MAC được dùng để bảo vệ một khối lượng dữ liệu lớn cần được bảo mật cao trong một môi trường
mà các dữ liệu và người dùng đều có thể được
phân loại rõ ràng.
Khác DAC, MAC không cho phép các cá nhân chủ thể toàn quyền quyết định sự truy cập cho mỗi đối tượng mà cưỡng chế sự truy nhập tất cả các đối tượng theo một chính sách chung, được qui định bởi một cơ chế phân loại cấp bậc.
Là cơ chế để hiện thực mô hình bảo mật nhiều mức (multiple level).
Trang 10Điều khiển truy cập bắt buộc (Mandatory Access MAC)
Control-– Là mô hình điều khiển truy cập nghiêm ngặt nhất
– Thường bắt gặp trong các thiết lập của quân đội
– Hai thành phần: Nhãn và Cấp độ
Mô hình MAC cấp quyền bằng cách đối chiếu nhãn của đối tượng với nhãn của chủ thể
– Nhãn cho biết cấp độ quyền hạn
Để xác định có mở một file hay không:
– So sánh nhãn của đối tượng với nhãn của chủ thể
– Chủ thể phải có cấp độ tương đương hoặc cao hơn: đối tượng được cấp phép truy cập
Giới thiệu Mandatory Access Control
Trang 11Giới thiệu Mandatory Access Control
Các chủ thể được phân loại và được gán nhãn cấp bậc, thể hiện tầm quan trọng (đặc quyền) cao hay thấp trong hệ
thống (xét trên phương diện an toàn bảo mật), và các đối tượng cũng được phân loại và gán nhãn thể hiện tính mật, tức là cần bảo vệ, cao hay thấp
Cấp bậc của chủ thể (security class) phải đủ cao thì mới
có thể truy nhập được vào một đối tượng có một nhãn bảo mật mức nào đó (security clearance)
Thông thường, Cấp của chủ thể cần phải không thấp hơn Mức bảo mật của đối tượng.
Trang 12Giới thiệu Mandatory Access Control
Mọi chủ thể và đối tượng trong hệ thống đều được gắn với 1 lớp an toàn
Lớp an toàn = (Mức nhạy cảm, vùng ứng dụng)
– Thành phần của mức nhạy cảm là thành phần phân cấp– Thành phần của vùng ứng dụng là thành phần khôngphân cấp
Trang 13Mandatory Access Control
Trang 14Các lớp bảo mật
Người dùng và dữ liệu được phân loại dựa theo các lớp bảo mật (security classes)
Phân loại người dùng dựa theo mức độ tin cậy và
lĩnh vực hoạt động của người dùng
Phân loại dữ liệu dựa theo mức độ nhạy cảm và
lĩnh vực của dữ liệu
Lớp bảo mật có thể được phân loại theo
– Mức bảo mật (Classification level)
– Lĩnh vực (Category)
Trang 15Dữ liệu ở cấp càng cao thì càng nhạy cảm và cần được bảo
vệ nhất
Trang 16Mandatory Access Control
Ví dụ trong quân sự:
Lớp an toàn = (Mức nhạy cảm, Vùng ứng dụng) Mức nhạy cảm:
– 0 = Không phân loại (U – Unclassified)
– 1 = Mật (C – Confidential)
– 2 = Tuyệt mật (S – Secret)
– 3 = Tối mật (TS – Top Secret)
Vùng ứng dụng: Hạt nhân – Nati – Cơ quan tình báo
Trang 17Mandatory Access Control
Trang 18Lĩnh vực
Phân loại người dùng và dữ liệu theo lĩnh vực hoạt độngcủa hệ thống, hoặc theo từng phòng ban trong một tổ chức
Ví dụ: Một công ty có 3 phòng ban là: Phòng kinh doanh,
phòng sản xuất và phòng phân phối Như vậy thì các ngườidùng và dữ liệu trong công ty này có thể được phân loạitheo lĩnh vực dựa theo 3 phòng ban này
Trang 19Lĩnh vực
Ví dụ 2: Trong một hệ thống quản lý thông tin và điểm số
của một khoa đại học, có 2 cấp/mức bảo mật làconfidential (mật) và public (công khai), đồng thời có 2 thểloại thông tin là studentinfo (thông tin sinh viên) và dept-info (thông tin về khoa/viện) Như vậy có thể có các nhãnnhư:
label(Joe)=(confidential,{student-info})label(grades)=(confidential,{student-info})
Dễ thấy luật truy nhập sẽ cho phép Joe được đọc dữ liệugrades vì nhãn của Joe không hề thua kém nhãn củagrades
Trang 20• (2, Sales) ≤ (3, (Sales, Production))
• (2, (Sales, Production)) ≤ (3, Sales)
Trang 21Lớp bảo mật
Qui tắc: (A, C) dom (A’, C’) iff A’ ≤ A and C’ C
Examples
(Top Secret, {NUC, ASI}) dom (Secret, {NUC})
(Secret, {NUC, EUR}) dom (Confidential,{NUC, EUR}) (Top Secret, {NUC, EUR}) dom (Confidential, {EUR}) (Secret, {NUC, EUR}) dom (Confidential,{NUC, EUR})
Trang 22Lớp bảo mật
Tập con
Trang 23Tính chất của quan hệ đa mức
Tính chất đọc và ghi
Tính toàn vẹn thực thể (Entity integrity)
Tính toàn vẹn giá trị null (Null integrity)
Tính đa thể hiện (Polyinstantiation)
Không đọc lên (No read up)
Không ghi xuống (No write down)
Tính chất cơ bản của MAC
Trang 24Các tính chất của điều khiển truy
– Không đọc lên (No read-up)
Tính chất sao (Star property or *-property): Một chủ thể s
không được phép GHI lên đối tượng o, trừ khi:
class(s) ≤ class(o)
– Không ghi xuống (No write-down)
Những tính chất này nhằm đảm bảo rằng không có dòng
thông tin nào có thể đi từ lớp cao xuống lớp thấp!!!
Trang 25Các tính chất của điều khiển truy cập bắt buộc
Trang 26Các tính chất của điều khiển truy cập bắt buộc
Tại sao có tính chất *
Trang 27Các tính chất của điều khiển truy cập bắt buộc
Tại sao có tính chất *
Trang 28Các tính chất của điều khiển truy cập bắt buộc
Tại sao có tính chất *
Trang 29Tính chất *
Tính chất *: ngăn chặn một chủ thể ở lớp bảo mật cao gửi
thông điệp hợp lệ đến những chủ thể ở lớp bảo mật thấp hơn
Trang 30Quan hệ đa mức
Quan hệ đa mức (Multilevel relation): MAC + mô hình
CSDL quan hệ
Các đối tượng dữ liệu: thuộc tính và hàng
Mỗi thuộc tính Ai được gắn với 1 thuộc tính mức bảo mật
Ci
Mỗi hàng có 1 thuộc tính mức bảo mật chung cho hàng đó
TC TC sẽ mang giá trị cao nhất của các Ci trong hàng đó
R(A1, C1, A2, C2, …, An, Cn, TC)
Khóa biểu kiến (apparent key-AK) của một quan hệ đa mức
là tập các thuộc tính mà sẽ tạo thành khóa chính như trong một quan hệ bình thường (single-level relation) (bỏ các
thuộc tính mức bảo mật)
Trang 31Quan hệ đa mức
Ví dụ
Trang 32Quan hệ đa mức
Phụ thuộc hàm (Functional Dependency):
Phụ thuộc hàm (FD) f: X Y trên lược đồ quan hệ R nếu
và chỉ nếu mỗi giá trị X trong r có quan hệ chính xác với 1giá trị Y trong r Nghĩa là bất kể khi nào 2 bộ của r có cùnggiá trị X thì cũng có cùng giá trị Y
t1, t2 r(R): t1[X] = t2[X] t1[Y]= t2[Y]
X là vế trái, ký hiệu left(f) hay còn gọi là determinant
Y là vế phải, ký hiệu right(f) hay còn gọi là dependent
Trang 33Quan hệ đa mức
Primary Keys (thực thể sở hữu toàn vẹn)
Khóa chính xác định duy nhất mỗi tuple trong quan hệMột khóa chính không thể chứa các thuộc tính với giá trịnull
Một mối quan hệ không thể chứa hai bộ dữ liệu có giá trị của khóa chính trùng nhau
Trang 34Quan hệ đa mức
Trang 35Những chủ thể (người dùng) ở các mức bảo mật khác nhau sẽ thấy những dữ liệu khác nhau trong cùng một
quan hệ đa mức
Trang 36Quan hệ đa mức
SELECT * FROM EMPLOYEE
Kết quả trả về cho người dùng ở mức bảo mật S
Trang 37Quan hệ đa mức
SELECT * FROM EMPLOYEE
Kết quả trả về cho người dùng ở mức bảo mật C
Trang 38Quan hệ đa mức
SELECT * FROM EMPLOYEE
Kết quả trả về cho người dùng ở mức bảo mật U
Trang 39Quan hệ đa mức
SELECT * FROM EMPLOYEE (Cho biết kết quả mức U và S)
Kết quả trả về cho người dùng ở mức bảo mật U
Kết quả trả về cho người dùng ở mức bảo mật S
Trang 40Tính chất của quan hệ đa mức
Tính toàn vẹn thực thể (Entity integrity): Tất cả các thuộc
tính nằm trong khóa biểu kiến (apparent key) không được
null và phải ở cùng mức bảo mật trong mỗi hàng.
Tất cả các thuộc tính khác không thuộc khóa AK trong cùng một hàng phải có mức bảo mật lớn hơn hoặc bằng mức bảo mật của khóa biểu kiến.
Trang 41Tính chất của quan hệ đa mức
Ví dụ:
Trang 42Tính chất của quan hệ đa mức
Tính toàn vẹn giá trị null (Null integrity): Tất cả các giá
trị null đều được phân loại ở mức bảo mật bằng với mức
bảo mật của khóa biểu kiến trong cùng một hàng
Ràng buộc này đảm bảo sự thống nhất giữa các thể hiện khác nhau (instance) của cùng một quan hệ khi nó xuất hiện ở các mức bảo mật khác nhau
Trang 43Tính chất của quan hệ đa mức
Ví dụ:
Trang 44Tính chất của quan hệ đa mức
Tính đa thể hiện (Polyinstantiation): xảy ra khi có
những hàng có cùng khóa biểu kiến nhưng mang nhữnggiá trị khác nhau đối với những người dùng ở các mứcbảo mật khác nhau (Nghĩa là khóa biểu kiến có thể cónhững hàng có cùng giá trị nhưng tùy theo mức bảo mậtcủa người dùng mà có thể nhìn thấy dữ liệu khác nhauHai tình huống:
– Một người sử dụng thấp chèn dữ liệu vào nơi đã có chứa
dữ liệu ở cấp cao hơn hoặc người đó không nhìn thấy dữ liệu ở cấp cao (invisible polyinstantiation)
– Một người sử dụng cao chèn dữ liệu vào nơi đã có chứa dữ liệu ở một mức độ thấp hơn, người dùng nhìn thấy được
dữ liệu này (visible polyinstantiation)
Trang 45Tính chất của quan hệ đa mức
Tính đa thể hiện (Polyinstantiation): cho biết kết quả
của mỗi người dùng ở các mức U, C, S khi dung lệnh
SELECT * FROM EMPLOYEES
Trang 46Tính chất của quan hệ đa mức
Ví dụ về tính đa thể hiện
SELECT * FROM EMPLOYEE
Kết quả trả về cho người dùng ở mức bảo mật C
Trang 47Tính chất của quan hệ đa mức
Thực hiện câu lệnh hay báo lỗi?
Trang 48Tính chất của quan hệ đa mức
Ví dụ về tính đa thể hiện
Kết quả của câu truy vấn:
– Name là khóa biểu kiến trong quan hệ Employee – Tồn tại 2 hàng có cùng khóa biểu kiến
Trang 49Tính chất của quan hệ đa mức
ML relations – keys and polyinstantiation
What if a U user wants to insert a tuple with vessel =
Avenger?
If insert is allowed – will there be any problems?
– We will have 2 Avengers
– Duplicate primary key - violates unique constraints
If we reject the insert – what will happen?
– Covert channel – U user knows that there is another record with same key value that is not visible to him
Trang 50Tính chất của quan hệ đa mức
ML relations – invisible and polyinstantiation
Primary key as an existing tuple at a higher level; theDBMS has three choices:
1 Thông báo cho người dùng biết rằng một bộ với khóa
chính cùng tồn tại ở mức độ cao hơn và từ chối sựchènsignaling channel (kênh báo tín hiệu)
2 Thay thế các tuple hiện ở mức độ cao hơn với các tuple
mới được chèn ở mức thấp cho phép người sử dụngthấp ghi đè dữ liệu mà anh ta không thể nhìn thấy và do
đó ảnh hưởng đến tính toàn vẹn
3 Chèn các tuple mới ở cấp độ thấp mà không sửa đổi các
tuple hiện ở cấp cao hơn tức là đa thể hiện(polyinstantiate) thực thể
Trang 51Tính chất của quan hệ đa mức
ML relations – invisible and polyinstantiation
Trang 52Tính chất của quan hệ đa mức
ML relations – visible and polyinstantiation
Giả sử một người dùng cao yêu cầu chèn một bộ với khóa chính giống như một tuple hiện ở cấp thấp hơn; DBMS có ba lựa chọn:
Thông báo cho người dùng biết rằng một bộ với khóa chính cùng tồn tại và từ chối sự chèn không giới thiệu một kênh báo hiệu; Tuy nhiên, từ chối kết quả thêm trong DoS
Thay thế các tuple hiện ở cấp thấp hơn với các tuple mới được chèn ở cấp độ cao sẽ cho kết quả trong việc loại bỏ một bộ ở cấp thấp hơn gọi là kênh báo hiệu
Chèn các tuple mới ở mức cao mà không sửa đổi các tuple hiện ở cấp thấp hơn (tức là đa thể hiện thực thể)
Trang 53Tính chất của quan hệ đa mức
ML relations – visible and polyinstantiation
Trang 54Tính chất của quan hệ đa mức
• Ràng buộc đa thể hiện:(Polyinstantiation Integrity)
AK, CAK, Ci -> Ai
• Nghĩa là khóa chính trong MLS là:
• AK U CAK U CR
• AK là dữ liệu trong khóa chính PK, CAK là mức
bảo mật của dữ liệu khóa chính, CR là dữ liệu không nằm trong khóa biểu kiến AK
Trang 55Tính chất của quan hệ đa mức
Trang 60Because of the *-property, only tuples that
satisfy the predicates AND t[TC] = c are deleted from Rc (Rc is table at classification c)
• To maintain inter-instance integrity,
polyinstantiated tuples are also deleted from
Rc’>c
– If t[AK] = c, then any polyinstantiated tuples in Rc’>c
will be deleted from Rc’>c
– If t[AK] < c, then the entity will continue to exist in
Rt[AK] and in Rc’>t[AK]
Trang 61Bài tập
Trang 66Bài tập
Cho biết người dùng ở mức S và U thấy gì?
Visible to a user with unclassified level
Visible to a user with secret level
Cho quan hệ sau:
Trang 67Bài tập
Nếu người dùng ở mức unclassified đánh lệnh insert of <Ann, Dept1,
100K>
• If this update is rejected, then the user would be able to infer
something about Ann
• MLS would allow the secret channel to permit data update and protect data integrity
Cho quan hệ sau:
Visible to a user with secret level Visible to a user with unclassified
level
Trang 68– Inform the subject of the conflict
and refuse the insertion (no)
– Overwrite the existing tuple (no)
Cho quan hệ sau:
Trang 69Ưu và khuyết điểm của MAC
Trang 70Các mô hình của MAC
Hai mô hình thực thi của MAC
– Mô hình mạng lưới (Lattice model)
– Tương tự mô hình mạng lưới
– Các chủ thể không thể tạo một đối tượng mới hay thực hiện một số chức năng nhất định đối với các đối tượng
có cấp độ thấp hơn
Trang 71Áp dụng trong các ứng dụng quân đội và chính phủ
Trang 72Mô hình Bell-LaPadula
Mô hình BLP chú trọng vào bảo vệ tính bảo mật cao độ,tuy nhiên vẫn hỗ trợ khả năng phi tập trung hóa, tức làkhông dồn toàn bộ kiểm soát và quản trị truy nhập vềmột nơi duy nhất Một mặt, để đảm bảo tính cưỡng chếcao, toàn bộ các yêu cầu truy nhập phải đi qua một bộphận kiểm soát gọi là BLP reference monitor
Bộ phận monitor này sẽ kiểm tra xem yêu cầu truy nhậpnày có thỏa mãn các luật bảo mật chung, nếu đáp ứngmới thông qua Tuy nhiên cũng có những chủ thể đặcbiệt được coi là đáng tin cậy, luôn được thông qua
Trang 73– Còn lại (Unclassified – UC)
BLP cũng cho phép phối hợp cả hai dạng cơ chế cưỡngchế và tùy nghi, trong đó cơ chế sử dụng bộ kiểm soát(BLP monitor) sẽ đảm bảo cưỡng chế áp dụng bộ luậtchung, còn cơ chế tùy nghi có thể được thêm vào sau khimột yêu cầu truy nhập đã đáp ứng bộ luật
Trang 74Mô hình Bell-LaPadula
• An access class c1 dominates ≥ an access class c2 iff
• Security level of c1 is greater than or equal to that of c2
• The categories of c1 include those of c2
Điều khiển trực tiếp hay gián
tiếp luồng thông tin
Ngăn chặn rò rỉ thông tin
Người dùng kết nối tới hệ
thống với bất kỳ truy cập
trong phạm vi bảo mật của
người dùng
Trang 75Mô hình Bell-LaPadula
Ví dụ: Trong một hệ thống quản lý thông tin và điểm số
của một khoa đại học, có 2 cấp/mức bảo mật làconfidential (mật) và public (công khai), đồng thời có 2thể loại thông tin là studentinfo (thông tin sinh viên) vàdept-info (thông tin về khoa/viện) Như vậy có thể có cácnhãn như:
– label(Joe)=(confidential,{student-info})
– label(grades)=(confidential,{student-info})
Trang 76Mô hình Bell-LaPadula
Trang 77Mô hình Bell-LaPadula
Trạng thái của hệ thống:
v = (b, M, f) b: tập các truy cập hiện tại
Các loại quyền truy cập (access mode): chỉ đọc only), nối (append), thực thi (excecute), đọc-ghi (read-write)
(read-b = <su(read-bject, o(read-bject, access mode> = <s, o, m>: chủ
thể s đang có quyền truy cập m trên o
M[s, o]: ma trận truy cập Tương tự như trong mô hình
ma trận truy cập
Trang 78Mô hình Bell-LaPadula
Trạng thái của hệ thống:
(b, M, f) f: hàm xác định mức bảo mật của chủ thể/đối tượng
Trang 79No Read Up: Luật này đơn giản là không cho phép chủ
thể cấp dưới đọc biết thông tin ở cấp cao hơn,
Khi được phối hợp với một cơ chế tùy nghi, nó sẽ được
phát biểu như sau: chủ thể s đọc được đối tượng o khi và chi khi nhãn của s ưu thế hơn nhãn của o đồng thời s có được cấp phép đọc đối với o.