- DAC: quản lý việc truy xuất dữ liệu bằng cách quản lý việc cấp phát các quyền truy xuất cho những người dùng thích hợp tùy theo yêu cầu của các chính sách bảo mật.. - MAC: quản lý v
Trang 1BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA: AN TOÀN THÔNG TIN
CƠ SỞ AN TOÀN THÔNG TIN
MÔ PHỎNG TÍNH CHẤT NO READ UP CỦA
ORACLE LABEL SECURITY
……… .
Giảng viên hướng dẫn: Ths Đặng Thế Hùng
Sinh viên thực hiện: Trần Quốc Hoàng
Nguyễn Thanh Tú
Phạm Nguyễn Tiến Anh Trần Bảo Hội
Lớp: AT15H
Khóa: 15
Nhóm: 2
Trang 2TP Hồ Chí Minh, tháng 9 năm 2021
BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA: AN TOÀN THÔNG TIN
AN TOÀN CƠ SỞ DỮ LIỆU TÌM HIỂU VỂ ORACLE LABEL SECURITY
Nhận xét của giáo viên hướng dẫn:
Điểm báo cáo:
Xác nhận của giáo viên hướng dẫn:
Trang 3MỤC LỤC
MỤC LỤC 3
DANH MỤC HÌNH ẢNH 5
DANH MỤC CÁC TỪ VIẾT TẮT 6
LỜI CẢM ƠN 7
LỜI MỞ ĐẦU 8
1 Lí do chọn đề tài 8
2 Mục đích chọn đề tài 8
CHƯƠNG 1: TỔNG QUAN VỀ CÁC KIẾN THỨC 9
1.1 Định nghĩa về mô hình DAC và MAC 9
1.2 Mô hình MAC và DAC trong Oracle 9,10 1.3 Định nghĩa quy tắc "No read up - No write down - Limited write down" 11
1.4 Tổng quan về Oracle Label Security 11
1.4.1 Giới thiệu sơ bộ Oracle Label Security 11,12 1.4.2 Nhãn nhạy cảm (sensity label) 12,13,14,15 1.4.3 Cách thức hoạt động( quản lí truy cập) 15
CHƯƠNG 2 : SƠ LƯỢC DEMO MÔ PHỎNG NO READ UP CỦA OLS 16
2.1 Tình huống mô phỏng 16
2.2 Triển khai dự án "Quản lý nhân sự" 17
2.2.1 Truy cập đọc 17
2.2.2 Các loại nhãn của user 17
2.2.3 Ngăn (Compartment) 17
2.2.4 Nhóm (Group) 18
2.2.5 Gắn nhãn cho từng user 18
2.2.6 Các loại nhãn của data 18,19 CHƯƠNG 3: TIẾN HÀNH MÔ PHỎNG TÍNH CHẤT NO READ UP CỦA OLS 20
Trang 43.2.Tiến hành mô phỏng 20,21
CHƯƠNG 4: KẾT LUẬN 28
4.1 Kết quả đạt được 28
4.2 Hạn chế và phương hướng phát triển 28
TÀI LIỆU THAM KHẢO 29
Trang 5
DANH MỤC HÌNH ẢNH Hình 1.1 Kiến trúc Oracle label security 10
Hình 1.2.Label Components 14
Hình 1.3 Mô hình thể hiện mối quan hệ tương ứng giữa user label và data label 14
Hình 2.1 Sơ đồ cây phân cấp group của công ty 16
Hình 2.2 Truy cập đọc 17
Hình 3.1 Tạo tên database Oracle 19
Hình 3.2 .20
Hình 3.3 .20
Hình 3.4 Tạo user congty 22
Hình 3.5 Tạo bảng NHANSU 22
Hình 3.6 Giá trị được insert vào bảng 22
Hình 3.7.Tương tác với user LBACSYS 23
Hình 3.8 Tạo chính sách OLS 23
Hình 3.9 Tạo các label của user và áp dụng chính sách cho bảng NHANSU 24
Hình 3.10 Gán nhãn cho các hàng dữ liệu của bảng 24
Hình 3.11 Tạo các user tương ứng 24
Hình 3.12 Cấp quyền cho từng user 25
Hình 3.13 Gán nhãn cho các user 25
Hình 3.14 Kết nối vào user TONGGIAMDOC 25
Hình 3.14.1 Kết quả của user TONGGIAMDOC 26
Hình 3.15 Kết nối vào user GIAMDOCN 26
Hình 3.15.1 Kết quả của user GIAMDOCN 26
Hình 3.16 Kết nối vào user NHANVIENKHB 27
Trang 6DANH MỤC CÁC TỪ VIẾT TẮT
Stt Từ viết tắt Từ được viết tắt
Trang 7LỜI CẢM ƠN
Chúng em xin chân thành cảm ơn Ths Đặng Thế Hùng – giảng viên trực tiếphướng dẫn, chỉ bảo, tạo mọi điều kiện thuận lợi giúp đỡ chúng em trong quá trình thựchiện đề tài
Tuy đã có rất nhiều cố gắng và sự nỗ lực của các thành viên để hoàn thiện đề tài,
nhưng chắc chắn đề tài “Mô phỏng tính chất No read up của OLS” của chúng em còn
nhiều thiếu sót Chúng em rất mong nhận được sự góp ý từ các thầy giáo để nhóm em cóthể hoàn thiện tốt hơn các đề tài nghiên cứu sau
Chúng em xin chân thành cảm ơn!
Trang 8LỜI MỞ ĐẦU
1 Lí do chọn đề tài
Trong xã hội hiện đại, cơ sở dữ liệu đóng một vai trò hết sức quan trọng và tham gia vào hầu hết các lĩnh vực hoạt động Sự ngưng trệ hay hoạt động thiếu chính xác của
nó có thể gây ra các hậu quả khó lường
Đặc biệt, khi xã hội chuyển sang giai đoạn xã hội hóa thông tin và nền kinh tế chuyển sang nền kinh tế số hóa với mức độ liên kết chặt chẽ, với quy mô toàn cầu thì vai trò của cơ sở dữ liệu càng trở nên quan trọng Do vậy, các vấn đề tin cậy, an toàn và bí mật thông tin trong các cơ sở dữ liệu cần được đầu tư nghiên cứu dưới cả góc độ hàn lâm lý thuyết và cả dưới góc độ triển khai thực tiễn Để đảm bảo an toàn cho một hệ thống thì kiểm soát truy nhập là một trong những biện pháp đầu tiên và quan trọng nhất Nhờ khả năng kiểm soát truy nhập, chúng ta có thể cho phép và từ chối một chủ thể (một người dùng hay một tiến trình nào đó) có quyền truy nhập vào một đối tượng trong hệ thống Tahoàn toàn có thể gắn các kiểm soát truy nhập cho cơ sở dữ liệu thông qua các chính sách kiểm soát truy nhập, cụ thể là chính sách kiểm soát truy nhập bắt buộc (MAC) và chính sách kiểm soát truy nhập tùy ý (DAC)
2 Mục đích chọn đề tài
Có thể nói sự thực thi của MAC trong các hệ quản trị là dựa và các nhãn – label, dùng để gán cho các chủ thể và đối tượng trong hệ thống Do đó, trong Oracle gọi MAC
là an toàn dựa vào nhãn – OLS (Oracle Label Security) Với mục đích nghiên cứu và tìm hiểu thành phần cũng như triển khai thực tiễn các chính sách áp dụng trong OLS mà cụ thể là “no read up”, nhóm chúng em đã được thầy hướng dẫn tìm hiểu về đề tài “Mô phỏng tính chất No read up của OLS”
Do kinh nghiệm và kiến thức chưa được sâu sắc nên trong báo cáo về đề tài và demo của nhóm sẽ gặp phải sai sót, mong thầy và các bạn góp ý để tập thể có thể hoàn thiện tốt hơn trong các nghiên cứu về sau
Trang 9CHƯƠNG 1 TỔNG QUAN KIẾN THỨC MA TRẬN TRUY
NHẬP
1.1 Định nghĩa về mô hình DAC và MAC
Có 2 mô hình tiêu biểu dùng để quản lý việc truy xuất dữ liệu một cách đúng đắn
và đảm bảo tính an toàn cơ sở dữ liệu là DAC (Discretionary Access Control) và MAC (Mandatory Access Control)
- DAC: quản lý việc truy xuất dữ liệu bằng cách quản lý việc cấp phát các quyền truy xuất cho những người dùng thích hợp tùy theo yêu cầu của các chính sách bảo mật 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 ghithông tin đó xuống một đối tượng khác
- MAC: quản lý việc truy xuất dựa trên mức độ nhạy cảm của dữ liệu và mức độ tin cậy của người dùng truy xuất CSDL Bằng cách phân lớp và gán nhãn cho
dữ liệu và người dùng, đồng thời áp dụng quy tắc “no read up – no writedown”,
mô hình MAC giúp ta tránh được việc rò rỉ dữ liệu có mức độ nhạy cảm cao ra cho những người dùng có mức độ tin cậy thấp Quyền truy cập được quyết địnhbởi hệ điều hành chứ không phải bởi chủ thể
1.2 DAC và MAC trong Oracle
DAC: Trong Oracle Database, các nhà quản trị có thể áp dụng mô hình DAC thông qua việc quản lý các truy xuất theo quyền đối tượng và quyền hệ thống
MAC: Oracle hiện thực mô hình MAC trên lý thuyết thành sản phẩm Oracle LabelSecurity (OLS) Tuy nhiên, do mô hình MAC lý thuyết tuân theo nguyên tắc “no read up-
no write down” nên chỉ bảo đảm tính bảo mật mà không có tính toàn vẹn
Vì vậy, để cung cấp một mô hình bảo vệ tốt hơn cho CSDL, Oracle đã cải tiến mô hình MAC lý thuyết bằng cách thay đổi nguyên tắc “no read up – no write down – limitedwrite down” thông qua Oracle Label Security Nhờ vậy tính bảo mật và tính toàn vẹn của
dữ liệu được đảm bảo
Trang 10Mối tương quan giữa DAC và MAC: Khi người dùng nhập vào một câu truy vấn
SQL, đầu tiên Oracle sẽ kiểm tra DAC để đảm bảo rằng user đó có quyền truy vấntrên table được nhắc đến trong câu truy vấn Kế tiếp Oracle sẽ kiểm tra xem có chínhsách VPD nào được áp dụng cho table đó không Nếu có, chuỗi điều kiện của chínhsách VPD sẽ được nối thêm vào câu truy vấn gốc, giúp lọc ra được một tập các hàng
dữ liệu thỏa điều kiện của VPD Cuối cùng Oracle sẽ kiểm tra các nhãn OLS trên mỗihàng dữ liệu có trong tập trên để xác định những hàng nào mà người dùng có thể truyxuất
Hình 1.2 Kiến trúc Oracle label security
1.3 Định nghĩa quy tắc “No read up – No write down – Limited write down”
No read up: Quy tắc 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
No write down: Quy tắc này được đưa ra để nhằm tránh việc những chủ thể ở cấp
cao hơn có thể tình cờ tiết lộ thông tin cùng cấp xuống chủ thể cấp dưới
Limited write down: Quy tắc này cho phép chỉ viết lên những dữ liệu có độ bảo
mật thấp hơn độ tin cậy của người dùng ở một mức giới hạn nào đó
Trang 111.4 Tổng quan về Oracle Label Security
1.4.1 Giới thiệu sơ bộ Oracle Label Security
Oracle label security (OLS) là một sản phẩm được thực hiện dựa trên nền tảng
công nghệ VPD, một tùy chọn bảo mật cho cơ sở dữ liệu Oracle Enterprise Edition và cài
đặt sắp xếp quyền truy cập vào các hàng dữ liệu bằng cách so sánh các nhãn được đính kèm với các hàng dữ liệu trong bảng ứng dụng (sensitivity labels) và một tập hợp các nhãn người dùng (clearance labels)
OLS được ứng dụng rộng rãi để bảo mật an toàn cho các cơ sở dữ liệu trong các lĩnh vực mang tính bảo mật cao như quân sự, quốc phòng, ngân hàng, tập đoàn hoặc các tổ chức lớn trên thế giới
Trong OLS, các nhà quản trị có thể dễ dàng tạo thêm các chính sách kiểm soát truy xuất các bảng dữ liệu cho CSDL bằng giao diện đồ họa có tên gọi là Oracle Policy Manager hoặc bằng các packages được xây dựng sẵn
Có 6 package được hiện thực sẵn cho OLS:
- SA_SYSDBA: tạo, thay đổi, xóa các chính sách.
- SA_COMPONENTS: định nghĩa và quản lý các thành phần của nhãn.
- SA_LABEL_ADMIN: thực hiện các thao tác quản trị chính sách, nhãn.
- SA_POLICY_ADMIN: áp dụng chính sách cho bảng và schema.
- SA_USER_ADMIN: quản lý việc cấp phát quyền truy xuất và quy định mức
độ tin cậy cho các user liên quan
- SA_AUDIT_ADMIN: thiết lập các tùy chọn cho các tác vụ quản trị việc audit.
Quy trình cơ bản để thực hiện một chính sách OLS gồm 5 bước như sau:
Trang 121.4.2 Nhãn nhạy cảm (sensity label).
Mô phỏng mô hình quan hệ đa mức
Mỗi hàng dữ liệu được bổ sung thêm một trường “nhãn nhạy cảm” (sensity label) để lưu lại mức độ nhạy cảm của dữ liệu trong hàng đó
Mỗi nhãn dữ liệu sẽ chứa thông tin về mức độ nhạy cảm của dữ liệu và một số tiêu chí cộng thêm mà người dùng phải đáp ứng để có thể truy xuất đến dữ liệu đó
Quyền truy cập được xét (cho phép hoặc không) dựa vào việc so sánh danh của ngườidùng, mức bảo mật của người dùng và nhãn nhạy cảm của mỗi hàng
Mỗi nhãn chứa 3 loại thành phần (component):
Hình 1.2 Label Components
Mức nhạy cảm (sensitivity level): mỗi nhãn có 1 mức nhạy cảm
Mức nhạy cảm (Level) thể hiện mức độ nhạy cảm của dữ liệu hoặc mức độ bảo mật của người dùng
Trang 13 Mức nhạy cảm của dữ liệu càng cao thì càng cần phải bảo vệ Mức nhạy cảm của người dùng càng thấp thì càng cần phải hạn chế quyền của người dùng
đó
Mức nhạy cảm có quan hệ thứ bậc (hierachical)
Dạng số (numeric form): dạng số của level có thể có giả trị trong khoảng
Ngăn (horizontal compartments): mỗi nhãn có từ 0 đến nhiều ngăn
Compartment định nghĩa các lĩnh vực liên quan đến dữ liệu
Thành phần compartment không có mối quan hệ thứ bậc mà là quan hệ chứa/bao gộp (tập hợp)
Mỗi nhãn có thể có 1 hoặc nhiều hoặc không có compartment nào OLS cho phép tối đa 10,000 compartment trong 1 chính sách
Compartment giúp cho việc phân loại dữ liệu theo lĩnh vực, chuyên ngành,
dự án,…chứ không thể hiện sự phân cấp mức độ nhạy cảm của dữ liệu đó
Nghĩa là nếu ta có 2 dữ liệu thuộc 2 compartment C1 và C2, thì có nghĩa là 2
dữ liệu đó thuộc 2 lĩnh vực khác nhau là C1 và C2 chứ không có nghĩa dữ liệu thuộc C1 nhạy cảm hơn dữ liệu thuộc C2 (hay ngược lại)
Đối với mỗi compartment, ta cần định nghĩa 1 dạng số và 2 dạng chuỗi
Dạng số (numeric form): dạng số của compartment có thể có giả trị trong khoảng 0-9999
Dạng chuỗi dài (long form): tối đa 80 ký tự, là tên đầy đủ của compartment
Dạng chuỗi ngắn (short form): tối đa 30 ký tự, là dạng rút gọn của tên
compartmet Khi cần tham khảo đến compartment ta sử dụng tên rút gọn này
Trang 14 Mỗi nhãn có thể có 1 hoặc nhiều hoặc không có group nào OLS cho phép tối
đa 10,000 group trong 1 chính sách
Group giúp xác định những tổ chức, cơ quan, bộ phận nào sở hữu hoặc quản lý dữ liệu (thông thường nó thể hiện cơ cấu của công ty)
Do vậy group có cấu trúc cây phân cấp Một group có thể thuộc một group cha và có nhiều group con Dữ liệu thuộc một group con thì được xem như cũng thuộc group cha
Thành phần group định nghĩa cách tổ chức dữ liệu
Giữa các thành phần group có mối quan hệ (so sánh) cha-con
Dạng số (numeric form): dạng số của group có thể có giả trị trong khoảng
0-9999 Nó không liên quan gì đến con số của level Giá trị của nó dùng để quyđịnh thứ tự hiển thị của các group trong một label Đối với VD trên, ta sẽ có các nhãn dạng như sau:
S:CHEM:WR,WR_HR (WR có giá trị nhỏ hơn WR_HR nên được hiển thị trước)
Dạng chuỗi dài (long form): chứa tối đa 80 ký tự, cho biết tên của group
Dạng chuỗi ngắn (short form): chứa tối đa 30 ký tự, là dạng rút gọn của tên group Mỗi khi cần tham khảo đến group ta sử dụng tên rút gọn này
1.4.3 Cách thức hoạt động (quản lý truy cập).
Một người dùng chỉ có thể truy cập dữ liệu nằm trong phạm vi quy định của nhãn nhạy cảm của mình
Trang 16CHƯƠNG 2: SƠ LƯỢC MÔ PHỎNG TÍNH CHẤT NO READ UP
CỦA OLS2.1 Tình huống mô phỏng
- Doanh nghiệp cần một cơ sở dữ liệu để quản lý các thông tin trong nội bộ doanh nghiệp.CSDL bao gồm tổng công ty và 2 chi nhánh với tổng giám đốc, các giám đốc chi nhánh
và nhiều nhân viên Với số lượng thông tin lớn và mức độ bảo mật cao thì cần một chínhsách quản lý CSDL như OLS
Dự án “Quản lý nhân sự”
Sơ đồ CSDL.
Hình 2.1 Sơ đồ cây phân cấp group của công ty
Cần bảo vệ thông tin nội bộ của doanh nghiệp và thông tin cá nhân của nhân viên.
Trang 172.2 Triển khai dự án “Quản lý nhân sự”
2.2.1 Truy cập đọc
Hình 2.2
2.2.2 Các loại nhãn của user.
Trong mô hình này dùng 3 loại nhãn: High Sensitive (HS), Sensitive(S) và
Confidential(C).
Mức nhạy cảm(Sensitive level):
Trang 182.2.6 Các loại nhãn của data.
max_read_label: nhãn thể hiện mức truy xuất cao nhất đối với tác vụ đọc Nó bao
gồm level cao nhất (max_level) cho tác vụ đọc, tất cả các compartment và group mà người dùng được phép đọc (read_comps và read_groups) Đây là nhãn mà người quản trị bắt buộc phải gán cho người dùng nếu chọn cách quản lý quyền truy xuất của người dùngthông qua nhãn
max_write_label: nhãn thể hiện mức truy xuất cao nhất đối với quyền viết Nó
bao gồm level cao nhất (max_level) cho tác vụ viết, tất cả các compartment và group mà người dùng được phép viết (write_comps và write_groups) Nếu người quản trị không
Trang 19min_write_label: nhãn thể hiện mức truy xuất thấp nhất đối với tác vụ viết Nhãn
này chỉ chứa level thấp nhất (min_level) của người dùng đó, không chứa bất kỳ
compartment và group nào
def_label: nhãn được sử dụng để khởi tạo các nhãn mặc định của người dùng
Nhãn này có thể chứa bất kỳ ngăn và nhóm nào được phép truy cập đọc
row_label: nhãn mặc định dùng để gán nhãn cho các dòng dữ liệu mà user tạo ra
trong bảng được chính sách bảo vệ Nhãn này là tập con của max_write_label và
def_read_label Nếu người quản trị không thiết lập giá trị cho loại nhãn này, nó sẽ lấy giá trị bằng giá trị của def_write_label